Quantcast
Channel: プログラミング
Viewing all articles
Browse latest Browse all 8051

Cinemachineでカメラにランダムな振動や手ブレを追加する方法【Unity】【Cinemachine】 - (:3[kanのメモ帳]

$
0
0

この記事でのバージョン
Unity 2022.3.21f1
Cinemachine 2.9.7


はじめに

今回はカメラ操作を簡単に行えるUnityの公式機能Cinemachineを使って、



カメラにランダムな振動や手ブレを追加する方法の紹介です!



なお、記事中では以下のアセットを使っています。

Japanese School Gymnasium - Unity Asset Store
Aoi Character Pack - Unity Asset Store



Cinemachineでカメラにランダムな振動や手ブレを追加する方法

さっそくですが、Virtual CameraのNoiseをBasic Multi Channel Perlinに設定し、


Noise Profileを(none)以外にする事で、カメラを自動で揺らす事が出来ます。


例えば6D Shakeなら激しい多方向のランダムな揺れ、


6D Wobbleなら滑らかでリズミカルな揺れ、


Handheld_normal_mildなら軽い手ブレといった具合です。


なお、Amplitude Gainで揺れの大きさ、Frequency Gainで揺れの回数が設定出来ます。


もちろん、プログラムから変更する事も可能です。

/*VirtualCameraはCinemachineVirtualCamera*///CinemachineBasicMultiChannelPerlinを取得し、揺れの設定を変更するvar perlin = VirtualCamera.GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
perlin.m_AmplitudeGain =2.0f;
perlin.m_FrequencyGain =3.0f;


同様に揺れの切り替えも可能なので、一瞬だけ揺らすみたいな使い方も出来ます。

//揺れを無効に
perlin.enabled =false;


また、揺れ方を独自に設定したい場合Noise ProfileをCloneし、


新しいアセットを作り、Inspectorで設定を変更する事により独自の揺れを作れます。


この揺れ方を設定するアセットはNoiseSettingsといい、プログラムから変える事も可能です。

//揺れ方の設定を変更var perlin = VirtualCamera.GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
perlin.m_NoiseProfile = Resources.Load<NoiseSettings>($"New Noise Profile");




Viewing all articles
Browse latest Browse all 8051

Trending Articles