無料でゲームも作れる Unity には、カメラを操作するために便利な Cinemachine モジュールがあります。

今回は Unity の Cinemachine の FreeLook バーチャルカメラが移動する Y 軸の高さの範囲を Top, Middle, Bottom の 3 つの Rig の Height を変更して調整します。
また、FreeLook バーチャルカメラを選択したときに表示される Scene ウィンドウの線についても説明します。
※ Unity のバージョンは 2022.3.15f1 です。
前回の記事
前回は Unity の Cinemachine の FreeLook バーチャルカメラが注視点とするゲームオブジェクトを設定することで、追従するだけではなく、そのゲームオブジェクトを中心に表示するように設定しました。

FreeLook バーチャルカメラ選択時の線の意味
Hierarchy ウィンドウで FreeLook バーチャルカメラのゲームオブジェクトを選択した状態の Scene ウィンドウの例です。
カメラアイコンが FreeLook バーチャルカメラの場所です。
左下にある Cube は LookAt プロパティで注視するように設定したゲームオブジェクト、被写体のようなものです。
Cube の上に 3 つの円軌道が赤線で表示されています。これは Rig (円材という訳語がありました)と呼ばれます。
各 Rig は、それぞれ Radius (半径) プロパティで円の大きさを変えることが出来ます。
その 3 つの Rig をつなぐように縦に湾曲して走っている線はそれぞれの Rig 同士を上下にカメラが移動する線で、各 Rig の Radius と Height (Y 軸の高さオフセット) に沿ってカメラが上下移動する線です。

マウスを上下に移動するとバーチャルカメラも上下に各 Rig の配置されている高さの範囲内で移動します。
マウスを左右に移動するとその高さで近い Rig の円軌道に合わせてカメラが水平に回転します。
Cinemachine Free Look Camera | Cinemachine | 2.6.0
Height, Radius Top、Middle、Bottom リグの、Follow ターゲットに相対的な高さと半径です。
カメラを配置する各 Rig の切替表示
FreeLook バーチャルカメラを配置する円軌道の Rig は、Top, Middle, Bottom の 3 つの異なる高さ(Y 軸) と半径を設定できます。
FreeLook カメラはこの 3 つの Rig の円軌道が配置されている Y 軸の高さの範囲を移動します。
そのときに近い Rig の円軌道との兼ね合いで周回します。
Unity エディタ再生時はマウスで上下移動させなくても、CinemachineFreeLook コンポーネントの Orbits セクションの Top Rig, Middle Rig, Bottom Rig のトグルボタンを選択することで配置する Rig を切り替えられます。

Top Rig を選ぶと、上の円軌道にカメラが配置されます。


Middle Rig を選ぶと、中間の円軌道にカメラが配置されます。


Bottom Rig を選ぶと、下の円軌道にカメラが配置されます。


各 Rig の Height プロパティ
上中下の 3 つの円軌道 Rig を結ぶように縦に伸びている曲線は Rig ごとの高さの差を表しています。
CinemachineFreeLook コンポーネントの Orbits の中にある各 Rig の Height プロパティを変更することで、それぞれの高さの差が変更できます。
カメラの上下の移動は、 Height で順番を入れ替えられる
各 Rig は、被写体のゲームオブジェクト(例では Cube) が配置されている Y 座標を基準にしています。
Middle が Bottom よりも低い位置にあったとしても、マウスの上下移動に伴うカメラの上下移動は Top ⇔ Middle ⇔ Bottom の順番で行われるます。
例えば、以下のように Middle を 一番下にした場合は Bottom(中) → Middle (下) → Top(上) のような曲線を描いて移動します。
下の図と動画は Height を Top Rig は 4.5, Middle Rig は -2.0, Bottom Rig は -1.0 にして、 Middle と Bottom の高さの関係を入れ替えた場合に、マウスの上下移動でカメラの上下移動をした例です。

Y 軸の高さの位置関係は変わっても、 Top, Middle, Bottom の順番で Y 軸方向を移動します。
各 Rig の Height (高さ) の変更
既定値では Bottom が被写体より少し上にあるので、少し下側からキャラクターをとらえることができませんでした。
また、高い位置から俯瞰する際にももう少し範囲を広げたいと思いました。
そこで、 Bottom Rig の Height を被写体よりも少し下に、 Top Rig の Height は既定値よりも上に変更しました。
変更前の Height (高さオフセット) | 変更後の Height(高さオフセット) | |
Top Rig | 4.5 | 6.0 |
Middle Rig | 2.5 | 2.0 |
Bottom Rig | 0.4 | -2.0 |
左側の Scene ウィンドウに細い赤線で円が 3 個あります。

既定よりも Height 変更後の方が、 Top, Bottom Rig の Y 軸のが上下の移動範囲は広くなっています。

以下は Height 変更前の既定値の Height, Radius で FreeLook バーチャルカメラを移動した例です。
マウスを上下に移動するとバーチャルカメラも上下に各 Rig の配置されている高さの範囲内で移動します。
マウスを左右に移動するとその高さで近い Rig の円軌道に合わせてカメラが水平に回転します。
以下は Height 変更後の動画です。変更前よりもカメラの移動する Y 軸(高さ)の幅が広がっています。
今回はここまで
今回は Unity の Cinemachine の FreeLook バーチャルカメラが移動する Y 軸の高さの範囲を Top, Middle, Bottom の 3 つの Rig の Height を変更して調整しました。
また、FreeLook バーチャルカメラを選択したときに表示される Scene ウィンドウの線についても説明しました。
次回は Rig の Radius (半径) を調整します。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 2D/3D、VR/AR エンジン
- Cinemachine
- Cinemachine Free Look Camera | Cinemachine | 2.6.0
記事一覧 → Compota-Soft-Press
コメント