Hololens官方教程精简版 – 06. Spatial sound(空间声音)

前言

注意:本文Unity版本为5.5.1f1版本

个人建议,学习Holograms 220之前,一定完成《Hololens官方教程精简版 – 02. Introduction with Device》的学习。

本篇集中学习空间声音功能,完成以下目标: 
– 感受空间声音 
– 感受声音被遮挡的效果

Chapter 1 – Spatial Sound

目标

感受空间声音

实践

  1. 请按照第一篇的教程,完成项目的创建。

  2. 新建文件夹:”Assets/_Scenes/Holograms 220/”

  3. 新建场景:”Assets/_Scenes/Holograms 220/Holograms 220.unity”

  4. 打开场景,删除默认的Main Camera

  5. 将”Assets/HoloToolkit/Input/Prefabs/HololensCamera.prefab”添加到Hierarchy根级

  6. 打开”Unity菜单 > Edit > Project Settings > Audio”,打开Audio Manager面板,将Spatializer Plugin设置为:MS HRTF Spatializer,如图: 

  7. Cube添加组件Audio Source 

  8. 添加一个Sphere物体,按下图设置: 

本节完成!

点击Play,戴上设备或者耳机,在Scene中移动Cube位置,当拖入到Sphere里面时,声音被削弱。

说明

  • AudioOccluder 
    这是一个简单的声音遮挡器,实现IAudioInfluencer接口,具体实现其实是使用AudioLowPassFilter(低通滤波器)对低于指定频率的声音进行了降音,所以场景中的Sphere此时可以起到遮挡声音的作用。

  • AudioEmitter 
    这是一个声音发射器,内部使用射线机制,寻找摄像机(耳朵)和Cube之间所有实现了IAudioInfluencer接口的组件,并依次执行这些组件中对此接口的实现。

  • AudioLowPassFilter 
    低通滤波器,低于指定频率的声音才能通过。Unity中还有更多的过滤器,具体可以查看Unity官方文档中《Audio Filters》部分。

小结

本节没有代码,都是添加和设置组件。具体实现原理,大家可以看组件的源码。 
需要注意的地方就是,记得在Audio Manager中设置Spatializer PluginMS HRTF Spatializer,才能打开Audio Source组件的空间选项,以便于在Hololens上形成比较好的空间声音效果。

参考文档 
官方教程Holograms 220:https://developer.microsoft.com/en-us/windows/mixed-reality/holograms_220