zoukankan      html  css  js  c++  java
  • 微软Hololens学院教程Hologram 220空间声音(Spatial sound )【本文是老版本,与最新的微软教程有出入】

    这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!

    原文链接https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/holograms_220

    空间声音可以赋予你的全息对象生命,使它们在我们的世界中像真实存在一样。 全息对象由光和声音组成,如果你碰巧找不到你的全息对象,空间声音可以帮助你找到它们。 空间声音不像你在收音机上听到的典型声音,它是位于3D空间的声音。 有了空间声音,你可以使全息对象听起来像他们在你身后,旁边,或甚至在你的头上! 在本课程中,您将:

    • 将您的开发环境配置为使用Microsoft Spatial Sound。
    • 了解如何在现实世界中对全息对象加入空间声音。
    • 使用音频找到您的全息对象。
    • 当您与全息对象进行交互时,使用声音提供触觉反馈。
    • 在全息世界中使用空间声音作为手势被识别的反馈。
    • 使用户沉浸在音乐中。

    项目文件:

    • 下载项目文件 files 将它保存在您的电脑中.

    章节1 Unity设置

    为了实现效果,在Unity中需要将Unity的声音配置改为Microsoft Spatial Sound。

    步骤:

    • 下载的项目文件名称为 Spatial Sound.
    • 打开 Unity.
    • 选择 Open.
    • 定位到你刚下载的项目文件 Spatial Sound 文件夹.
    • 点击选中 Starting 文件夹然后点击 Select Folder 按钮.
    • 等待 Unity加载项目资源.
    • Hierarchy 面板中, 选中 Main Camera.
    • Inspector 面板里, 设置摄像机位置为  0, 0, 0.
    • 在Unity's 顶部工具栏, 点击 Edit > Project Settings > Audio.
    • 找到 Spatializer Plugin 的下拉选项然后选择 MS HRTF Spatializer.
    • Hierarchy 面板中点击 Create > Create Empty.
    • 右击 GameObject 对象,将它重新命名为 “SpatialSound”.
    • 选中此SpatialSound 对象, 然后在Inspector 面板中, 点击 Add Component, 选择 Audio > Audio Source
    • Inspector 面板中添加了 Audio Source 组件后.
    • 点击 AudioClip 属性右边的小圆圈.
    • 在新弹出的窗口找到并选中 Riff audio clip ,然后关闭此窗口。
    • 回到 Inspector 面板中, 勾选 Spatialize .
    • 勾选 Loop .
    • 拖拽 Spatial Blend 滑轮到 3D, 或者直接在编辑框中输入 1 .
    • 开启 Unity 的预览模式.
    • Hierarchy 面板中, 找到并选中 Main Camera 对象.
    • Inspector 面板中,  将鼠标光标放在位置变量(XYZ)上 .
    • 你会看到鼠标光标左右会出现一个小箭头, 这时点击拖拽你的鼠标就会改变摄像机的位置.
    • 当摄像机位置改变时,声音的大小也会随之变化.
    • 点击 Play 按钮可以退出预览模式.

    章节2 测试全息对象空间声音与普通立体声的对比

    步骤:

    • Project 面板中, 打开 Scenes 文件夹。
    • 双击Grounding 场景文件.
    • 打开新场景后,在 Hierarchy 面板中, 选择 AudioEmitter 对象.
    • Inspector 面板中, 找到 Toggle Emitter 组件.
    • 双击切换发射器脚本用VS打开 Toggle Emitter .
    using UnityEngine;
    using HoloToolkit.Unity;
    
    public class ToggleEmitter : MonoBehaviour
    {
        private int timesSelected = 0;
    
        private void OnSelected()
        {
            this.timesSelected++;
            if (this.timesSelected == 1)
            {
                //Call "PlayEvent" on the UAudioManager using the "SimpleSound" event on this GameObject
                UAudioManager.Instance.PlayEvent("SimpleSound", this.gameObject);
            }
            else if (this.timesSelected == 2)
            {
                //Call "StopEvent" on the UAudioManager using the "SimpleSound" event on this GameObject
                UAudioManager.Instance.StopEvent("SimpleSound", this.gameObject);
                //Call "PlayEvent" on the UAudioManager using the "SpatialSound" event on this GameObject
                UAudioManager.Instance.PlayEvent("SpatialSound", this.gameObject);
            }
            else
            {
                this.timesSelected = 0;
                //Call "StopEvent" on the UAudioManager using the "SpatialSound" event on this GameObject
                UAudioManager.Instance.StopEvent("SpatialSound", this.gameObject);
            }
        }
    }
    ToggleEmitter

    发布测试:

    具体发布流程见上两节课程,需要注意的是发布的时候记得添加当前场景到发布设置中。

    当发布完成后,测试步骤如下来体验普通立体声与空间声音的区别:

    • 凝视一个盒子然后执行Air-Tap手势,会开启普通立体声。
    • 第二次执行手势会开启空间声音。
    • 第三次执行手势会关掉声音。

    章节3 根据空间声音寻找全息对象

    步骤:

    • 在Unity的 Project面板中,找到并打开 Scenes 文件夹.
    • 双击打开ObjectDiscovery 场景文件 .

    发布测试:

    • 部署此项目到你的设备上,并测试.
      • 注意在 Build Settings 窗口, 将前一次发布的场景去掉 Scenes/Grounding.
      • 点击 Add Open Scene 来添加当前ObjectDiscovery 场景。
    • 项目运行后,说 "start" 使得宇航员开始说话.
    • 凝视宇航员做点击手势. 这个宇航员会消失不见,实际它移动到了其他位置.
    • 你可以根据宇航员发出的声音找到它.

    章节4  音频触觉

    这章主要通过给全息对象添加声音来代替物理对象的触觉反馈。

    步骤:

    • 在Unity的 Project 面板下,打开 Scenes 文件夹.
    • 双击打开 AudioHaptics 场景文件.

    发布测试:

    同上发布部署到你的设备上,注意发布时设置为当前场景。

    1.项目运行后,移动你的手在摄像机视角范围内,并竖起你的食指,感受你的手被追踪时系统播放的声音。这是第一个声音代替触觉反馈的事例。

    2.将你的手移出追踪视线,你会发现声音也消失了。

    3.凝视离你最近的立方体并手势选中它,听它发出的声音。

    4.凝视离你最远的立方体并手势选中它,听它发出的声音,它的声音会更柔和。

    5.当凝视点没有对焦任何全息对象时,手势点击,系统会播放另一种声音提示用户没有选择任何内容。这是音频触觉反馈另一个很好的例子。

    章节5 沉浸感

    步骤:

    • Project 面板下打开Scenes 文件夹。
    • 双击打开 Immersion 场景文件.

    发布测试:

    同上发布部署到你的设备上,注意发布时设置为当前场景。

    1.说“start”开始播放具有立体声的音乐。 此时球体应该是蓝色的。
    2.说“spatial”会改变音乐为使用空间声音。 此时球体应该是红色的。

             -在此空间模式中,您可以通过点击球体来切换哪些球体发出声音。

             -禁用的球体将是灰色的。    

    3 说“standard”,回到立体声音乐播放模式。
    4.在房间里走动,在standard和spatial播放模式之间切换,比较它们。 立体声是无论你在哪里总是听起来相同,但是空间声音的效果可以让你感觉到每一个球体的位置,感觉像乐队一样。

     

    原文链接:https://developer.microsoft.com/en-us/windows/holographic/holograms_220

    本人根据自己的理解对原文稍作改动。如有不恰当的地方,请指正。谢谢哦

  • 相关阅读:
    EntityFramework 启用迁移 EnableMigrations 报异常 "No context type was found in the assembly"
    JAVA 访问FTP服务器示例(2)
    NuGet Package Manager 更新错误解决办法
    JAVA 访问FTP服务器示例(1)
    RemoteAttribute 的使用问题
    诡异的 javascript 变量
    javascript apply用法
    Babun 中文乱码
    GSM呼叫过程
    转站博客园
  • 原文地址:https://www.cnblogs.com/qichun/p/6060213.html
Copyright © 2011-2022 走看看