カメラ移動の制限

記事作成 2019年6月
PlayMaker 1.9.0 / Unity 2018.2.6f1

カメラの移動範囲を制限するアクション構成です。

まず、このように操作キャラクターに追随しつつ真上から、垂直に撮影するカメラ
を設定してみます。


シーンビューで見るとこのようです。

----------------------------------------------
これはカメラにこのようなノード、アクションを付けることで実現できます。
操作キャラクター(Cupsule)のXZ座標を取得し、そのままカメラのXZ座標に
設定しています 。

ところがこの状態だとカメラがフィールド(赤枠内)を超えて、ゲームに関係ない空間
(はじめの映像の青色の部分)まで撮影範囲にしてしまいます。

これを修正して常にフィールド内だけを画面に映そうという試みです。
 ----------------------------------------------
それにはまず、はじめのキャラクターとカメラと位置を決め
----------------------------------------------
ゲームビューを見ながらカメラを右端、フォールドがちょうど収まるところまで持っていき

その時の座標をチェック

----------------------------------------------
上も同じようにして

座標をチェック

このフィールドは正方形で、設置座標は中心点(0 .0)なので、反対方向の移動値も
同じになります(値を-にすればよい)。
 ----------------------------------------------
そして、カメラのノードにアクション
[Float Clamp]
を追加します。これは、float変数の値を定められた範囲に制限するものです。
2つ並べ、それぞれ、X座標、Z座標の範囲を先程チェックした数値内に制限します。

----------------------------------------------
再生してキャラクターを操作してみると

このように、フィールドの端ではフィールド外までカメラが追随しないことが
確かめられます。

これは、平行投影にすると、角度は違いますが2Dモードと同様の画面なので
2Dモードにも応用できます。
----------------------------------------------
おまけ
作例で使用した市松テクスチャです。フィールドはPlaneを大小重ねて作成しています。
市松模様は、キャラの移動がわかりやすくて良いですね。よろしかったらどうぞ。


0 件のコメント:

コメントを投稿