ウェイトのついたモデルのBlendShape Maya→Unity

 ウェイトのついたモデルをMayaでブレンドシェイプ設定をしてUnityへ出力する方法

Maya

  • 準備
    • 複製モデルをフェースや頂点でモデルを変形したい形に調整
    • ウェイトのついたモデル作成 01
    • ウェイトのついてないモデル(複製) 02

 

  • blendshape設定
    • この時点で複製モデルは削除して大丈夫
    • 履歴を消さなければblendshapeの設定は残ります
    • Window アニメーションエディター→ShapeEditorを開く
    • ウェイトのモデル01を選択
    • エディター「ブレンドシェイプの作成」を押す
    • BrendShapeDeformer(BrendShape1)を作成する
    • ウェイトのついていないモデル02を選択(複数選択可能)
    • エディターのBrendShapeDeformer(BrendShape1)の上で右クリック
    • 選択項目をターゲットとして追加
    • BlendShapeDeformerの下にskinModelShapeが登録される
    • 複数のモデルを選択して登録するとskinModelShapeが複数登録される
    • skinModelShapeに0~1を入力すると元モデル→複製モデルの形状に変化
 
  • FBX出力
    • アニメーション
      • アニメーション
    • 変形したモデル
    • blendshape設定されてるウェイトのモデル01を選択→「選択項目の書き出し」
    • オプションで下記にチェックを入れて書き出し
 

Unity

  • Unityへfbxをインポート
    • ImportBlendShapes チェックON
    • NaimationType Legacyなどに設定
    • Model
    • Rig
 
  • BlendShapeの変形
    • FBXをシーン内にインポートするとSkinnedMeshRendererになっている
    • Mesh以下のskinModelのInspector内にBlendShapesの項目ができているので0~100の値で設定するとBlendShapeの変形ができます
    • Unityのアニメーションでもキーが打てるようになるのでキー設定するとアニメーション変形させられます
  • アニメーションコントローラーがモーションのアニメーションしか入らず、Readonlyになっている場合
    • アニメーションコントローラーのLayersにBaseLayerに別レイヤーを作成し、そちらの方でBlendShapeのアニメーションを作成して同時再生すると良さそう