フェードについてもっと詳しく知りたい人のための参考ページです。 motion A のあとに motion B が再生されるときのフェード値のモーションの重なり方の違いです。
【1】モーション終了からアイドリングモーション再生
何もモーションが再生されなくなってからアイドリングモーションが自動的に再生されるので、モーションの重なりはありません。
【2】モーション再生中に別のモーションが割り込み再生
フェードアウトとフェードインの時間が違う場合でも、フェードの開始時間は同じになります。
motion B のフェードイン時間が終わったときには、motion B の影響度が100%になるので、motion A のフェードアウト時間が終わっていなくても、motion A による影響はなくなり、motion B が設定通りに再生されます。2つのモーションが影響しあうフェード時間は motion B のフェードイン時間によって決まるといえます。
【3】ループ再生(ループ再生時にフェードインする設定)
フェードを有効にしたままループ再生にするとモーションの終了と開始時にフェードが入るので、Animator で設定した通りのモーションにならない可能性があります。
【4】ループ再生(ループ再生時にフェードインしない設定)
フェードしないようにすると、Animator のループ再生と同じようになります。
上の【2】の図で分かるように、 前のモーションから次のモーションに移り変わるときのフェード時間は、次のモーションのフェードイン時間によって決まります。
例えば、motion A のあとに motion B が再生されるときに、motion B で設定してあるポーズへの切り替わりが早すぎるからゆっくりフェードするように調整したいという場合、motion B のフェードイン時間を長くします。motion A のフェードアウト時間を長くしてもほとんど改善しません。
全体のフェードとパラメータフェード
個別のパラメータフェード値が設定されていないパラメータは、全体のフェード値が適用されます。 全体のフェード値が個別のフェード値を上書きすることはありません。
フェードの優先度
優先度の高い設定が有効になります。設定がない場合は次の優先度の項目をチェックします。
↑高い
優先度 | フェードの種類 | 備考 | SDK1.0使用時 | SDK2.0使用時 | 1 | パラメータフェード(mtn記載) | SDK2.0。プログラムから指定する方法はない(2014/09/18) | X(無視される) | O | 2 | 全体のフェード(プログラム指定) | SDK1.0。model.json で設定した場合はこれ。 | O | O | 3 | 全体のフェード(mtn記載) | SDK2.0。 | X(無視される) | O | 4 | 全体のフェード(デフォルト) | SDK1.0。記載のない場合はデフォルトの1000とみなす。 | O | O |
↓低い
フェードの計算(参考)
フェード時のパラメータの値は、フェードアウト中のモーションのパラメータ値、フェードイン中のモーションのパラメータ値、前回のパラメータ値の3つのパラメータ値から計算される。
フェードアウト中のモーションのパラメータ値を A 、その影響量を a %、 フェードイン中のモーションのパラメータ値を B 、その影響量を b %、 前回のパラメータ値を L とすると、
フェード中のパラメータ値 = B * b% + { A * a% + L * (100-a)% } * (100-b)%
|
|