本日は Unity と Blender の技術調査枠です。
Blender で作成したモデルのシェイプキーを Unity に取り込めない際の確認点と対処法についてです。
以下の記事に関連します。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com
出力の設定の「モディファイアを適用」
fbx 出力時に「モディファイアを適用」機能を用いてメッシュ系のモディファイアを適用すると、Unityへのシェイプキーの取り込みに失敗します。
サンプルとして、以下のような「ミラーモディファイア」と「辺分離モディファイア」を持つオブジェクトを用意します。
これらのオブジェクトには以下の通り、シェイプキーを設定しています。
この状態で fbx 出力の設定の「モディファイアを適用」にチェックを入れて出力してみます。
出力した fbx ファイルを Unity に取り込みますが……。
この通り、シェイプキーが全て消えた状態で取り込まれてしまいます。
本来、シェイプキーを設定したオブジェクトにメッシュ系のモディファイアは適用できません。
出力の設定の「モディファイアを適用」が有効だと、シェイプキーを削除した上でモディファイアが設定されてしまう訳です。
問題の回避方法
このため、シェイプキーを作成する前にミラーモディファイア等を適用しておくことが推奨されます。
しかし、後々のモデル修正を考えると、不可逆的なモディファイアの適用はあまり先に実施したくありません。
そこで、以前紹介した Apply Modifier アドオンが役立ちます。
bluebirdofoz.hatenablog.com
Apply Modifier アドオンを使えば、モディファイアを設定したままシェイプキーを作成しておき、出力前にシェイプキーを適用することができます。
今回のサンプルだと、出力前に「ミラーモディファイア」と「辺分離モディファイア」の両方を適用します。
適用したものを同じく fbx 出力してみます。
なお、メッシュ系のモディファイアを全て適用した後なら「モディファイアを適用」機能を有効にしていても問題ありません。
出力した fbx ファイルを改めて Unity に取り込むと……。
この通り、シェイプキーが左右対称のシェイプキーとなって正常に取り込まれました。
シェイプキーがUnityへの取り込みに失敗する場合、モディファイアの設定が適切か確認してみましょう。