• 追加された行はこの色です。
  • 削除された行はこの色です。
* 物理-布シミュレーション [#db317de1]

UE4:ver.4.5.0
APEX SDK:1.3.2

布挙動。
布挙動。Clothing。
まだ全機能使いこなしてないです。検証中。
間違ってたらごめんなさい。

----

#contents


** 参考 [#y50662c9]
- アンリアル エンジン 4 ドキュメント : APEX
https://docs.unrealengine.com/latest/JPN/Engine/Physics/Apex/index.html

- Youtube : Blender UE4 Cloth
https://www.youtube.com/watch?v=VW7M0f04RwQ


** モデルデータの注意点 [#d4d816f6]
- モデルデータにスケール値入ってたら上手くいかなかった。
- UE4上でSkeltal Meshでないと適用できないので、ボーンを入れておかないといけない。
- ClothingToolでタンジェント計算に必要なので、モデルデータにUVデータを作成しておかないといけない。

** 検証に使ったデータ [#jc774b2b]
なんか問題出たらごめんなさい。
- モデル
&ref(clothtest.fbx);
- UE4に読み込ませる用APEXファイル
&ref(ClothingToolPROFILE.apx);


** 初期設定 [#zfba9919]

1. nvidia download centerから、「PhysX:APEX SDK」を落としてくる。
 https://developer.nvidia.com/gameworksdownload
 APEX SDK 1.3.2では、"APEXSDK-1.3.2-Build6-CL18960576-PhysX_3.3.2-WIN-VC10-BIN.exe"

2. 落としてきたexeを実行、出来上がったzipを解凍。



** 布シミュレーション設定ファイル(APEX)の作成 [#sdec21eb]
1. APEX SDKの"/bin/vc10win32-PhysX_3.3/ClothingToolPROFILE.exe"を実行する。
 これが物理挙動の設定ファイル作成ツール。win64版には入っていないので注意。

- 起動時にバージョンでCUDAが云々表示される場合は、nvidiaのグラフィックドライバーを最新にしてみてください。

2. メニューバーの「File」-「Load Mesh」で対象のFBXを読み込む
 &ref(UE4-physics-cloth01.png,,40%);

3. 「Imput Mesh」タブの「Select Submesh」欄で布シミュレーションの設定を行いたいメッシュのみ選択する。
3. 布挙動の設定、必要であればコリジョンの設定をする(後述)
- [[布挙動の設定>#ua9662ab]]
- [[コリジョンの設定>#tadb84e5]]

4. 「Input Mesh」タブの「Modifications」-「Generate Tangent Space」ボタンを押してタンジェントデータを作成する。
 押すと「Update Tangent Space」にボタンが変わります。
 どうやらモデルデータにUVデータが入っていないとボタンが押せないようです。
 &ref(UE4-physics-cloth14.png,,60%);


5. 設定が終わると、「Single Layerd Cloth」タブの「Save/Run」欄、「Start Simulation」でシミュレーションを再生できる。
 「Simulation」タブに移る。
 &ref(UE4-physics-cloth05.png,,80%);
- 実行結果
 各種パラメーターで挙動の確認ができる。
 &ref(UE4-physics-cloth05-2.png,,60%);

6. 確認も完了すると、「Single Layerd Cloth」タブの「Save/Run」欄、「Save Asset」で、apxファイルを出力する。
 このファイルがUE4で布シミュレーションするには必要。
 &ref(UE4-physics-cloth05-3.png,,60%);

*** 布挙動の設定 [#ua9662ab]
1. 「Imput Mesh」タブの「Select Submesh」欄で布シミュレーションの設定を行いたいメッシュのみ選択する。
 &ref(UE4-physics-cloth02.png,,40%);
 今回は「Plane」にだけ布シミュレーションを

4. 「Painting」欄の「Channel Selection」を「Max Distance」に。
2. 「Painting」欄の「Channel Selection」を「Max Distance」に。
 &ref(UE4-physics-cloth03.png,,100%);

5. 出てくるポップアップウィンドウで各種設定して、3DView上でペインティングしていく
3. 出てくるポップアップウィンドウで各種設定して、3DView上でペインティングしていく
 3D View上で左クリックのドラッグでプラス方向(シミュレーション挙動する)へ。
 右クリックのドラッグでマイナス方向(シミュレーション挙動しない)へ。
- Paint:ペインティングする濃さ
- Scale:挙動の大きさ。この数値の範囲内で布が挙動する。
- Falloff
- Radius:ペインティングする筆の大きさ

また、「View」ウィンドウの設定で状況を確認できる。
- Painting欄
-- Painting Visible(Face):ペイント箇所の面を表示する。白色(影響力・大)〜黒色(影響力・小)〜赤色(影響力・無)。
-- Painting Visible(Vertices):メイント箇所の頂点を表示する。線の長さで影響の強さを確認できる。
-- Painting, show other submeshes:ペイント対象ではないメッシュも表示する。

 &ref(UE4-physics-cloth04.png,,60%);

6. ペインティングが終わると、「Single Layerd Cloth」タブの「Save/Run」欄、「Start Simulation」でシミュレーションを再生できる。
 「Simulation」タブに移る。
 &ref(UE4-physics-cloth05.png,,80%);
- 実行結果
 各種パラメーターで挙動の確認ができる。
 &ref(UE4-physics-cloth05-2.png,,60%);

7. 確認も完了すると、「Single Layerd Cloth」タブの「Save/Run」欄、「Save Asset」で、apxファイルを出力する。
 このファイルがUE4で布シミュレーションするには必要。
 &ref(UE4-physics-cloth05-3.png,,60%);
*** コリジョンの設定 [#tadb84e5]
UE4上のコリジョンは使用できず、APEX上で付ける必要があります。

1. 「Input Mesh」タブ-「Modifications」-「Generate Collision Volumes」を選択して設定ウィンドウを立ち上げます。
 &ref(UE4-physics-cloth11.png,,80%);

2. 「Select Submesh」欄でコリジョンを設定するメッシュを選択します。
 すると「Bone Selection」欄に、選択したメッシュに関連付いているボーンがアクティブになります。
 また、3D Viewにコリジョンが表示されます。
 &ref(UE4-physics-cloth12.png,,60%);

3. 編集したいボーンを選択すると、各種設定が出来ます。
とりあえずは形状をCapsule、サイズの調整くらいしか試していません。
- Automatic Generation : ?
- Shape Type : コリジョンの形状。ConvexにするとUE4に持っていった時に座標が崩れてしまったので、Capsuleしか試してない。
- Shapes : コリジョンデータ。
-- Add Capsule : コリジョンの追加。
-- Remove Shape : コリジョンを消す。要らない場合は全部消す。
- Shape Properties
-- Radius : カプセル半径
-- Height : カプセル高さ
-- Move : ?移動できなかった?
-- Rotate : ?回転出来なかった?

 &ref(UE4-physics-cloth13.png,,60%);

4. 全部設定し終えたら、下部の「Build Collision」を押す。多分。

** UE4上の設定 [#q6e709d7]
1. モデルをインポート。
 Skeltal Meshでインポートする必要有り。

2. 布シミュレーションを適用するマテリアルの詳細で、「Used with Clothing」にチェックを入れる
 &ref(UE4-physics-cloth06.png,,60%);

3. インポートしたメッシュの詳細欄の「Clothing」-「APEX clothingファイルを追加...」で、布シミュレーションの設定で作成した.apxファイルを指定する。
 &ref(UE4-physics-cloth07.png,,60%);
- インポート成功後
 &ref(UE4-physics-cloth08.png,,100%);
- 警告が出ますが無視してます。
- この警告が出ると、APEXデータにタンジェントデータが正常に出力できていません。
 ライティング結果が不正になる可能性があります。
 &ref(UE4-physics-cloth09.png,,100%);

4. LOD欄の「クロス(布)」で、(3)でロードしたファイルを指定します。
 &ref(UE4-physics-cloth10.png,,60%);


** 結果 [#u76f7bc8]
 &ref(ue4-physics-cloth.gif,,40%);


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS