3 / 4 流れの向き・強さ・細かさの調整
このステップでは、速度場の操作値を分け、意図した方向へ流れながら局所的に渦を巻く動きを調整します。
主な流れをWindで決める
Windは、空間全体で共通に加える速度です。この値を(1, 0, 0)にすると、粒子は全体としてX方向へ流れやすくなります。
FlowStrengthを0にした状態でWindを調整してください。風だけの方向と速さが決まったら、FlowStrengthを少しずつ戻します。
例えば、Windを(1, 0.2, 0)にすると、粒子はX方向へ進みながら上昇します。Windを(0, 0, 0)にすると、局所的な渦の成分だけが残ります。
渦の強さと細かさを区別する
FlowStrengthは、渦から得たベクトルへ掛ける倍率です。値を上げるほど、渦の成分が全体の速度へ強く影響します。ただし、Noiseの出力の大きさは場所によって異なるため、すべての粒子が同じ速さになるわけではありません。
Frequencyは、入力座標に対して流れの模様がどの程度細かく変わるかを調整します。大きな値では、短い距離の間で流れの向きが変化しやすくなります。
| 比較する操作 | 観察する内容 |
|---|---|
| Windを固定し、FlowStrengthを0、0.2、0.6へ変更します。 | 主な流れからの曲がり方を比較します。 |
| WindとFlowStrengthを固定し、Frequencyを0.1、0.25、0.5へ変更します。 | 流れの模様が変わる空間的な間隔を比較します。 |
| FlowStrengthを固定し、Windを0から大きくします。 | 同じ場所に滞留する動きと、通り抜ける動きを比較します。 |
Curl Noiseの種類や設定によっては、Frequencyの変更が出力ベクトルの大きさにも影響します。必要に応じてFlowStrengthを調整し直し、細かさの違いと速さの違いを分けて観察してください。
速度を決める処理を一か所にまとめる
今回のSet Velocityは、更新のたびに計算結果で速度を置き換えます。別のBlockがその前に重力などで速度を変えても、後のSet Velocityが上書きする場合があります。
力で速度を少しずつ変える設計では、「以前の速度へ、加速度と経過時間から求めた変化量を加える」処理を使います。一方、今回の設計は「その場所で使う速度を直接選ぶ」処理です。
この回では風と渦をAddで合成し、一つのSet Velocityへ渡してください。動きが想定と異なる場合には、Update内に速度を書き換えるBlockが重なっていないか確認してください。
発展:時間で流れ場そのものを移動する
基本の流れを確認できたら、応用としてNoiseへ渡す座標に時間による移動量を加えられます。
Noiseを読む座標 = 現在位置 + 場をずらす速度 × エフェクトの経過秒数場をずらす速度をVector3で用意し、Total Timeなどのエフェクトの経過時間を返すOperatorの出力とMultiplyで掛けてください。その結果を現在位置へAddで加え、Curl NoiseのCoordinateへ接続します。
例えば、ずらす速度を(0, 0.1, 0)にすると、粒子が同じ位置にいても、時間とともにNoiseの別の場所を読むようになります。
この操作は、粒子へ直接上向きの速度を加える操作とは異なります。また、入力座標へ正の移動量を加えると、World空間で見える場の模様は反対側へ移ります。Windを変えた場合と、場をずらした場合の違いを確認してください。
- Windで主な流れ、FlowStrengthで渦の強さを調整できます。
- Frequencyが空間的な変化の細かさに関わることを説明できます。
- Set Velocityが前の速度を置き換えることを説明できます。
- 時間による場の移動を加えなくても、基本の流れを完成できます。