はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】Cinemachineを初めて触ってみる

はじめに

今回はCinemachineというアセットを触ってみるという記事になります!

Cinemachineとはカメラワークを作成することができるアセットになります。

とりあえず簡単なカメラワークを作成を目指していきたいと思います。

下準備

Package ManagerからインポートすればOKです。

f:id:hanaaaaaachiru:20200512200554p:plain

概要

CinemachineではCinemachine BrainコンポーネントがアタッチされたカメラCinemachine Virtual Cameraコンポーネントがアタッチされた仮想カメラの二つが重要になります。

f:id:hanaaaaaachiru:20200512202319p:plain

それぞれを実際に使いながらイメージを掴んでいきましょう。

Chinemachine Brain

Cinemachineを使うにはChinemachine Brainコンポーネントをアタッチしたカメラが必ずひとつ必要になります。

f:id:hanaaaaaachiru:20200512203644p:plain

このカメラというのはCameraコンポーネントがアタッチされているゲームオブジェクトのことで、普段からmain cameraという名前で自動で作成されている奴のことを指します。

このChinemachine Brainは主にこの2つの機能を司ります。

  • どの仮想カメラを使うか選択する
  • 現在の仮想カメラから次の仮想カメラへのカットやブレンドをする

細かいプロパティの説明は以下の公式ドキュメントを参照してみてほしいのですが、特に大切そうなDefault Blendだけ取り上げたいと思います。
Setting Cinemachine Brain properties | Package Manager UI website

Default Blend2つの仮想カメラでの遷移をするときのブレンドを指定できるプロパティで、Cutとその他もろもろに大別できます。

Cutは一瞬でカメラが移行をする,いわゆるカットですが、それ以外は滑らかにカメラが移行します。

f:id:hanaaaaaachiru:20200512205322p:plain

カット以外を使う場合は、どれが自分のゲームにマッチしているか試してみてはどうでしょうか。

Cinemachine Virtual Camera

次に新しいゲームオブジェクトを作成し、Cinemachine Virtual Cameraコンポーネントをアタッチすることで仮想カメラを作成できます。

f:id:hanaaaaaachiru:20200512224104p:plain

仮想カメラの役割は主に以下の3つになります。

  • カメラのPositionを決める
  • カメラをどこかに向かって向ける
  • カメラに手続き的ノイズを加える

どのゲームオブジェクトと一緒に移動するかはFollowプロパティにより設定し、カメラがどのゲームオブジェクトに向くかはLook Atプロパティで設定します。
Setting Virtual Camera properties | Package Manager UI website

f:id:hanaaaaaachiru:20200512232618p:plain

より詳細に設定する

ここから先の設定からChinamachienのクオリティをあげるうえで大切な箇所になります。

Transitionsという項目の中にあるBody,Aim,Noiseによってどのように移動,向く,ノイズをするかを設定できます。

Body

Bodyプロパティを設定することでカメラがどのように移動するかを決められます。

f:id:hanaaaaaachiru:20200512232827p:plain

ちゃんと翻訳しようと思ったのですが、ちょっと手抜きでプロパティの説明箇所のリンクを貼っておきます。ごめんなさい。。。

docs.unity3d.com

Aim

Aimプロパティを設定することでカメラがどのように対象に向くかを決められます。

一番よく使いそうなのはComposerで、ぬるりとターゲットを追ってカメラを回転させます。

f:id:hanaaaaaachiru:20200512232936p:plain

docs.unity3d.com

Noise

Noiseプロパティを設定することで手ブレといったノイズを加えることができます。

docs.unity3d.com

実際に使ってみる

BodyDo NothingAimComposerを付け加えてみました。

f:id:hanaaaaaachiru:20200513141352g:plain

f:id:hanaaaaaachiru:20200513141727p:plain

見た目等も必要最低限なのであれですが、ただ向き方をComposerにしただけで少し高級感が出ている気がします。(GIFだと伝わりづらいかも)

さいごに

最後の方が結構雑になってしまいましたが、あとでそれぞれのプロパティについて画像を加えながら説明しようかと思います。

あと仮想カメラの遷移関連もやってみたいですね。

良かったらそちらもみてみてくださると嬉しいです。

ではまた。