[FBXアニメーション]6 続_実践 Blend shape ブレンドシェイプ

記事作成 2020年9月16日
PlayMaker 1.9.0 p20 / Unity 2019.3.3f1

 [FBXアニメーション]5 実践 Blend shape ブレンドシェイプ の続きです。
スムーズなモーフィングをPlayMakerのノードで実現します。

(1)
まず、ゲーム画面でスライダーを使っての操作。

UI の Slider を作成。画面内の適当な位置に置きます。
「emp スライダー操作」は、ノードを作るための空オブジェです。


Slider のインスペクタで、 Max Value を 100 にします。
値の範囲が 1~100 になります。

「emp スライダー操作」に状態遷移を付け、このようにアクションを置いてみました。
スライダー操作で変化する値を、シェイプのウェイト値に流し込みます。

[ UI Slider Get Value ] で対象オブジェクトに slider をドロップ。
スライダーの値を格納する、Float変数 「flo スライダー値」を作り設定します。
Every Frame にチェック。

[ Set Blend Shape Weigt ]は前回と同じ。対象メッシュは Body 。
Syape Name は EYE Close を打ち込みました。ウェイト値はスライダーの値を
設定します。Every Frameにチェック。


シーンを再生しゲーム画面で、このように操作できるでしょうか。

いくらでも増やせるので、ゲーム画面上で表情を作ることができます。

--------------------------------------
(2)
今度は、自動でモーフィングさせてみます。ウェイト値に割り当てた変数の値が
自動で上下できればよいはず。

「emp スライダー操作」をそのまま利用。新しくステートを作り、
DOTween のアクションを使います。(DOTweenについて PlayMaker Tween事情

[ DO Tween Animation Float ] フロート変数の値を、設定した数値まで、設定した
時間で変化させるアクションです。イージングも使えます。
変数に「flo スライダー値」を再利用し、(初期値の0から)100 まで、2秒で変化
させます。そして、完了後、FINISHED から次のステートへ遷移。


上の続きです。DOTweenのアクションは長いんだよね…。
その下に [ Set Blend Shape Weigt ] で目閉じを。
ウェイトは、同ステートで変化するフロート変数を設定します。


更に、このステートをコピーして下に貼り付け、元ステートの遷移先とします。
今度は(遷移前の値100から)0 まで、2秒で変化し元ステートへ戻ります。
画面では見えませんが [ Set Blend Shape Weigt ] はそのまま。

目を閉じて、開けてを繰り返します。ふと、パソコン画面の中でキャラクターが、まばたき
しただけで、ちょっとした騒ぎになった時代があったなぁ…などと、思い返す (-.-)

--------------------------------------
(3)
次は、パソコンのキー操作で、表情を切り替えてみます。
[FBXアニメーション]2 Animator 等で組んだアニメーション再生ノードと同様で。

モーフィングではなくて、単に表情パターンの切り替えです。
Z X C V B N のキーが押されると、それぞれのステートへ遷移して表情を作ります。

「 ALL 」の付いた、目眉口等すべての部位を使った表情を切り替えているため、
必要な一つのシェイプ以外は、ウェイト0 にしています。
EYE Close 、MTH A 等、目眉口別々の部位を設定すれば、好みの表情を作って
切り替える事もできます。


うまく工夫すれば、キー操作でもモーフィングをすることはできるでしょう。
リアルタイムで操作するのは、大変だとは思いますが。

--------------------------------------

(おまけ)
このモデルについてアレコレ。
このモデルも [FBXアニメーション]2 Animator の方法で、キー操作による
モーション再生ができます。


[FBXアニメーション]4 キャラ移動時のモーション の要領で、移動モーションも。
(移動用ノードはCubeではなく、モデル自体に2つ目のFSMとしてつけたほうが良いよう。)

しかし、このようにモーション再生用にメカニムを使うと、先にやったような
ブレンドシェイプのアクションは同時に機能しません。
DEMO シーンで、モーション再生はできても、シェイプが試せなくて、おや?と
思っていたのですが。
メッシュが Body 一つに統合されていて、頭部が別になっていないから、なのだろか。

その代わりなのか、下記の場所に、表情がメッシュアニメーションとして作成
されています。シェイプの変化をアニメーションにしたものです。

メカにムに配置して通常のモーションとして使うことができますが、個人的には
ちょっと使いにくいんじゃないかなぁと思います。
走りながら笑うとか、完全にはできないんじゃないかと。


モデルの仕様によって、ケースバイケースですが、Blend Shape アクションは
上手く使えば役に立つと思います。

0 件のコメント:

コメントを投稿