CrossRoadスマートフォン用の表示で見るCrossRoadAR、MR、VR、Babylon.jsを中心とした技術ブログ。Riftこれで最後です。OculusGameJamで作ったゲームの主な作り方を説明します。ゲームの流れはこんな感じです。(1)oculusRiftでPSeye越しに現実風景を見る(AR)(2)マーカを認識して現実風景をふわっと削除(AR->VR)(3)フォロワーアイコンを頭上に掲げたクマさん登場(VR)(4)逃げてくクマさんを追いかけてフォロワーを再び!今回は(4)を説明します。完成したゲームのイメージこのゲームのルールはとても単純で、Twitterアイコンをかかげたクマが逃げていくので、時間内に捕まえるだけです。クマが逃げてく、というのはUnity仮面さんのこちらの記事を参考にしています。Unity仮面さん、ありがとうございます。gihyo.jp必要なAssetの入手や設定方法は記事の通りなので省略します。記事と変えたところは下記です。[1]カウントダウンタイマーを付けた[2]クマにタッチすると、クマが消えるようにした[3]クマにタッチすると、8bitの効果音が鳴るようにした[4]クマにタッチすると、「あとXクマ」の表示が変わるようにしたということで、最後はこの[1]~[4]を説明します。3DTextオブジェクトの設定まず、3DTextオブジェクトをGameViewに生成し、OVRPlayerControllerの視点から見える位置に配置します。名前はRemainedTimeとでもします。次に、これをOVRPlayerController/OVRCameraController/RightCameraにアタッチします。カウントダウン処理を行うスクリプトを作成するCountDownTime.csを作成し、以下のように記述します。}}}timeOnFlagは、(2)でマーカ認識して1秒以上経つとtrueになります。AR->VRへ移行したときにカウントダウンが開始します。100);で、表示内容を整形しています。数値を右寄せにするなどの処理はstring.Formatメソッドが便利です。timeString;で3DTextに表示させています。これをUpdate()の中で繰り返し実行されることで、Playerの目の前ではカウントダウンが確認できます。シンプルなので、経過時間に関するゲームでいろいろ使えて便利だと思っています。クマにタッチすると、クマが消える処理を作る実はこれがけっこう悩みました。・Playerが近づくとクマが逃げる設定のために、OnTriggerStayを使っている。->OnTriggerEnterがうまく働かなかった。Controllerなので、OnCollisionEnterが使えないという問題があったためです。結局はOnControllerColliderHitをOVRPlayerController.csに追加してなんとかなったのですが、最初はうまく動かずちょっと焦りました。(このとき終了1時間前を切っていたため)OVRPlayerController.csの末尾に追加した内容は以下です。}}クマオブジェクトはRunningBearとしています。今回はクマゲット時に効果音もつけたかったので、sound系の処理も入れています。クマにタッチすると、8bitの効果音が鳴る処理を作る実はサウンド関係も初めてでした。調べて最低限音が出るような仕掛けだけを入れました。audio.PlayOneShot(audioClip1);}}書いたのはこれだけです。Sourceコンポーネントを付けてから、SoundeEffectTest.csをアタッチしました。AudioClipのaudioClip1には、それぞれwavファイルをアタッチしました。・音を出すオブジェクト:AudioSourceコンポーネントをアタッチ・音楽データ:AudioClip・音を聞くオブジェクト:AudioListenerコンポーネントをアタッチという決まりがあります。今回はクマゲットのたびに効果音をPlayerの間近で発生させたかったので、SoundTestオブジェクトをOVRPlayerControllerの子にしてPlayerの移動と同期させました。※最初はSoundTestオブジェクトを適当な位置に置いてたのですが、そうすると、SoundTestオブジェクトから離れたところでクマゲットしても効果音が小さかったです。Pacakge」のPickUp3を使いました。クマにタッチすると、「あとXクマ」の表示が変わる処理を作るこれもカウントダウンのときと同じように3DTextをOVRPlayerController/OVRCameraController/RightCameraの子にしてから、以下のスクリプトをアタッチしただけです。}}この中のGetBear()は、OVRPlayerController.csで呼んだremaindBear.SendMessage("GetBear");のことです。5.動作確認こんな感じになります。終わりにゲームの主な特徴についてはこんな感じです。ところでGameJam終了後またPSMoveを使ったゲーム開発を再開しています。次回のOcufes開催日程は未定ですが、もし近いうちにあるならばなんとか間に合わせたいと思っています。参考までに、今回の関連記事です。Academyについてです。Calendarの10日目の投稿です。1.1を使って、フォロワーアイコンをVR空間に表示させる方法さらに続きです。»ProfileAR、MR、VR、Babylon.jsを中心とした技術ブログです。広く色々な技術を勉強するのが好きで、あれこれ書いています。詳細なプロフィールはこちらをご確認ください。2020)■プライバシーポリシー■こちらに記載しておりますのでご確認ください。■お問い合わせ■こちらよりお願いいたします。月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。