simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

Unity:レールに沿ったカメラを表現するCinemachine

前回、初めて Cinemachine を触ってみましたが、サクッと三人称視点のフリーカメラの動きを実現できました。
simplestar-tech.hatenablog.com

Cinemachine の見どころは多く、まだまだその機能を紹介しきれていません。
カメラワークのイメージと、それを Cinemachine で実装する手順の間のメンタルモデルの定着を目指して
今回はレールに沿って動くカメラの動きを実現してみたいと思います。

■Cinemachine の導入
Unity 2018.3 beta を使っていますが、それでもまだ Cinemachine はプレビュー版のパッケージの様子
まずは Windos > Package Manager とメニューを選んで、最初は All packages でも Cinemachine は見つけられませんが
Show preview packages を Advanced メニューから選んでインストールします。

インストールした Cinemachine のバージョンは 2.2.7 でした。

■Main Camera に Brain を追加してカメラの主導権を Cinemachine に譲渡
ゲームの絵を作り出すのは、変わらず Main Camera オブジェクトです。
その Main Camera オブジェクトを制御するわけですから、そこに Cinemachine Brain コンポーネントをアタッチします。
これで Main Camera を手動で編集できなくなりました。(強制的に Cinemachine が制御します)

■カメラの動きを決めるレールを敷く
Cinemachine Smooth Path というスクリプトコンポーネントが使えるようになっていますので、空のオブジェクトに設定します。
f:id:simplestar_tech:20180918084124j:plain

Waypoints の + ボタンをポチポチ押せば、こうしたレールが表示されるので適当な軌跡を描きます。

Cinemachine Smooth Path は他にも使い道ありそうだなぁって思ったのが、次のインタフェースを提供してくれる点です。
具体的には 0~1の値を渡して軌跡上の点の位置を返してくれるというもの

    [SerializeField]
    private Cinemachine.CinemachineSmoothPath path;

    void Update()
    {
        transform.position = path.EvaluatePositionAtUnit(0.5f, Cinemachine.CinemachinePathBase.PositionUnits.Normalized);
    }

手付けのアニメーションには必須だと思う機能なのですよ!
このオブジェクトはここでこういう風に動いて…など
レールだけにちょっと脱線しました。

■カメラの動きを強制する Virtual Camera に Path を指定する
今回は Path を指定してその Path に沿って Track & Dolly というレールに沿った動きを実現するので
インスペクターにある Body と Aim をいじります。
Body のドロップダウンメニューから Track & Dolly を選択し Path に先ほど作成した Cinemachine Smooth Path をアタッチしたオブジェクトを設定します。
Auto Dolly の Enabled にチェックを入れれば、レールに沿ってカメラが対象を追従します。(LookAt、Follow に対象となるオブジェクトを設定する必要あり)
さらに Aim にて Composer を選び、適当に Dead Zone などを設定して、映画監督のように Shot を指示します。

シーン内にこの Virtual Camera があれば、カメラは勝手にレールの上を Track & Dolly しながら撮影してくれるはずです。
次のように

f:id:simplestar_tech:20180918085640g:plain

■まとめ
レールに沿ったカメラを表現するCinemachine の機能を実践しました。
ゲームのデモムービーや、ゲーム内でのカットシーン(ゲームオブジェクトを使ったリアルタイムレンダリングムービー)の作成で活躍する技法です。
Unity のデザイナー向け機能ですが、プログラマーも覚えて損はないと思いますよ!

■参考資料
ここで紹介する 4分の動画を見れば、この記事で書いた内容がすべて映像で学習できます。最高の資料でした、ありがとうございました。
unity3d.com


■次回予告
次は頂点色を設定するメッシュ作成と頂点カラーを表示するシェーダーについて書いていきたいです。