Wwise 2017.2がリリースされ、斬新な改善や水面下の最適化がいくつも実現されましたが、特に注目に値する新機能がStateを核としたミキシングオプションの大幅な拡大で、今まで以上に細かく自由にミキシングをコントロールできるようになりました。2017.1バージョンでStatesタブに新しいオプションが加わったのに気付いたかもしれませんが、例えばAux SendのVolumeを変更したり、Continuous Play ModeのRandom ContainerやSequence Containerの中の、TransitionのDurationを変更したりできるようになりました。2017.2では、これがさらに強化されています。ほかにも、Stateの中の様々なエフェクトパラメータも調整可能になりました。それでは、機能を詳しく検証して、使い方を考えます。
2017.1より前はStatesタブで調整できるState関連のパラメータは比較的少なく、ボリューム、ピッチ、ローパスフィルタ(LPF)、ハイパスフィルタ(HPF)、メイクアップゲインなどでした。
2017.2では、ほぼすべての調整可能なパラメータをStatesタブからコントロールできるようになりました。Statesから調整できるパラメータを見るには、Property EditorのStatesタブを開き、Propertiesボタンをクリックして、States Propertiesダイアログを表示させます。ここで、Statesのパラメータでコントロールしたいものをクリックして選択します。ご覧の通り、リストの項目が大幅に増えています!
チェックボックスにチェックを入れて追加するプロパティを選択すると、この構造のStatesタブに表示されます。プロパティの数が非常に多いので、あなたのプロジェクトレイアウトの都合を考慮しつつ、ミキサー階層のできるだけ高いレベルでミキシングを行うようにして、States画面で調整するパラメータだけを選択すると良いと思います。Statesタブがパンクしないように、そして見やすいように、構造ごとに表示内容が保存されるので、例えばある構造のStatesタブでAux Send Volume 2を調整できるようにしたとしても、ほかの構造では、自分で改めてそのパラメータを選択しない限り表示されません。
さらに嬉しいことに、Statesからエフェクト関連のパラメータもコントロールできるようになりました。ほとんどのエフェクトパラメータを、様々なState GroupのStateごとに、細かく調整できるのです!
それではこれら新機能を現場で活用できそうな事例を紹介します。まず、ミックスをプレイヤーのステート(状況)に紐づけて切り替えたい場合を考えます。今までは別のイベントを追加してボリューム、ピッチ、またはフィルターを変更させたり、エフェクトなどのアクションをトリガーしたりしました。これからは、States画面だけを使って多数の細かい設定を調整できます。以下で、Wwiseの拡張されたStateミキシング機能を使ったテクニックを試してみます。
今回のリリースで、Stateを使ってフィルターを調整できるようになったほか、特定の構造から様々なセンドに送るときのセンドボリュームも調整できます。例えば、プレイヤーのステートが変わったときに、一部のサウンドを2つのAuxiliary Busにセンドする流れがあるとします。名前を、ディストーションエフェクトを追加する“injured”(負傷)と、EQやフランジャーを適用する“hallucination”(幻覚)とします。さて、プレイヤーのステートが変わったときにアンビエントサウンドを変化させるために、これら2つのセンドをAmbienceバスに送ります。今までどおり2つのAuxiliary Busを親バスに追加するだけですが、それらのボリュームをずっと下まで下げてミックスで存在しないようにします:
次に、Bus Property EditorのStatesタブをクリックして、Auxiliary Sendsに影響を与えるState Groupを追加してからPropertiesボタンをクリックして、State Propertiesウィンドウを表示させます。そこでUser-defined Aux Send Volume 0、User-defined Aux Send Volume 1を選択すると、Statesタブに表示されます(注: 列幅を広げないと、0や1が見えないかもしれません)。ここで、該当するStateごとに、各バスにセンドする量を設定します。なお、あらかじめセンドのボリュームを-96に設定して普段は聞こえないようにしたので、ここであなたが設定する値は、-96に対する相対値だということを忘れないでください。下の設定例ではプレイヤーのステートがinjuredのときは、Ambience Busのセンド先がAuxiliary Send“aux_injured”でボリュームが-24 (-96 + 72)となっていて、プレイヤーのステートがhallucinationのときは、センド先がAuxiliary Bus “aux_hallucinating”でボリュームが 28 (-96+68)となっています。
State機能で可能なのはAuxiliary Sendの設定だけではありません。例えば、プレイヤーの心臓音を単純にループするシーケンスコンテナで再生して、このサウンドのトリガーレートをプレイヤーのステートによって変えるとします。このような設定になります:
それでは、Statesタブをクリックしてplayer_stateというState Groupを追加して、Propertiesをクリックして、States内で調整できるパラメータとしてDurationを追加します。プレイヤーが幻覚を見たり疲れたときは鼓動を速めて、負傷時や死にそうなときは遅くしてみます。今のトリガーレートは1秒に設定されているので、基本値1を増減しながら調整します。
このように設定すれば、通常は毎秒1回の心臓音が、疲れたとき(tired)は0.75秒ごとに、幻覚のとき(hallucinating)は0.5秒ごとに、負傷時(injured)は1.5秒ごとに、そして死にそうなとき(dying)は2秒ごとに再生されます。いとも簡単です!
せっかくなので、心臓音に変化を加えるためにステートに応じたディレイを発生させて、player_state State Groupに従いディレイエフェクトのミックスやフィードバックも変化させてみます。まず、ディレイのShareSetを新たに作成します。Effect ShareSetを開くと、RTPCタブの次に、新しいStatesタブが追加されたのが分かります。
Effect EditorのStatesタブをクリックして、Propertiesボタンを押してState Propertiesウィンドウを開き、そのステートで調整するプロパティを選択します。Propertiesウィンドウには、そのエフェクト内で調整できるパラメータしか表示されません。下図で分かるように、Delayエフェクトで可能なのはFeedback値の調整と、Feedback enableのオン・オフのトグルのほか、Output Levelの変更やWet/Dry Mixの切り替えです。
次にplayer_state State Groupを追加して、各ステート内の設定値を調整します。下に示す例は、ch_hero_heartbeat_loopサウンドに対するディレイを設定したもので、ディレイは、tiredのときはほとんど聞こえず、injuredのときはもう少し聞こえてフィードバックも多少あり、hallucinatingのときはフィードバックもミックス内の存在感も非常に大きくなり、そして最後にdyingのときは、やや控えめなエフェクトとなります。
これでいい感じのディレイエフェクトが発生しますが、修正したこのミックスセットアップをゲーム中に聞いてみると、ディレイエフェクトが心臓音に合わせて常に再生されることに気付きます。それはplayer_stateがnormalなときも、エフェクトが無効になっていないからです!簡単に直せます: ch_hero_heartbeat_loopコンテナに戻り、Statesタブを開き、Propertiesをクリックして、該当するエフェクトにBypass Effectプロパティを追加して、normalステートのBypass Effect設定をトグルして、バイパスするだけです。
また、RTPCアイコンの横に新しいアイコンが加わりましたが、パラメータがStatesタブに表示されると、このアイコンが青になります。様々なステートグループがある中、どのパラメータが影響を受けているのかが一目で分かり、とても便利なアイコンです。なお、State Propertiesウィンドウで選択した全プロパティのアイコンが青になるので、プロパティ設定の内容を自分である程度把握して、1つ以上のステートで調整するプロパティだけをStatesタブで表示させるようにしなければ、あなたが構造を管理するときにアイコンの青色マークが役目を果たしません。
以上が、Wwise内の新しいミキシング機能を使いこなすための基本操作です。まだ表面をかすめた程度の情報です。プロジェクト内のほとんどのプロパティをStateを核に自由にミキシングできるようになると、今まで夢でしかなかった細かいミキシング能力が実現して、従来はタスクやイベントを複雑に組み合わせて達成したことが、数回のクリックで可能になります。
ただし、新機能を使うときに忘れてはならない条件がいくつかあります。
Wwiseの今までのステート機能と同様に、一部のパラメータ値は蓄積型で、そのパラメータの最大値に達すると、それ以上は増えません(フィードバックやウェット・ドライミックスなど)。例えば、上記の例でディレイのフィードバックを15に設定すると、hallucinatingステートのディレイは60 (15 + 45)になります。これは絶対に忘れてはならないことで、特に複数のステートが同時に1つのパラメータに影響を与える可能性があれば要注意です。
また、シェアセットがEffectパラメータのプリセットだけでなく、エフェクトのStateミックスのパラメータにもなる結果となりました。Effect ShareSetがState Groupを対象とするときに、そのState Groupが2つの構造上にあり、もしそれぞれの構造でエフェクトがState Groupに与える影響を変えたい場合は、この2つのEffect + Stateセットアップのインスタンスに合わせて、2つの別々のShareSetが必要です。つまり、Effectやそのパラメータ、そしてStateをセットアップするときに、あなたのミックスの中で、目当てのEffect + Stateの関係にすぐにアクセスできるように、気を遣う必要があります。
最後に、すべてのパラメータを表示できるわけではなく、理由はカスタム動作のためだったり、ランタイムにそのパラメータが問題を発生させてしまうためだったり、UI的に矛盾するため(Stateで2Dや3Dのパンニングポジションをコントロールする方法が現在ない)だったりします。それでも、Effectに設定されるほぼすべてのプロパティと、Wwiseのその他のプロパティの大部分を、States経由で表示して調整できるようになりました。
あとは、あなたがそれをどう使いこなすかです。
それでは、ミキシングを楽しんで!
コメント