巨大ヒロイン・コミック計画

3DCGを使ってデジタルコミックの電子書籍化をめざすブログ

VRoidで新キャラを作りました日

2019年04月19日 18時28分54秒 | 3D作業

 

 VRoidで作成したデジタル漫画用の新キャラ(3Dモデル)をMayaに読み込みました。

 

 

 今回はその作業量を出来るだけ少なくした、お手軽な変換過程をレポートしたいと思います。


 なお、この方法は私の勝手な解釈による方法なので、これが正解というわけではありません。あらかじめご了承ください。

 

 というわけで、始めましょう。


 まずはVRoidで好きなキャラを作成します。
 このとき、UVのスナップショットを保存しておくと、あとでUVを確認するときに便利です。
 ちなみに、こんな感じで保存しておきました。

 顔のUVになります。

 

歯や口の中、舌のテクスチャとUVです。

 

白眼の部分です。

 

白くなっちゃっていますが、アイラインです。

これは、あとでPhotoshopやクリスタなどを使って、黒っぽく塗り直します。

 

まつげになります。

これも同様に、あとで黒っぽくします。

 

眉毛になります。

 

瞳になります。

このキャラは黒猫のフィゾが人間の女の子に化けた設定なので、目の色を黒猫のときと同じ黄色に塗りました。

 

瞳の上に被せるハイライトになります。

 

髪のテクスチャです。

こちらも白くなってしまっているので、あとで黒に塗り直す必要があります。

 

髪の毛に付けたリボンのテクスチャになります。

 

ボディになります。

 

服の部分となります。

私は、これの透明部分を塗りつぶしてワンピースに変更することに決めました。

 

ブーツの部分になります。

 

 続いて、VRoidをTポーズにします。
 Mayaは2017のバージョンあたりからTポーズ以外でもスキンバインドが可能になったと思うのですが、今回はMaya2015を使いますのでTポーズにしてから書き出します。

 

 

◆Tポーズのやり方
・「撮影・エクスポート」のタブ⇒「ポーズ&アニメーション」に入ります。
・右パネルの一番上にあるプルダウンメニューから「ポーズ」を選択します。
・手首を上げてTポーズに。腕を真っ直ぐにさせるには、画面のフレーム線に近づけて、直線に沿ったポーズにします。
・手はコントローラーを引っぱると、真っ直ぐになりやすいです。
・指は、右パネルの「左手」「右手」のプルダウンメニューから「開く」を選択します。

 他にはキャラの色を変更するならテクスチャを塗ったりしておきます。その方法はここでは省略します。

 

 そうやってキャラが完成したらエクスポートです。

・上部タブの「撮影・エクスポート」⇒「エクスポート」を選択します。
・VRMデータを書き出します。
・髪の毛メッシュは統合しないでおきます。
・裸の状態と衣装を付けたバージョンの二通りを書き出します。これは別の衣装に着せ替えるときのために、そうしておきます。

 

 本当は、ここで「四角ポリゴンとして書き出す」なんていうオプションがあると嬉しいのですが……それは、今後のVRoidの開発に期待しましょう。

 

 VRM形式で書き出したら、Blenderに読み込みます。
 Blenderにインポート用のアドオンが出ていますので、それを使います。

 

◆VRM_IMPORTERの導入
https://github.com/iCyP/VRM_IMPORTER

上記リンクからVRM_IMPORTER-master.zipをダウンロードします。


