【Unity】2Dまわり描画方法とマップやレーダーっぽい表示

やりかた

  1. 2D表示用のカメラを用意(以下2Dカメラと呼ぶ)
  2. 2Dカメラの設定
    • Inspector内、Clear Flagsを”Don’t Clear”か”Depth Only”に。
    • Inspector内、Culling Mask を描画したいレイヤーのみ選択した状態に。
      • 例では2Dのロックオン用演出と、プレイヤーのパラメータまわりを選択中。
      • レイヤーを未だ作ってなければプルダウンの最下にあるAdd Layersで追加を行う。
    • Inspector内、Depthは値が少ない順に描画を行うのでメインカメラよりも多い数字に。
      • 背景のみを描画したい時などは-1等にして背景画像を設置する。
      • 手前側ほど後から描画するから順番としては後になる。
    • Inspector内、Transform,Camera,GUILayer以外のコンポーネントを削除

マップ、レーダー表示っぽいもの

概要

真上からパース無しで撮影した映像を手前に描画する。さらに描画させる座標を変える。マップ用に手順は作り直すやり方にしてるので前回の手順を無視してかまわない。

手順

  1. マップ表示用にカメラを追加する。
  2. PerspectiveをOrthographicにして近距離と遠距離での表示に違いを無くす。
  3. 描画順(Depth)は4とか適当な数値に。2D情報よりも手前にするか奥にするかで順番の変更をする。
  4. レーダーに表示したいGameObjectの子にSphereを追加し、そのGameObjectの居るLayerを2D_Radar(無ければAdd Layerで作成)に指定。
  5. 先ほど追加したカメラの Culling Mask を”2D_Radar”のみにチェックが入った状態にする。
  6. プレイヤーキャラとして作成しCharacterControllerコンポーネントを付けたGameObjectの子として扱うとキャラが旋回すると同時にマップも旋回してくれる。
ここまで済んだら画面は以下の様になってるはず。
Unity 2d Screen Shot 0024-03-29 at 17.00.45
赤い箱の子として赤Sphereを持たせている。
Radar表示として丸が描画されている。
プレイヤー用カメラが右を向いたらレーダ上のオブジェクト(●で表示されてるもの)が左へ移動。
Unity 2d Screen Shot 0024-03-29 at 17.00.33
同様に反対側を向くとレーダは右に旋回する。
このままでは画面中のオブジェクトとレーダー上のオブジェクトを混同するので表示位置を明確に切り分ける。
Normalized View Port Rectを変更して表示させたい位置とサイズの変更を行う。
Unity 2d Screen Shot 0024-03-29 at 17.58.50-1
View Port Rectを変更した画面。画面の右上に真上から俯瞰したカメラの画像を配置した状態。

参考

カメラを複数用意した際の設定等を参考に。
http://unity.gameenginejp.com/2010/12/2d-guitexture.html

Normalized View Port Rectの存在を知らせてくれた。
http://ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/Manual/Cameras.html

digital CINEMATOGRAPHY&DIRECTING 日本語版 ―3D CGクリエータのための映画撮影術と監督術
Unity入門 ~高機能ゲームエンジンによるマルチプラットフォーム開発~
CUBE キューブ(買っ得THE1800) [DVD]
SHADER GURU with Direct3D10/11(シェーダーを完全にマスターできる本)

あとがき?

検索するときのワードは気をつけようと思う。
専門家に聞く事で知り得なかった固有名詞を知る事が出来た。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です