ポーズ切り替えでの注意点
最終更新: 2019年9月4日
ここでは、Mecanimを用いたポーズ切り替え時の注意点について説明します。
概要
Cubism 3 以降の Cubism SDK for UnityではMecanimを用いて服装の切り替えやパーツの切り替えが可能です。
しかし、服装切り替え・腕パーツ切り替えなど、切り替えを複数持っているモデルに対しては切り替え時の注意が必要です。
例として「腕パーツAを用いたモーション再生時」に、「腕パーツB」に切り替えると、腕パーツBにアニメーションが適用されないことが挙げられます。
またモデルの書き出し時、必要なパーツをすべて表示した状態で書き出す必要があります。
同様に、モーションの書き出し時でも、必要なパーツを書き出す必要があります。
詳細
Mecanimを用いたポーズ切り替えの注意点
Cubism 3 以降の Cubism SDK for UnityではMecanimを用いたポーズの切り替えが可能ですが、モデルが持っているポーズの切り替えパーツによっては正常にアニメーションが再生されない場合があります。
例として、アニメーション再生中に、パラメータを持つパーツの切り替えが挙げられます。
ここでは、問題を具体的にするためハルを例に説明します。
ハルには腕パーツAと腕パーツBの2種類があり、ワンピースと制服で服装パーツが2種類あります。
この状態では、4通りの組合せが可能です。
ハルが腕を伸ばした状態の腕パーツAを使用したアニメーションを再生している状態で、スクリプトやUnityでBlendTreeを用いて腕を組んでいる腕パーツBに切り替えた場合、.model3.jsonから生成されたアニメーションファイルには腕パーツBのパラメータが設定されていないので以下のGIFのように腕パーツBは動きません。
ハルのように腕パーツ2種類、服装2種類で切り替えを行う場合、アニメーションが正常が動くかを表にすると以下のようになります
腕パーツA+服パーツA | 腕パーツB+服パーツB | |
腕パーツA+服パーツB | ○ | × |
腕パーツB+服パーツA | × | ○ |
解決策として、
1、腕パーツBにもモーションを付ける
2、腕パーツのようなパラメータの設定に関係するようなパーツをアニメーション再生中に切り替えない
という2つの方法があります。
モデル・モーション書き出しについての注意点
もう一つの注意点として、モデル・モーションの書き出しです。
モデルに関してですが、Cubism 2.1 SDKと同様に非表示のパーツは、初期状態のモデル書き出し設定では書き出されません。
この問題は、必要なパーツをすべて表示した状態で書き出すことで解消できます。
また、モーションも必要なパーツを書き出す必要があります。
書き出す方法としては、
1、Cubism Editorで、使用するすべてのパラメータ・パーツにキ―フレームを設定する
2、書出し設定で“書き出し対象”→“パラメータ”・“パーツ”を各々、“キーのあるパラメータ”・“キーのあるパーツ”に設定して書き出す
という順番で行います。
1に関してですが、モーションごとにモーションキーフレームのほかに、パーツキーフレームも打つ必要があります。
使用するすべてというのは、モデルの動きや表示で使用するモーション・パーツの事を指します。
特定のモーションでは動かさないパラメータもキーフレームを打つ必要があります。そしてパーツも同様に特に変更のないパーツにもキーフレームを打つ必要があります。
もし、使用するすべてのパラメータ・パーツを書き出さずにモーション推移を行うと想定された表示が行えません。
例として、下記画像をご覧ください。
モーションにパーツキーフレームを打たない場合、上段での想定される動きではなく、下段での実際の動きに相当するような動作をします。
また、2で行う変更点は以下画像の赤枠内の通りです。
キーフレーム打ち忘れによる問題の種類
パラメータのキーフレーム、パーツのキーフレームの打ち忘れによって起きる問題が変わります。
動かさないパラメータのキーフレームを打たない場合
・モデルのパラメータが、直前に動作していたモーションに影響します
例:眉毛が吊り上がったまま別のモーションが再生されてしまう
変化させないパーツのキーフレームを打たない場合
・表示させたくないパーツが表示される場合があります
例:服装が二重に表示される。腕が4本になる