レッスン 3
目次
-
-
-
-
-
-
-
-
関連動画
-
-
-
-
-
-
-
-
-
-
-
-
Wwise Adventure Gameのゲームコンテンツは、進捗系('active quest'など)やリージョン(砂漠や地下牢など)に分けられます。つまり、プレイヤーがWoodlands(林)にいるときは、Waterfall(滝)のEventが入ったSoundBankがメモリにロードされ、それをポストする準備が整います。そしてプレイヤーがこのリージョンを出て、Eventが停止されると、WaterfallのEventの入ったSoundBankはメモリからアンロードされ、その分のメモリは、これからロードするほかのSoundBank用に解放されます。
AkAudioListenerが、Woodlandsのようなリージョンに入ったことを登録するには、Triggerを使います。
Trigger Colliderについて詳しくは、 レッスン 1 を参照してください。 |
Main Camera(AkAudioListenerコンポーネントのあるゲームオブジェクト)を見ると、Sphere Trigger Colliderというものがあります。このTrigger Colliderが、リージョンのTrigger Colliderに入ると、そのリージョンのSoundBankが、AkBankスクリプトを使いロードされるはずです。これから、ゲームオブジェクトのCube ColliderをIs Triggerに設定してWoodlandsリージョン用に準備し、そこからWoodlandsのSoundbankをAkBankスクリプトでロードする手順を、説明します。
-
Unityのメニューで、 Audiokinetic > Certification > 301 > Lesson 3 を選択し、 Loading SoundBanks using Triggers を選択します。
Unityでは、様々なタイプのColliderが自由に使えます。Woodlandsリージョンでは、Box Triggerの大きさを調整し、Villageの橋のところからCave(洞窟)に至るまでのリージョンを覆うようにします。まず最初にSceneビューを調節し、Woodlandsエリアが見えるようにしてください。
-
Hierarchyで Waterfall ゲームオブジェクトを選択し、Sceneビューの中にマウスを置いたまま、 F をクリックします。
-
Unityのメニューで、 GameObject > 3D Object を選択し、 Cube を選択します。
ゲームオブジェクト名は、分かりやすくするために、その役目を説明するような名前に変えてください。
-
Cubeゲームオブジェクトを右クリックし、 Rename を選択し、' Woodlands Trigger 'と入力します。
Cubeゲームオブジェクトを作成した時点で、ゲームオブジェクトに自動的にBox Colliderが追加されます。Box Colliderにはいくつかのプロパティフィールドがあり、 Size (ゲームオブジェクトの倍率に比例)、 Center (回転軸と相対関係にある中心点)、物理的な Material (摩擦など物理的なプロパティを定義するために使う材質情報)、そして一番上に、このCollider形状にほかのCollider が入れるようにする Is Trigger プロパティ(詳細は レッスン 1 で説明)などがあります。Woodlands Triggerは、プレイヤーが出入りできるColliderなので、Triggerとして設定します。
-
InspectorでBox Colliderを探し、 Is Trigger を有効にします。
Box Colliderに、ほかのColliderが入ることができるので、ゆくゆくはColliderのメッシュを非表示にしますが、今は開発段階なので、半透明のMaterial(素材)にしてTriggerに入ったときが分かるようにしてください。既成のTrigger_RedというMaterialが、半透明の赤に設定されたShader(形や色を決めるのに使うコード)なので、ここで使えます。
-
Projectビューで Trigger_Red を検索します。
-
Trigger_Red というMaterialをProjectウィンドウからドラッグし、Hierarchyにある、作成した Woodlands Trigger ゲームオブジェクトの上に持っていきます。
これでColliderの外側が半透明な赤で表示されますが、中にいるときはこの形が表示されないので、注意してください。
次に、Trigger Colliderを調節し、VillageからCave直前に至るまでの範囲の、Woodlandsリージョンに、大きさを合わせます。ここで使うのは、Moveツール、Rotateツール、Scaleツールです。
組み合わせツールの'Move, Rotate or Scale'は使わず、慣れるまで、個別に扱えるMove、Rotate、Scaleのツールを使うことを推奨します。
Scaleツールを使いゲームオブジェクトを拡大します。
-
Unityのツールバーで、 Scale tool を選択します。
-
中央の灰色のボックスをクリックしてホールドし、そのままマウスを右にドラッグし、ボックスが木々より高くなる位置に持っていきます。
-
Moveツール 、 Rotateツール 、 Scaleツール を使い、ゲームオブジェクトの最終調整をして、Woodlandsリージョン全体を覆うようにします。
ColliderがPine Forest(松林)など隣接する土地にかかっても構いませんが、Village側の面は、Village TriggerによってVillageのSoundbankがロードされる場所であり、WoodlandsのSoundBankの中のEventをすべて停止すべきところなので、Colliderが橋に少しだけかかるようにして、それ以上は出ないように気をつけます。次にAkBankスクリプトを追加し、プレイヤーがBox Colliderに入ったときにWoodlandsのSoundBankがロードされるようにします。
-
Woodlands Trigger ゲームオブジェクトが選択されていることを確認してから、Inspectorで Add Component をクリックして AkBankを探し、これを選択します。
次にSoundBankをアサインしてください。
-
Bank Name プロパティで Banks > Default Work Unit > Region を展開し、 Woodlands を選択します。
次にこれをAkTriggerEnterに設定し、Triggerに別のTriggerが入ってきたときに検知できるようにします。
すでに レッスン 1 で説明したとおり、SoundBankをロードするときの要件を変更する必要があれば、まず一度Nothingに設定してから、新しいLoad方法を選択することで、2つが同時選択されないようにできます。
-
Load On プロパティに AkTriggerEnter だけを設定します。
-
Unload On プロパティに AkTriggerExit だけを設定します。
これでWoodlandsのSoundBankが、Colliderに入ったときにロードされ、出るときにアンロードされるように設定しましたが、まだ検出するゲームオブジェクトを指定していません。つまり、Triggerを出入りするすべてのものが検出されてしまい、地面のColliderにもEvil Crawlerにも反応します。入ったときに検出されるのはリスナー(Main Camera)だけにしたいので、AkTriggerEnterスクリプトを追加してTrigger Objectをアサインする必要があります。
-
Inspectorで Add Component をクリックし、 AkTriggerEnter を検索して選択します。
-
Hierarchyの Main Camera ゲームオブジェクトを AkTriggerEnterの Trigger Object プロパティまでドラッグします。
-
Inspectorで Add Component をクリックし、 AkTriggerExit を検索して選択します。
-
Hierarchyの Main Camera ゲームオブジェクトを AkTriggerExit のTrigger Objectプロパティまでドラッグします。
これで、Triggerの出入りに際して、サウンドバンクをロード・アンロードするための必要な手順が、すべて完了しました。実装したあとのグッドプラクティスとして、常にテストすることが重要なので、ゲームのランタイムにプロファイラを接続してください。
-
Wwiseで Remote… をクリックします。
-
Remote Connectionsウィンドウで Wwise Adventure Game (Editor) を強調表示にして、 Connect をクリックします。
-
Unityで Play をクリックします。
-
Woodlandsまで走っていきます。
-
Play をもう一度クリックしてPlayモードを終了させます。
-
Wwiseメニューで Layouts を選択し、 Profiler を選択します。
-
タイムカーソルを後方にドラッグし、Advanced ProfilerのMemoryタブに Woodlands のSoundBankが表示されるまで戻ります。
WoodlandsのSoundBankは、あなたがWoodlandsリージョンに入るとロードされたことが分かりますが、タイムカーソルをさらに左にドラッグしていくと、どこかの時点でWoodlands.bnkが非表示になるので、あとでプレイヤーがWoodlands Triggerに入ったときにロードされることが分かります。