VRoidで作ったVRMをUE4に持っていくために頑張ってみたけどダメでした

VRoidで作ったキャラ

f:id:otoko135:20180912050200j:plain

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」を使います

 

 こちらの動画を参考にさせていただきました

 

www.youtube.com

 

アセットストアから「FBX Exporter」をインポート

Unityのシーン上にVRMからインポートしたprefabを配置し、ヒエラルキーウィンドウ(Unityの左側にあるオブジェクトに一覧みたいなやつ)から右クリック、Export to FBX...を選択、Export

 

僕はここで詰まりました・・・

動画ではうまくいっていると思い同じような手順を踏んでもうまくいかない

いろいろ設定をいじってみてもよくわからない、エラーログを読んでも正直チンプンカンプン・・・

 

そこで上の動画の説明欄にあるのですがUniVRMのバージョンを落としてみることに

動画と同じ「UniVRM ver 0.40」にしてみたところ一発で通りました

 

良かったと思ったのも束の間で出力したfbxをUE4にインポートしてみると

f:id:otoko135:20180912053134j:plain

画像は後から用意したものなので これはUE4ではありませんがこんな感じで表示されていました

・・・えらい目の周りが暗いな

また調べてみると

peroon.hatenablog.com

こちらのブログでも似たような状態になっていることが分かりました

さらに恐らくは透明度が反映されていないのが問題ではないかとのこと

 

僕、マテリアルもぶっちゃけよくわかんないんですよね笑

 

途方に暮れてもしょうがないので調べてみると

 

cgtracking.net

このようなブログ記事がありました

 

要はtextureの出力透明度をマテリアルに反映できれば行けそうだと

 

UE4にインポートしたスケルタルメッシュをUE4で開いてみると左側のアセット詳細の所にMaterial Slotsという欄がありますので、そこから黒くなってしまっているマテリアルをダブルクリックしてマテリアルエディタを開いていきます(マテリアルスロットの下のエレメントという項目のハイライトやアイソレートを使うとわかりやすく表示できて便利でした)

 

マテリアルエディタを開いてみるとマテリアルノードに3つほどTexture Sampleというノードがそれぞれ、ベースカラー、エミッシブカラー、ノーマルの項目に接続されています

 

ベースカラーは読んで字のごとくで、エミッシブカラーは発光色、ノーマルはノーマルマップ(たしか凸凹表現するやつ)のことだと思います

 

UE4の透明度はオパシティという項目で設定するそうなのですがオパシティの文字が暗くなっている・・・

つなげても反映できないってことなんでしょうきっと

 

また調べてみると

 

【4.14】マテリアルでオパシティとメタリックを同時にいじりたい - UE4 AnswerHub

このような質問がすでにUE4のAnswerHubにありました

 

上の記事の通りマテリアルのブレンドモードをTranslucencyにするとオパシティは有効になります

 

そうしてマテリアルエディタでtextureの透明度を反映させてやると

f:id:otoko135:20180912050202j:plain

ベースカラーが接続されているSample Textureをオパシティにも接続する

マテリアルの黒かった部分が透明になりました!

 

それを黒くなっていた目の周りと眉の周り、それぞれ設定してやると

 

f:id:otoko135:20180912050205j:plain

 

・・・君なんか白くない?

 

まあいいや、顔が見えただけでも一歩前進です。

今日は疲れたので続きはまた明日にします

 

*****************************

 

というわけで翌日から頑張ってみたのですがどうにも素人の僕には難しすぎました

 

f:id:otoko135:20180913045342j:plain

Unityで確認してみる

画面右部の“Shader”の項目の右にあるVRM/MToon

どうもこれが厄介なようで、現状UE4ではこのshaderの設定が反映されないようなのです

 

f:id:otoko135:20180913045338j:plain

Unityの中でほかのshaderに切り替えてみれば割と元の見た目を維持したまま表示されるのですが、肝心の目元、眉周りがMToonでないとうまく表示されませんでした

 

調べてみようにもUnityのshaderはUE4ではマテリアルで、UE4のマテリアルshaderがUnityでのマテリアルで・・・といった具合でそのあたりの知識が乏しい僕では超えられませんでした

 

ほかの方法でうまくいかないものかとVRMを.glbにリネームしてwindows10に元から入っていた3Dpeintをつかって

f:id:otoko135:20180912053134j:plain

 

FBXに変換してみると

f:id:otoko135:20180913045349j:plain

 

テッカテカ!?

 

目周りの問題は消えましたが質感がテカテカと光り、

f:id:otoko135:20180913045345j:plain

f:id:otoko135:20180913045348j:plain

UE4にインポートしようとすると縮退メッシュだからノードが作れないとエラーを吐き

何一つうまく表示されないという状態です

 

ということで進捗が退捗と化してしまいました・・・

 

Twitter上ではものすごくきれいな状態でVRMUE4にインポートできている方もいらっしゃったので、何らかの方法でやりようはあるのだと思います

 

しかし僕には何がなんやらさっぱりわからない領域に突っ込んできたのでもうVRoid公式がfbx出力に対応するのを待とうかと考えています

 

上手くいったという方が居られましたら是非教えてほしいです

ありがとうございました

 

今回参考にさせていただいた記事

 

www.pixiv.net

 

120/偽葵/青ユニ on Twitter: "好みの問題ですが、髪はLightingのMatCap削除するとテカテカ感は防げるかもですね。服はUnlitにしました。もしかしたらVRoid側でちゃんと調整してあげれば良い話かも?… "

 

UniVRMで使えるシェーダー - dwango on GitHub