バージョン
CubeへのWwiseサウンドエンジンの統合は以下のタスクを伴います:
Cubeは、元々Wouter van Oortmerssen氏によって開発されたオープンソースのシングルまたはマルチプレイヤー対応ファーストパーソンシューティングゲームで、Cubeのウェブサイト(http://cube.sourceforge.net/)からすぐに入手できます。Wwiseの統合に適応させるため、Cubeウェブサイトからダウンロードしたバージョンに以下の変更を加えました:
既存のサウンドコードを書き直し、Wwiseサウンドエンジンを使用するようにしました。
オーディオコンテンツをWwiseプロジェクトに移動しました。
ほかのライブラリ(SDL、SDL_image、libpng)への依存を排除しました。
オーディオ(足音など)を追加しました。
上記の変更に対応させるため、一部のゲーム設定ファイルとコンテンツファイルを変更しました。
2種類のゲームオブジェクトをサウンドエンジンに登録しました:
baseent構造体へのポインタ。これらは、ゲームワールドを移動するエンティティ(プレイヤー、モンスター、発射物)です。
ダミーのゲームオブジェクトで、64から127の番号が付いています。これらは、移動するエンティティに関連付けられていない3Dサウンド(生成されるアイテムなど)に使用します。
主要なオーディオインテグレーションコードは、<WwiseRoot>\Cube\cube_source\src
フォルダにある以下のファイル内にあります:
Sound.cpp
—サウンドエンジンにアクセスするすべてのコードが含まれます。
Protos.h
のSoundのセクション—宣言されたパブリック関数が含まれます。
統合処理で影響を受けたのは以下のサウンドタイプです:
モンスター再生サウンド:
各キャラクターに関連する苦痛イベント、死イベント、足音イベントがあります。(monster.cpp
のmonstertypes[]をご参照ください。)
足音イベントはmonsterfootstep()
関数からポストされます。この関数はキャラクターの下にある素材に応じて「Material」Switchも設定し、足音のSwitch Containerを動作させます。
アイテムには関連する入手イベントがあります。(entities.cpp
のitemstats[]をご参照ください。)
魔法サウンド:
各魔法タイプに関連するイベントがあります。(weapon.cpp
のguns[]をご参照ください。)
発射物にはスプラッシュイベント(S_FEXPLODE、S_RLHIT)があります。
クワッドダメージが有効な時に氷のジェムを発射するとイベントのS_ITEMPUPがポストされます。
ネットワークサウンド:
一部のイベントはサーバに送りネットワークで再生する必要があります。これはsnd_clientevent()
で対応します。
その他のサウンド:
ゲームプレイ中に発生するその他のサウンドイベントを見つけるには、コードベースでsnd_event()
コールを検索します。
以下のサウンド関連のコマンドを新しく作成したので、サウンド管理に活用してください。これらは.cfg
スクリプトファイルで使用できます:
akevent <string>: ローカルプレイヤーゲームオブジェクト(player1)に対してイベントをポストします(イベント名を使用)。
soundvol <int>: サウンドボリュームを設定します(0-255)。
musicvol <int>: ミュージックボリュームを設定します(0-255)。
voicevol <int>: ボイスボリュームを設定します(0-255)。
texturematerial <int> <string1> <string2>: 本質的に「texture」と同じコマンドですが、関連する足音用の素材のパラメータが追加されています。