07 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 09

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】今年のアプリ界隈のでかい飲みも終わったし、開発はじめまそ。あswitch文ってありますよね・・・ 

こんにちは!坂内っす。

先週末はWDDCに参加してきたっス。
WDDCについては和尚さんのブログを参考に。

【WDDC2017】たくさんのご参加ありがとうございました!

それにしてもたくさんの方が集まっていた模様。
0次会(17時~):13名
1次会(19時~):115名
2次会(朝まで):64名

北は北海道から、南は沖縄まで集まる集まる。
さすが和尚といった感じか。

結局12時間飲んでました・・・いつもなら3時頃にはウーロン茶に以降していたのですが、今年はなぜか飲みながら話していたら朝になってました。
新しい出会いも、懐かしい顔も見れて楽しかったですね。

そして朝帰って14時に起き、17時には次の飲みに出かける腐れっぷり。

さて、ちょっと飲みは控えましょう。

ではUnityの話題です。

ネタがないので、ちょー簡単なお話を・・・簡単すぎて「読んだ時間返せ!」とか言わないでくださいね。

switch文ってありますよね。

「変数aaaが0の場合変数a+b、aaaが1の場合axb、aaaが2の場合a/b」を行うとか。


int ret = 0;
switch(aaa){
case 0:
ret = a + b;
break;
case 1:
ret = a * b;
break;
case 2:
ret = a / b;
break;
}


とかってなると思うんですよね。
では以下の場合ってどう書きます?

「aaaが0の場合a+b、aaaが1の場合a+b、aaaが2の場合a+b、aaaが3の場合axb....」

もちろんそのままこう書くこともできます。


int ret = 0;
switch(aaa){
case 0:
ret = a + b;
break;
case 1:
ret = a + b;
break;
case 2:
ret = a + b;
break;
case 3:
ret = a * b;
break;



}


しかしこれ、break書かなければもっと簡単に書けるんですよね。


int ret = 0;
switch(aaa){
case 0:
case 1:
case 2:
ret = a + b;
break;
case 3:
ret = a * b;
break;



}


こんな感じ。

UnityというかC#というか普通のプログラミングの話ですが、これで本日の授業を終わります。

では、あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【Unity】インポートした画像にアルファがどうかあるか見て、それぞれフォーマと変えたい場合とかね。 

こんにちは。
大坂です。

昨日今日と何となく過ごしやすい気がします。
風が涼しい感じです。

