レッスン 1
目次
ゲームで起こった事柄全てにオーディオの反応が必要になるかも知れません。プログラマーは予めWwiseに何が起こったかのメッセージを伝えるプログラムコードを追加しています。このメッセージのことを、Game Callと呼びます。Game Callの内容は、「ねえ、氷のジェムが投げられたよ」といったシンプルなメッセージですが、実際はテキストや数字の文字列として送信されます。このメッセージがオーディオエンジンに伝わると、ゲームオーディオデザイナーが設定した事柄が起こります。
まず最初にEventを作成して、入ってくるゲームコールをWwiseが受け取れるようにする必要があります。ゲームエンジンとオーディオエンジンのキャッチボールのようなものです。ゲームエンジン側から投げられるボールがGame Callで、EventはGame Callを受け取るために設計されたWwise上のオブジェクトの種類です。重要なことは、WwiseがGame Callを受け取るためには、全く同じ名前のEventが必要だということです。
-
メインメニューからLayout > Designerを選択、もしくはF5を押します。
-
Project Exploreビューで、Eventタブをクリックします。
Eventsタブで、これからWwiseにゲームエンジンから送られてくるGame Callを、Wwiseが理解できるようにします。
Project ExploreのEventsタブでは、Eventsと名前付けられたフォルダと、その中にDefault Work Unitと呼ばれるオブジェクトがあります。Work unitsはWwiseの基礎となります。Work unitsはプロジェクトの特別なセクションやエレメントに関連した情報を内包しており、プロジェクトを管理するのに役に立ちます。
多くのゲームでは、多くの人や会社がゲームのそれぞれのパーツを分業します。例えば、マジック関連のサウンドを1つのチームが担当し、アンビエントサウンドを別のチームが担当するかもしれません。このシナリオでは、それぞれのチームはWwiseのコピーを所有することになり、割り当てられたEventの入った独自のWork Unitを作成することができます。プロダクションの後期で、ゲームで必要な全ての要素を持ち込むため、複数のwork unitsを1つのプロジェクトに統合することができます。
Work unitsはWwiseのプロジェクト構造体内に作成されたXMLファイルです。
Wwiseで作成する全てのものは、オブジェクトと呼ばれます。注意いただきたいのですが、このレッスンの最初で説明したゲームのアイテムに関連したゲームオブジェクトと混合しないようにしてください。Wwiseのインターフェース上のオブジェクトは、小さい四角のアイコンで表示されます。20種類以上ものオブジェクトが存在し、それぞれはWwiseでどのようにサウンドを作成しコントロールするかを決定するユニークな機能を提供します。オブジェクトは階層内に存在し、通常Work Unitsは階層の最上位に位置します。ビルを構成するレンガのように、これらのオブジェクトは実用的なアプリケーションに使用することのできる構成単位で、複雑に、そしてクリエイティブにアレンジすることができます。今はDefault Work Unitの中にEventを1つ作成し、Cubeゲームエンジンから送られてくる氷のジェムのGame Callを「キャッチ」するグローブのように使います。
-
Eventsフォルダの中のDefault Work Unitをクリックします。
オブジェクトが選択されると、Project Exploreのアイコンバーが表示され、選択されたオブジェクトに内包することができるオブジェクトの種類を示します。アイコンにあわせると、ツールティップがアイコンによってどのようなオブジェクトなのかを示します。
-
4つ目のアイコンにあわせ、Eventオブジェクトであることを確認します。
-
Eventアイコンをクリックし、Default Work Unit内に新しいEventオブジェクトを作成します。
新しいEventオブジェクト作成後、名前を変更します。
Eventオブジェクトの命名には細心の注意を払う必要があります。Eventオブジェクトの名前が、ゲームエンジンから送られてくる該当ゲームコールの名前と、完全に一致する必要があります。電話番号と同じであり、番号が間違っている場合はつながりません。
うまく機能するためには、通常サウンドデザイナーが、サウンドエンジンがどのような事柄に配慮すべきかを決め、それぞれの事柄に向けてWwise上でEventを作成します。次に、サウンドデザイナーがプログラマーにEvent名を伝え、同じ名前のGame Callがゲームエンジンから送られてくるように、プログラミングしてもらいます。今回のシナリオでは、Cube用にゲームエンジンがプログラミングされていて、様々なコールの名前が定義されていますが、氷のジェムを投げるたびに使うコールはFire_IceGem_Playerという名前です。
-
Fire_IceGem_Player と入力しEnterを押します。
最後にWwiseプロジェクトを元にソフトウエアプログラムを生成します。 コードでは全てのオブジェクト名の参照は小文字で行なわれますので、オブジェクト名における大文字、小文字の区別はありません。
オブジェクトを選択すると関連するプロパティが右側のEvent Property Editorに表示され、このビューのタイトルバーにFire_IceGem_Player - Event Property Editorとあることからも確認できます。異なるオブジェクトには、それぞれ複雑さの異なったエディターが用意されています。多くがNotesフィールドを持っており、これは非常に重要です。なぜならEvent名の混乱を防ぐための情報を追記することができるからです。Fire_IceGem_Playerのような名前であれば、このEventが氷のジェム(Ice Gem)の発射(Fire)と関連するのであろうと想像できますが、全てのEvent名がこのように分かりやすいとは限りません。あなたの作成したものが、あなた自身にも、あなたの作業を確認する人にも理解しやすいように、Notesを使って追加の情報を提供できます。