Camera In をそのまま通しつつ、Shake Trigger が発火した瞬間に内部の trauma を1にして揺れを起こします。trauma は毎フレーム Decay × 経過時間 で線形に減りますが、実際の揺れ幅は trauma の二乗なので、最初にガツンと来てすっと収まる形になります。揺れは Perlin ノイズで、位置はカメラのローカル軸方向にオフセットし、回転はオイラー角で加算されます。オーディオのオンセットを Shake Trigger に刺すと、キックで揺れるカメラが1本で組めます。
- Position Amount(既定1)
- Rotation Amount — 度(既定3)
- Frequency — ノイズの進む速さ(既定12、下限0.01)
- Decay — trauma の減衰速度・毎秒(既定1.5、下限0.01)
揺れていない間は入力カメラをそのまま出力します(正射影などの設定も保たれます)。
Camera In が未接続のときは既定カメラ(位置 0,0,-10 / FOV60)を揺らした値が出ます。
入力ポート
| Port ID | 型 |
Camera In | CameraDataInput |
Shake Trigger | trigger |
Position Amount | float |
Rotation Amount | float |
Frequency | float |
Decay | float |
出力ポート
| Port ID | 型 |
Camera | CameraDataOutput |
スクリプトから設定可能なメンバー
| パス | 型 |
amountInput | float |
rotAmountInput | float |
frequencyInput | float |
decayInput | float |
Synapse Apps(スクリプティング)
await synapse.modules.create({ type: "CameraShake" })