Wwiseの基本的なアプローチ

目次

心拍音を開始するEventを作成する

ここでは心拍音をどのように開始するかについて考える必要があります。Cubeにはそのためのゲームコールがありません。ゲームのプログラマに追加を依頼することもできますが、プログラマを介することなく同じことを実現できないかを考えます。ゲームがプレイされる際に一度だけ起こるイベントが必要になります。

幸いゲームをスタートする時や新しいレベルをロードする時に、ゲームからWwiseサウンドエンジンに毎回送られてくるゲームコールがあるため、これを利用できます。

  1. Property EditorでHeartbeatオブジェクトを右クリックし、New Event > Playの順に選択します。

    新しいEventが作成されてプライマリエディタに表示されます。デフォルトでは、このEventの名前はSound SFXオブジェクトの名前に基づいてPlay_Heartbeatとなります。

  2. Cubeでコーディング済みのゲームコール名と一致するように、プライマリエディタでEventの名前をMap_Loadedに変更します。

    これで、ゲームをローンチすれば心拍音がスタートします。ただ、プレイヤーが別のレベルをロードすると、Map_LoadedというEventがまたトリガーされるので、2つ目の心拍音が再生されてしまいます。そしてプレイヤーがまた別のレベルに移動すれば、さらに3つ目の心拍音が再生されるといった具合です。プレイヤーのHPが低くなった時にはじめて心拍音が聞こえるようになっているため、複数の心拍音の問題は、プレイヤーのHPが下がるまで気づかれないかもしれません。この問題を解決するには、Map_Loaded Eventのアクションを2つ作成します。1つは現在の心拍音の再生を停止するアクション、もう1つは心拍音をもう一度開始するアクションです。

  3. HeartbeatオブジェクトをプライマリエディタのMap_Loadedタブにドラッグします。

    2つ目のPlay Eventが作成されます。

    Map_Loaded Eventを受け取った時に、まず最初に、既に再生中の心拍音があれば、たとえボリュームが低くて聞こえない場合でも全て停止させます。どの音も、Playというアクションタイプを使って再生できるのと同様に、Stopというアクションタイプを使って停止できます。

  4. 1行目のTypeをPlayからStopに変更します。

    PlayとStopのアクションは同時に発生するように見えても、実際にはこのリストの順番通りに処理されるため、心拍音がまず停止され、その直後に再び再生されます。

    これでゲームを起動したり新しいレベルをロードしたりするたびに、心拍音が一旦停止されてから再び再生されるようになるため、ゲームプレイ中に複数の心拍音が聞こえてしまうような事態を防げます。

    次にCubeを使ってデザインをテストします。最初に先ほど作成したMap_Loaded Eventをコールするマップをリロードする必要があります。これにより心拍音が再生されます。

  5. CubeでEscを押してゲームメニューを開きます。次にload mapを選択してEnterを押し、map metl3を選択してEnterをもう一度押します。

    同じレベルがロードされますが、WwizardのHPがフルの状態であるため心拍音は聞こえません。

  6. 前方に走って、赤色のジェムを集めます。

  7. 3を押して赤色のジェムをWwizardの杖に入れてから壁の近くに立ち、クリックして赤いジェムを発射します。

    発射により引き起こされた爆発が壁で跳ね返って、Wwizardが負傷します。左下のHPメーターが下がっていることが確認できます。

  8. 心拍音を聞きます。心拍音がまだ聞こえない場合は、もう一度クリックしてWwizardのHPをさらに下げます。

    WwizardのHPが下がるにつれて、心拍音が大きくクリアになっていくことが分かります。

    [Note]

    Wwizardが敗北した時、このモジュールで設定したStateとは関係なく心拍音が引き続き聞こえます。PlayerLife Stateが設定されるようにCubeが設計されていないためです。代わりにCubeで設定されるEventを使用することで、WwiseプロジェクトのStateを設定できます。これはWwise-201技能認定コースで扱う概念です。詳細については、イベントを使用してステートを設定するをご参照ください。

    ゲームで心拍音が徐々に弱まって聞こえるようにしたい場合は、次のEventを作成してください。

    • Defeated_Player(アクションタイプ:Set State、Target:PlayerLife\Defeated)

    • Spawn_Player(アクションタイプ:Set State、Target:PlayerLife\Alive)

  9. ゲームを終了するには、Esc を押し、矢印で上下に移動してquitを選択し、次に Enter を押します。

このモジュールでは、プレイヤーが敗北した時に心拍音をゆっくりと弱める方法や、プレイヤーが新しいレベルをスタートした時にすばやく戻す方法を学びました。最初に考えられるStateが2つあるState Groupを作成しました。トランジションタイムを定義して、State GroupをHeartbeat Sound SFXに追加しました。一方のStateに適用するプロパティ変更値を設定し、Transport Controlを使ってStateを変更した結果をテストしました。最後にマップがロードされるたびに心拍音を一旦停止し、もう一度再生するEventを作成しました。これでゲームにすばらしい効果が追加されました。よくできました。

次のモジュール7:Game Syncのプロファイリングでは、Game Syncで舞台裏を表現する方法を学びます。


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