はじめに

前回までは、顔のオブジェクトはUnityで作っていましたが、今回はBlenderで顔を作ってBlendShapeを適用してみました☺️
手はLandmarkを繋ぐように、Sphereを引き延ばして手の輪郭を作りました。
本当は手もモデルを使いたかったのですが、指の回転が難しく🥺

Python

前回から変更なし

Blender

顔のモデルを作成しました。パーツ構成:顔 / 目(左右) / 瞳(左右) / 眉(左右)
口と瞼は、顔のメッシュ変形で表現します。

Blenderモデル

怖いて😂
動作がわかる形なら何でも良いやーと、思いつきで作っていたらこうなりました。

シェイプキーはこれらを登録しました。

顔オブジェクトのシェイプキー 眉オブジェクトのシェイプキー1 眉オブジェクトのシェイプキー2

BlendShapeで反映されるのはメッシュの変形のみです。座標の移動や回転は反映されません。
たとえば瞬きであれば、瞼のメッシュを下方向へ引き伸ばすことで表現しています。
作成したら、FBX形式でエクスポートします。

Unity

もともとSceneにあった顔パーツは削除し、BlenderのFBXをインポートして使用します。
眉・瞼・口はBlendShapeを使用します。スクリプトの詳細はその5で解説しています。

動作確認

動作確認

前回と比べ、顔のクオリティが上がりました😁

BlenderとUnityの回転軸

BlenderとUnityでは回転軸の定義が異なります。
Blenderはy軸が上方向・z軸が前方向であるのに対し、Unityはy軸が上方向・z軸が前方向と同じですが、座標系が左手系と右手系で異なります。
FBXエクスポート時に適切な設定をすることで、インポート後の軸のズレを防ぐことができます。

さいごに

次回は手もモデルを使って動かしてみたいと思います。
それでは、今回はここまで。ありがとうございました😊