クロスツールの説明
UnrealEngineではNvClothソルバーという形で、
布などの表現の設定が出来る仕組みがあります。
下記リンクのリファレンスにて詳しく記載されています。
※今回はUE4.18で試してみました。
クロスツールを使用するにあたっての準備
クロスツールを試す前にまず準備するものがあります。
- スケルタルメッシュ(ボーンとウェイト・UVをつけておく)
- スケルタルメッシュにクロスシミュレーションをしたAPXファイル
上記2つを必要とします。
スケルタルメッシュの作成
Blenderでボーンを入れて、ウェイトも入れておきます。
UVは一面だけつけています。
右の画像がウェイトをつけたときの画像です。
今回はこちらの説明はメインではないのではないので割愛します。
あとはFBXファイルで書き出せば完了になります。
APEXのClothToolPROFILEでAPXファイルの作成
行う作業の順番は下記の通りです。
- 先ほど作成したFBXのモデルデータを読み込む
- シミュレーションする面・頂点をペイント
- シミュレーションを実行して、ファイルを書き出す
まずAPEX-SDKをダウンロードします。
https://developer.nvidia.com/gameworksdownload#?dn=physx-apex-sdk-1-3-0
ダウンロードが完了したら、zipファイルをどこに書き出すか指定します。
作成されたZipファイルを解凍して、
そのフォルダ内のbin→vc10win32-PhysX_3.3のフォルダまで移動します。
その中のClothingToolPROFILE.exeを起動します。
起動したら右上のFile→Load Meshを選択します。
そうすることで、モデルを読み込むことができます。
PaintingをMax Distanceを選択します。
Edit → View → Painting Visibleを選択しておくことでブラシを適応した箇所を分かりやすくします。
Update Tangent Spaceもクリックしてください。
最初はワイヤーフレームが紫色で表現されています。
最初自分でやった時カメラを回せなかったり、いろいろ苦労したので、
操作方法だけ軽く説明します。
- Paint:ペイントする際の適応する強弱
- Scale:シミュレーションする強度
- Falloff:範囲の絞り
- Radius:適応する円の広さ
- Alt+ドラッグ:カメラ回転
- Alt+右クリックドラッグ:拡大・縮小
シミュレーション用のペイントを施すことで白くなります。
白い部分は布の表現を適応されることになります。
白い円はマウスオーバーすると表示される、
シミュレーションペイントの範囲になります。
問題なければSingle Layerd Clothタブを選択してStart Simulationを選択
下記のようにシミュレーションが正常に動作していれば問題ありません。
シミュレーションの設定も各種あるので、そちらも紹介します。
- EnableWind:風の設定。下のパラメータで方向と強さを変える。
- Groundplane:最初の状態だと地面が生成された状態になります。
問題がなさそうならSave Selectedを選択してAPXファイルを作成します。
UE4でClothツールを使ってみる
UE4に先ほど作成したモデルをインポートします。
すべてをインポートでボーンなどすべてインポートします。
それが完了したらスケルタルメッシュの編集画面を開き、
APXファイルを適応します。
+ボタンからインポートできます。
インポートが完了すると下記のようにClothingDataに反映されます。
設定ではこれで完了ではなく、
LODの部分にAPXファイルを適応してあげます。
これでスケルタルメッシュにクロスのデータを付与することが出来ます。
UE4のほうでActive Cloth Paintで布ができます。
Clothingタブのウィンドウの一番下にある、Brushで可能です。
一つ上のToolSettingで塗る濃さを変更して、
赤枠で囲っている箇所で塗る箇所の大きさ、強さを変更します。
設定が完了したら、
Active Cloth Paintを再度選択し解除してから保存します。
※解除しないとメッシュが正常に表現しなくなります。
それから、布っぽい表現になっているか確認するために、
wind Directional SourceをLevelに配置します。
風の角度は横に向けると分かりやすくなります。
方向を斜め右にしています。
動かすと下記のTwitterのように動けば動作はできているかと思います。
以上がクロスシミュレーションの対応になります。
今後もう少し実用的に作ってみようと思います。
UE4.18でクロスシミュレーションとWindDirectionalを試してみました。
— よしかた@作って遊ぶ (@yoshikata_game) 2017年11月3日
とりあえずこちらをやれる分までブログにします。 #UE4 #UE4Study pic.twitter.com/KZICmgMFfn