バージョン
Blend Containerを使うと、複数のオブジェクトを同時に再生できます。この時、ブレンドトラックにクロスフェードを適用すると、オブジェクトの聞こえ方や感じ方が変わります。クロスフェードを管理しやすくするために、ブレンドトラックのオブジェクトがブロック(長方形)として表示されます。ブロックはグラフに表示され、X軸が変化するGame Parameterを表します。ブロックのX軸の位置が、そのサウンドが聞こえるゲームパラメータ値、またはモーションエフェクトを感じとれるゲームパラメータ値を示します。
ブロック同士をオーバーラップさせてクロスフェードをつくり出すと、オブジェクト間の移り変わりがスムーズになり、ゲームのリアル性が増します。また、Blend ContainerのブレンドトラックにおいてクロスフェードとRTPCカーブを組み合わせることで、オブジェクトのプロパティを調整できます。
例えば、ジェットコースターのシミュレーションゲームを考えます。スピードが時速0kmから200kmの範囲で変化するジェットコースターを、プレイヤーが作るゲームです。初歩的な方法として、ジェットコースターの乗客サウンドにRTPCを設定したBlend Containerを用意すれば、ジェットコースターが加速するにつれボリュームを増加できます。ここで乗客サウンドとして、Grumble(退屈した不満の声)、Whee(興奮した歓声)、Scream(恐怖の叫び)などを多数そろえたとします。これらのサウンドをBlend Containerに入れ、ジェットコースターのスピードに合わせてサウンドの種類を選びます。ジェットコースターのスピードが時速40kmに到達した時点で、興奮した歓声音を再生し始めることができます。プレイヤーは、色々な乗客サウンドを、次第に大きくなるボリュームで聞くことができます。
Blend Containerでクロスフェード(Crossfade)を使うには、まずクロスフェードにチェックを入れます。次に、各ブロックの大きさを調整します。Game Parameterが、ブロックがX軸に接するポイントまで到達すると、そのオブジェクトが聞こえてきます。ブロック同士をオーバーラップさせると、クロスフェードが発生します。
クロスフェードを使って、Blend Container内のオブジェクトの再生を整理できます。Blend Containerのオブジェクトは全てが同時に再生され、RTPCのマッピングに基づいて聞こえる、または感じ取れるので、クロスフェードを活用すればオブジェクト同士がスムーズに移り変わる空間が作れます。例えば、ゲーム内の時計と連動するRTPCがあれば、コオロギの音や鳥の鳴き声のクロスフェードをオーバーラップさせ、夜が明ける様子を表現できます。
クロスフェード機能を使うには:
Blend Track Editorで、クロスフェードを付加するブレンドトラックを選択する。
ブレンドトラックがアクティブになる。
Crossfadingオプションを選択する。
Game Parameterリストが選択可能となる。
このブレンドトラックの、クロスフェードに適用するGame Parameterを選択する。
ブレンドトラックで各オブジェクトがブロックで表示され、Game Parameterの単位がX軸に表示される。
ブレンドトラックのオブジェクトは、色の異なるブロックとしてグラフ上に個別に表示される。ブロックが並ぶ順番は、Contents editorのブレンドトラック列に表示されるオブジェクトの順番と同じである。
ブロックの大きさや位置を変更するには、ブロックを選択して左辺または右辺を横にドラッグする。
ブロックで表示されたオブジェクトが、X軸に沿って再生される。
ブレンドトラックで、RTPCカーブの能力とクロスフェード(Crossfade)の柔軟性を組み合わることができます。Blend Containerのオブジェクト間のクロスフェードをGame Parameterで変化させながら、それに重ねてオブジェクトのRTPCカーブも設定できるのです。
なお、1つのブレンドトラックにおいて、クロスフェードとRTPCカーブを別々のパラメータに合わせることができます。例えば、ジェットコースターのシミュレーションゲームで、RTPCカーブを使って車両の傾斜がきつくなるにつれ乗客サウンドのピッチを増加させます。しかし同時に、スピードに基づくクロスフェードをブレンドトラックに設定して、再生するサウンド自体をスピードに応じて切り替えることができます。その結果、ジェットコースターが速くなるにつれ聞こえてくるサウンドが変わり、またどのサウンドが再生中であっても、車両の傾きがきつくなるほど、ピッチが高まります。
目的に合わせて、Wwiseで様々な方法のクロスフェード(Crossfade)を適用できます。ブレンドトラックのオブジェクト同士のクロスフェードを調整するには、以下の3種類のモードから選択します:
None: オーバーラップするブロックの境界線を超えた瞬間に、RTPCのプロパティが最大値から最小値または最小値から最大値に切り替わる。
Automatic (default): フェードの長さが、隣接するブロックとのオーバーラップ幅によって決まる。隣にブロックがなければ、フェードしない。
Manual: フェードイン終了とフェードアウト開始の各ポイントを、移動して決める。なお、フェードイン開始とフェードアウト終了の各ポイントは、必ずオーバーラップするブロック外側の下の角となる。
注釈 | |
---|---|
クロスフェードのカーブ形状を変更することもできます。カーブ形状の設定については「コントロールポイント間のカーブ形状の指定」を参照してください。 |
クロスフェードモードを選択するには:
ブロックの端を右クリックして、モードを1つクリックする。
クロスフェードトランジションを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を選択することをお勧めします。