レッスン 5

目次

ステートを活用する

CubeでWwise Wwizardがスーパージェムを取得すると、短時間の間だけ、彼が投げるほかのジェムが通常の4倍の破壊力を発揮します。スーパージェムの取得がイベントとしてWwiseに送信されると、スーパージェムモードが実行中であることを示すステートが設定されます。その結果、サウンドエフェクトとして、この期間中に投げるジェムには、スーパージェムのチャイム音も伴います。このステートの切り替えを利用して、音楽も変更できます。

それでは、このチュートリアルで既に実装したArpeggioトラックを使って、プレイヤーがスーパージェムモード中だということが耳で分かるように、フィードバックを追加します。

  1. Project Explorerで、Combat-A ミュージックセグメントを選びます。

    今のArpeggioトラックは、アルペジオの1つのバリエーションが入ったサブトラック、または何も入っていないサブトラックを、ランダムに選択するように設定してあります。それでは、アルペジオのパートはプレイヤーがスーパージェムを持っている時だけに聞けるように、設定を変更します。プレイヤーがスーパージェムを持っていない場合は、無音にするので、何も入っていないサブトラックが不要になります。

  2. Music Segment Editorで、Combat-A-Arpeggio1ミュージックトラックの中の何も入っていないサブトラックを右クリックして、Deleteを選択します。

    空のサブトラックが削除されます。

    ゲームステートに変化があった場合にオブジェクトがどう反応するかは、Property EditorのStatesタブで管理します。

  3. Combat-A-Arpeggio1トラックを選択した状態で、Music Track Property EditorのStatesタブをクリックします。

    特定のゲームステートに変化があった時にどうするのかを、指示する必要があります。Cubeで、スーパージェムが効力を発揮していることを伝えるゲームステートは、PlayerHasSuperGemという名前です。プレイヤーがスーパージェムを取得すると、PlayerHasSuperGemステートグループが一定期間だけYesステートに設定され、モンスターに命中したWwizardのジェムは4倍のダメージを与えることを、Wwiseに通知します。スーパージェムの効力が終了すると、PlayerHasSuperGemステートグループのステートがNoに設定されます。PlayerHasSuperGemステートグループのこのような変化が、アルペジオトラックを変更するためのフックを提供します。

  4. Add State Group >>セレクタをクリックして、PlayerHasSuperGemを選択します。

    表示された数行にわたる情報から、PlayerHasSuperGemステートグループがYesまたはNoのステートに設定された時に何が起きるかが、分かります。

    ステートが変更されると、変更後の各種ステートはそれぞれ、様々なプロパティをオフセットするためのトリガーに利用できます。ミュージックトラックの場合は、ボリュームやフィルターをオフセットできます。アルペジオのパートの出入りには、単純なボリュームオフセットを使います。今回は、スーパージェムのパワーがない時はアルペジオを聞こえなくしたいので、PlayerHasSuperGemステートグループの設定がNoの時は、トラックの通常のボリューム値より低くします。

  5. No行のVoice Volumeを、-108に設定します。

    ボリュームが-108 dB下がると、聞こえなくなります。また、この音は音が処理対象となるボリューム閾値よりも低くなるので、ゲームシステムのCPUリソースも解放されます。アルペジオが、小節や拍の途中で入ってくると不自然に聞こえるかもしれないので、トラックが始まるタイミングを、ミュージックセグメントの特定ポイントまで遅らせることも可能です。音楽に反応できるこの機能は、Interactive Music Hierarchyのオブジェクトに限り適用できます。今回は、アルペジオが出入りするトランジションを、PlayerHasSuperGemステートが切り替わったあとの、次の小節に合わせます。

  6. Change occurs atプロパティを、Next Barに設定します。

    それでは、Transport Controlビューで作業した内容をテストします。

  7. Project Explorerで、Combat-A ミュージックセグメントを選びます。

    Transport Controlビューが、Combat-Aミュージックセグメントにフォーカスしています。

    Combat-Aミュージックセグメントには、ステート切り替えに反応するように設定されたトラックが入っているので、そのステートがTransport Controlビューに表示されています。

  8. Transport ControlのStatesボタンが選択されていることを確認します。

    PlayerHasSuperGemステートグループが表示されています。音楽を再生しながら切り替えれば、ステートが音楽に与えるエフェクトをテストできます。

  9. Combat-Aミュージックセグメントを再生してから、PlayerHasSuperGemステートを調節します。

    [ヒント]

    あなたの好みに応じて、Combat-A-Arpeggio1ミュージックトラックをMusic Segment Editorでソロに設定して、音を切り分けてこのパートを聞き取りやすくできます。

    アルペジオのパートがトランジションする度に、短いフェードがあるのが聞こえます。短いトランジションですが、やや長く感じられます。フェード時間はPlayerHasSuperGemステートグループのトランジション時間にコントロールされますが、トランジション時間は、PlayerHasSuperGemステートに反応する全てのもの共通します。PlayerHasSuperGemステートグループが切り替わる際に操作される音は他にないので、安心してステートグループのトランジション時間を修正できます。

  10. Music Segment EditorでCombat-A-Arpeggio1トラックヘッダを選択してから、Music Track Property EditorでPlayerHasSuperGemステートをダブルクリックします。

    このステートグループのProperty Editorが開きます。

    トランジション時間が1秒に設定されているので、PlayerHasSuperGemステートグループが切り替わる時に1秒間のフェードインまたはフェードアウトがあります。トランジション時間をもっと短くします。

  11. Default transition timeを、0.1に変えます。

  12. 設定をテストするために、Transport ControlでPlayerHasSuperGemステートを切り替えてみます。

    次に、同じ設定をCombat-Bミュージックセグメントのアルペジオトラックにも適用します。ステートトランジション時間はグローバル(共通)なので、その変更は不要です。

  13. この演習の手順1-9を、Combat-Bミュージックセグメントのアルペジオトラックでも繰り返します。


このページはお役に立ちましたか?