menu
レッスン 2
目次
-
レッスン
このSceneに、Ambient_WindmillのEventがAkAmbientコンポーネントとして追加されましたが、まだWindmillの距離に基づく減衰の設定が残っています。プレイヤーのスタートポジションからはWindmill音が全く聞こえませんが、それはリスナープローブのゲームオブジェクト(Player)が、Ambient_WindmillというBlend Containerの減衰の最大半径よりも外側にあるからです。
![]() | |
Wwise Unity Integrationのリスナー(AkAudioListener)に関する詳細は、 レッスン 9 で確認してください。 |
そこで、Ambient_WindmillのAttenuation ShareSetの、Max distance(最大距離)を長くします。さて、どれくらい長くするべきでしょうか?また、確実にスタートポジションでプレイヤーに音が聞こえるようにするには、どうすればよいでしょうか?1つの解決法が、Attenuation Spheresです。
AkAmbientコンポーネントのAttenuation Sphereを有効にすると、ゲームオブジェクトを中心とし、Wwiseで設定済みのMaximum attenuation distanceを半径とするsphere(球体)が表示されます。このsphereを見れば、Attenuation Editorで設定したMax distanceが表されるので、ゲーム内のゲームオブジェクと比較して、距離の妥当性を判断できます。
それでは、Attenuation SphereをWwise Adventure Gameで有効にして設定する手順を説明します。
-
Unityのメニューで、 Audiokinetic > Certification > 301 > Lesson 2 を選択し、 Attenuation Spheres を選択します。
-
Hierarchyで L2_2B - Village Environment Scene を選択し、Wwiseを展開し、 Windmill ゲームオブジェクトを選択します。
新しいWwiseプロジェクトを作成する際、Attenuation ShareSetのMax Distance値はSoundBankにメタデータとして含まれません。WAGでは含まれますが、ベストプラクティスとして先に進む前に確認しておきます。
-
Wwiseで、 Project > Project Settings を選択します。
-
SoundBanksタブを選択します。
-
SoundBanksタブでMax Attenuationが有効になっていることを確認します。
これで、Wwise Unity IntegrationですべてのAttenuation ShareSetsの、すべてのMax distancesを取得できるので、それに基づいて各Attenuation Sphereのサイズを決めることができます。
あなたのカスタムスクリプトでも、AkWwiseProjectInfo.GetData().GetEventMaxAttenuation()ファンクションをコールすれば、Max distanceを取得できます。
-
Project Settingsで OK をクリックします。
-
'Windmill'を検索し、Ambient_WindmillのBlend Containerを選択します。
-
PositioningタブのAttenuationセクションでEditをクリックします。
さて、これを何に設定しますか?1つのやり方として、UnityとWwiseを交互に見ながら徐々に大きくしていき、結果を確認することができます。さらに正確なアプローチとして、仮の値を設定し、UnityでSphere Colliderのサイズを調整して望ましいAttenuation領域が含まれるようにしてから、Wwiseに戻ってMax Distance値をSphere Colliderの半径に合わせて更新します。
-
Attenuation EditorのMax distanceフィールドの値を35に設定します。
-
Wwise Pickerで Generate SoundBanks をクリックします。
-
手のひらツール ('Q') を使って、Sceneビューの位置を、 Windmill と Main Camera の両方を見ながら調整します。
-
UnityのInspectorでSphere Colliderに進み、 Radius を 35 に設定します。
Sceneビューで、Attenuation Sphereの端が緑の線で表示されます。ゲームオブジェクトにScale(拡大縮小)の設定がされていない限り、Sphere ColliderのRadius(半径)は、そのまま直接AttenuationのMax distanceプロパティとなります。
-
アタッチされているAkAmbientコンポーネントの、 Show Attenuation Sphere プロパティを、 Current_Event_Only に設定します。
Current_Event_Onlyを選択すると、Distance AttenuationのMax Distance値を示す赤い球体がシーン内に表示されます。
球体がMain Cameraのあるプレイヤーのスタートポジションまで届いていないため、Windmillが全く聞こえないことが分かります。
Sphere ColliderのRadiusを大きくすれば、Attenuationがプレイヤーに届くために必要な距離を可視化できます。
-
クリックして Radius プロパティを押さえたまま 右にドラッグし 、緑のSphere TriggerがPlayerに届くようにします。
適切な値が分かれば、その数値を、Attenuation ShareSetのMax distanceフィールドに使えます。
-
Wwiseに切り換え、Attenuation Editorの Max distance の設定を、新しい Sphere Collider Radius値(切り上げ)と同じ値に設定します。
今、一時的に測定するためにSphere Colliderを使っただけなので、設定を1に戻します。
-
UnityのInspectorでSphere Colliderを探し、 Radius プロパティを 1 に設定します。
最後に、最新の変更点をSoundBankから取得する必要があります。
-
Wwise Pickerで Generate SoundBanks をクリックします。
UnityのWwise PickerでSoundBankを生成すると、同時に、UnityプロジェクトもWwise Projectの最新情報でアップデートされます。
Attenuation Sphereの大きさが大きくなり、Playerのスタートポジションにもかかっているのが分かります。

これで、減衰がどこまで届くのかを、Unityで正確に判断できるのです。