0.環境
UE5.5
Windows11
※Alembic形式でインポートしたGroomを使用しており、他形式のGroomはうまく動かない可能性があります
大体これに乗ってる内容です
1.Physicsを制御しているNiagaraをコピーする
Groomの重力などの揺れはNiagaraで制御されています

Niagara SolverをCustom Solverに変更します

デフォルトのStableSpringsSystemをブラウズすると
/All/EngineData/Plugins/HairStrands/Emitters
に移動します

GroomSpringSystemとSetupGroomPhysicsを自分のフォルダのわかりやすいところにコピーしておきます。わかりやすいように名前も変えておいてください。

コピーしたGroomSpringSystemにSolverを入れ替えておきます。
ついでにEnable Simulation(物理をシミュレーションするかどうか) にもチェックを入れておきます。
2.Niagara Moduleに風の項目を追加する
コピーしたSetupGroomPhysicsを開きます。
InputMapにつながるMapGetにVectorを追加していい感じに命名します

追加したらSet the forces propertiesのMap SetのAir Velocityにつなげます

これで風の力の入力ができるようになりました
3.Niagaraのモジュールを入れ替える
先ほどコピーしたGroomSpringSystemのほうを開きます。
もとからあったSetupGroomPhysicsを無効にして、先ほど編集したSetupGroomPhysics(コピー版)を追加します。

詳細に先ほど追加した風用のVectorが表示されているはずです。

ここに数字をいれるだけで、すでにGroom側で毛がはためいている様子を確認できます。カーブなどで自動ではためくようにしてもいいですね。
このVectorは、Groomが回転しようがGroomComponentが回転しようが、常に一定方向から吹きます。回転しても重量が反転しないように風の方向は変わりません。べんりやなあ
今回はBPで制御したかったのでユーザー変数を追加しておきます。


4.BPで風を制御する
Groom用のNiagaraのユーザー変数はレベル上に置かれたGroomから直接触ることはできませんが、BPに配置されたGroomComponentから取得することでアクセスができます
でけた