◆書き出し(FBXとCOLLADA)
・Blenderに読み込んだら、FBXとCOLLADAで書き出し(エクスポート)をします。
・FBXとCOLLADAの2種類を書き出します。
・左パネルの下にはエクスポートのオプションがありますが、デフォルトのままで良いでしょう。


 ここで、なぜFBXだけではなくCOLLADA形式でもエクスポートするかについて説明します。

 結論から言いますと、FBXでの書き出しはエラーが多くて、あまり使えないからです。

 

 Mayaに読み込んだFBXファイル。

 最初、何が爆発的に膨張しているんだろうとビックリしました。

 これはスケルトンのジョイントが巨大化しているだけでした。

 でも、一瞬何が起きたんだろうと驚きますね……。

 他にも体がよじれているケースもありました。

 これを解いて使うのは、修正が大変そうです……。

 逆にCOLLADA形式は安定していて、ほとんどパーフェクトに近い状態で使えます。

 このように、COLLADAだとキレイな状態で読み込めます。

 だったらCOLLADAだけで済ませればいいのですが、残念なことにCOLLADA形式は表情を変えるシステム、ブレンドシェイプが受け継がれないのです。
 ブレンドシェイプがちゃんと受け継がれるのはFBX形式のほうですので、FBXはブレンドシェイプの機能をCOLLADA形式のほうに移植するために書き出します。


◆Mayaに読み込み後の作業
・正面を向かせます。FBXもCOLLADAも横を向いた状態で読み込まれるので、正面を向かせます。
・「Root」を回転させるため、アウトライナで選択します。
・回転X「90」、回転Z「-90」⇒「-180」と、チャンネルBoxに入力します。
・このあとフリーズもリセットも出来ません。仕方ありません。ここは妥協します。

・補足ですが、ヒストリーの削除も頻繁に行うのは危険です。顔の位置が変な場所に移動してしまったり、ボディも影響を受けて勝手に複製されたり予期しないエラーが発生する確率が高いので注意が必要です。
・デフォーマ以外のヒストリ削除はしない事が大切です。
・どうしてもヒストリー削除をする場合は、新規作成のファイルに読み込んで、他に影響を受けるものが何もない状態でヒストリーを削除しておきます。

 

◆ブレンドシェイプの移植
・FBXで読み込んだら、顔だけのパーツを書き出します。
・本当はそれだけでいいのですが、私は何かアクシデントがあったときに備えてモーフターゲットの予備まで作成します。
・モーフターゲットはキャラクターの足元に小さく存在しているのですが、これを大きさや位置を戻したりするのが面倒だと思いました。

 このように、足元に小さくブレンドシェイプのモーフターゲットが眠っています。

 まるで古代遺跡の彫像でも発見したような気分になります……(笑)。

 これを使う気にならなかったのは、何かまた新しいエラーに遭遇するのではないかと、嫌な予感がしたからです。

 手間がかかっても、確実な方法でいきたい……と、私は考えました。

 

・というわけで、私はブレンドシェイプで変形させた顔をコピーしてリネームし、モーフターゲットを新たに作成していくことにしました。大変な手間ではありますが、そっちのほうが自分に向いていて楽だと思ったのです。

 

・変形の項目をひとつずつ実行してコピーする……地味で面倒くさいのですが、コツコツとやり続ければいずれ終わります。少しの辛坊です。

 

◆モーフの複製(FBXで読み込んだほうで)
・まずは複製する前の顔パーツを選択して、チャンネルボックスでロックされた項目を右クリックして、ロック解除します。スキンバインドが外れても気にせず続けます。
・回転X「-90」、全スケール「100」になっていますので、トランスフォームのフリーズをかけます。
・すると回転Xの数値がリセット出来ないので、その項目だけを選択して右クリック⇒「フリーズ」⇒「回転」で強制的にゼロにします。

・これで準備が出来ました。
・ブレンドシェイプで、ひとつずつ表情を変形させて複製します。コピーしたらリネームして、グループのフォルダに入れていきます。リネームは自分がわかりやすい名前に変更すると良いと思います。
・その作業が終わったら、モーフターゲットと顔のパーツを書き出しておきます。これでFBXで読み込んだファイルは、お役御免となります。

 

 


◆COLLADA形式で読み込んだファイルでの作業
・ブレンドシェイプのデータが受け継がれていないデメリット以外は、COLLADA形式で書き出したデータがエラーも少なく使い勝手も良いです。


