Houdini Crowd System – 003 / Ragdoll + Custom force テスト

また、絵的に少しどうかしている映像をアップしました。

今回は、エージェントをただラグドール化するのではなく、Stateの遷移を引き起こすボリュームにエージェントが含まれたらラグドール化し、そのボリュームから発せられる力を受けて、任意の方向に飛ばされるように設定するようにしてみました。
動画では非表示にしていますが、足元からエネルギー球がせり上がり、それに触れたUnityちゃんエージェントが吹き飛ばされているように設定してあります。

左に見えている点群がイベントボリューム兼カスタム外力発生器です。
各点から出ている黄色のラインは力の方向です。

この点群を大型キャラの四肢にアタッチするなどしておけば、自然と、大型キャラに暴れるモーションを付けるだけで、群がる群衆をを次々となぎ倒していくような絵が作れますね。

Houdini Crowd System – 002 / Transition + ragdoll テスト

先日から続けているHoudiniの群衆シミュレーション勉強。
今回は、状態遷移とラグドールの勉強。

正直、かなりどうかしている映像になってしまったけど、今日の勉強の成果としてアップ。

使用したエージェントの状態は、待機5種+歩行+ジャンプ+ラグドールによるシミュレーションと言った感じ。歩き出しがぎこちないのは、待機モーションと歩行モーションのポーズ差が大きすぎるからで、こういう場合は中間モーションを作ったほうが良さそう(特に回し蹴りモーションからの歩き出し)

群衆シミュレーションだと、手前のキャラは手付けで動かし、群衆は大写しになりにくい上に、もっとエージェントの密度が高い場合が多いと思うので、もう少しだけエージェントの状態遷移がスムースになればかなり見られる絵が作れると思ったりする。

Houdini 15.5 から搭載された Agent Terrain Adaptation も試してみたい。

Pyro Effects

基本的な作成方法

シェルフのPyro FXタブでFlamesなどを選択。
Fluid化したいオブジェクトを選び、Enter

AutoDopNetwork

Pyroに限らず、DOPをシェルフから自動で作成すると、AutoDopNetworkノードが作成される。
中を開くと大量のノードネットワークが作成されていることがわかる。
各種ノードに対する理解が浅いうちは表層のノードのみを使うようにしたい。

Flames作成直後のAutoDopNetwork

20140712_01_0

pyro(Smoke)

個々のPyroオブジェクトの動作を決定するノード
Guidesタブで見た目の調整用表示切り替えなどを行う。

resize_container(Gas Resize Fluid Container)

Fluidの状態に合わせてサイズが可変のFluidコンテナ

source_fuel_from_sphere_object1(Source Volume)

Fluidボリュームの発生源となるオブジェクト形状を入力するノード

pyrosolver(Pylo Solver)

煙と炎のソルバ。
smoke solverノードもあるようだが、pyroは上位版と言えるノードらしい。(Smoke Solver+燃焼モデルの複合ノードとのこと)
Pyroに関わる計算の精度など、大域的な調整を行う。

Pyro Effectの基本プロセス

20140712_01_1

20140712_01_2

20140712_01_3

Fuel[Fuel]:燃料

燃料の特性、材質

Burn:燃焼

燃料を炎と煙に変換するためのフィールド

Flames[Heat]:炎

Smoke[Density]:煙

煙。炎を正しくレンダリングする際に必要。

Temperature[Temperature]:温度

燃料の発火点や炎や煙の立ち昇るスピードなど。

Buoyancy:浮力

Expansion[Divergence]:拡大/発散

炎と煙の拡散の度合い

燃焼のプロセス

発火は、燃料の温度(Temparature)が燃料の発火点を超えた時に発生する。

発火点/燃焼
Fuel * BurnRate

煙の発生度合い
burn * soot rate


Maximam of heat , burn

燃焼による拡散の度合い
burn * gas_release * burn_influence

燃焼による温度変化
burn * heat output * temp_burn_influence

燃焼による燃料の減少
burn * ( 1 – fuel inefficiency )

各パラメータの関連(制御に使うパラメータ)

Smoke(Density)
Fuel/Burn Rate/Smoke Amount

Flames(Heat)
Fuel/Burn Rate

Temperature
Fuel/Burn Rate/Flame Contribution/Burn Contribution

Expantion(Divergence)
Fuel/Burn Rate/Gas Released

Pyro Solverノード 主なSimulationパラメータ

Buoyancy Lift
炎や煙の上昇の度合い

Burn Rate
燃えやすさ

Temperature Output
燃焼することで発生する熱、この数値が高いと炎や煙がより早く上昇する。

gas_released
年常時に発生するガスのスケール係数。
燃料が気化する速度?
この数値が高いとより炎が広がって燃える。
このパラメータの影響は、Divergenceを表示することで確認できる

Houdini – Particle Smoke

Particle制御

・Velocity、Accelerationノードなど

sourceノードの下流にVelocityやAccelerationノードを接続すると、その値が有効になる。
これは、上流でPointノードなどを使用して指定した速度などを上書きする。

・Propertyノード

上記ノードと同じように、Particleのスケール変更や質量を変更するには、Propertyノードを使用する。