Unity技術検証

Cinemachineにおけるカメラの揺らし方について知ったこと【Unity】【Cinemachine】

はじめに

カメラを揺らすエフェクトを実装する際には、DOTweenを使ったりしていましたが、
今回Cinemachineを使う方法について勉強しました。

Impulse

CinemachineImpulseSourceCinemachineImpulseListenerという2つのコンポーネントを使います。
構造としては、ImpulseSourceが発信したImpulseを、ImpulseListenerを持つVirtualCameraが受信し、振動するという仕組みのようです。

揺れの強さ等の設定はSource側で行いますが、Listener側でも受信時に設定できる項目があります。

Source側
Listener側

なお、個人的に躓いたところなのですが(おそらく初歩的)、
CinemachineImpulseListenerコンポーネントはCinemachineVirtualCameraコンポーネントの拡張機能のようで、CinemachineVirtualCameraコンポーネントのAddExtensionから選択して追加できます

インスペクター一番下のAddComponentからは選択できませんので注意です。

ここから選択する

コンポーネントの設定が終わったら、ImpulseSourceからImpulseを発信すればOKです。

発信は、スクリプトからCinemachineImpulseSource.GenerateImpulse()で手早くできます。

結果はこちら。

※画面揺れ注意(着地のタイミングに合わせて画面を揺らしています。)

おわりに

今回は、CinemachineImpulseSourceを使いましたが、
発信元にCinemachineCollisionImpulseSourceを使用すれば、
ColliderベースでImpulseを発信することが可能です。

参考記事

Cinemachineで設定できる挙動をまとめてみました - Qiita
はじめにCinemachine は Unity のカメラを操作するためのモジュールです。バーチャルカメラを用意して動かしておき、カメラオブジェクトに CinemachineBrain をアタッチ…
タイトルとURLをコピーしました