VRoidで作ったVRMをUE4に持っていくために頑張ってみたけどダメでした
VRoidで作ったキャラ
これをUE4に持っていきたいと思い試してみたところ、まだ途中ですが2か所ほど山がありました
そこら辺について書きます
色々調べた結果Unityを使ってFBXに変換して持っていく方向でやっていくことにした
まずUnityをインストール(Unity 2018.2.7f1 )
そしてVRoid(v0.2.8)で作ったキャラをエクスポート
この時点ではファイルの形式はvrm
次にUnityで新しいプロジェクトを作る
そこにUniVRM
Releases · dwango/UniVRM · GitHub
こちらをUnityのプロジェクトにインストールする
僕がインストールさせていただいたときには(UniVRM-0.43_4725.unitypackage)を使いました
これでUnityにVRMファイルをインポートすることができます
次にvrmをfbxファイルでエクスポートする方法
Unityのアセットストアにある「FBX Exporter」を使います
こちらの動画を参考にさせていただきました
アセットストアから「FBX Exporter」をインポート
Unityのシーン上にVRMからインポートしたprefabを配置し、ヒエラルキーウィンドウ(Unityの左側にあるオブジェクトに一覧みたいなやつ)から右クリック、Export to FBX...を選択、Export
僕はここで詰まりました・・・
動画ではうまくいっていると思い同じような手順を踏んでもうまくいかない
いろいろ設定をいじってみてもよくわからない、エラーログを読んでも正直チンプンカンプン・・・
そこで上の動画の説明欄にあるのですがUniVRMのバージョンを落としてみることに
動画と同じ「UniVRM ver 0.40」にしてみたところ一発で通りました
良かったと思ったのも束の間で出力したfbxをUE4にインポートしてみると
・・・えらい目の周りが暗いな
また調べてみると
こちらのブログでも似たような状態になっていることが分かりました
さらに恐らくは透明度が反映されていないのが問題ではないかとのこと
僕、マテリアルもぶっちゃけよくわかんないんですよね笑
途方に暮れてもしょうがないので調べてみると
このようなブログ記事がありました
要はtextureの出力透明度をマテリアルに反映できれば行けそうだと
UE4にインポートしたスケルタルメッシュをUE4で開いてみると左側のアセット詳細の所にMaterial Slotsという欄がありますので、そこから黒くなってしまっているマテリアルをダブルクリックしてマテリアルエディタを開いていきます(マテリアルスロットの下のエレメントという項目のハイライトやアイソレートを使うとわかりやすく表示できて便利でした)
マテリアルエディタを開いてみるとマテリアルノードに3つほどTexture Sampleというノードがそれぞれ、ベースカラー、エミッシブカラー、ノーマルの項目に接続されています
ベースカラーは読んで字のごとくで、エミッシブカラーは発光色、ノーマルはノーマルマップ(たしか凸凹表現するやつ)のことだと思います
UE4の透明度はオパシティという項目で設定するそうなのですがオパシティの文字が暗くなっている・・・
つなげても反映できないってことなんでしょうきっと
また調べてみると
【4.14】マテリアルでオパシティとメタリックを同時にいじりたい - UE4 AnswerHub
このような質問がすでにUE4のAnswerHubにありました
上の記事の通りマテリアルのブレンドモードをTranslucencyにするとオパシティは有効になります
そうしてマテリアルエディタでtextureの透明度を反映させてやると
マテリアルの黒かった部分が透明になりました!
それを黒くなっていた目の周りと眉の周り、それぞれ設定してやると
・・・君なんか白くない?
まあいいや、顔が見えただけでも一歩前進です。
今日は疲れたので続きはまた明日にします
*****************************
というわけで翌日から頑張ってみたのですがどうにも素人の僕には難しすぎました
画面右部の“Shader”の項目の右にあるVRM/MToon
どうもこれが厄介なようで、現状UE4ではこのshaderの設定が反映されないようなのです
Unityの中でほかのshaderに切り替えてみれば割と元の見た目を維持したまま表示されるのですが、肝心の目元、眉周りがMToonでないとうまく表示されませんでした
調べてみようにもUnityのshaderはUE4ではマテリアルで、UE4のマテリアルshaderがUnityでのマテリアルで・・・といった具合でそのあたりの知識が乏しい僕では超えられませんでした
ほかの方法でうまくいかないものかとVRMを.glbにリネームしてwindows10に元から入っていた3Dpeintをつかって
FBXに変換してみると
テッカテカ!?
目周りの問題は消えましたが質感がテカテカと光り、
UE4にインポートしようとすると縮退メッシュだからノードが作れないとエラーを吐き
何一つうまく表示されないという状態です
ということで進捗が退捗と化してしまいました・・・
Twitter上ではものすごくきれいな状態でVRMをUE4にインポートできている方もいらっしゃったので、何らかの方法でやりようはあるのだと思います
しかし僕には何がなんやらさっぱりわからない領域に突っ込んできたのでもうVRoid公式がfbx出力に対応するのを待とうかと考えています
上手くいったという方が居られましたら是非教えてほしいです
ありがとうございました
今回参考にさせていただいた記事
UniVRMで使えるシェーダー - dwango on GitHub