実際にPhotonCloudを使ってみる~基本編2~最近PhotonCloudに動きがあったそうで、何やら新しいサービスが開始されるそうです。この講座が無意味になるような内容じゃなかったら良いのですが・・・。それでは、前回に引き続き基本編です。今回のテーマは可視化。色んな物が見えるようにしてみましょう。GUILayoutを追記します。);}}実行してみましょう。左上に何やら文字列が表示されましたね?これが現在のネットワーク接続状況です。「Joined」と表示されれば無事にルームへと入室できたことが分かります。◆PhotonNetwork.connectionStateDetailed現在の接続状況を返してくれる。デバッグ的に画面に表示させる他、接続が完了するまでは処理をしない、といった条件判断にも活用できる。続きまして、ネットワークゲームなので操作できるキャラクターが欲しいところですね。・プレイヤーがルームに入室すると、そのプレイヤーのキャラクターを画面に表示する部分をまず作ってみたいと思います。1プレファブの設定キューブでもスフィアでもなんでもいいので、ヒエラルキーから追加します。名前を適当に変更します。この場合は「playerObj」としました。viewというスクリプトをアタッチします。ComponentからMiscellaneousを辿って追加することもできます。それをプロジェクトのResourcesフォルダ内にドラッグし、プレハブを作成した後、ヒエラルキーに残ったオブジェクトを削除します。「lobbyMain.cs」に以下のように追記します。多重起動してみましょう。以下のようになれば成功です。窓を増やせば増やすほど、ボックスが増えていきますね。このボックスがそれぞれのプレイヤーです。※オブジェクトが重なるのを避けるためネットワーク上にオブジェクトを作成という流れになっています。◆PhotonNetwork.InstantiateInstantiateをルームに入室している全てのプレイヤーで実行させるようなもの。この命令で作成されたオブジェクトをオンラインで同期することができる。次回はこのオブジェクトを動かし、その動きをネットワークで同期します。何かおかしいところがありましたら、是非お教え下さい。私のスマホアプリ第一弾となったペタリーですが、発表から約二ヶ月が経ちました。DL数や収益も落ち着いてきましたので、ここを区切りとして成果報告をしたいと思います。何をどうすればどうなるか、という参考になれば幸いです。ぶっちゃけデータから。約26円わーお、ブラック起業も裸足で逃げ出しちゃうぜ!続いて、収益方法と宣伝方法についてご紹介します。twitterでの告知レビューサイトへのレビュー依頼まず今回の出発点はほとんどUnityが分からないという状態でした。ひよこが描かれた見るからに初心者向けの参考書を片手に制作しています。そのため、開発のノウハウが無いばかりか、そもそもスマホ市場がどのようなものかすらあまり理解していなかったことが最大の反省です。(とはいえ、やらなければノウハウも獲得できないので、反省しつつも手法は正しいと思っています)もう一つ、このデータからみて大きな反省は、DL数の少なさですね。広告による収益を主とするなら、DL数はこの100倍は欲しいところです。appC単体の利益が3800円程度なので、30万ちょっとぐらいは稼げていたかもしれません。流行らなかったのか、ということについて考える必要があります。初見でゲーム内容が伝わりにくかったゲーム内にSNS連携機能を持たせていなかった広告宣伝不足1と2について、現状広告によって利益を出しているゲームはカジュアルゲームが非常に多いです。理解できて手軽にプレイできるから、とりあえずやってみようと思えるのではないかなぁと。内容がよくわからないのでは、プレイするまでいかないということかもしれません。これはレビューする側もそうで、わかりやすいゲームの方がレビューもしやすいのでしょうね。3について、もうこれは資金不足としか言えないですね。炎上覚悟でばらまくという手法もありはするんでしょうが、まだそこまで落ちたくないです。次に、今回の客単価についてです。純粋にDL数から考えるなら、一人あたりの単価は1円ちょっとです。よろしくないというか、むしろアウトーです。いう状態になったのか、考えてみます。ゲーム性と収益方法のミスマッチ広告表示までのタイムラグバグ多すぎ1について、ペタリーはもはやカジュアルゲームという枠から外れています。主観では全然カジュアルだろと思っていたんですが、そんなことなかったようです。アーマードコアをやっているとその辺りの感覚が鈍るので注意です。問題はカジュアルかそうではないか、ということではなく、ペタリーが即座に面白さがわかるタイプのゲームではないことにあります。プレイしてつまらんからアンインストールするわけですね。長く遊ばせることが広告収益をあげる一つの方法でありますから、これは宜しくありません。GooglePlayのレビューの通り、バグに対する文句こそあれ、ゲームとしての文句はほぼありませんので、途中までは無料で、それ以降は有料になるような収益方法の方が良かったのかもしれません。面白さが分かったユーザーをターゲットにする感じですね。2と3について、これは開発力不足ですね。ゲームが重たいみたいで、広告が表示されるまで少しラグがあったり、場合によっては表示されなかったこともあります。レビューでも散々言われているんですが、そのどれもが再現できなくて原因不明です。強制終了とか一度も起きてないんですよね・・・。うーん、端末固有のバグなのかなぁと考えているのですが、にしては多い気が。ミスマッチ宣伝不足(ゲームシステムと予算的な意味で)かなと思います。2については次回作にすぐ反映できそうですね。1についても、うん、今回の制作でレベルが上がったと信じています。これは誰しもが抱える問題かと思いますが、宣伝なぁー・・・これどうしたらいいんでしょう。余談ですが、Unityのアセットとレビュー掲載費で1万ぐらい使っているので、時給26円どころか赤字です。実際にPhotonCloudを使ってみる~基本編1~それでは今回から、実際のスクリプティングについて解説しようと思います。誰かのお役に立てれば良いのですが・・・。解説は全てC#で行います。悪いことは言わないので、こういう外部のプラグイン的な物を使うときはC#が良いです。JSだとPhotonCloudのファイルをPluginフォルダに移動したり、ところどころ書き換える必要があるっぽいので。以前の記事にPhotonCloudについての流れが書いてありますね。この1~7に沿って実際の構文を記します。1.ゲームにログイン処理的にはゲームロビー(PhotonCloud)への接続を指します。{PhotonNetwork.ConnectUsingSettings("0.1");}}以上です。これを適当なゲームオブジェクトに追加してあげれば大丈夫です。ポイントはMonoBehaviourにPhotonを継承して、Photon.MonoBeheviourとすること。継承って何なのかよくわからないんですが、Photonというクラスで定義された関数やらを使えるようにすること、みたいです。◆ConnectUsingSettings("0.1")「0.1」という文字列のロビーに接続する、みたいなイメージです。使い方としては、ゲームのバージョンアップの際など、新旧のアプリケーションが同じロビーに接続するとまずい時などに使います。一例ですが、ここを「0.2」にすると、同じ「0.2」と定義されたアプリケーションが同じロビーへと接続されます。処理的には現在募集中のルームを検索して、存在すれば入室なければ自分で作成して入室となります。OnPhotonRandomJoinFailed(){PhotonNetwork.CreateRoom("testRoom");}}先ほどのスクリプトに追記しました。OnJoinedLobbyやOnPhotonRandomJoinFaildに関しては、コメント行がそのまま説明です。詳しいことは分かりませんが、そういうものだと理解してください。なぁに、車の構造を知らなくても運転は出来るんですよ。私免許持ってないですが。◆JoinRandomRoom()存在する部屋を検索し、そのどれかに入室するという意味です。◆CreateRoom("testRoom")「testRoom」という名前の部屋を作成し、入室するという意味です。部屋の名前は重複せず、検索のキーにもなります。絵的に何の変化も無いのでわかりにくいですが、一応これだけで複数のプレイヤーが同じルームに打ち込まれる処理が完成しました。次回はもうちょっと絵的に分かりやすくして、条件設定をしてみましょう。おかしいところがありましたら、何卒ご教示ください。実際にPhotonCloudを使ってみる~導入編1~それでは今回から、PhotonCloudを実際にUnityで扱う方法についてお話したいと思います。どこで何をどうするのかについてです。こちらからどうぞ何はともあれユーザー登録です。登録は特に難しいところもないので割愛しますね。検索すると以下のようなアセットが見つかりますので、これをUnityへ読み込みます。PhotonCloudの公式サイトへログインし、AppIDをコピーする4UnityへPhotonCloudをインポートすると表示される画面からsetupをクリック後、先ほどのAppIDを入力し、CloudRegionからJapanを選択このウインドウを閉じ、とりあえずは導入完了です。PhotonCloudはデフォルトだと同時20接続まで無料です。この状態でも開発上でのテストは十分行えますね。次回はスクリプティングの基礎から行います。例によって、何かおかしいところがありましたら、是非ご教示ください。