LoginSignup
2
2

More than 5 years have passed since last update.

Unity Audio Spatializer SDKを使ってみる

Last updated at Posted at 2016-05-26

Unity Audio Spatializer SDKを使ってみる

Audio Spatializer SDK(オーディオ立体化 SDK)で調べると、Oculas Spatializer SDKの記事が多いので、あえてUnity Audio Spatializer SDKを使ってみました。

ダウンロード

ここからDemoをダウンロードします。
https://bitbucket.org/Unity-Technologies/nativeaudioplugins/downloads

展開してプロジェクトとして開くと作ったUnityのバージョンが古いとか言われるけど続行!

必要なものをパッケージ化

デモとかいらないので、

Editor\AudioPluginDemoGUI.dll
Plugins\x86\AudioPluginDemo.dll
Plugins\x86_64\AudioPluginDemo.dll

この3つほどをパッケージ化して他のプロジェクトに流用できるようにしとく

実際使ってみる

先ほどパッケージ化したものをインポートして
AudioSpatializerProjectSettings.png

Audio Project の設定でSpatializer PluginをDemo Spatializerに変更

オーディオ立体化したいAudio Sourceに
AudioSpatializerEnable.png
Spatialzerのチェックをつける。

これで完了です。

PlayClipAtPoint関数を使ってるのですけど。。。

PlayClipAtPointでAudioClipを鳴らすと"One shot audio"のAudioSourceが自動生成されて自動で消えます。
自動生成されたAudioSourceのプロパティを変更できればいいのですができなさそうなので似たような関数を作りました。

    AudioSource PlayClipAt(AudioClip clip, Vector3 pos)
    {
        if (clip == null) return null;
        GameObject tempGO = new GameObject("TempAudio"); // create the temp object
        tempGO.transform.position = pos; // set its position
        AudioSource aSource = tempGO.AddComponent<AudioSource>(); // add an audio source
        aSource.clip = clip; // define the clip
                             // set other aSource properties here, if desired
        aSource.spatialize = true;
        aSource.spatialBlend = 1.0f;
        aSource.Play(); // start the sound
        Destroy(tempGO, clip.length); // destroy object after clip duration
        return aSource; // return the AudioSource reference
    }

合ってるかどうか不明ですが、これに置き換え。。。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2