アルゴンUE4&アプリ開発日記

UE4のモバイル開発やアプリ開発をメインに紹介します!主に初心者から中級者向けに紹介していく予定。

【UE4】クロスツールの使い方とやり方まとめ

クロスツールの説明

UnrealEngineではNvClothソルバーという形で、

布などの表現の設定が出来る仕組みがあります。

下記リンクのリファレンスにて詳しく記載されています。

※今回はUE4.18で試してみました。

docs.unrealengine.com

クロスツールを使用するにあたっての準備

クロスツールを試す前にまず準備するものがあります。

  1. スケルタルメッシュ(ボーンとウェイト・UVをつけておく)
  2. スケルタルメッシュにクロスシミュレーションをしたAPXファイル

上記2つを必要とします。

スケルタルメッシュの作成

Blenderでボーンを入れて、ウェイトも入れておきます。

UVは一面だけつけています。

右の画像がウェイトをつけたときの画像です。

f:id:yoshikata1990:20171104170733p:plainf:id:yoshikata1990:20171104170814p:plain

今回はこちらの説明はメインではないのではないので割愛します。

あとはFBXファイルで書き出せば完了になります。

APEXのClothToolPROFILEでAPXファイルの作成

行う作業の順番は下記の通りです。

  1. 先ほど作成したFBXのモデルデータを読み込む
  2. シミュレーションする面・頂点をペイント
  3. シミュレーションを実行して、ファイルを書き出す

まずAPEX-SDKをダウンロードします。

https://developer.nvidia.com/gameworksdownload#?dn=physx-apex-sdk-1-3-0

ダウンロードが完了したら、zipファイルをどこに書き出すか指定します。

f:id:yoshikata1990:20171104174038p:plain

作成されたZipファイルを解凍して、

そのフォルダ内のbin→vc10win32-PhysX_3.3のフォルダまで移動します。

その中のClothingToolPROFILE.exeを起動します。

起動したら右上のFile→Load Meshを選択します。

f:id:yoshikata1990:20171104190206p:plain

 そうすることで、モデルを読み込むことができます。

PaintingをMax Distanceを選択します。

Edit → View → Painting Visibleを選択しておくことでブラシを適応した箇所を分かりやすくします。

Update Tangent Spaceもクリックしてください。

最初はワイヤーフレーム紫色で表現されています。

f:id:yoshikata1990:20171105080904p:plain

最初自分でやった時カメラを回せなかったり、いろいろ苦労したので、

操作方法だけ軽く説明します。

  • Paint:ペイントする際の適応する強弱
  • Scale:シミュレーションする強度
  • Falloff:範囲の絞り
  • Radius:適応する円の広さ
  • Alt+ドラッグ:カメラ回転
  • Alt+右クリックドラッグ:拡大・縮小

f:id:yoshikata1990:20171105074001p:plain

 シミュレーション用のペイントを施すことで白くなります。

白い部分は布の表現を適応されることになります。

白い円はマウスオーバーすると表示される、

シミュレーションペイントの範囲になります。

f:id:yoshikata1990:20171105073534p:plain

問題なければSingle Layerd Clothタブを選択してStart Simulationを選択

f:id:yoshikata1990:20171105080710p:plain

下記のようにシミュレーションが正常に動作していれば問題ありません。

f:id:yoshikata1990:20171105081923p:plain

シミュレーションの設定も各種あるので、そちらも紹介します。

  • EnableWind:風の設定。下のパラメータで方向と強さを変える。
  • Groundplane:最初の状態だと地面が生成された状態になります。

問題がなさそうならSave Selectedを選択してAPXファイルを作成します。

f:id:yoshikata1990:20171105085242p:plain

UE4でClothツールを使ってみる

 UE4に先ほど作成したモデルをインポートします。

すべてをインポートでボーンなどすべてインポートします。

f:id:yoshikata1990:20171105100858p:plain

それが完了したらスケルタルメッシュの編集画面を開き、

APXファイルを適応します。

+ボタンからインポートできます。

インポートが完了すると下記のようにClothingDataに反映されます。

f:id:yoshikata1990:20171105101049p:plain

設定ではこれで完了ではなく、

LODの部分にAPXファイルを適応してあげます。

これでスケルタルメッシュにクロスのデータを付与することが出来ます。

f:id:yoshikata1990:20171105101559p:plain

UE4のほうでActive Cloth Paintで布ができます。

Clothingタブのウィンドウの一番下にある、Brushで可能です。

一つ上のToolSettingで塗る濃さを変更して、

赤枠で囲っている箇所で塗る箇所の大きさ、強さを変更します。

f:id:yoshikata1990:20171105101353p:plain

設定が完了したら、

Active Cloth Paintを再度選択し解除してから保存します。

※解除しないとメッシュが正常に表現しなくなります。

それから、布っぽい表現になっているか確認するために、

wind Directional SourceをLevelに配置します。

f:id:yoshikata1990:20171105103453p:plain

風の角度は横に向けると分かりやすくなります。

方向を斜め右にしています。

f:id:yoshikata1990:20171105105416p:plain

動かすと下記のTwitterのように動けば動作はできているかと思います。

以上がクロスシミュレーションの対応になります。

今後もう少し実用的に作ってみようと思います。