DAZのモデルをUnreal Engine4にインポートする手順を覚え書きしてみたい。
結論から言うと、DAZキャラをFBXで直接取り込むのは無理で、Bridgeプラグイン(無料)を使用することで(内部的に)FBX形式をうまいこと修正する機能が必要だった。
UE4へFBXインポート / 修正する機能
インポート時にプラグインでサイズや向き、テクスチャなどを修正する機能を使った。まず、これがUE4にモデルインポートして動かした例だ。
>https://twitter.com/kabukinger/status/1398746851239600129
キャラは、KIM SEOHYUNというアジア人キャラを使った。
関連 Kim seohyun for genesis 8 female 日本人キャラとしても通用しそう
ざっくり言うと、UE4の第三者視点用のテンプレートをまんま使って、プレイヤーキャラのとこだけインポートしたモデルに差し替えたというわけだ。
テンプレートまんまだと、灰色の上記のような奴がプレイヤーキャラになってる。
UE4へFBXインポートする方法
では、具体的な手順を解説していこう。
UE4とプラグインのインストール
UE4へDAZのモデルをインポートするには、DAZ TO UNREAL BRIDGEというDAZ STUDIO用プラグイン(アドオン)と、Unreal Engine 4.26のインストールが必要になる。
DAZ TO UNREAL BRIDGEは、DAZから無料でダウンロードできる。
DAZ INSALL Managerか、DAZ Centralでインストールしよう。特に何か指定する箇所はないと思う。
UNREAL ENGINEのダウンロードはこちら。ライセンスが2種類あるけど、将来商用利用にも使うかもというならパブリッシングライセンス、それ以外はクリエイターライセンスという感じだと思う。なお、どちらを選んでも、できたゲームを販売したりしない限りはライセンス費用は無料。
途中若干はしょるけども、Epic Gamesランチャーという起動用アプリにて、Unreal Engineの4.26.xxを起動できるようインストールをすすめる。
なお、バージョンはけっこうシビアで、DAZ TO UNREAL BRIDGEは最新の5.0.0だと動かない。2021年5月時点では「4.26以外認めない」みたいな雰囲気だった。
UE4にDAZ STUDIOからインポートする手順
DAZ STUDIOにて、Genesis 8かGensis 8.1フィギュアに髪や服を着せる
DAZ STUDIOは起動したんまんまで、Unreadl Engine4.26を起動する。自動連携にはこの2つを同時に起動しておく必要があるのだ。メモリは10G以上必要になると思う。
なお、メモリが足りない場合は自動連携を諦めて手動でインポートする手段もある。ひとまず、自動連携を前提に説明をすすめよう。
Epic Gamesランチャーの「Unreal Engine」→「ライブラリ」を選択後、4.26.xの黄色い「起動」をクリック。
プロジェクト選択または新規作成の画面で「ゲーム」を選択し、「次へ」をクリック
テンプレート選択画面で「サードパーソン」を選択し、「次へ」をクリック
「プロジェクト設定」画面で、「フォルダ」を適当なパスに変更して「プロジェクト作成」をクリック
「フォルダ」のパスはデフォルトだとCドライブになっているので、Cドライブにギガ単位でデカイファイルを作られるのは嫌だ、という人は大容量ドライブを指定しておこう。
なお、ここの表示はいったん変更して「プロジェクト作成」すると、次回からデフォルトになるっぽい。
Unreal Editorが起動するので画面上部「設定」→プラグインを選択
プラグイン画面の右上の検索窓に「DAZ」と入れると、Daz To Unrealが表示されるので、「有効」にチェック
ウインドウ下に「今すぐ再起動」ボタンが現れるのでクリック
なお、ここでの再起動とはUnreal Editorの再起動。パソコン自体が再起動されるわけではない。
再起動されたら、プラグインウインドウは閉じて、以下のような状態にしておこう。
ここからDAZ STUDIOでの操作。
DAZ STUDIOにて、File→Send To→Daz to Unrealを選択
「Advanced Settings」にチェックを入れて、intermediate Folderにデータ受け渡し用のフォルダを指定
なお、「Port」の値は、Unreal Editorと連携するためのポート番号。Unreal EngineのDAZ to Unreal Settings側にも同じ項目があり、最初から同じ値が設定されているのでイジる必要はない。なお、この数値を変えたい場合は、DAZ STUDIO、Unreal Editorの両方で数字は合わせておかないと自動連携ができない。
DAZ STUDIOでDAZ TO UNREAL画面のAcceptをクリックするとデータのエクスポートが始まり、自動的にUnreal Editorでのインポートが始まる。(ただし、DAZ STUDIOとUnreal Editorが同時起動していて、Unreal Editorでプロジェクトを開いていることが前提)
ここから再びUnreal Editorの画面。
自動インポートが終わると、以下のような警告がでるけども、とりあえず無視でOK。
画面下部の「コンテンツブラウザ」に、DAZのキャラがインポートされる。
インポートしたキャラの「スケルタルメッシュ」(紫)のアイコンのKimSeohyun2をダブルクリック
キャラの編集画面になる。画面上部の「スケルトン」をクリックし、「プレビューメッシュ」をクリックして、Kimseohyun2のスケルタルメッシュを選択。画面右下に「適用」ボタンが出るので、消える前にクリックする
※画面右下の適用ボタンを押し忘れがちなので注意。
コンテンツブラウザにて、コンテンツ→Mannequin→Character→Meshを選び、SK_Mannequinをダブルクリック
マネキン(灰色のキャラ)の編集画面になる
画面上部の「スケルトン」をクリック
「リターゲットマネージャ」をクリック
リターゲットマネージャの「リグを選択」のプルダウンから「ヒューマノイドリグを選択」を選ぶ
「スケルトンを保存しろ」とかなんとかメッセージが出るけど、無視。
上記は、マネキンに人形の骨格を割り当てる手順…だと思う。
コンテンツブラウザから、コンテンツ→Mannequin→AnimationのThirdPersonAnimBPで右クリック→Animブループリントをリターゲットする→Animブループリントとリターゲットを複製を選択
初見だと、「オマエは何を…?」と言いたくなる未知のキーワードの連発である。
テンプレートに組み込まれたプレイヤーキャラのアニメーションのロジックをパクるための手順と考えておけばいいんじゃないだろうか。
スケルトンを選択の画面で、「Genesis8BaseSkelton」を選択し、リターゲットボタンをクリック
リターゲットというのは、流用元のキャラの骨格が違うけど、いい感じに動きをパクる仕組みのようだ。
こんな感じで、「コンテンツ」の直下にだらしなくデータが複製される。
ちゃんと別フォルダでも作ってきれいに整理してほしいが、今の私にはやり方がわからないので無視だ。なお、複製されたThirdPerson_AnimBPは、オリジナルと名前が全く同じで字面から見分けられないので、名前を変更しておく。
今回は、ThirdPerson_AnimBPをMyAnimBPに名前変更した
そして、いよいよ、プレイヤーキャラをインポートしたDAZキャラに差し替える。
3Dシーン上のプレイヤーキャラをクリックして選択(または、アウトライナからThirdPersonCharacterを選択
詳細タブにて
アニメーションのAnim ClassをMyAnimBPに変更(上記で名前変更したやつ)
メッシュのSkeltal Meshをインポートしたスケルタルメッシュ(紫のアイコン)に変更
画面上部の「プレイ」をクリック
すると、ゲームのプレビュー状態になり、WASDで前後左右スペースでジャンプとキャラの操作が可能になるのだ。
うっひょぉー!
Unreal Editorへ手動でDAZのエクスポートデータをインポートする手順
DAZ STUDIOとUnreal Editorを同時起動できない場合に有効な手段。
まず、DAZ STUDIOだけ起動した状態でGenesis 8フィギュアに服を着せ、File→Send To→DAZ TO UNREALを選択。
「Intermediate Folder」のパスを目で見て覚えておく。
DAZ STUDIOを終了させ、Unreal Editorを起動
プロジェクトを開き、プラグインのDAZ TO UNREALを読み込んだ状態にする。
1.画面下部のコンテンツブラウザで、
2.パスを「コンテンツ」に変更
3.コンテンツブラウザの何もない箇所で右クリック
4./Gameniインポートを選択
ファイル選択画面になるので、先程DAZ STUDIOのDAZ TO UNREAL画面で覚えたIntermediate Folderのパスを開く。
今回は、D:\UE\DazToUnreal\の下にKimseohyunというフォルダが作られていた。フォルダ内の拡張子.dtuを選択して、「開く」をクリック
拡張子dtuのファイルはいい感じにインポートする用のメタファイルっぽい。なお、fbxファイルの方を選ぶと、失敗してねじれたモデルがインポートされるので注意。私は最初、フィーリングで適当操作していて、コイツを出現させた。
インポートが終わると、警告が出るけど無視して、
こんな感じでインポート完了。ここまでの手順で、自動連携してインポートしたのと同じ結果になる。
インポートしたモーフを確認する
DAZ TO UNREAL BRIDGEでエクスポート時に、エクスポート対象のモーフを指定してた場合、UNREAL ENGINEでの見え方を確認できる。
コンテンツブラウザでインポートしたスケルタルメッシュをダブルクリック後、画面右のパラメータを適当に動かすとモーフが変形。
以下は、表情モーフを操作している例だ。
ソースはブループリント(ノード接続操作でできるプログラミングみたいなもの)に組み込んだりしないと活用できない気がするけど、そのうち色々できるようになったらいじってみたい。
Unreal Editorインポート時にうまくいかなかったところ
マテリアルによっては、透過などがうまくいかなかった。以下は、髪全体がスケスケになっちゃった例。透過テクスチャで抜いてるタイプの髪は、なにか工夫が必要なのか?
また、「空のキャラクター」を配置して、インポートしたキャラを割り当てることで複数キャラを出現させることができたが、上記のようにキャラが宙に浮いてしまう。
まあ、このへんはおいおい解決していこう。
UE4へモデルインポート / FBX形式
実は以前、FBX形式を直接インポートしようとして失敗した。
Poser経由でFBXを出力しようとしたり、スケルトン(骨格)なしでインポートしようとしたり。
関連)DAZキャラをUE4にFBXインポート! スケルトンつきで取り込む方法
どうやら、DAZフィギュアをFBX形式を直接Unreal Engineにインポートするのはうまくいかないらしい、ということがわかった。
そこで、DAZの開発陣がしっかり検証して動作確認が取れている「DAZ TO UNREAL BRIDGE」というプラグインを使って自動変換させることで、ようやくインポートできたのだった。
FBX形式でのインポートに失敗した例
ここでは、右も左もわからないUnreal Engine4に、DAZキャラをインポートしようと試行錯誤した結果をメモとして残しておく。
試行錯誤でわかったこと。
- unreal studioは30ギガの空き容量が必要
- DatasmithはDCCツールからの取り込みが楽になるツールだが、3DS Max、Sketchup、VREDにしか対応してない。
- DAZ StudioからexportしたFBXはエラーが出てフィギュアが取り込めない
- Poser Pro 11からexportしたFBXは、あっさりUnreal Engine 4に取り込めた。
現時点では、Unreal Engine 4は、UE4と略されてることと、開発環境が無料で使えるってことくらいしかわからない。DAZキャラインポートまで、1ミリずつにじり寄っていこう。
DataSmithでFBXを取り込み …失敗!
Unreal Studioには、DataSmithというツールがあり、3DCGツール(DCCツール=Digital Contents Creationツール)のデータをうまいこと取り込んで、Unreal Studio用に変換してくれるっぽい。
Datasmithは、直訳でデータの鍛冶屋といったところか。
DAZ Studioにて、File→ExportでFBX形式で出力してみた。
Aciciaに髪と水着を着せてFBX化。
FBXにはいろいろ形式があるらしく、デフォルトのFBX2012-Binaryで出力。
Epic Game Launcher(ここからUnreal Studioなどを起動する)に切り替えて、Unreal Studioベータ版の「Unreal Datasmith」を「エンジンにインストール」するのかな。
あら、もうされてる。じゃあ、Unreal Studio起動っと。画面上部に「DataSmith」があった。
だけど、こいつをクリックしても、FBXファイルのインポートはできないっぽい。どうなってるんだ。ググる。
わかった。どうやら、DataSmithというのはDCCソフト用のプラグインで、3ds MAXやSketchUP、VREDのプラグインとして提供されていて、プラグイン経由でエクスポートができるのだ。
つまり、DAZ Studio用のDataSmithプラグインが提供されていない状況では、DataSmith経由のインポートは無理ということか。
Unreal Engineのフォーラムで、DatasmithへのDAZインポートアシストプラグインについて2018年ごろに話題が出てたが「フィードバックありがと」で話が終わっていたので、たぶん現在もそんなプラグインは存在しない。
じゃあ、切り替えて、FBXをUE4にインポートする方向でいこう。
DAZ StudioからUE4にFBX形式を直接インポート …失敗!
なんと、unreal engine公式サイト内にチュートリアルをまとめたwikiがあった。
>Daz Studio To UE4 (Tutorial) Part 1 – Epic Wiki
う…けっこう、下準備が面倒くさそう。そして、3DS MAXを経由してインポートしろという話っぽい。
話にならん!
画面下の「コンテンツブラウザ」にも「インポート」というのがあったので、試す。
「全てインポート」をクリックした。
何かしらインポートしてるっぽい。
ボーンのマージに失敗したらしい。メッシュからスケルトンを再生成しますか?とのこと。なんか知らんが、そんなことが出来るんならやってくれ。
スケルタルメッシュが何かは知らないが、よろしく頼む。
失敗するんかい。
いろいろエラー。
なんか、水着の形状だけはインポートできてるような感じ。2つあるのは「スケルタルメッシュ」と「物理アセット」なのだそう。現時点では意味はわからない。
コンテンツブラウザからドラッグ&ドロップしたら、水着だけ呼び出せた。
転送実験で人体だけが消失したみたいな、SF的展開。
次はそうだな、エクスポート時のFBXのフォーマットをもっと新しいやつにして試そう。
FBX 2014 Binaryでインポート
DAZ Studioでのエクスポート時に、オプションを「FBX 2014 Binary」にしてみた。何が変わったかは知らない。
▲DAZ Studio Export画面
だめだった。やっぱり水着だけインポートできた。
※その後、Michael5の単体のみで、FBX 2014 Binaryでエクスポートしたらサクッとインポートできた。
それ以前でエラーが出た原因は、服も一緒にエクスポートしたからか?
Poser Pro 11でFBXエクスポート
そういえば過去、PoserからUnityにエクスポートした経験を思い出した。
PoserからMichael4をエクスポートしてみる。
そしたら、プリセットに「Unreal Engine4.2」って入ってた。
こないだアップデートした甲斐があったというものだ。
すごい!すごいぞ、Poser。これは期待できそう。
あっさり、Unreal Engine 4へDAZ Michael4のインポートが成功!
※ただ、インポートにはすっごい時間がかかった。内部では、Shader Compilerとかいうプロセスが動いてて、プリレンダリングしまくってるっぽい。
▲Michael4 はマテリアルの分割が細かいので、マテリアルデータが大量にできてる
すごいな、Poser11。プレイモードで、プレイヤーのメッシュを取り込んだM4に差し替えて動かせる。ただ、歩きアニメが適用されずT字ポーズのまま不気味にスゥーっと動く。浮遊霊のようだ。
うーん、
歩きアニメを適用させるには?
これを読んだ。
スケルトン アセット | Unreal Engine ドキュメント
「スケルトンをなしに指定すると、いい感じのスケルトンを勝手に生成してくれる」みたいなことがかいてあった
「Skelton」のところをなしにすればいいのかな。
OK。「なし」にしたら、エラー無しで取り込みが完了した。
だけど、アニメーションは適用できない。まだ何か足りないのか。
「スケルトンツリー」を見ると、パーツ名が日本語になっていた。あぁ、Poser11のLanguageを日本語にしたツケがここに。関係ないかもだけど、英語モードにして、取り込み直してみよう。
歩きアニメをスターターパックからパクるには、アニメーションリターゲットという手順を踏めばいいっぽい。
DAZフィギュアの関節名を、Unreal Engineキャラのスケルトン関節名に対応付ける設定だ。
アニメーション リターゲット(異なるスケルトン) | Unreal Engine ドキュメント
…とここまで進んだところで、DAZ Studio to UNREAL BRIDGEの存在を知り、「なんだ最初からコレ使えばよかったな…」と思ったのだった。
UE4の用語集
わからない言葉が出てきたらメモっていく。
ブループリント=テンプレート
設計図(Blue Print)の意味で、ゲームのテンプレートっぽい。新規プロジェクト作成時に、いろいろ選べる。
スターターコンテンツ
新規プロジェクト作成時に「スターターコンテンツあり」にすると、ある程度遊べるデフォルトのゲームがついてくる。動きを確認するのにいいかも。
▲「3Dパーソン」のスターターコンテンツ
グラボの警告 known issues(不具合あり)
「The installed version of the NVIDIA graphics driver has known issues. Please update to latest driver version.」(このドライバ不具合あるよ アップデート推奨)
私の非力なグラボから、ドライバのバージョンが古いと警告が出る。今のところ放置。
その後、NVIDIA RTX3070を搭載したパソコンを購入した。爆速。
UE4へモデルインポート まとめ
- DAZ STUDIOとUnreal Engine4.26間で自動的にキャラのエクスポート&インポートができる
- 透過する髪など一部のマテリアルは、うまく表示されなかった
- DAZ STUDIOとUnreal Engineを同時起動できない場合は、手動インポートでも対応できる
※DAZ to Unreal Bridge(無料)が出て、Unreal EngineへのDAZフィギュア取り込みがメチャ簡単になりました。