【Unity】Virtual Cameraのシェイクパターンを自作する方法(2019.1.0f2)

f:id:Effect-Lab:20190602205306p:plain

 

こんにちは。

 

タイムラインでカメラシェイクを使いたい場合、Virtual Cameraの「Noise」によってカメラを揺らす事ができますが、デフォルトで用意されているシェイクパターンだけでは足りなくなってくると思います。

 

そこで、今回はシェイクパターンを自作する方法を解説していきます。

 

Noiseを使った揺らし方をご存知でない方は↓こちらの記事で解説していますのでご覧ください。

 


既存のシェイクパターンを基に編集してみよう

シェイクを自作する際は「Noise Profile」というアセットを作成するのですが、初めて作る際は既存のシェイクパターンを基に自作してみる方がやりやすいです。
完全新規で作り始める前に、まずはそちらの方法から解説していきます。

 

まずVirtual Cameraの「Noise > Noise Profile」を「6D Shake」に切り替えます。

f:id:Effect-Lab:20190603001337p:plain

 

その後、Noise Profileの歯車アイコンから「Clone」を選びます。

f:id:Effect-Lab:20190603001712p:plain

 

するとNoise Profileアセットを作るダイアログが開くので、保存先と名前を指定して「保存」をクリックします。
ここでは「Noise Copy」としました。

f:id:Effect-Lab:20190603002348p:plain


これで6D ShakeをコピーしたNoise Profileアセットが作成されました。

f:id:Effect-Lab:20190603002619p:plain

 

このアセットのInspectorを見てみましょう。
下図のようにノイズパターンがグラフで確認できます。

f:id:Effect-Lab:20190603003137p:plain


「Preview Time」でグラフの横軸を、「Preview Height」でグラフの縦軸のプレビュー範囲を変更できます。

 

更に、「Position Noise」でカメラシェイクの移動具合を、「Rotation Noise」で回転具合を自由に調整する事ができます。

 

試しにこのアセットを編集して、縦揺れするカメラシェイクを作ってみましょう。

 

「Position X」を選択してみると、下図のようにパラメーターが開きます。「Frequency」「Amplitube」の値を全て「0」にして、X軸に対してカメラが揺れないようにします。

f:id:Effect-Lab:20190603230454p:plain

 

同様に、「Position Z」「Rotation X」「Rotation Z」の値を全て「0」にします。

 

ここまで出来たら、Virtual CameraのNoise Profileをクリックしてみましょう。
すると下図のようにさきほど作成した「Noise Copy」がプルダウンリストに追加されています。

f:id:Effect-Lab:20190603231008p:plain

 

このVirtual Cameraをタイムラインで確認すると、縦揺れのカメラシェイクが確認できると思います。 

 

これで自作のシェイクパターンを作成する事ができました!

 

同様の方法で、横揺れだけのシェイクとか、6D Shakeの縦が少し強めのシェイクとか、自由にバリエーションを増やす事ができますよ。

 

 

Noiseの編集方法を把握しよう

さきほど「Noise Copy」を縦揺れにした際に「Frequency」「Amplitude」の値を全て「0」にしましたが、この2つのパラメーターはどのようにコントロールすればいいのでしょうか?


Position Xの値を編集しながら解説していきます。

 

まず、「Frequency」は振動の周期を、「Amplitude」は振動の幅を表しています。
 

そこで、「Amplitude」の値を「0」から「1」に変えてみましょう。

f:id:Effect-Lab:20190604013638p:plain


すると横一線のグラフが0の時よりも上にズレました。
これはカメラのポジションがX=0.5になった事を意味します。ずっと0.5の値なのでカメラはX軸に0.5移動した状態で固定された状態になります。
(※振幅=1なので、+方向へは0.5移動することになります)

 

次に「Frequency」の値を「1」にしてみましょう。
すると下図のように波が出来ました。

f:id:Effect-Lab:20190604221753p:plain

 

これでX軸上を「1秒間に-0.5~0.5の間で1往復する」というカメラができました。

 

ちなみに、横のチェックマークを外すとランダムになるっぽいです。(アルゴリズムは不明…)

 

「Frequency」と「Amplitude」の関係はこれだけです。
あとは2行目、3行目にも値を入れていくと、一定の周期と振幅に乱れを加える事ができます。

f:id:Effect-Lab:20190604232054p:plain

 

2行目、3行目のかけ合わせ方は加算のようです。

 

これと同じ事を他のPositionやRotationにも設定する事で、自由なシェイクパターンを作る事ができます。

f:id:Effect-Lab:20190604232454p:plain

 

Noiseの編集方法は以上になります!

 

 

Noise Profile アセットを新規でつくろう

 

最後に、Noise Profile アセットを新規で作る方法を解説します。

 

1つは、Projectウィンドウで「右クリック > Create > Cinemachine > NoiseSettings」です。

 

もう1つはNoise Profileの「歯車アイコン > New」です。

f:id:Effect-Lab:20190604233642p:plain

 

これで完全まっさらなシェイクパターンが作成されました。

f:id:Effect-Lab:20190605011128p:plain

 

アセットを新規で作る方法はこの2パターンです!

 

 

シェイクパターンの自作方法の解説は以上となります。
予めいくつかバリエーションを作っておけば、タイムラインで演出を量産する時に便利ですよ!