アプリつくってみっか!趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。この広告は、90日以上更新していないブログに表示しています。オープンワールドレーシングゲーム今回はミニマップを表示してみました。ミニマップというのはレースゲームで良くある、上から見たコース図が画面の端でカーナビ的にグルングルン回っているアレです。市街地のオープンワールド系のレースゲームではこれがないと簡単に道を間違えてしまうので非常に重要な要素となります。今回作った物はこうなりました。Orthographicにして真下に向ければだいたい完成なのですが、それだとかなり処理が重くなりフレームレートが半分くらいになってしまいました。小さいとは言えかなりの数のオブジェクトをこちらのカメラでも表示しなければならないからです。表示するオブジェクトを厳選しました。Cityアセットでは道路、線路、川それぞれ1つのオブジェクトにしてくれていますので、それらにミニマップ専用のレイヤーを与えます。それぞれのオブジェクト名は下記の通りです。PQ_Road005339_08932_train005339_08932_waterこれらにMinimapなど適当なレイヤーを割り当てます。Maskにこのレイヤーを割り当てると完成です。普通に表示するとミニマップの部分がゲーム画面を隠してしまって邪魔に感じられますが、このように道路、線路、川だけだと網目から向こうが見えるので、邪魔な感じがやわらぐのも良いと思います。カメラを自車の子オブジェクトにすれば比較的簡単に自車を追って、回転も自動的にしてくれますが、自車がクラッシュして宙をぐるぐる舞うとミニマップまでぐるぐるおかしくなってしまうので、スクリプトで自車を追うようにしています。}}以前作ったコルーチンでWaitForFixedUpdate()を使う方式なので、1フレーム遅れる事なく自車に追従してくれるはずです。tf.hateblo.jptransform.eulerAnglesでzのところにターゲットのeulerAngles.yを入れているのは、カメラがx軸で90度下に向いているためです。カメラをコマのように地面に垂直に回すためには、カメラのz軸が通常のオブジェクトのy軸に相当します。値をマイナスにしているのは常に自車の向きを画面の上向きにしておくためです。自車が左を向いたときにカメラを同じだけ右に回せば結果的に自車の向きは変わらず、地面が回ります。あとは、自車や他車、コーナーの位置をミニマップ上に表示するためのアイコンを作ります。写真では四角いドットで表現されていますが、実際に巨大な四角(Quadオブジェクト)を自車や他車にくっつけています。(これが正しいやり方なのかどうか自信はないです。)シーンビューで上空から見るとこんな感じです。コライダーコンポーネントは外し、レンダラーの影の設定などは全てOFFにしていますのでゲームに影響は与えません。Maskに追加しています。Maskでは除外していますので、メインカメラには一切映りません。Quad同士の重ね合わせはQuadの高度を変える事で優先順位を付けられます。コーナー用の水色が一番上、その下が自車用の緑、一番下が他車用の赤になっています。これらの四角はミニマップ用カメラと同じようなスクリプトで動かして、たとえ車が転げ回っても常に真上を向くようにしています。ミニマップとは関係ありませんが、前回改良してまともになった木の影の形がわかると思います。シェーダーを変えたためか木の緑色が若干おかしくなった気がしますが、今は気にしないことにします。アプリこの商品を含むブログを見るプロフィールid:takujidev個人でiPhone/Androidゲームを開発しています。ミツバチ軍団vs昆虫軍団の縦スクロールシューティング。