お久しぶりです!
COYOTE 3DCG STUDIO テクニカルアーティストチームの田島です。
【後編】である今回は前回作成したエクスポートデータをUnreal Engineにインポートする手順について解説します。
内容は前回の「UEへエクスポート編」を踏まえたものになっているため、まだご覧になっていない方は、そちらから読んでいただくことをおすすめします。前編はコチラ
さらに、Havok Clothの性能を最大限に引き出すためのコツや、インポート時によくあるトラブルとその解決法についてもご紹介します。
前回に引き続き、プロジェクトにすぐ活かせる実践的な内容ですので、ぜひ最後までご覧ください!
目次
※使用モデル
ワトソン・アメリアさん
※使用モーションデータ
博衣こよりさん /シアワセ√コヨリニウム © 2016 COVER Corp.
Unreal Engineの使用バージョンとHavok Cloth統合環境について
本記事では、Unreal Engineバージョン「5.5」 にHavok Clothを統合した環境で検証・作業を行っています。
UEにデータをインポートする
前回のブログ(UEへエクスポート編)で作成したFBXデータとhktデータをUEにインポートします。
①「コンテンツドロワー」を開く
コンテンツドロワーボタンをクリックします。
下画像と同じウィンドウが開きます。
②FBXインポーターを旧バージョンに変更する
Unreal Engine5.5で用意されているFBXインポーターにはバグが多く、メッシュをインポートできません。
下画像と同じエラーが表示されます。
ですので、FBXインポーターを旧バージョンのものに戻しておく必要性があります。
Unreal Engine5.4以前のバージョンを使用している場合は、下記手順はスキップしていただいて構いません。
コンテンツドロワーの下にあるコマンド入力欄に
Interchange.FeatureFlags.Import.FBX 0
と入力し、Enterキーを押します。
③FBXデータをインポートする
前回のブログ(UEへエクスポート編)で作成したFBXデータをコンテンツドロワー内にドラッグアンドドロップします。
FBXインポートオプションが開きます。
- Keep Sections Separate
- Force Front XAxis
にチェックが入っていることを確認します。
「全てインポート」をクリックしてインポートを実行します。
「Keep Sections Separate」にチェックが入っていない場合、アニメーションデータとメッシュデータが結合された状態でインポートされてしまいます。
また、「Force Front XAxis」は、メッシュの正面方向をX軸に固定するための設定です。
チェックが入っていないと、hktデータとの間で軸方向にズレが生じます。
結果として、データの整合性が取れなくなる恐れがあります。
Unreal EngineとMayaでの軸の違いについては前回ブログで記載しています。
またImport Animationsにもチェックが入っていることを確認してください。
このチェックが外れているとアニメーションがインポートされません。
※下画像と同じUIが表示された場合
FBXインポーターのバージョンが最新のままになっています。
②に記載している手順を行い、FBXインポーターを旧バージョンにしてください。
④hktデータをインポートする
作成したhktデータをコンテンツドロワー内にドラッグアンドドロップします。
Havok Cloth Import Optionsが開きます。
スケルタルメッシュ>Skeletal Meshからインポートしてきたモデルを選択します。
※テクスチャの設定
UEにインポートする予定のメッシュにはLambertやPhong等のマテリアルをアサインするのが一般的です。
今回は本来MMDで使用する用途のモデルを使用してます。
そのため、MayaのstandardSurfaceマテリアルがアサインされています。
standardSurface等のUE側でサポートされていないマテリアルを使用している場合は下記の手順でテクスチャをアサインする必要があります。
①マテリアルグラフを表示する
テクスチャをアサインしたいマテリアルをコンテンツドロワー上でダブルクリックします。
マテリアルグラフが表示されます。
②「Texture Sample」ノードを作成
Tabキーを押し”Texture Sample”ノードを生成します。
③テクスチャをセットする
「Texture Sample」ノードをクリックします。
詳細>マテリアルエクスプレッションテクスチャーベース>Textureからアサインしたいテクスチャを選択します。
④テクスチャをマテリアルに適用する
「Texture Sample」のRGBと該当マテリアルのベースカラーを接続します。
接続したら適用をクリックします。
ここまでの工程をマテリアル毎に行います。
インポートしたデータをセットアップする
①ブループリントを作成
コンテンツドロワー内で右クリックします。
メニューが表示されるので、「ブループリントクラス」を選択します。
親クラスを選択します。
下画像のウィンドウが表示されるので、「すべてのクラス」から「Havok」と検索をします。
「Havok ClothActor」を選択します。
下画像のアイコンが生成されます。
任意の名前を設定しておきましょう。
②ブループリントエディタを開く
作成したブループリントクラスをダブルクリックしてブループリントエディタを開きます。
③スケルタルメッシュを設定する
コンポーネントから「Skeletal Mesh Component(SkeletalMeshComponent0)」を選択します。
詳細>メッシュ>SkeletalMeshからインポートしたモデルを選択します。
ビューポート上にモデルが表示されます。
④アニメーションを設定する
詳細>Animation>Animation Modeを「Use Animation Asset」に変更します。
Anim to Play にインポートしたアニメーションを設定します。
ビューポート上のモデルがアニメーションを開始します。
⑤Havok Cloth を設定する
コンポーネントから「Cloth Entity Component(UHavokClothEntityRenderComponent0)」を選択します。
詳細>Havok Cloth>Cloth Assetにhktデータをセットします。
アニメーションにシミュレーションが付きます。
最後にコンパイルボタンを押します。
プレイをして確認
①ビューポートにモデルを表示させる
作成したブループリントをビューポートにドラッグアンドドロップします。
②プレイを実行する
プレイボタンを押してモデルをアニメーションさせます。
完成
左がこれまで作成してきたデータです!
クロスシミュレーションを追加すると、見た目が格段にリッチになったことが確認できました。
Unreal Engine上にインポートしても、Havok Preview Tool 上で確認した動きと同じく、問題なく動作していることが確認できます。
まとめ
これでHavok ClothのUEへインポート編は終了です!
前後編の長い道のりでしたが、最後までご覧いただきありがとうございます。
Havokデータのインポートに必要なステップを、実際の流れに沿って理解していただけたのではないでしょうか。
今回の内容が、皆様のプロジェクトに役立つことを心より願っています。
次回は「Havok Cloth 応用編」をお届けする予定ですので、引き続きご期待ください!
また、TECH COYOTEブログには他にも様々な記事を掲載しています。
お時間があれば、ぜひそちらもご覧ください。
今後とも引き続きよろしくお願いします。
お疲れ様でした!
※使用モデル
ワトソン・アメリアさん
※使用モーションデータ
博衣こよりさん /シアワセ√コヨリニウム © 2016 COVER Corp.