MRが楽しい

MRやVRについて学習したことを書き残す

モディファイア付きオブジェクトのシェイプキーがUnityに取り込めない場合の対処

本日は Unity と Blender の技術調査枠です。
Blender で作成したモデルのシェイプキーを Unity に取り込めない際の確認点と対処法についてです。

以下の記事に関連します。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

出力の設定の「モディファイアを適用」

fbx 出力時に「モディファイアを適用」機能を用いてメッシュ系のモディファイアを適用すると、Unityへのシェイプキーの取り込みに失敗します。
サンプルとして、以下のような「ミラーモディファイア」と「辺分離モディファイア」を持つオブジェクトを用意します。
f:id:bluebirdofoz:20181103171824j:plain

これらのオブジェクトには以下の通り、シェイプキーを設定しています。
f:id:bluebirdofoz:20181103171838j:plain

この状態で fbx 出力の設定の「モディファイアを適用」にチェックを入れて出力してみます。
f:id:bluebirdofoz:20181103171849j:plain

出力した fbx ファイルを Unity に取り込みますが……。
f:id:bluebirdofoz:20181103171859j:plain
この通り、シェイプキーが全て消えた状態で取り込まれてしまいます。

本来、シェイプキーを設定したオブジェクトにメッシュ系のモディファイアは適用できません。
出力の設定の「モディファイアを適用」が有効だと、シェイプキーを削除した上でモディファイアが設定されてしまう訳です。
f:id:bluebirdofoz:20181103171937j:plain

問題の回避方法

このため、シェイプキーを作成する前にミラーモディファイア等を適用しておくことが推奨されます。
しかし、後々のモデル修正を考えると、不可逆的なモディファイアの適用はあまり先に実施したくありません。
そこで、以前紹介した Apply Modifier アドオンが役立ちます。
bluebirdofoz.hatenablog.com

Apply Modifier アドオンを使えば、モディファイアを設定したままシェイプキーを作成しておき、出力前にシェイプキーを適用することができます。
今回のサンプルだと、出力前に「ミラーモディファイア」と「辺分離モディファイア」の両方を適用します。
f:id:bluebirdofoz:20181103172420j:plain

適用したものを同じく fbx 出力してみます。
なお、メッシュ系のモディファイアを全て適用した後なら「モディファイアを適用」機能を有効にしていても問題ありません。
f:id:bluebirdofoz:20181103172442j:plain

出力した fbx ファイルを改めて Unity に取り込むと……。
f:id:bluebirdofoz:20181103172452j:plain
この通り、シェイプキーが左右対称のシェイプキーとなって正常に取り込まれました。

シェイプキーがUnityへの取り込みに失敗する場合、モディファイアの設定が適切か確認してみましょう。