クロスフェードトランジションをRandom ContainerやSequence Containerで使う時に、特に注意すべき点を以下に示します。
オーディオファイルの長さ
オーディオファイルの長さは、0.2秒以上なければなりません。
クロスフェード時間は、最低0.1秒です。
クロスフェード時間とオーディオファイル長さの関係
サウンドAからサウンドBにクロスフェードする場合に、サウンドエンジンが許容できる最大クロスフェード時間は、オーディオファイルAの長さの1/2です。クロスフェード時間が許容できる最大時間よりも長いと、クロスフェード時間がフェードアウトしていくオーディオファイルの長さの半分になるように、自動的に調整されます。
注記 | |
---|---|
コンテナにクロスフェード時間の長すぎるオーディオファイルがあっても、Wwiseでそれを制限したり表示したりすることはありません。クロスフェード時間の調整が必要であれば、ランタイムにサウンドエンジンが行います。 |
ピッチとクロスフェード
コンテナのピッチ値をRTPCで設定したり、コンテナの再生中にSet Pitch Event Actionがトリガーされると、サウンド間でクロスフェードが適用された時に予期しない結果が発生するかもしれません。
ソースプラグインとクロスフェード
クロスフェードをソースプラグインに適用すると、ソースの終わりが判断できずにクロスフェードが無視されることがあります。例えば、Sineで生成したソースの長さがRTPCに依存している場合などに、これが起きます。このような時はクロスフェードが無視され、クロスフェードのないトランジションとなります。
Switch Containerとクロスフェード
Switch ContainerがSequence Containerの子である場合は、SwitchにアサインしたWwiseオブジェクトの数によってクロスフェードトランジション適用の仕方が変わります。
2つのボイス
サウンドエンジンは、クロスフェード時に2つの別々のボイスを使います。
バーチャルボイスとクロスフェード
バーチャルボイスの動作設定であるPlay from BeginningやResumeは、設定の意図からしてボリュームスレッショルド(閾値)より小さくなった時やPlayback Limitを超えたとき、サウンド長さに影響しますが、クロスフェード時間のメカニズムはこれを考慮できません。
ボイスは、スレッショルド以下のボリュームになると、バーチャルボイスに変わるかもしれません。どのようなサウンドでも、スレッショルドに対して比較するボリュームは、そのサウンドの全オーディオチャンネルの実際の有効ボリュームです。つまりActor-Mixer Hierarchyの様々なボリューム、フェードトランジション、インタラクティブミュージックのトランジション、RTPC、State、ポジショニング、減衰などの結果です。
フェードトランジションの作用も、サウンドの有効ボリュームを計算する上で影響します。ランダム、シーケンス、Blend Containerの中のクロスフェードトランジションでは、フェードしていくサウンドが一定期間、ボリュームスレッショルド以下になる可能性が高くなります。スレッショルド以下の動作設定が「From Beginning」や「Resume」であれば、実際の長さが、コンテナのロジックで予想する長さよりも、長くなります。結果として、予期しない動作が生じます。さらに悪い状況として、スレッショルド以下でフェードアウトしたサウンドが、あたかも(つまり「バーチャル」には)再生停止となり、永遠に再生し続けてしまいます。その結果、引き続き他のサウンドをシーケンス再生することを、コンテナがやめてしまうかもしれません。
結論として、このようなタイプのバーチャルボイスを、クロスフェードトランジションを使ったコンテナに使うのは避けるべきです。このようなコンテナでバーチャルボイスを使いたい場合は、動作設定をPlay from elapsed timeにします。