ハクスラは作っていって、「あ、やっぱりこんなのも」っていうのがやっぱり出てくるのでどんどん大変になっていきますね。
色々やばそうっすね。(特に戦闘がやばそうっすね。
何となくドロップアイテムを生成したり、装備したりするところは作れてきたような、そうでもないような(ぇ
とりあえずあーでもないこーでもないという感じで少しずつ進んでます。

今日もネタがないですが、少しだけ。
いつのころかUnityで画像のデフォルト圧縮がETCになってますが、まぁそれぞれのOSで分けたい場合とかね。
画面で1個1個変えられるんですが、毎回変えるのが面倒なのでプログラムでやろうねって話です。

Editorフォルダにこんなのぶっこんでおけば画像入れると勝手にやってくれるようになります。
すでに入ってる画像はReimportしてあげてください。
細かい設定は自分で設定したいものに変更してくださいね。

using UnityEngine;
using UnityEditor;

public class TextureFormatter : AssetPostprocessor {

int maxSize = 2048;

private void OnPreprocessTexture() {
TextureImporter impoter = assetImporter as TextureImporter;
// アルファの取得
bool isAlpha = impoter.DoesSourceTextureHaveAlpha();

// Android_アルファありの設定
TextureImporterPlatformSettings andSettingAlpha = new TextureImporterPlatformSettings();
andSettingAlpha.overridden = true;
andSettingAlpha.name = "Android";
andSettingAlpha.maxTextureSize = maxSize;
andSettingAlpha.format = TextureImporterFormat.DXT5;

// Android_アルファなしの設定
TextureImporterPlatformSettings andSettingNoAlpha = new TextureImporterPlatformSettings();
andSettingNoAlpha.overridden = true;
andSettingNoAlpha.name = "Android";
andSettingNoAlpha.maxTextureSize = maxSize;
andSettingAlpha.format = TextureImporterFormat.DXT1;

// ios_アルファありの設定
TextureImporterPlatformSettings iosSettingAlpha = new TextureImporterPlatformSettings();
iosSettingAlpha.overridden = true;
iosSettingAlpha.name = "iPhone";
iosSettingAlpha.maxTextureSize = maxSize;
iosSettingAlpha.format = TextureImporterFormat.PVRTC_RGBA4;

// ios_アルファなしの設定
TextureImporterPlatformSettings iosSettingNoAlpha = new TextureImporterPlatformSettings();
iosSettingNoAlpha.overridden = true;
iosSettingNoAlpha.name = "iPhone";
iosSettingNoAlpha.maxTextureSize = maxSize;
iosSettingNoAlpha.format = TextureImporterFormat.PVRTC_RGB4;

if(isAlpha) {
// アルファあり
impoter.SetPlatformTextureSettings(andSettingAlpha);
impoter.SetPlatformTextureSettings(iosSettingAlpha);
} else {
// アルファなし
impoter.SetPlatformTextureSettings(andSettingNoAlpha);
impoter.SetPlatformTextureSettings(iosSettingNoAlpha);
}
}
}

なんか無駄に長いですが…
まぁこんな感じで設定自体はできますね。

何かに使うのか使わないのか(ぇ

まぁこんな感じで今日も適当ですが終わりです。
またノシ

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】アプリ開発者のでっかい飲みがありますねって話と、Unityで簡単に動画がつかえるねって話。 

おこんにちは、ハルシオンの坂内っす。

7月28日(金)にアプリ開発者の大規模飲み会がありますっすね!

夏だから呑もうって飲み会らしいっすけど、年がら年中のんでるじゃねえの?(ボソッ)

詳細はこちら
http://ninebonz.net/wddc2017


ちなみに大規模飲み会の前の恒例「勝手に0次会」を適当にやろうと思います。
公式でもなんでもないので、別の0次会が他にあるかもしれませんが。

WWDCは19時開始なので、0次会は

”17時開始”

2時間適当に飲んでから大規模飲み会行きませんか?

「初めて開発者の飲み会参加するんだけど、いきなり100人とかレベルたかすぎwwww」
「地方から移動して昼につくんだけど、19時まで暇なんだけど!」
「ハルシオンさんと話したいいいい」

なんでもいいんですが、0次会参加したいって人はTwitterで「@zabosama」までDMください。
場所は大体決まってるんですが、人数把握したいので。
前回の適当0次会は10人くらい集まりました。

さて、Unityのお話です。
そういえばUnity5.6でしたっけ?あたりにVideoPlayerってのが追加されてましたよね。

これ、簡単に動画がUnityで再生できるっぽいっすよ。

まずは、VideoPlayerを作成します。



次に再生したい動画をプロジェクトに置きます。
今回はmp4のファイルを置いてみました。(どの形式が動くのかわかりませぬ)



VideoClipのところに、動画ファイルをアサイン。


これだけで動くのかな?

さて実行してみましょう。



しーーーーーん・・・・・・

だめぽ。

RendereModeってのがVideoPlayerにありますね。



こいつを「Camera Far plane」にしてCameraをアサインしてあげると・・・・



動画でたーーーー!!!

これAndroidでもでるのかな!?

でたーーーーー!!

すごいね!

でもこれ、音は別で用意しないといけないのね・・・・・

という感じで、簡単に動画をゲームに入れれそうですね。

そんな感じで本日は終了。
あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【Unity】Unity2017でC#6が使えるんすね。 

こんにちは。
大坂です。

昨日あたり梅雨明けっぽいニュースを見ました。
これから夏本番ですかね…。

さて今週のネタです。
タイトルの通りですが、Unity2017でC#6が使えるようです。

とりあえず設定周りから。
[File]-[Build Settings]-[Player Settings]-[Other Settings]-[Scripting Runtime Version]を
「Experimental(.NET 4.6 Equivalent)」に変更



再起動を求められるので再起動。
で、VsualStudioでちょっとC#6のコードを書いてみる。
気になっているのはusing staticと文字列挿入とnameof演算子あたり。

とりあえず using staticを書いてみるとエラーになる。
こんなやつね。


むむむ、ということでちょっと調べると、Unityで作成したプロジェクトの直下にある
「xxxx.csproj」ファイルを開いて以下を更新すると動くとのこと。
<LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion>

<LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">6</LangVersion>

「4」を「6」に変更です。
ここを変えると無事にエラーが消えるのでC#6が使えるようになります。

簡単ですけどこんな感じ。
using static UnityEngine.Random;

public class BlogTest : MonoBehaviour {
void Start () {
// using static によりRangeだけで使える
int ran = Range(0, 100);

// 文字列挿入が楽に。
Debug.Log($"{nameof(ran)}の結果は「{ran}」だよ。");
}
}

実行結果。


この使い方だとnameof演算子は無駄ですけど、いろいろ使い道はありそうですかね。
といった感じでUnity2017でC#6が使えるようになるのでご紹介です。

気になる人は調べて色々使ってみてくださいませ。

では今週もこれにてノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンぶろぐ】ハクスラ作り始めたんだけど、こんな感じにしようかなーって話。今後は制作中のものも出していくかも? 

オハヨウゴザイマス。坂内っす。

先週OculusRift頼んだのに、いまだに発送のメールが来ないっす。

さて、ハクスラの開発が始まってきた感じなわけですが、まずハクスラとはなんぞやと。
日本ではゲームのジャンルとしてそこまで浸透していないジャンルではありますよね。

あぁ ハクスラね

聞いたことはあるけど、いまいちわからない。

っ Wiki
https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%AF%E3%82%A2%E3%83%B3%E3%83%89%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5

代表作としてはD&DやWiz、ダンマス、ディアブロとか書かれてます。

もちろんD&Dやダンマスとかはやったことありますが、やっぱりハクスラの代表といったらディアブロじゃないかと思うんす。
https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%82%A2%E3%83%96%E3%83%AD_(%E3%82%B2%E3%83%BC%E3%83%A0)

ハクスラお分かりいただけたでしょうか?え?わかんない?

要は、敵倒して倒して倒しまくって最高な装備を集めて集めてひゃっはー ってキャラを強くしていくゲームっす。
(たぶん)

で、以前ルナティックダンジョンというハクスラなゲームを作ったのですが、色々な諸事情によりアプリを取り下げました。

まずは質、量共にルナダンを超えるゲームを作っていこうと思います。

<今回のハクスラに取り入れたい要素>
●ドロップアイテムをどっぱーーって 画面に出したい。
●ハクスラの装備っていったら、PreffixとSuffixでしょ!
 「〇〇の剣 オブ 〇〇」 とかね。
●スマホなので、アクションは入れない方向ですが、戦闘を派手にしたいっすね。(基本自動戦闘)
 やっぱり見てるだけのものなので、少しでも見ていて楽しめるように。
 また、ポーションや必殺技等のインタラクティブなところも用意しようと思ってます。
●ハクスラっていったらダークファンタジーが主だと思うのですが、ダークファンタジーじゃないストーリーも企画中。
●キャラが可愛い!かっこいい!

という方向で作っていければなぁ
( ´ー`)。о(妄想中)


という感じで今日はあでゅ~ノシ

Category: Androidアプリ紹介

tb 0 : cm 1