2D TOOLKIT のタイルマップで多重スクロール

unity20140114A-001

■■■ 2D カメラでお手軽な奥行きの表現方法 ■■■

今までこのサイトの 2D TOOLKIT デモでは、多重スクロールは 3D カメラ(Perspective)を使って実現していました。こんな感じです。

しかし、2D TOOLKIT のタイルマップはやはり平行カメラ(Orthographic)の方が色々と都合がよかったりします。

しかし、平行カメラは遠近感がなくなってしまいますので画面奥の背景が遠近感無しに表示される上に、スクロールすると画面奥の背景も手前背景と同じ速度でスクロールしてしまいます。

画面奥の背景はスクロールするときはゆっくりスクロールする事で遠近感を出すべき!

そんな時は 3D カメラと 2D カメラを用意してあげると良いです。

■■■ 複数カメラとレイヤーの合わせワザで解決する ■■■

まずは、レイヤーを作成します。Unity 右上の Layers → Edit Layers… をクリックし、レイヤープロパティを開いた後、とりあえず、画面奥に表示したい画面用のレイヤーを入力します。この例では「BackGround1」「BackGround2」の2つ作成しています。

そして、2D TOOLKIT のタイルマップの設定をします。

Hierarchy ビューの tk2dtilemap オブジェクトをクリックしてください。お手持ちのプロジェクトになければ過去記事「2D TOOLKIT を使ってみようず(完結編)」を参考に、タイルマップを使ったプロジェクトを作成してくださいね。

tk2dtilemap オブジェクトをクリックした後は、Inspector ビュー Tk2dTileMap の Edit をクリックし、タイルマップのインスペクタをオープンします。

tk2dtilemap の Settings をクリックし、画面奥のタイルマップレイヤーを、先ほど設定したUnityレイヤーに設定します。

2D TOOLKIT の持つレイヤーと、Unity のレイヤーは別物です。混乱しないよう注意してください。

今回の例では、タイルマップの奥行き用に作成した、BackGround1、BackGround2 を、同じ名前で設定した Unity のレイヤー BackGround1、BackGround2 に設定しています。

カメラの設定を行います。

まずは、平行カメラの設定です。

Clear Flags は Depth only です。これは複数カメラの描画結果を重ねて表示する時に設定します。

Culling Mask には「どの Unity レイヤーを表示するのか?」を設定します。ここでは色々チェックが入ってますがポイントは、「画面奥のレイヤーは選択していない」事に注目してください。

Depth は数字が小さいカメラの順にレンダリングが実行されます。ここでは 1 を設定しています。後述しますが画面奥用のカメラの Depth は 0 に設定しておくので後に実行されるカメラという事になります。

次は、3D カメラの設定です。(3D ていうか、パースペクティブですね)

Clear Flags はこちらも Depth only です。

Culling Mask には画面奥を示す、「BackGround1」「BackGround2」が選択されています。それ以外のレイヤーはレンダリングされません。

Depth は 0 なので、平行カメラより先にレンダリングされます。

最後は画面初期化用カメラ Clear です。

Clear Flags は Solid Color が指定されています。これは指定された色で画面を最初に塗りつぶせとなります。指定カラーは Solid Color の下にある Background です。

Culling Mask に Nothing を指定すると、どのレイヤーもレンダリングしません。つまり、画面クリアのみの初期化用カメラとして使う事ができます。

Depth は -1 です。一番小さいので、どのカメラよりも先に実行されるというわけです。

■■■ ちぇええええええええん! ■■■

「シェアする」

ツイートツイート