見出し画像

VRMモデル作成時のヒント~blend shapeの競合~

導入

こゃ~ん(挨拶)

突然ですけど、VRMモデルを出力していてこんな経験はありませんか…?

画像1

アイエェェェェ!?ナンデ!?顔面ナンデ!?

「せっかくVRMを作ってうちの子とお出かけしたり、最近話題のVRM対応ゲームをやろうと思っていたのに…」と嘆く前に、少し見直してみませんか?もしかしたら解決できるかもしれません。

実際この現象で私はかなり詰まってしまっていろいろ調べたので、もし同じ現象で困っている人がいれば!というのと、私が忘れないようにということで書き残しておくことにします。

VRMの出力の仕方がわからない、という方はhttps://vrm.dev/how_to_make_vrm/を参考にしてみてください。公式からかなりわかりやすく説明されています。(Unityが少し触れないと難しいかもしれませんがこの記事を読んでいる人ならおそらく理解できる内容だと思います)

なんでこんなひどいことに…?

ここでまずはなんでこんなことになったか、確認してみましょう。というわけでConsoleをチェック

画像2

ワーナンダカエイゴバカリデヨクワカラナイナー(棒

ここでそっとUnityを閉じてしまわないように。きちんと原因が書かれていますね。

画像3

ここですね。"Blend shape name already exists."つまり、「そのブレンドシェイプの名前は既に出力されている」--どうやらシェイプキーが重複しているようです。元のモデルを見てみましょう。とりあえず出力に失敗してしまったモデルは消してしまって構いません。

とりあえず赤線を引いたエラーの一つ上に "Face_Mesh.baked.Mayu_Smail"とあるので顔のメッシュを見ていきましょう。

画像4

あっ…!?同じ名前がある!?

これで原因ははっきりしました。同じメッシュの中に同じ名前のシェイプキーが入ってしまっているとどうやらVRMへの書き出しはできないようです。(VRMモデルの表情として使うかどうかにかかわらず書き出しに失敗するようです。自作モデルでVRM化する方はお気を付けください)

修正作業

とりあえずblend shapeを追加、削除するのはUnityだけではできません。モデリングをソフトでサクサクっと直していきましょう。ここではblenderを使っていきましょう。使用するバージョンは2.90.1です。

画像5

blenderワカランまじむり…

なぜかボーンとメッシュが乖離してるし、立ってるはずなのに寝っ転がってるしどうなってるのこれ…?
じつはこれ、モデリングソフトによってx,y,z軸の定義が違うため、よくあることらしいです(早く統一してくれないですかね…?)

画像6

画像7

たしかにこうやって見るとどちらのモデルも向いている方向は合っているんですよね…。とりあえずUnityで使えるようにblenderでまずモデルを立ち上がらせてあげましょう。

画像8

ドラッグでメッシュだけ選択状態(オレンジ色)にして…

画像9

画面左上の「オブジェクト→トランスフォーム→Align to Transform Orientation 」を選択します。(日本語化しているはずなのになぜか英語のままでした…。「方向を変換するように調整」(Google翻訳)だそうです。こうしてやると…?

画像10

立った!モデルが立った!
ここまでこればblenderの作業はほとんどないようなものです。

画像11

blenderのヒエラルキー(デフォルトだと右上)を開いて

画像12

該当するメッシュのオブジェクトデータプロパティ(緑色の逆三角形のようなアイコン)をクリックしてシェイプキー一覧を表示します。
blender上だと競合しているものは後ろに数字が振られていますね。

画像13

今回は競合なので、消したいシェイプキーを選択して(グレーになります)
、そのままマイナスボタンを押せば完了です。念の為以下で操作説明。

1、シェイプキーを追加します
2、選択されているシェイプキーを消します
3、選択されているシェイプキーを一つ上に移動します
4、選択されているシェイプキーを一つ下に移動します
5、シェイプキーを合成したり、転送したりいろいろできます?(メニューが開きます。今回は使用しないんで割愛)

そうしたらUnityにもっていく準備をしましょう。

画像14


画面左上の「ファイル→エクスポート→FBX」を選択

画像15

なにやらいっぱい出てきますが、このまま出力するとUnityで少し困ったことになるので設定を変更します。

画像16

以上のように設定してください。上のオブジェクトはshift+クリックで複数選択することができます。

あとは出力したFBXモデルを使ってVRMモデル出力を試すと…?

画像17

やったー!顔面が消えなくなった!

あとはFBX出力の手順に従って揺れものやシェイプキーを設定してあげて、正規化してあげてください。


おわりに

いかがだったでしょうか。同じ症状で困っている人っているのか…?という気はしますが、導入でもお話しした通りおもに自分向けの備忘録となっています。しかし、誰かの役に立てれば幸いです。

それではよきVRMライフを⚙



この記事が気に入ったらサポートをしてみませんか?