解説YouTube動画
記事を読むのが面倒な人は動画を見てね。12分24秒。
超重要
Blenderのバージョンを2.9x以上で作業してください。
(.abcファイルとして書き出したときUnrelEngineがGroomとして認識してくれずにGroomImporterが起動せずAlembicインポートになり、髪の毛としてアンリアルエンジンへデータをインポートすることができません。)これで4日間、四苦八苦しました。
またBlenderのバージョンは最新過ぎてもHairConverterが正常に機能しないようです。他の3.3などは試していませんが最新の4.0では爆発した髪の毛が生成されてしまいました。
後はUnrelEngine側でGroomを作る際の親子関係にも注意してください。髪の毛をバインドしたモデルが入っているコンポーネントの子にする必要があります。
全体像
- DazからBlenderに髪の毛をエクスポート
- Blenderからabcファイルで髪の毛をエクスポート
- UnrelEngineのGroomとAlembic Groom Importerを使用して髪の毛をインポート
- UnrelEngineでキャラクターに髪の毛を割り当てて調整
- UnrelEngineで髪の毛が揺れるように物理処理を調整する
DazからBlenderに髪の毛をエクスポート&調整(方法1)
- DazStudioからDazToBlenderを使用して髪の毛を付けたフィギュアごとエクスポート
- Blenderで編集→プリファレンスから Object Mesh Hair Converter(後述) と Import Export DazToBlender にチェックが入って有効化されていることを確認
- blendでNを押すとツールタブが表示非表示される → DazToBlenderの一番上のボタン Import New Genesis Figure を押すと直近にエクスポートしたフィギュアが読み込まれる
(?保存先とかはどうなっているのだろうか?) - 参考動画2では何かゴソゴソ位置を調整 参考動画3の手順をここからは記します。
- Hairアドオンのタブを選択 → Convert Hair ボタンが押せない
(Nキーで右端にHairアドオンタブを開くことができる) - 髪の毛以外のオブジェクトを非表示(削除でも問題ないと思う)
- 髪の毛を選択 → マテリアル → Capマテリアルがあるはず → 選択 → 編集モードで頂点を選択 → Pキーを押してオブジェクトを分離
- 髪の毛を選択 → Shift+クリックで分離したHairCapを選択 → Hairアドオンのタブを選択 → Convert Hairボタンが押せるようになる
- Convert Hairボタンを押す → しばらく待つ → 描画が変わって1つのオブジェクトになる(パーティクルシステムとしてスカルプトされたデータにメッシュが変換される)
- Particle Propertiesで → Render → Show Emitter をオフにする
- Hairを選択 → .abcファイルとしてエクスポートの手順へ
Blenderで新規にHairを作成する(方法2)
- Hairとして扱いたい頂点を選択 → バーテックスグループとして登録
- Particle Propertiesでヘアーを作成
- Particle Properties → プラスボタン → Hairの名前を入力 → Emitter HairのボタンをHairボタンを押す
- オブジェクトモードにすると髪の毛が爆発する
- バーテックスグループのDensityにHairバーテックスグループを指定 → 頭から爆発した髪の毛が出る
- パーティクルエディットモードにして髪の毛の形を整える
- Particle Propertiesで → Render → Show Emitter をオフにする
- 同じく Viewport Display → Show Emitter をオフにする
- Hairを作ったキャラクターを選択 → .abcファイルとしてエクスポートの手順へ
Blenderから.abcファイルとしてエクスポート
- エクスポートしたい髪の毛を選択 → File → Export → Alembic(.abc) でエクスポート
- Scaleを100、Frame End を1に → Only Selected Object と Visible Object にチェックを入れる → Object Optionの UVs PackUVIslands Normals Generated Coordination のチェックをすべて外す → Particle SystemのExport Hair Export Particleのチェックを入れる
- エクスポート
UnrelEngineで髪の毛をインポート→キャラに設定
- プラグインから Groom と Alembic Groom Importer をチェック
- 編集 → プロジェクト設定 → Engine-Renderingの Support Compute Skin Cache (最適化 → スキンキャッシュの計算をサポート) にチェックをして再起動
- コンテントドローワー → Import To/Game/HairTutorial(保存先でここの名前は変わる) → GroomImportOptionが表示されると成功 → RotatinXを-90 Zを180 → Import → Groomアセットとしてインポートされる
何が間違えているのかここで Alembicキャッシュインポートオプションが表示され、インポートするとGroomアセットとしてではなく、スタティックメッシュとしてインポートされてしまいます。困った。→ よく見返すとBlenderのObject Mesh Hair Converterアドオンを入れずにエクスポートしていました。しかしアドオンを検索しても出てこずまた困りました。アドオンの入手先は記事下に追加しています。
- キャラクターのブループリントを開く → コンポーネントのAdd から → Groomを追加 → Meshの子に設定する(キャラクターモデルが入っているコンポーネントの子にする)
- Groomを選択した状態で詳細パネルから → GroomAssetでインポートした髪の毛を選択
- 髪の毛のアセットをコンテントドローワーから選択 → CreateBinding → TargetSkeltalMeshに髪の毛をセットしたいキャラクターを指定
- キャラクターのブループリントを開く → Groomを選択した状態で詳細パネルから → BindingAssetに手順4で作成したBindingAssetを指定
Object Mesh Hair Converterアドオンの追加方法
アドオンはBlender公式、コミュニティ内に存在するものではありません。
参照動画3↓
Part 2 – DAZ Hair to Unreal Engine – The Fix
URL = https://www.youtube.com/watch?v=eh8S5Booe3M
での概要欄にZipファイルの入手先のURLがありました。
URL = https://onedrive.live.com/?authkey=%21AIt1%2DufapHl2pjE&id=8328259D13FBB0F4%2156972&cid=8328259D13FBB0F4&parId=root&parQt=sharedby&parCid=UnAuth&o=OneUp
おそらく個人のドライブに保存されているのでウイルスなどには気をつけましょう。
EsetでZipファイルのウイルスチェックをした所、何も検出されませんでした。
アドオンのインストールはZipを解凍せずに、そのままZipファイルのまま、
編集 → プリファレンス → Addons → 上のタブ Install から選択すると
インストールできます。
ライセンスについては不明
個人のCinusさんという人が作っているらしいですが公式のWebページや検索してもObject Mesh Hair Converterアドオンについて出てこなかったのでライセンスについてはよく分かりませんでした。また何か分かったら追記します。
公式?かどうかはわからないですがGit hubでのHairConverterを発見しました。
https://github.com/jobutsu/DazHairConverter
サイト内のCodeをクリックするとDownload ZIPが選択でき
DazHairConverter-main.zipというファイルがダウンロードできます。
Git hubにも使い方のみ記されておりライセンスについては分からずじまいでした。
ソースコードにライセンスが記載されている可能性もあるとのことでパイソンファイルのソースコードも確認してみましたが、ライセンスに関する記載はありませんでした。
ライセンスがわからないと使えないじゃないか?
DazStudioの公式コミュニティ?での作者Cinusさんの発言ページ
https://www.daz3d.com/forums/discussion/445851/hair-converter-add-on-for-blender/p1
を発見しました。ここにコメントを残して解答を待ってみるのも方法の一つかもしれません。
直接問い合わせた
どこをどう探してもライセンスの文章がないので、作者Cinusさんに問い合わせました。
- ライセンスがそもそもない。
- 使用料を支払う必要はない。無料で使用できる。
- DazHairConverterを使用してUnrealEngineなどで作ったゲームを販売しても良い。
- ソースコードを改造して使用することができる
とのことでした。なのでDazHairConverterに関しては問題なく、製品化して販売することができそうです。
Alembic Groom Importerが機能せずに?Groom設定ができない
Hairメッシュをパーティクル化して.abcファイルとして書き出すところまではできましたが、UEに取り込む際にAlembic Groom Importerが機能していないのか取り込みオプションの画面がやはりAlembicキャッシュインポートオプションになり、どう頑張ってもGroom Import Optionにならずに困り果てました。あとはこのインポートだけ成功すれば全てできるのですがあと一歩のところで止まって、ふさふさの髪の毛を拝むことができません。
また何か間違っていないか、時間をおいて寝かせてみるとなにか閃くかもしれないことに期待して今回は諦めます。4日後にBlenderのバージョンが原因だと判明しました。(記事冒頭の話)
髪の毛をフサフサ揺らそう
髪の毛をインポートした時点で設定するべきでしたが、色々上手く行かずに記事を進めていたらこんな最後に記載することになりました。HairをGroomとしてUnrelEngineにGroomImporterからインポートして、ダブルクリックで編集画面に入ったところからの話で進めます。
- UnrelEngineで髪の毛ファイルをダブルクリック → 編集画面が出る → 右端の Physics → Solver Setting → Enable Smulation にチェックを入れる
(結構ボリュームのある髪の毛だったので結構チェックを入れてから計算に時間がかかりました。)
計算が終わって、デバッグプレイをすると、ワサワサ髪の毛が動きました。もう少しまとまりをつけるようにするには設定を調整する必要がありそうですね。
髪の毛のフサフサ度を調整
現在方法を調査中
参考動画一覧
参考動画1↓
How to Create Hair in Unreal Engine 5 – Groom Tutorial
URL = https://www.youtube.com/watch?v=ODkhcRvcaso&t=639s
参考動画2↓
HOW TO use DAZ3D HAIR with METAHUMANS | UNREAL ENGINE 5 TUTORIAL
URL = https://www.youtube.com/watch?v=wPD3iFdfhvg
参照動画3↓
Part 2 – DAZ Hair to Unreal Engine – The Fix
URL = https://www.youtube.com/watch?v=eh8S5Booe3M
参考動画4↓
Unreal Groom Hair Tutorial: Daz3D To Blender To Unreal Engine
URL = https://www.youtube.com/watch?v=Z_hrJ1szbPo
コメント