レッスン 1
目次
Wwise Eventをポストするには、まずそのEventをSoundBankに追加し、メモリにロードしておきます。
SoundBankにWwise Eventを追加する方法は、 Wwise Certification 101 の説明を参照してください。 |
SoundBankをUnityでロードするには、Wwiseが少なくとも以下の2点を知る必要があります。
-
参照するゲームオブジェクト。
-
Triggerのメカニズム。
この情報はスクリプトで定義します。Wwise Unity Integrationで、既成のAkBankスクリプトをゲームオブジェクトに追加し、それをアタッチするゲームオブジェクトとすれば、上記1を満たせます。AkBankコンポーネントの中でSoundBankをロードする様々な方式をLoad Onプロパティで選択できるので、これで上記 2を満たせます。
ゲームオブジェクトにスクリプトを追加すると、それはコンポーネントとして追加されます。 |
Wwise Adventure Gameのサウンドの大半は、GeneralというSoundBankの中に入っています。これらのサウンドをランタイムに再生するには、最初にこのSoundBankをロードします。AkBankコンポーネントの設定で、GeneralのSoundBankをロードするタイミングを、ゲームの様々なアクションを使って自由に設定できますが、今回は、単純にゲームがスタートする前に Awake でSoundBankをロードしておくのが妥当です。そうすれば、ゲームが Start でスタートするときに合わせて、すべてのサウンドがポストされます。これから、GeneralというSoundBankをWwise Adventure Gameにロードし、Awake時点で確実にロードされるための手順を説明します。
-
Audiokinetic LauncherのWwise Adventure GameタブでOpen in Wwiseをクリックします。Wwise Adventure GameのWwiseプロジェクトが開きます。
-
Unityのメニューで、 Audiokinetic > Certification > 301 > Lesson 1 > Loading a SoundBank を選択します。
-
UnityのHierarchyビューで、 Wwise を展開し、 GeneralSoundBanks ゲームオブジェクトを選択します。
Unityは、初期化の時点で、すべてのゲームオブジェクトに追加されたすべてのスクリプトを確認します。そこで、Unityの Script Lifecycle Flowchart に含まれるファンクションの入ったスクリプトがあれば、それらのファンクションを既定の順番でコールします。これを利用して、実行の順番を守るために、GeneralSoundBanksゲームオブジェクトに追加するAkBankスクリプトを、 Awake にアサインすれば、Unityの初期化のときに自動的に起動します。
簡単に便利にAkBankスクリプトをゲームオブジェクトに追加するには、Wwise Pickerを利用してください。Wwise Unity Integrationの標準機能で、接続中のWwiseプロジェクトにある利用可能なオブジェクト、例えばEventやSoundBankやSwitchなどが、リスト表示されます。このようなWwiseオブジェクトをゲームオブジェクトの上にドラッグすると、対応するインテグレーションコンポーネントが追加され、オブジェクトが自動的にそれにアサインされます。
Wwise Pickerを開くには、Unityメニューで、Window > Wwise Pickerを選択します。Wwise Pickerの詳細については Wwise Pickerをご覧ください。
-
Wwise Pickerで、 SoundBanks > Default Work Unit > General を展開し、 General というSoundBankを、Inspectorの GeneralSoundBanks ゲームオブジェクトにドラッグします。
SoundBankをInspectorまでドラッグするときに、誤ってSoundBankでなくWork Unitをドラッグしないように気をつけてください。
別の方法として、Add Componentを使いAkBankスクリプトを追加してから、該当するSoundbankのBank Nameをアサインすることもできます。
Inspectorを見てください。
これによると、AkBankというスクリプトがGeneralSoundBanksゲームオブジェクトに追加され、Bank NameとしてGeneralのSoundBankが選択されているのが分かります。Load OnプロパティはデフォルトでStartに設定されていますが、Wwise Adventure Gameでは、EventがStart時点ですでにポストされているので、実行の順序を変更して、SoundBankのロードのタイミングを、ゲームが Awake でロードするときにしてください。Load Onプロパティを、いったんNothingに設定すれば、その他の選択中のTriggerがすべて解除されるので、 Start と Awake が同時に選択されることはありません。
Start時にロードされるEventがなければ、Start時にSoundBankをロードしても構いません。SoundBankをAwake時にロードし、Start時にEventをポストする方法は、Eventのポストより前にSoundBankを確実にロードしておくための単純な方法ですが、ほかのUnityプロジェクトでは、違う方法があるかもしれません。
-
Load On プロパティを開き、 Nothing を選択します。
-
Awakeを選択します。
以上です。Wwiseサウンドエンジンを初期化すると、GeneralのSoundBankがロードされます。それでは、Wwiseを使いゲームのプロファイリングを行う前に、SoundBankを生成してください。
-
Wwiseに切り換え、 Layouts メニューで、 SoundBank を選択します。
-
SoundBank ManagerでGenerate Allをクリックします。
次にProfilerに接続してPlayをクリックし、SoundBankがロードされていることを確認してください。Wwise Adventure Gameが開いていて、Wwiseサウンドエンジンが稼働中であれば接続可能で、Playモードである必要はありません。
-
Wwiseに戻り、 Layouts メニューで、 Profiler を選択します。
-
ツールバーで Remote… をクリックします。
-
Remote ConnectionsビューのAvailableタブで、 Wwise Adventure Game (Editor) をダブルクリックします。
-
Unityで Play をクリックします。
いったんPlayモードに入ると、すでにロードされたSoundBanksをProfilerが認識するので、すぐにWwise Profilerで確認できます。
-
WAG (Wwise Adventure Game) メニューを開くには ESC を押し、 Playモードを終了するにはもう一度 Play をクリックします。
-
Wwiseに切り替え、Advanced ProfilerでSoundBanksタブを選択します。
-
Performance Monitorでタイムカーソルをドラッグし、MemoryタブにGeneralのSoundBankが表示されるまで戻ります。
Advanced Profilerに、GeneralのSoundBankを含めWwiseのすべてのメモリアロケーションのリストが表示されます。SoundBanksタブのリストに表示されていれば、SoundBankがメモリにロードされているため、このSoundBankからEventをポストできます。
Playモード中に行った変更は、保存されません。そこで、ほかのセクションや演習に進む前に、変更点が失われないように必ずPlayモードを終了させてください。今回の演習ではPlayモード終了の警告がありますが、次のセクションでは、Playボタンを無効(Playモードではない)にする方法を知っているものとして進められます。 |
最初のステップが完了しました。いよいよ、サウンドの再生です!