今回はBlenderでシェイプキーに登録した顔の表情を、Unityで操作してみようと思います。
まずはUnityにBlenderのデータを入れる前にシェイプキーの値を0にしておきます。
そしたらデータを保存してUnityに投入します。
UnityにBlenderのデータを入れる方法はこちら
Blenderで作った3DモデルをUnityで動かしてみる
3Dモデルをシーンに配置したらBlenderでシェイプキーを登録したオブジェクトをヒエラルキーから選択します。
今回はSpartaのHeadにシェイプキーを登録したのでHeadを選択しています。
対象のオブジェクトを選択するとインスペクターにSkinned Mesh Rendererというのがあります。
その中にBlendShapesというものがあり、さらにその中にBlenderでシェイプキーに登録したものがあります。
この値を変えてあげればシェイプキーに登録したように3Dモデルが変形します。
ただし注意しなければいけないことがあります。
Blenderではシェイプキーの値は0〜1の範囲ですが、Unityでは0〜100の範囲で指定する必要があります。
試しに今回登録してある口を閉じる動きのMouthCloseの値を1にしてみます。
全然口を閉じていませんね。
では今度は値を100にしてみます。
今度は口を閉じましたね!
このようにBlenderとUnityではシェイプキーの値の設定が違うので注意が必要です。
今回はここまでにして次はスクリプトを使ってBlendShapesの値を変えてみたいと思います。
【Unity】BlendShapesをスクリプトで操作してみる
スポンサードリンク
タグ:UNITY
こちらのサイトを拝見させていただき、blenderモデルにシェイブキーを登録してunityに投入しました。ですが、Skinned Mesh Rendererの中にBlendShapesという欄が見つかりません。何が原因なのか教えていただけないでしょうか?
他サイトも何個か拝見しましたが解決しなかったので、こちらにて質問させていただきました。
お返事待ってます。
返信遅くなってしまいすみません。
blenderでシェイプキーを登録後にしっかりデータをセーブされましたか?
Unityで確認しているオブジェクトはBlenderでシェイプキーを登録したオブジェクトと同じ物でしょうか?
3Dモデルのデータがどのようになっているのか分かりませんが、子オブジェクト等もチェックしてみて下さい。
blenderファイルをFBXにする際になんか気をつけるべきこととかあるんですか?blenderでは普通にシェイブキーは動くんですが、、、、
FBXにする際はBlenderとUnityでは軸の向きが違うからその辺りを気をつけないといけないとかは聞きますが、BlendShapesが表示されないこととは関係ありませんよね・・・。
僕も色々設定をいじってエクスポートしてみましたが何をやってもBlendShapesは表示されます。なのでFBXにする際に気をつけることは特にないように思います。
逆にNorkさんはエクスポートする際に何か設定を変更した点がありますか?
もしかしたらですが3Dモデルを作成した際にミラー等のモディファイアーを使って適用していない状態ではありませんか?
モディファイアーを適用していない状態だとシェイプキーはエクスポートされないみたいです。
その辺りを確認してみて下さい。
モディファイアーはパーティクルシステム1とアーマーチュアが適用されてないんですがこれらも適用しますか?
試してみたところアーマチュアはそのままでもBlendShapesが表示され、パーティクルシステムを付けると表示されませんでした。なのでパーティクルシステムが原因じゃないかと思います。
僕はBlenderでパーティクルシステムを使ったことがないので詳しくは分かりませんが、パーティクルはUnityに3Dモデルを入れてからUnityの方で設定してみてはどうでしょうか?
パーティクルシステムを外してunityにモデルをいれた所、無事にBlendShapesが表示されるようになりました。
今まで色々とご教授いただき本当にありがとうございます。
友人などにこういう事に詳しいものが居なくてとても助かりました。