この記事はUnityアドベントカレンダー2022https://qiita.com/advent-calendar/2022/unity の8日目の記事です
初めに
みなさんはCinemachine VirtualCameraをご存知でしょうか
Unity公式のパッケージであり、Unity2017の時点ですでに本リリースされている、熟しているライブラリです
ゲーム内のカメラのコントロールや演出のカットシーンを作る際にとても便利で、しかも公式ライブラリなので無料です!
それではまずはこちらをご覧ください
この動きを簡単に作れる、とても便利なライブラリなのです
ただ、私の観測範囲のイメージでしかないのですが、
このライブラリ、使っている人は使っているが、使ってない人は存在も知らない。といった印象を受けています
そこで、本記事ではCinemachine VVirtualCameraの基礎中の基礎の紹介をさせていただきます
やることはデフォルトのパラメータやそれをちょっといじるだけでできるものに搾っています
この記事を書くためにCinemachine VirtualCameraの設定をいじったのは5分もかかっていません
なので、すでに使われている方はもちろん、Cinemachine VirtualCameraがどういうものかをすでにご存知な方にも新しい情報は無いと思われます
あくまで「ほぼ何もしなくても導入するだけでこれが作れる」と言った、まさに紹介です
どういった機能なのか
最初に動画を出したカメラの動きですが、A地点からB地点まで設定するとそこに向かってカメラがズームする。というよくある動きです
この動画でやっていることはAのカメラとBのカメラの位置をCinemachine VirtualCameraで設定し、優先度を切り替えているだけで、他は完全デフォルトの設定です
その切り替えした時にうまくカメラの遷移をブレンドして動いてくれていますね
もちろん、カメラの位置や設定を変えればそれもまたうまくブレンドしてくれます
こういった、自分でコードやアニメーションを設定すると大変になる処理をなんかいい感じにしてくれるのがCinemachine VirtualCameraとCinemachine Brainなわけです
設定方法
まずはPackageManagerでCinemachineをインストールします
そうしたらMainCameraにCinemachine Brainのコンポーネントをアタッチします
その後カメラを用意し、位置や回転を調整した後に
PriorityやGameObjectのActiveでカメラの切り替えを行います
これだけで画面のようなカメラ効果の実装が可能です
他にもできること
こう言った固定カメラへの移動以外にもキャラクタの移動を追従させることが可能です
これは単なる追従ではなく、ちょっと遅れて追従されているのがわかると思います
この動きもノーコードで設定できるのがCinemachine VirtualCameraの大きな特徴です
設定項目が多くてわかりにくいところですが、そう言った場合は画面内をドラッグしたりしていい感じに設定できます
また、カメラの設定中にSoloのボタンを押すとEditor上でプレビューもできるので、大変設定しやすいです
そのため、カメラの設定パラメータが何をやっているかがよくわかっていなくても
「なんかいい感じの追従カメラ」を見た目と合わせながら調整できます
最後に
今回の紹介はあくまで最初に使う、シンプルなものでしかありません
カメラの移動可能範囲を設定できたり、Timelineと連動させて演出を作ることも可能だったりと
基本も応用もかなり使いやすいライブラリです
この記事を見て少しでも興味を持った方がいれば、まずは導入を
そしてすでに数多くの紹介記事やドキュメントがありますので
作っているゲームやアプリに最適なカメラ演出を作っていきましょう