UnityとBlenderで編集したファイルを動かしたい

2019-09-13 Toybox Comments : 2

VRoid、本当に素晴らしいソフトですよね!
テクスチャにイラストを描いてオリジナリティの強い作品を生み出す方々を拝見していると感動を覚えます……!
が、以前私が『hitogata』の動画をアップしたのはご存じでございましょうか。

以下のVRoidの画像と見比べて頂くと分かる通り、髪の毛の色がVRoid製のものとは異なり、ピンク色の影が入らなくなってしまっています。

また、最近のVRoidでは自動でテクスチャの透過部分との境目に枠線が入るようで、エッジなし大好きな私個人としてはちょっぴり気になります……。
そして『hitogata』使用時に本体の首のみに現れるエッジ部分は未使用にすると透過部分にされてしまうらしく、OBS等では背景が髪の毛と首の隙間から見えてしまうのです。

MMDみたいにテクスチャを差し替えたりエッジなしにできないものでしょうか……。
これで髪の毛の広がり方がVRoidと同様になれば私個人としては今の理想地点です。
それにVRoidでエクスポートしたファイルは体と服が一体化しているので、クロスシュミレーションを扱うのならこちらも直したいところです。
そこで、BlenderやUnityを通して編集すればそんな風に作れないだろうかと思い立ち挑戦してみました!!
以下は自分用の奮闘メモになります(笑)

ちなみに私はBlender v2.78のまま使っているので、「VRM_IMPORTER-master」がいつ頃のバージョンなのかは把握しておりません……。
恐らく2.79対応のものがこちら、2.80以降対応のものがこちらとなっているようです。
Blender最新版でも『mmd_tools』は使えるんでしょうかね?

ということで今回使ったものはこちらです。

・VRoidStudio-v0.5.4-p2-win
・Blender v2.78
・VRM_IMPORTER-master
・Unity 2018.3.0f2
・UniVRM-0.53.0_6b07

まずはVRoidStudioから好きなモデルをエクスポートしてVRMファイルを用意します。
そしてVRMを用意する事前でも今でもいいので、エクスプローラーからBlenderのScript>addonsにVRM_IMPORTERを入れておきます。
Blender本体を起動して、ファイル>ユーザー設定>アドオンから有効化しておきましょう。
私のはテスト中の欄に『Import-Export:VRM_IMPORTER』が入っていました。
準備ができたらいよいよVRMファイル投入です!

そうしたらblendファイルとして保存しちゃってください。
blendファイルをBlenderに関連付けしておき、Unityで読み込めるようにしてしまいます。
こちらの方法ならわざわざfbxに保存し直す必要はありません。

ちなみにお洋服と体を切り離したい時は、編集モードで分離したいマテリアル欄を選択して(編集モードに移行すると全て選択されるようなので、一度選択解除をしてからになるのでしょうか?)『P』キーを押し、選択物で分離を行います。

次はUnityでの作業に移るので、UniVRMをインポートします。
そうするとVRMという名前のフォルダが出来上がり、メニューの部分にもVRMという項目が表示されるようになります!
で、このままではファイルを読み込んだ時にごちゃついてしまうのでAssetsの中に新規フォルダを作ってしまいましょう。
私は『Character』という名前のフォルダを作ることにしました。

そのCharacterフォルダには……一番最初にエクスポートしたVRMを入れてしまいます!
ヒエラルキーウィンドウにドラッグして表示させると、とても複雑なピンクの線が描かれていますね……。

Blendファイルもドラッグして読み込んでしまいましたが……なんだか変な色になっていますよ!?

調べてみたところ、どうやらマテリアルと紐付けされていないからだそうです。
Blenderの時はマテリアル表示にするとテクスチャが表示されていたのに不思議だなぁと思ってしまうのでした。
インスペクターからもマテリアルの設定が弄れません……。
こんな時は一度プロジェクトウィンドウから.blendファイルを選択すると、インスペクターに「インポート設定」というものが表示されるので、ここから「外部マテリアルの使用(古い機能)」というものを選択すると弄れるようになるそうです!
これでVRMファイルのテクスチャも利用できるようになりましたが、そもそも私はVRMファイルのテクスチャ内容を差し替えたいので新しく画像フォルダをつくることにしました。
ちなみに新しい機能のほうでも、確かコツコツと「再マッピングされたマテリアル」を弄っていけば編集できるようになったと記憶しています。
ついでなので今のうちにRigをヒューマノイドに変更して適用しておきます。

シェーダーをVRM>MToonに変更してTexture欄に対応する画像をドラッグし、一個一個手作業で直していきます。
ワンピースのように透過したいものはCutoutで上手く対応できましたが、瞳のハイライトだけはTranceparentでないと上手くいきませんでした。

blendファイルの修正が終わったら上のメニュー欄からVRM>UniVRM-0.53.0>Export humanoidを選択します。
設定からAuthorを選択して作成者の名前を入れたら、ExportでVRMに変換してしまいます!

無事に成功したようです。
VRMファイルと一緒にprefabファイルも生成されています。
そうしたらこのPrefabファイルをインスペクターにドラッグして編集していきます。
Blendファイルに変換したからでしょう、VRMエクスポートの時に入力していた設定が全部なくなっちゃってるんですね。
キャラクターの正確なお名前やバージョン、作成者の名前などを入力し、サムネイルの設定とライセンスの確認をしていきます。

それから揺れものなのですが……設定、大変ではありませんか?
私は大変だったので、broken55様の『VRMモデルのSpringBoneをコピーするツールを作りました』をお借りしました!
こちらの「VRMSpringBoneCopy」をインポートするとメニュー欄のVRMのところに「SpringBoneCopy」という項目が追加されるので、元Gameオブジェクト(一番最初に読み込んだVRoid製のVRMファイル)とコピー先ファイル(Blender経由でUni-VRMから作ったVRMファイル)を設定しましょう。

ちなみにBlenderファイルの状態で慌てて設定しようとすると失敗するようです。
先程のようにVRMファイルに書き出してから設定します。

これで複雑なピンク色の線が正常にコピーされたはずです。
なお、ブレンドシェイプ(表情)もUnity上で修正できます。
どうやらVRoidで設定してあったブレンドシェイプの各表情内容は消えてしまうようなので、編集しておきます。

特にSURPRISEDとEXTRAは項目からも消えてしまうので、欲しい時はAdd BlendShapeClipから作成します。
全ての設定が終わったら、Blender経由でUni-VRMから作られたPrefabファイル(今さっきまで弄っていたやつ)を再度VRMに変換します!
これにて作業は終了です!
検索中に見失ってしまったサイト様が何件も存在するのですが、皆様本当にありがとうございました……!!

これでVRoid内にて自動で描画された線を消してオリジナルのテクスチャを使って表示することに成功しました。

ただVワールドではこうした複雑なポーズをとると髪の毛が貫通してしまうようです……。
当たり設定が消えちゃうんですかね?

※そんな奇特な方はいらっしゃらないかと思いますが、当サイトのキャラクターデータについて自作発言はなさらないで下さいね……!

Tag : , , ,

Comment

Leave a Reply

メールアドレスが公開されることはありません。