【Blender】Blenderで作った3DモデルをFaceRigにインポートする方法【FaceRig】
- 2020.03.19
- Blender
どうもこんにちは、ちはるです。
Blenderを触り始めて、ちょうど1ヶ月ほど経った今日この頃。
数日前に、Blenderで作成した簡単な3DモデルをFaceRigにインポートしてみました。
今回は、Blenderで作った3DモデルをFaceRigにアバターとしてインポートする方法と、直面したエラーおよびその解決方法を、忘備録も兼ねて紹介していきます。
3DモデルをFaceRigにインポートした&この記事を書こうと思った経緯
ヒトははにわに飢えている
そもそも僕は世に言うVtuberというものに興味がなく、これまでにもキズナアイとVB*1の動画をちょっと見たことがある程度のものでした。
そもそも、バーチャルに限らずYouTuberの動画というものを全然観ないという。
ただしらっこ侍さんは除く。皆も観よう(ダイマ)
そんな僕ですが、先日以下のはにわを作ってみたところ、僕の中で長らく眠っていたはにわ魂が燃え上がってしまい、「これ動かしてぇなぁ」となった次第。
出土しました。#blender #b3d #はにわ pic.twitter.com/O3kFJZaLFu
— ちはる/Chiharu (@Chiharu_free) 2020年3月15日
んで、思い立ったら動かずにいられない性分なので、すぐさまいろいろ調べてみて、そこで初めてFaceRigというソフトを知り、その日のうちにはにわにボーン(以下、アーマチュア(Armature))をぶち込んでアバターとしてインポートし、Webカメラで自分の動きを追随させるところまで実現させました。
あまりにも技術的情報がない
これだけ言うとかなり簡単に出来てしまったように見えるかもしれませんが、コレが結構苦戦しました。
『Blender モデル FaceRig インポート』とかで調べてみても、技術的情報がほっとんど出てこないんです。
Blenderで作った3Dモデルだって言ってるのに、なんかLive2Dとかいう物を使ったインポート方法ばかり出てきて「Blenderだって言ってんだろ……(ビキビキ)」と。
「俺が動かしたいのは可愛い女の子じゃなくてはにわなんだよ……(ビキビキ)」と。
アバターのインポートに限らず、企業でBlenderを使ってるところがまだまだ少ない(らしい)こともあってか、日々技術的なことを調べるなかで、まだまだ日本におけるBlender周りの技術は未熟な印象を受けていた*2のですが、今回はそれが輪をかけて酷かった。
なので、Blender製モデルのインポート成功例として、僕もみんな大好き日本語リファレンスを提供しよう、と決意したのでした。
まずはこの動画を観るべし
Blenderで作ったモデルをFaceRigにインポートしたい場合、まずはこの動画を観てみて下さい。
なお、この動画はすでにモデルが完成していて、アーマチュアの設定も終わっていることが前提で話が始まりますのでご注意を。
Part1からPart3まで観れば、その時点でインポート完了です。
いきなり他力本願じゃないかって?
そうだよ。
誰だって最初はそうだろ?
んで、この分かりやすい解説動画を拝み倒しながら参考にしただけでインポートが完了すれば以下の内容は読み飛ばしてもらって大丈夫です。
以下からは、解説動画に従ったうえで遭遇したエラー等と、その解決方法を書いていきます。
ちはると愉快なエラーたち
Unable to export meshes more than 65535
このエラーは、モデルのGeometryデータをインポートする段階で出た(たしか)もの。
コイツはいったい何を言っているのかと言うと、モデルのポリゴン数が多すぎるぞ、と言ってるわけです。
本来、はにわを作った段階ではまさかFaceRigとかいう物にぶち込むつもりはなかったので、Subdivision Surfaceやら何やらを使ってかなり細かくモデルを作っていたわけですが……、このせいで、ポリゴン数が65535を超えたため怒られました。
解決法1:モデルの頂点を結合させる
ポリゴン数を減らす手段として、まずはモデルの頂点を結合させる手段が挙げられます。
手動で頂点の整理が可能なので頂点結合がモデルに及ぼす影響を確かめながらポリゴン数を削減することが可能です。
頂点結合の例1 pic.twitter.com/IRd6gshtVN
— ちはる/Chiharu (@Chiharu_free) 2020年3月19日
頂点結合の例2 pic.twitter.com/nJCO9FMz77
— ちはる/Chiharu (@Chiharu_free) 2020年3月19日
こういう事ですね。
ただその反面、手動がそもそも大変ですし、メッシュが滅茶苦茶細かくなってる場合は正直言って無理だと思います。
解決法2:Decimateモディファイアを使う
Decimateモディファイアは、オブジェクトの頂点を削減してポリゴン数を減らすことが可能なモディファイアです。
Decimateモディファイアによるポリゴン数削減の例 pic.twitter.com/YeaSa6NAu0
— ちはる/Chiharu (@Chiharu_free) 2020年3月19日
ただ、この動画を観てもらうとわかる通り、自動で頂点を削除するので、最悪の場合オブジェクトの形が崩れます。
解決法3:オブジェクトを部分的に削除する
ポリゴン数が多いなら、オブジェクトを削れば削るだけポリゴン数が減ります。
FaceRigのアバター追加のようにオブジェクトの人目に触れる部分が限られている場合は、オブジェクトのカメラに写り込まない部分をごっそり削除してやれば、簡単にポリゴン数削減が可能です。
言うまでもないことですが、カメラに写り込む部分を消したら何だか残念なことになってしまうので、そこの見極めには注意しましょう。
最終手段のようにも見えますが、解決法2に比べて格段にモデルの見た目を損なわずにポリゴン数を減らせます。
文字通り損なわないのは見た目だけですが。
アーマチュアの命名法について
色々調べてみるとモデルに加えるアーマチュアの命名について、FaceRig側の規則に則った命名法を用いなければならない、といった情報が散見されますが、そんなことはありませんでした。
普通にデフォルトの「Bone」という名前でいけます。
ただし、名前に「.(ドット)」が含まれているとエラーを吐きます。
Blenderでオブジェクトを「Shift+D」で複製したりすると「(オブジェクト名).001」って名前が付くじゃないですか。
コイツに大変苦しめられました。
皆も気を付けよう。
アーマチュアはアプライするべからず
これはバグというより、上記のアーマチュア・ドット問題と戦う中で知ったことです。
アーマチュアモディファイアですが、コイツをアプライしてからGeometryデータにExportすると、モデルが動かなくなります。
これは単純にBlenderのアーマチュアの仕様の問題で、アーマチュアをアプライすると、その時点でアーマチュアが固定されるため起こった問題のようです。
僕はアーマチュアをアプライしてExportした結果、問題なくインポート出来てしまったので大喜びしたのですが、いざFaceRig上で表示したところ、アバターがピクリとも動かず絶望しました。
アプライした結果、上記の「〇〇〇.001」みたいな名前のアーマチュアがなくなりインポート自体は可能になったが、肝心のアーマチュアが固定されてしまっているので動いてはくれない、ということです。
なので、アーマチュアモディファイアはアプライしないままExportしましょう。
おわりに
以上が、今回ぶち当たった問題と解決方法の全てです。
恐らく場合によって他にもエラーがたくさん出そうな作業ですが、幸い、この程度で済みました(血を吐きながら)
そうして作り上げた動くはにわ、勢いだけでこんな感じのものまで作ってしまいました。
いやはや、勢いって恐ろしいですね。
ということで、今回の記事はこの辺で。
ではでは、ここまで読んで下さり、ありがとうございました。
-
前の記事
Blenderはたのしいぞい 2020.03.14
-
次の記事
日本百名山・安達太良山登山レポート 2020.03.30