1作目進捗(6) + 表情アニメーション
概要
泡盛もろみです。
今回は
・表情アニメーション (by泡盛)
・モデルの再作成 (by泡盛)
・シェーダの自作 (by泡盛)
について書きたいと思います。
表情アニメーション
前回作成した素体ですが、表情をテクスチャでアニメーションできるようになっています。
Blender上
シェーダ設定でテクスチャの座標を変更すると表情が変わります。
表情部分だけ別テクスチャを作成して表情バリエーションを並べています。
Unity上
テクスチャは上記と同じ物を使用。
こちらでもマテリアルのオフセット位置を変更すると表情が変わります。
アニメーション中での表情変更について
表情アニメーションを利用するタイミングですが、棒立ちのまま表情だけ変わってもあまり使い道がないですよね。
(会話系ゲームの立ち絵として表示するならそれもあるかも?)
おそらく他のアニメーションの中で動きに合わせて変更するために、アニメーション中に組み込むと思われます。
思いついた方法は2つあります。
- animationの中に直接書く
- アニメーションイベントとして表情変更メソッドを呼び出す
Fi-Moではアニメーション作成を独立した作業として扱っているため、2番の方法ではコーダーとのやりとりが発生して手間になってしまいます。
そのため、1番での活用をしようと思い、少し試してみました。
アニメーション内部からテクスチャのオフセットを操作する方法ですが、対象オブジェクト(ここではHead)の
Skinned Mesh Renderer.Material._Main Tex_ST
でテクスチャのオフセット値を操作することができます。
これをアニメーションに追加することで、任意のタイミングで表情を変更することができます。
このとき注意すべきことが2点あります。
- この方法では「対象オブジェクトに設定されたすべてのテクスチャにオフセットが設定」されてしまいます。
今回は頭が他の部位とは別オブジェクトになっており、顔部分以外肌色で塗りつぶしているので問題ありません。 - アニメーションは、通常Key間でリニア(Linear)な値の推移をします。
そのため、何も考えずにキーを設定するだけでは顔面を表情がスクロールするという面白おかしい現象が発生します。
こんなかんじ↓
そこで、値の切り替わり方を調整します。
具体的には、表情オフセットを変更するKeyを右クリック、Left Tangent → Constant を選択します。
こうすることで指定のタイミングで一瞬で表情が切り替わります。
これでアニメーション中の表情変更が簡単にできるようになりました。
モデルの再作成
前回お伝えした通り、モデルを作成し直す事になりました。
新しい素体を元に作り直し、
これが
↓
こうなりました
どちらもスマートになりました。
このモデルを使ったUnity上での作業は次の項目で。
フォロワー以上限定無料
ゲーム進捗に関する内容はフォロワー限定公開になります。
無料