利用Unity3D与Oculus实现机器情绪安抚师的一种方案

(一张最原始的Unity3D中音乐可视化粒子海的图,想象一下,如果这幅场景出现在虚拟设备中,辅以根据音乐频谱变化的色彩与悦动频率,会是怎样的效果呢?)

    Unity3D有着非常完备的虚拟三维场景交互开发功能,以Oculus为代表的虚拟现实设备又有着极强的视觉感染力,一副不错的耳机可以产生身临其境的听觉效果(在这里我使用的是森海塞尔头戴式耳机),我认为结合这三者进行开发,最终可以对人的情绪产生非常显著的影响效果,“机器情绪安抚师”系统的开发就是基于这个比较理想化的想法,这套系统经过实验证明可以在一定程度上让人的情绪趋于缓和,从而更专注于需要做的事。我与几位小伙伴曾经基于这套系统撰写论文并投稿给人机交互领域顶级会议SIGCHI,最终并没有被接收,但我依然相信这种思路是可行的,并且会随着硬件的进步以及人类情绪识别技术的发展变得更加吸引人。

总框架设计

    总体上说,这套系统是通过移动端来识别用户情绪,然后通过情绪模型获知用户情绪的反向情绪,再通过反向情绪精准地匹配服务器中的音乐,然后将音乐传至虚拟现实设备端,再通过音乐可视化算法输出音乐可视化内容。细节内容在下面这张系统架构图中有所展现。

情绪识别

    为了完成情绪识别方面的工作,我开发了一款安卓端的手机应用,其中主要采用的是Emokit情绪检测接口(http://www.emokit.com/),实现了用户可以利用智能手机随时随地对情绪进行多通道的检测与记录,客户端的几张截图如下所示。

情绪模型

    在获知了用户情绪后,需要将情绪在某个权威的情绪模型中进行精准的定位以及数字化存储,这里采用的是心理学领域具有权威性的普拉奇克情绪三维模型。

    普拉奇克(Plutchik)认为情绪是多维的,它包括强度、相似性和两极性三个维度。即(1)所有的情绪都能表现出不同的强度,如不同程度的愉快或悲伤;(2)不同的情绪在感受上的相似性,如快乐和期待、厌恶与惧怕等;(3)两极性是指感受完全不同的两种情绪,如悲痛与狂喜等。普拉奇克采用一个橘瓣体来形象的描述三个维度之间的关系(类似于八色相环),每个橘瓣体代表一类基本情绪,即狂喜、接受、惊奇、恐惧、悲痛、憎恨、狂怒和警惕。在这个橘瓣体中最强烈的情绪位于上部,越往下情绪强度越弱;对角位置的情绪表现出两极性;相邻的情绪具有相似性。

这个模型非常适合用于数字化地表示与存储用户情绪,原因主要是它可以很好地映射在二维坐标系中,并可以利用情绪点距离清楚地表现情绪激烈程度。在实际运用过程中,我们发现这个模型的效果确实是卓越的。

音乐可视化

(系统实际使用照片)

    音乐可视化是本项目中非常重要的一环,从某种程度上说,音乐可视化效果的优劣直接影响用户沉浸感的好坏。由于本项目的音乐可视化内容是展现在Oculus端,所以有关音乐可视化的开发主要是基于Unity3D平台进行的。所运用到的原理主要是在Unity场景中构建粒子系统,然后根据音乐的频谱去改变光影粒子系统中各粒子的高度与颜色进而产生音乐可视化效果。

注:我乐意将这里的音乐可视化代码进行开源,需要的可以在博客下评论告诉我。

    最终,通过两种方式进行了系统有效性的实验,一种是依靠高性能中心中的沉浸式旋转座椅与心电设备做了专业级别的测试与比对,另一种是找到了40位志愿者进行测试,通过情绪刺激、情绪检测、情绪调节、二次情绪检测的方式对每一位志愿者进行测试,最终结果表明,这套系统确实对于帮助用户情绪趋于稳定具有显著的效果。其中在消除负面情绪方面的作用效果要优于在舒缓激烈情绪方面的作用效果。另外,这个系统具有可扩展性,这个框架是比较基本而又坚实的一个框架,可以通过一些技巧让系统变得更有趣,更好用,还可以考虑移植到Hololens等别的有趣的设备上。

 

备注:本人非常乐意分享我的文章,转载请注明我的博客地址:http://www.cnblogs.com/matthewli/与原文地址:http://www.cnblogs.com/matthewli/p/7247622.html,谢谢!

 

转载于:https://www.cnblogs.com/matthewli/p/7247622.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Unity中使用Oculus进行交互,你需要首先安装Oculus Integration插件。接下来,你可以使用Oculus提供的手柄或触摸控制器来实现交互。具体步骤如下: 1. 添加Oculus Integration插件:在Unity Asset Store中搜索“Oculus Integration”,下载并导入该插件。 2. 配置场景:将OVRPlayerController预制件拖拽到场景中,该预制件包含了Oculus手柄或触摸控制器的交互脚本。 3. 添加交互脚本:在需要进行交互的物体上添加OVRGrabbable脚本或OVRInput脚本,来实现物体的抓取或触发事件。 4. 设置交互动作:通过OVRInput脚本设置手柄或触摸控制器的按键和手势来触发相应的交互动作。 5. 调试和优化:在测试时,可以使用Oculus提供的Oculus Debug Tool来调整控制器的灵敏度和其他设置,来优化交互体验。 希望这些步骤能够帮助你实现在Unity中使用Oculus进行交互。 ### 回答2: Unity和Oculus交互是指使用Unity引擎开发虚拟现实(VR)应用程序,并与Oculus头戴式显示器(HMD)进行交互。Unity是一款业界广泛使用的游戏引擎,它提供了强大的功能和易于使用的界面,可用于开发各种类型的应用程序。 首先,要实现Unity和Oculus的交互,我们需要安装Oculus Integration插件,该插件为Unity提供了与Oculus设备通信的API和工具。 其次,我们可以使用Unity的编程语言(如C#)编写代码,利用Oculus Integration中提供的功能来处理Oculus设备的输入和输出。例如,我们可以使用Oculus Integration的API来获取头部或手部的位置和旋转信息,以及触摸控制器的输入。通过这些信息,我们可以实现虚拟现实环境中的交互操作,如触摸、抓取和移动物体等。 此外,Unity还提供了一些内置的VR交互组件,如VR交互手柄和VR交互器,可以方便地进行VR交互的开发。这些组件可用于创建可视化的用户界面元素,例如按钮和菜单,使用户能够通过触摸控制器进行操作。 最后,在开发过程中,我们可以通过在Unity编辑器中进行预览来测试和调试交互效果,以及优化用户体验。通过Unity的开发工具和Oculus Integration插件的支持,我们可以快速实现Unity和Oculus交互,并创建出富有交互性和沉浸感的虚拟现实应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值