皆さん、こんにちは。SAT-BOXのツバメです。
現在開発中のプロジェクトで初めてUnityの「Cinemachine」の機能を導入し、
意外と便利だということに気が付きましたのでご紹介しようと思います。
CinemachineはUnityの公式が出しているアセットで、
複雑なカメラワークを簡単に設定できるというものです。
特に大きな設定は必要なくプログラマー以外でも扱い易いという点もあります。
今回は、指定したパスをキャラが移動して、そのキャラをカメラを追う
といったものを簡易的に作ろうと思います。
1.まずは準備!
Unityを立ち上げて、メニューのWindow / PackageManager を選択
表示された画面で「cinemachine」と検索すると出てきます。
これを右下のボタンでインストールすれば準備完了です!
2.キャラの移動パスを引いてみる
次にキャラの移動パスを引くため、メニューに追加された
Cinemachine / Create Dolly Track with Cart を選択してください。
すると、DollyTrack1とDollyCart1がHierarchyに追加されると思います。
DollyTrack1はパスの情報を持つもので、DollyCart1はパスに沿って移動するもの
として思って頂ければいいです。DollyCart1単体だと見た目が分からないので、
適当キャラを作成しましょう。作成したキャラはパス移動をするDollyCart1の
子にしておいてください。
次にパスの設定をしていきます。
DollyTrack1を見てみると、InspectorにWayPointsというリストがあると思います。
このリストの要素を増やしてパスを自由に引く事ができます。
今回は適当に以下の画像のような感じに設定してみました。
(個人的にレールのようなギズモが好きです)
※ こんな感じのパスも引けます
3.実行してキャラを移動させてみる
では、実際に実行をしてみましょう。キャラを移動させるには、
DollyCart1のPositionの値を変更することで移動することができます。
どうでしょうか?設定したパス通りに移動したかと思います。
ここで注意点ですが、DollyCart1はパスの情報を常に見て移動しているので、
DollyCart1の座標や角度を変えても強制的に上書きされるので注意してください。
4.キャラをカメラが追従するようにする
次はカメラをキャラに追従するようにしてみます。
メニューのCinemachine / Create Virtual Camera を選択します。
するとHierarchyにCM vcam1というものが追加されると思います。
Inspectorの[Follow]と[LookAt]に追従させたいオブジェクトを
設定します。今回は2つともDollyCart1を設定します。
あとは、CM vcam1の位置を調整すれば準備完了です!
ゲームを実行して先程と同じようにPositionの値を変更してみてください。
カメラがキャラクターを追従すると思います。
5.総括
驚いたのは今回実装したもので1つもスクリプトを書いていない点ですかね。
制御などもタイムラインを使用すれば済むと思います。
今回はざっと紹介しましたが、まだまだ私の知らない機能があるので、
今後も使ってみて、気づいた点があれば紹介しようと思います!
以上、ツバメでした!