FreelyApps

個人によるアプリ開発の日記です。アプリの収入だけで生活できるようになるのが目標です。UnityでAndroid向けのゲームアプリを作成しています。


    アプリ『トランプ・ジン・ラミー』を公開しました。
    Android/iOS https://goo.gl/PYKFYG

    2015年09月

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Unity 5.2が公開されてログの表示が強化されていました。Stacktrace loggingというようです。使い勝手は今のところ実験的な機能というところです。今のところ必要かわかりませんが、詳細を見れるようになったということでデバッグに活用できるかもしれません。

    3種類のログの出力形式を選べるようになります。
    None、ScriptOnly、Fullです。このうちScriptOnlyというのが従来のログと同じ形式です。インストールしたときのデフォルトがこの設定でした。
    コンソールを開き、設定ボタンをクリックします。Stack Trace Loggingという項目があるのでそれを選ぶと、ログの表示形式を選ぶことができます。
    stl


    どのような見た目になるかは以下の画像のようになりました。

    Noneの場合
    simlog

    ScriptOnlyの場合
    nlog
     
    Fullの場合
    stlog

     
    Noneはログがそのまま出ているだけの表示なので、見やすいですが情報が少ないです。余計な情報が出ないのであまり重要でないところではこの表示にしておくとログ全体が見やすくなります。 

    ScriptOnlyは今までの表示と同じです。慣れている人はこの設定が良いでしょうし、表示される情報もちょうどいいので特に気にならなければこの設定が良いです。

    Fullは多くの情報が出ているのがわかります。表示の先頭にある0x~というのはおそらくメモリのアドレスを表しているのだと思いますが、詳しいことはわかりません。(64bit分の表示なので、可能性は高いと思います。)


    現時点で役に立ちそうなのは、Application.stackTraceLogTypeをスクリプトでいじるとログの表示を動的に変えて見やすくすることくらいでしょうか。それをやるにしてもリリースするものにこの処理が入るのは無駄なので、定義を使わなければ駄目かと思います。
    Editorスクリプト用ならリリースに含まれないので、それに活用するくらいかもしれません。 

      このエントリーをはてなブックマークに追加 Clip to Evernote
    ゲームを遊んでいると、自分にとって非常に楽しいものに出会うことがあります。また逆につまらないものに出会うこともあります。色々なゲームを遊んでいるうちに自分の好みがわかってきて、遊ぶ前からこれはおもしろそうだとかつまらなそうだということがなんとなくわかるようになります。
    そんな風になると、自分にとって面白いゲームがないかと探すのですが、そう簡単に見つかることはありません。作っている方の都合では、ある一人の人を楽しませるためだけに作っているわけではないからです。商業的な家庭用ゲームなどは最たるもので売れなければならないという前提があるために本来あるべき姿で売られることは稀です。

    ゲームで遊んでいると行きつくのは、自分でゲームを作ってみたいというところです。作ること自体は楽しいことも辛いこともあるのですが、始めてみようという人はそんな実情は気にせずやってみることをお勧めします。 どうやったらできるのかというのは一言では述べることができず、ひたすら完成までの流れを説明することになります。そして、やり方は決まったものがあるわけではないです。
    大まかにいえば、どのようなものを作るかという企画を決め、リソース(絵、サウンドなど)を用意し、プログラムで企画を実現できる範囲でゲームを作成します。とりあえず遊べるようになったゲームを遊び、バグの発見と修正、難易度の調整などを行います。十分な質まで高められたと思ったら、リリースをします。

    自由に作って良いという場合、いつまでも作り続けてしまい結局完成しないということが起こります。初めてゲームを作るなら、例えば1カ月で作るというように期限を決めて作った方が良いです。最低限どんなゲームでも必要なのがプログラミング技術です。あなたが作りたいゲームが既に存在するものと同じでなければ、その動作をさせるプログラムは新たに作らなければならないからです。
    初めて作るゲームは単純なものの方が完成しやすいです。RPGを作ろうと思ったら、1年とかかなり長い期間作業することを計画しなくては完成しません。 作りたいゲームを初めからやるよりは小さなものを確実に作れるか試した方が良いと思います。まずそれができなければより複雑なものを作って挫折してしまうでしょう。

    ゲームを完成させることは本当に難しいのです。
    これは個人の趣味だけの話ではありません。企業で作るものも完成に行きつかないことも多いのです。作ってみたが面白くないとか、こんなものは売れないと社内からの批判で開発中止ということもあります。
    個人の場合はやる気の継続が難しいと思います。作り始めのときは勢いよく進んでいたのにしばらくすると進みが遅くなり、いつになったら完成するのだろうかと思い始めます。 そうなってくると作っているのにあまり変わらずイライラしてくるでしょう。それで作るのをやめてしまうのです。
    少しでも作り続けるしかありません。もしくは作っているものを小さくするのです。全部を作るのではなく最低限必要なところを作ります。一度完成したものを変更していけないわけではありません。これで完成とした後で更新するという方法もあります。

    ゲームを一人で作ったことがある人は少しはいるものです。
    その中で完成までさせたという人はごくわずかです。 ゲームを作ったら、完成させてください。そうしないと誰も作ったかどうかわかりません。完成させることは無意味にさせないために必要なのです。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    オンラインゲームを作る場合、Unit5.1から新しく追加されたUnity Multiplayerを使うと簡単らしいです。まだ公開されて間もないので日本語のドキュメントが少なくハードルは高いですが、やってみる価値はあると思います。
    Unity Multiplayerが新しいネットワークシステムの名前でUNETというのはコードネームらしいです。それについては公式ブログの「ANNOUNCING UNET – NEW UNITY MULTIPLAYER TECHNOLOGY」に載っているので興味があれば見てください。今後の展望も説明されています。

    数多くのアプリが毎日公開されていますが、ネットワークを使った対戦(協力)ゲームに対応しているゲームというのはそんなに多くはないです。オンライン対戦に対応するということはそれだけ熱中する要素が増え、そして他のアプリとの差をつけることもできます。スマホは常時接続を行っているということもありオンライン対戦に親和性が高いと言えます。

    オンラインゲームを作ることのモチベーションからUnity Multiplayerを使ってみようという気になりました。まずはhttp://unity3d.com/jp/services/multiplayerに行きます。機能の紹介の他に登録というボタンがいくつかあるので、それを押してサインイン用のページに行きます。
    unitymultiplayer

    Unityアカウントのログインをすれば、Unity Multiplayerの管理ページにいけるようです。試した結果は以下の通りでした。

    mp-from-chrome
    サイトに行くとそこは真っ白なページが広がっていました。

    このようになった原因はブラウザ(Chrome)でした。Chromeではサイトがうまく開けないようでした。
    仕方がないのでInternet Exploerを使ってアクセスすると問題なくUnity Multiplayerのページが表示されました。Chromeだけの問題かはわかりませんが、Chromeをお使いの方はUnity Multiplayerのページが見れませんのでご注意ください。今のところChromeで開けることを待つしかありませんね。

    unitymultiplayerpage
    正しいページは上のようなイメージです。ログアウトがうまくできなかったり不具合があるようなので、改善されていくことを祈りながら使って行こうと思います。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    8月のPVは2061でした。

    2015-8pv

    順調に増えているような気がしますが、1人あたりが見るページ数が減っているのでそれは改善していかないとと思っています。おそらくは検索して引っかかったサイトを少し見て出て行っているような気がしています。

    今月も「Unity Acountの登録」が最も見られているページでした。Unityを始めたい人が多いのかもしれません。始めたいけれどもどうすれば良いのかわからない人は結構いるのではないかと予想できます。そういった人がこのサイトに来ると、アカウントの登録はできたけれど次に何をしたらいいかわからないということで別のサイトに行っていると考えると納得できます。

    何はともあれ訪れてくださった方はありがとうございました。 

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Resources.Loadを使うと、動的にアセットを読み込むことができます。 動的にというのはシーン内に置かれていないかシーン内に置かれたゲームオブジェクトからの参照もないアセットを読み込むという意味です。
    Unityはシーンに必要な全てのアセットを自動でロードするので、シーンに置かれているもの、シーンに置かれているものが参照しているものは全てシーンの起動前にロードされるのです。

    使うためにはアセットをまず特別なフォルダに置かなくてはいけません。Resourcesというフォルダをプロジェクトのどこかに作ります。プロジェクトビューの直下(Assetsの直下)に置いても良いですし、どこか別のフォルダの下でも構いません。複数作ることも可能ですが、慣れないうちはひとつにしておいた方がわかりやすいです。
    Unityはいくつかのフォルダ名を特別扱いしています。 Resourcesもその中のひとつでResources.Loadでアクセスできる場所になっています。
     
    Resources.Loadの引数は文字列であり、これはパスを表します。Resourcesフォルダ内のどこにあるかをパスで記述します。Resourcesフォルダ内のPlayerという名前のプレハブであればResources.Load("Player")で読み込むことができます。Object型で返ってくるので、キャストが必要になります。
    Resourcesフォルダ内にさらにフォルダAがあり、その下のBGMというオーディオクリップを取得したい場合はResources.Load<AudioClip>("A/BGM")として読み込むこともできます。
    /を使って階層的になっているフォルダも対応できます。

    どのようなアセットでも動的に読みだせるので、使い道は広いです。共通で使うものはシーンに置いた方が便利ですが、特定の条件でしか使わないものや容量の大きいアセットの読み込みをどこかで行うといった使い方がありえます。シーンに全て置くことが可能なら、それも扱いやすいので無理にResources.Loadを使う必要はありません。

    Resources.Loadで読み込んだアセットはシーンが変わると破棄されます。シーンがひとつしかないとかしばらくシーンを変更しないがアセットはもう使わないのでメモリから解放したいということがあると思います。そういったときは読み込んだアセットを参照しているところをすべてなくした後、Resources.UnloadUnusedAssetsを呼び使われていないアセットを解放することができます。

    • 今読み込まれているのは何か?
    • 読み込み中なのか?
    • どれくらい読み込みを行うか?(メモリの限界の問題)
    • シーン切り替え時の対処
    といった問題が出やすいので、それに気をつけて使ってください。読み込んだつもりがアセットがないとかはエラーを引き起こしたりします。ロードのしすぎでメモリが足りなくなる問題は防ぎようがないので、いくつかの実機で試すしかありません。
     

    このページのトップヘ