2011-12-31

camera shake

標準で付いている CameraShakeノードは2D的なもので、3D上でのcameraノードにゆれを加えるようなものは標準では備わってない。
ってことで作ってみました。

http://dl.dropbox.com/u/40054205/cameraShake.nk

パラメーターとして・・・


という感じで、amplifier、waveLength、waveOffset、waveHeight、heightOffset、seedのパラメーターが各回転と各位置についてます。rotationXYZとpositionXYZとして。

ここで、下記ノイズ波形が初期値とすると






amplifier
減衰用の強度です。カメラシェイクのゆれを止まる際にノイズ波形を波の高さ弱めるの使用してください。1→0のアニメーションをつければノイズ波形が弱まりながら止まります。




または、テンションを付けたりするのに用いることができます。

waveLength
ノイズ波形の波長です。大きくなれば山から次の山までが離れて、ゆっくりとした動きになります。つまり大きいほどゆれ頻度が下がります。




waveOffset
ノイズ波形の横方向への(波長方向への、時間方向への)オフセットです。余り使う必要はないかも・・・
 
waveHeight
ノイズ波形の高さです。強度といったところです。大きいほどフレ幅が大きくなります。
 
 
heightOffset
ノイズ波形の縦方向への(高さ方向への、強度方向への)オフセットです。余り使う必要はないかも・・・
 
seed
ランダムシードです。たとえばrotationXとrotationYのパラメーターにすべて同じ数字をいれてるとノイズ波形としてはrotationXも同じになってしまうので、このseedでランダム化させれます。当然ながら、ノイズ波形の強度や波長の長さは一緒のままでランダム化出来ます。
 


一番上にある、amplifier for all と frequency for all は
 

amplifier for all
各rotationXYZ、各positionXYZのamplifierにかけることが出来る係数です。
全体的にとめたい場合などに有効です。

frequency for all
各rotationXYZ、各positionXYZのwaveLengthにかけることの出来る係数です。実際にはこの「frequency for all 」の逆数が全ての各waveLengthに乗算されます。小さくするとノイズ波形の波長を大きくすることができます、つまり動きの頻度をゆっくりにしたりする場合に使えます。

下記例では、上記二つのパラメーターを1→0というアニメーションをつけています。
 
 

No comments:

Post a Comment