・COLLADA形式のファイルに、FBXのファイルから抜き出した顔パーツのデータ(ブレンドシェイプのモーフターゲットを含む)を読み込みます。
・このとき、COLLADAの顔パーツに読み込んだブレンドシェイプのモーフターゲットがうまく適用できるかテストします。
・うまく適用できたら問題ありませんが、もしエラーが出た場合は、FBX側から書き出した顔のパーツのほうにブレンドシェイプを適用し、その顔とCOLLADA側の顔を入れ替えます。
・入れ替えるのは、ブレンドシェイプを適用した顔をスキンバインドするだけです。ウエイトはHeadのジョイントに100%のウエイトで塗りつぶせば大丈夫です。
・入れ替えたら、COLLADA側の顔は非表示にするか削除してしまいます。

 

◆マテリアル調整

・VRoidのモデルをMayaに読み込んだときにマテリアル関係はあまりうまく変換できていないケースが多いです。

 

・マテリアルを調整していく方法もありますが、私の場合はトゥーンシェーダを使うので、ほとんどマテリアルを貼り替えることにしました。

・まずはUVの調整からです。複数のUVが重なった状態になっているので、それを解いていきます。

 

 

◆重なったUVを別々にする
・UVエディタ上で右クリック⇒「シェル」モードにして、ビューを確認しながらUVのパーツを選択します。

 

・このとき、VRoidのUVをスナップショットとして保存した画像を確認しながら、テクスチャ1枚にどのパーツが含まれているかを調べます。調べ終えたら、テクスチャ1枚に収められているパーツをすべて選択していきます。

 

・選択したら、UVエディタ⇒「ポリゴン」⇒「UVをUVセットにコピー」⇒「新規UVセットにコピー」⇒オプションで名前を入力します。名前は、そのUVパーツが顔のどの部分なのかをわかるような名前にすると良いでしょう。例えば目なら「Eye」とか。

 

 

 


・新規UVを作成したら、「UVセット」から元のUV(複数のUVが重なった状態のUV)に戻り、また別の重なりパーツをシェル選択して、新しいUVに移していきます。

・これらの作業は、テクスチャを何度も貼り直したりテストするときにパーツの選択が迅速に処理できるので行っています。しかし、テクスチャを一発で決められる場合は、手っ取り早くテクスチャをすぐに貼ってしまったほうが良いでしょう。

・パーツを選択したら右クリックしてサブメニューから「新しいマテリアルの割り当て」を選びます。その中から新規マテリアル(Lambertなど)を選択して、テクスチャを貼っていきます。

・この作業と平行して、テクスチャを調整します。
・主に直さないといけないのは、透明マップを使うテクスチャ(眉毛やまつげなど)です。
・VRoidで使われていた基本色のカラーが書き出しの際にデータに受け継がれず消えてしまうようなので、テクスチャを直して消えた基本色を復活させます。
・フォトショップやクリスタなどでテクスチャを開き、真っ白になってしまっている眉毛などを黒く塗ります。それ以外の領域は透明色のままにします。PNG形式で保存します。

 まつげに色を付けました。フォトショップやクリスタを使えば簡単にできます。

 

 眉毛も同じように色を付けました。

 髪のベース部分も色を付けました。


◆もしUVがフェースごとにバラバラになっていた場合…
・別のソフトからデータをインポートしたら、UVがバラバラになってしまっていることがあります。

 

 このようにパーツではなく、三角ポリゴンがひとつしか選択できない状態がたまにあります。

 変換がうまく行ってないケースですが、UVがつながってなくてバラバラになってしまっています。でも、UVマップとしては生き残っているので、マージすれば復活できそうです。


・UVはフェースごとに分かれてしまっていて、アイランド(一塊)になっていないケースもあり得ます。そんなときの対処法です。

・まずはUV選択モードにします。
・UVを選択し、「ポリゴン」⇒「UVのマージ」を実行。
・これでUVシェルとして選択できるようになります。


 テクスチャの準備も整ったら、モデルに新規マテリアルを作成しながら貼っていきます。

 この工程は、顔がだんだん生き生きとしてくる過程を見てるようで、とっても楽しいのです。まさにメイクアップという感じで…。

 というわけで、以下にその過程を記録いたしました。

 徐々に出来上がっていくプロセスを、ぜひご覧ください。

 

 

 

 

 

 

 

 

 

 

 

 

 

 というわけで、キャラの色が決まっていくと……なかなか良い感じになってきます。

 次はリグの作成になります。

 

