FC2ブログ
    06 «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.» 08

    ハルシオンシステムの気まま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);
    }
    }


    文字列挿入のも違う書き方ができたりとC#6でいろいろできることが増えているので、調べてみると面白いかもしれませんね。
    といった感じで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   

    【Unity】Unity2017にGameObjectRecorderなんてのがあるらしいっすよ。あ、今日からハクスラ作っていく感じですよ! 

    こんにちは。
    昨日から謎の腹痛に襲われている大坂です。

    暑い日が続いていますが、皆様元気でしょうか?
    僕は暑くて死にそうです(ぁ

    あ、先週のブログで今月にリリースされるって書いてたUnity2017が7/11にリリースされましたね。
    次のハクスラはUnity2017を使って作っていこうと思っています!

    ハクスラは、一応先週からやっていた仕様的なところが簡単には終わったので、今日から各部分を作成していく感じに。
    現状見えてるだけでかなり大変そうですが、地道に進めて完成させていきます。

    さて、毎週言っていますが、今週もネタというネタはないわけですが…orz

    とりあえずUnity2017を色々見ていて見ていて「GameObjectRecorder」なんて言うのがあったのでちょっと触ってみました。
    ゲームオブジェクト動かしたのをAnimationClipにできる感じのモノっぽいですね。
    APIにサンプルがあったのでほとんどそのまま。

    あとは適当にAnitmationClipを付けて、recordにチェックを入れて適当にオブジェクトを動かしてあげると保存されますね。


    こんな感じで保存されてました。


    いろいろ工夫すれば、使いどころはありそうなんですかね?
    あ、適当な2DSpriteでしか試してないです。

    ということで適当感が漂いますが今週もこれにてノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Unity2017のSpriteMaskがすげーの。軽く試しただけなのに簡単にできちゃったの!(ノ∀\*) 

    こんにちは!坂内っす。

    暑さがやばくなってきましたね!
    先日は35度とか、それ以上の場所があったとか…
    熱射病・熱中症に気を付けてくださいませ。

    Unity2017ちょっと触ってみました。
    といっても、ほんと起動したくらいですが。

    新しい機能のSpriteMaskが面白凄いっすね!

    ちょっと気になったので試してみたよ って記事です。

    とりあえず適当にポケガ1の背景の絵を置いてみます。



    んで、SpriteMaskとして、適当な絵を置きます。





    これだけで準備は終わり。


    あとはSpriteとして置いた背景の絵の設定を変更するだけです。



    ■「Visible Inside Mask」を選んだ場合



    ■「Visible Outside Mask」を選んだ場合



    凄くないっすか?こんな簡単にMaskができちゃうなんてーー!
    どっかで使う機会が出てきそうですよね!
    ってか、どっかで無理やりにでも使っちゃいそうですよね!

    さて、頑張ってハクスラの仕様考え続けよう!

    今日はこの辺で あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    Unity2017.1って7月なんですね…。色々ついていけてません…orz 

    こんにちは。
    大坂です。

    先週は急遽秋田に行くことになったのでブログをお休みしてました。
    なんか色々疲れましたが無事帰ってきて今週も生きてます。

    さてはて、先週は秋田に行って、今週は新しいゲームの仕様の会議しかしてないわけですが…。

    あ、Unity2017.1の正式リリースが7月らしいですね。
    http://japan.unity3d.com/blog/press/20170628

    新しいのはすぐ使わないのでしばらく5.6を使ってそうな気もしますが、面白い機能があったら試してみたいですね!
    (その割にBeta版とかは入れないんですけど…orz)

    リリースノート翻訳してくれてたり、気になる機能を書いてくれているブログもあるので詳しくはそちらで…(おい

    とりあえず今はいいゲームを皆様にお届けできるように頑張りたい!と決意表明だけして今日も終わりです。

    ではでは、来週には何かネタがあるといいなぁと思いながらこの辺でノシ

    Category: その他日記

    tb 0 : cm 0   

    【ハルシオンブログ】ネタがないので、今後の方針をば。 

    はい、こんにちは坂内でぇ~っす。

    蒸し暑い日が続いていますね!熱中症に気を付けてください!
    僕はクーラーの効いた部屋から出ないので、大丈夫です!

    さて、そろそろアプリ開発本格復帰できそうな今日この頃!

    次のアプリはハクスラだと散々言ってますが、ハクスラです。

    GrimDawnをやりながらハクスラの楽しみ方を再認識し、どうアプリとして再現し、構築するかをこれから考えていこうと思ってます!大体半年を目安に面白い1本を作り上げていこうと思います。

    ということは・・・ポケットガール3(仮)は来年かなぁ。

    気長にお待ちして頂ければ幸いです。

    という感じで、さっぱりネタないので、今後の方針食っちゃべって終わりです!

    あでゅ~ノシ

    Category: その他日記

    tb 0 : cm 0