モデリング覚書

3DCG勉強中。Maya中心に3DCGツール周りの覚書と制作記など。

移転しました。

【奮闘記:ゲーム用のキャラを作りたい】3. 目のパーツを追加・瞬きをさせる

f:id:take_model:20190325004643g:plain

前回はUnityで走らせるところまで出来ました。
今回は目のパーツを追加し、瞬きをさせてみます。

Mayaでの作業

目のパーツを追加し、ブレンドシェイプをつける

  1. 別パーツで目のパーツを追加します。
  2. 瞬きをさせたいので、ブレンドシェイプを追加します。
    ブレンドシェイプの追加方法は下記の記事で説明しています。
    【Maya】覚書:ブレンドシェイプ - モデリング覚書

0→1で目を閉じるようにしました。 f:id:take_model:20190325003848g:plain

目のパーツをバインド対象に追加

ここでUnityに送りたいところですが、目のパーツをバインド対象に追加しないといけません。
バインド対象に追加していないと、首を回転させた時にこうなります。
f:id:take_model:20190325010654j:plain:w250

  1. ルートジョイント・ボディメッシュ・目メッシュ を選択。
    [Skin]>[Bind Skin]のオプションパネルを開き、一度[Edit]>[Reset Settings]し、 Dropoff Rateを調整してApplyします。
    ここの操作ですが、本当にこの方法が良いのか分かっておらず、他に良いやり方があるかもしれません。
    f:id:take_model:20190325010907p:plain:w500
    5.0だと傾きによって目がボディにめり込んでしまったので、7.0にしました。
    Dropoff rateは何度直して、このメッシュはたまたまこの数値に収まりましたが、他の設定値との兼ね合いやメッシュによっても違うと思います。
    f:id:take_model:20190325011533j:plain:w400

エクスポート

ボディと目のメッシュを選択し、Unityにエクスポートします。

Unityでの作業

目のパーツのInspectorを見ると、ブレンドシェイプがあるのが確認できます。
f:id:take_model:20190325213824p:plain

瞬きのScriptを追加する

一から作るの大変そうなので、Unity-Chanのアセットに入っていたAutoBlink.csを使用させていただきました。
(いつか一から書けるようになりたいな…)
f:id:take_model:20190325212028p:plain:w300
コピーしてこのメッシュ用にちょこっと書き換えます。

以下、書き換え箇所を箇条書きします。

  1. AutoBlink.csをコピーし、namespaceとclass名・ファイル名を任意の名前に。
  2. public SkinnedMeshRenderer ref_SMR_EL_DEF; と、参照している箇所を削除。
  3. SetBlendShapeWeight の第一引数をブレンドシェイプのインデックスに書き換え。
    例えば、Unity-Chanの瞬きをするブレンドシェイプは下の画像の上から7つめにインデックスされているので、元の引数は6になっています。
    f:id:take_model:20190325214431p:plain:w300
    今回作ったメッシュは1つ目にあるので、引数を0にしました。
  4. コピーしたスクリプトを追加。
  5. Ref_SMR_EYE_DEF を目のメッシュに変更。
    f:id:take_model:20190325215221p:plain:w300

実行

以上の作業を行い、実行!

f:id:take_model:20190325004643g:plain:w400

瞬きしました!

簡単な作業ですが、意外なところ(というかうっかり)でハマリ、結構時間がかかってしまいました(汗)

今回はここまでです。
これから髪の毛や服等を作ると思うと、中々終わりそうにないな~…(遠い目)