◆コントロールリグの設定

・HumanIKのパネルを開き、「作成」⇒「コントロールリグ」⇒「定義」を押します。
・全身図の骨をクリックして、該当ボーンをクリックして定義していきます。

 

 Tポーズの人体図が右のパネルに出ますので、各関節をクリックしてリンク(定義)させていきます。

 

 スケルトンのみの表示にしたほうがやりやすいので、骨以外を非表示にしました。

 

 まず人体図の足をクリックして、それに該当するモデルの骨をクリックします。

 

 片側だけ選べば、反対側は自動でリンク(定義づけ)をしてくれます。

 

 両手の指も定義していきます。

 

・中央地点の原点(足元のセンター)はボーンの「Root」を選択しても、ロケーターを作成して選択しても結果は同じなので、どちらかはやりやすいほうで。ただしキャラクタを移動すると「Root」のジョイントだけが原点に乗って追従しないエラーが起きます。これは原因はまだ不明ですが、静止画の制作では不都合がなさそうなので妥協してそのままにしました。

・定義が終わったら、HumanIKのアイコンを押して「作成」⇒「コントロールリグ」を実行します。

 

 リグが自動で作成されます。

 プロは自家製のリグを独自に開発して使っているそうですが、大人の趣味として3Dをやっている私には、このHumanIKのリグで充分なのです。

 慣れると、とっても使い勝手が良いので、私は気に入っています。

 

・名前の変更はHumanIKのアイコンを押して「編集」⇒「定義」⇒「名前の変更」で行います。

 

 

 名前は、そのキャラクター名を入力すると良いでしょう。

 

・他の設定としては、アトリビュートの「フロアコンタクト」で足のフロアコンタクトをオンにします。地面を貫通しなくなるのでポーズ作りがやりやすくなります。
・アトリビュートの「ソルビング」で肩補正に数値を入れます。手を挙げると肩が盛り上がる仕組みなのですが、VRoidでは骨の構造が違うのか、あまり効果がありません。最大の1にしても同じのようですので、これはVRoidの仕様変更があったときに効果が出るかもしれませんので、のちの開発に期待しましょう。

 

◆セカンダリーコントロールリグの作成
・補助となるリグも作ります。具体的に言いますと、髪の毛や手の指、スカートなどを動かすためのリグになります。

 

・NURBSカーブの円形をコントローラーとして使って、ドリブンキーでポーズを登録していきます。
・最初に登録すると、次回からコントローラーをちょっと動かすだけでいろんなポーズが出来るので重宝します。
・やり方は長くなるので割愛します。ほとんど基本の講座で出ています。


 あとはサブディビジョンプロキシをモデルに適用してスムーズをかけ、pfxToonの作成ですが……三角ポリゴンを四角ポリゴンに直さず、そのまま使ってしまっているのでエラーが出てうまくいきませんでした。
 特に髪の毛は三角ポリゴンのままだとスムーズをかけると、髪の房がギザギザ(ドット荒れのような形状)になったり、顔のパーツはスムーズの機能がスキップされて受け付けなかったりします。
 ここはサブディビジョンプロキシをあきらめて、スムーズをかけないままで使うしかないようです。
 もし時間があって、メインで使うキャラなら、三角ポリゴンを四角ポリゴンに直して(ZBrushのZリメッシュなどで)、UVのやり直し、スケルトンの構築もし直し……と、大工事を始めてみてもいいかもしれません。
 三角ポリゴンを四角ポリゴンに直すと、UVが壊れやすく、最悪は消滅します。そこも直しておくと良いでしょう。
 結局はどこまで手間暇をかけるかなのですが、そこはスケジュールなどとの相談となるのでしょう。


 以上、急ぎ足ですが、VRoidで作ったキャラをMayaで使うための方法論その1でした。
 また新たなやり方が発見できたらレポートさせていただこうと思います。

 それでは!

 

 

 

 



最新の画像もっと見る