menu
 

レッスン 2

目次

Attenuation Sphere

この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で有効にして設定する手順を説明します。

  1. Unityのメニューで、 Audiokinetic > Certification > 301 > Lesson 2 を選択し、 Attenuation Spheres を選択します。

  2. Hierarchyで L2_2B - Village Environment Scene を選択し、Wwiseを展開し、 Windmill ゲームオブジェクトを選択します。

    新しいWwiseプロジェクトを作成する際、Attenuation ShareSetのMax Distance値はSoundBankにメタデータとして含まれません。WAGでは含まれますが、ベストプラクティスとして先に進む前に確認しておきます。

  3. Wwiseで、 Project > Project Settings を選択します。

  4. SoundBanksタブを選択します。

  5. SoundBanksタブでMax Attenuationが有効になっていることを確認します。

    これで、Wwise Unity IntegrationですべてのAttenuation ShareSetsの、すべてのMax distancesを取得できるので、それに基づいて各Attenuation Sphereのサイズを決めることができます。

    [ヒント]

    あなたのカスタムスクリプトでも、AkWwiseProjectInfo.GetData().GetEventMaxAttenuation()ファンクションをコールすれば、Max distanceを取得できます。

  6. Project Settingsで OK をクリックします。

  7. 'Windmill'を検索し、Ambient_WindmillのBlend Containerを選択します。

  8. PositioningタブのAttenuationセクションでEditをクリックします。

    さて、これを何に設定しますか?1つのやり方として、UnityとWwiseを交互に見ながら徐々に大きくしていき、結果を確認することができます。さらに正確なアプローチとして、仮の値を設定し、UnityでSphere Colliderのサイズを調整して望ましいAttenuation領域が含まれるようにしてから、Wwiseに戻ってMax Distance値をSphere Colliderの半径に合わせて更新します。

  9. Attenuation EditorのMax distanceフィールドの値を35に設定します。

  10. Wwise Pickerで Generate SoundBanks をクリックします。

  11. 手のひらツール ('Q') を使って、Sceneビューの位置を、 WindmillMain Camera の両方を見ながら調整します。

  12. UnityのInspectorでSphere Colliderに進み、 Radius35 に設定します。

    Sceneビューで、Attenuation Sphereの端が緑の線で表示されます。ゲームオブジェクトにScale(拡大縮小)の設定がされていない限り、Sphere ColliderのRadius(半径)は、そのまま直接AttenuationのMax distanceプロパティとなります。

  13. アタッチされているAkAmbientコンポーネントの、 Show Attenuation Sphere プロパティを、 Current_Event_Only に設定します。

    Current_Event_Onlyを選択すると、Distance AttenuationのMax Distance値を示す赤い球体がシーン内に表示されます。

    球体がMain Cameraのあるプレイヤーのスタートポジションまで届いていないため、Windmillが全く聞こえないことが分かります。

    Sphere ColliderのRadiusを大きくすれば、Attenuationがプレイヤーに届くために必要な距離を可視化できます。

  14. クリックして Radius プロパティを押さえたまま 右にドラッグし 、緑のSphere TriggerがPlayerに届くようにします。

    適切な値が分かれば、その数値を、Attenuation ShareSetのMax distanceフィールドに使えます。

  15. Wwiseに切り換え、Attenuation Editorの Max distance の設定を、新しい Sphere Collider Radius値(切り上げ)と同じ値に設定します。

    今、一時的に測定するためにSphere Colliderを使っただけなので、設定を1に戻します。

  16. UnityのInspectorでSphere Colliderを探し、 Radius プロパティを 1 に設定します。

    最後に、最新の変更点をSoundBankから取得する必要があります。

  17. Wwise Pickerで Generate SoundBanks をクリックします。

    UnityのWwise PickerでSoundBankを生成すると、同時に、UnityプロジェクトもWwise Projectの最新情報でアップデートされます。

Attenuation Sphereの大きさが大きくなり、Playerのスタートポジションにもかかっているのが分かります。

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


このページはお役に立ちましたか?