编者按:在音视频行业蓬勃发展的大环境下,触觉如何带动视听,为用户带来更沉浸式的体验?LiveVideoStack 2023上海站邀请到陆其明,和大家分享“触”手可及的视听新体验。分享内容包括触觉的生理基础、触觉生态发展现状、怎么做好的触感、触感应用开发的平台支持、国际标准,最后介绍RichTap为解决触感生态两大痛点提供的一体化方案。
今天我分享的主题是“触”手可及的视听新体验,主要分享现在触觉反馈的生态如何,有什么国际标准以及最新进展。
这张图可以用来表达今天分享的内容。视听加上触觉产生化学反应,能够带来更沉浸的用户体验。我们平时握在手里的手机产生的振动,玩游戏时的游戏手柄以及戴VR头显时用的手柄、还有我看到国外一些厂商做的手套、马甲都能产生一些触觉反馈。总体而言,视听+触觉,是为了产生更沉浸的体验。元宇宙里面要追求更真实的体验,只有视听是不够的。
今天我要分享的内容可以分为六块,分别是触觉的生理基础、触觉生态发展现状、如何做好的触感、触感应用开发的平台支持、国际标准,最后介绍RichTap整体的解决方案。
从这张大脑的剖面图中可以看到,大脑中有四个叶——枕叶、顶叶、颞叶和额叶,分别处理视觉、触觉、味觉和嗅觉、听觉。顶叶是专门处理触觉的。从大脑皮层的面积和每秒钟神经元放电的数量,可以看出处理触觉相关的比例非常高,仅次于视觉。科学发现,触感的响应速度也是最快的,是视觉的5倍。触觉作为人类与生俱来的一种感知世界、体验世界的能力,应该得到更多的重视。在元宇宙里,我们常常会觉得某样东西给人的感觉过于虚幻,就是因为我们触摸不到它。所以在未来,元宇宙要想获得更好的发展就需要得到更多重视,特别要重视五感在元宇宙里的重现方式。
接着看触感的生态发展现状。以手机为例,手机的触感发展比较成熟,已经进入了3.0时代。第一阶段,手机的振动触感仅仅用来表达来电提醒和短信提醒。绝大部分人的认知还停留在第一阶段,认为振动就是手机振一下,而不知道振动可以做出丰富的应用。在第一阶段,手机的振动是通过转子马达来表达的。
第二阶段开始用线性马达产生振动。马达硬件,即产生振动的硬件,也在进一步发展中。系统应用如输入法
、
UI控件、铃声等,都应用了振动。这一阶段对应的触感生态也开始发展起来了。
目前的触感生态已经进入了第三阶段,越来越多的应用开始运用手机振动的能力。在这个阶段,很多手机都已经用上了高端的X轴线性马达+高压芯片+Rich Tap整体的触感解决方案。游戏、社交媒体、音视频应用、交互式广告,越来越多的应用开始使用手机原生的振动能力,把各种效果表达出来。这一阶段,软硬件的基础设施在不断提升,触感生态即将迎来蓬勃发展的好时机。
这张图展示了触感硬件的进化。第一阶段是转子马达,不均衡的质量块绕着轴心转动。转子马达表现振动的感觉,用一个象声词形容,就是“嗡嗡嗡”。它反应比较慢,振动比较粗糙。第二个阶段叫Z轴线性马达,它的运动空间只有手机屏的厚度那么大,在其中进行往复振动。因为空间有限,它对触感效果的表现也很局限。最高端的是RichTap正在主推的X轴线性马达,它在手机屏横向线性地做往复运动,以此产生振动。这种马达的特点是启停快、振感强。它的频宽比较宽,有50赫兹~500赫兹,可以表现丰富的振感。同时它功耗低,更加省电。右上角是马达的剖面图,右下角是对比图。经过RichTap整体触感解决方案调教的马达,频率范围更广,振动量更大,可以表达更多振动效果,也可以模拟真实世界里很多场景的振动和触感。
每年60%以上的新机都已经搭载X轴线性马达以及高品质的触感解决方案。包括国内的华为、小米、OPPO、VIVO、联想等。
在右图展示的内容应用生态中,可以看到有例如bilibili做的动感视频、爱奇艺做的电视剧的心动场景、一些综艺节目的律动效果;再如抖音曾经推出过一个动感广告,QQ音乐、网易云音乐也有“节奏实验室”、“嗨动模式”这类随着音乐同步律动的产品功能落地;微信的“炸弹”表情在发出时手机会产生振动;还有输入法,在输入法中加入振动,可以更好模拟物理键盘敲击的感觉;最下面一类是游戏,游戏对振动的需求更大,因为游戏中的各种场景对体验的要求更高,包括王者荣耀、和平精英、消消乐和王牌竞速等。
这是触感生态的两个典型的应用。RichTap去年和爱奇艺合作的《中国说唱巅峰对决2022》,用户在观看歌手在舞台上唱歌时就能感受到振动效果。爱奇艺的视频振动功能打开后,手机就会随着歌曲同步进行律动,给用户的临场感更强。除综艺节目之外还有电视剧。前段时间热播的电视剧《狂飙》,在第9集、11集、12集、26集,都用了心跳的效果来渲染剧情的紧张气氛。还有《天才基本法》、《心居》等之前的热门剧,爱奇艺也加入了振动功能。爱奇艺目前主要用的是心跳振动效果,但其实影视剧有许多场景都可以运用振动效果,例如开枪、爆炸等等。
另外一个典型的应用就是游戏
。《和平精英》制作了200多种振感效果,例如脚步声、枪声、玻璃破碎、人物受伤时的声音等等,实现了游戏全场景的覆盖。《和平精英》里有设置菜单,通过设置可以区分高品质振动和低品质振动。通过一定的兼容策略,让用户手机在自身马达硬件的能力范围内表现出最佳的振动效果。
我们再来进一步看看触感设计的基本原理。如果大家想要自己做这样的振动,要怎么做?从设计的角度看可以分三层,最底层是它的基础属性。和振动有关的3个参数是振动的强度、频率、时长。
基于这三个基础属性,第二层就是人类能够感知到的属性,比如触摸到的物体的硬度、粗糙度、速度、质量、弹性和韵律。
最上面一层称为应用性,例如各种材质的感觉,踩在草地上和踩在水泥地上产生的振动感是不一样的;同样还可以像音视频一样,比较直观地表达人物的心情,开心或不开心,甚至惊喜都可以用振动表达出来;振动还可以表达力反馈,即用力按压下去受到的阻力。现在的马达触感控制做得非常强,可以表达很多场景下的效果。
这是触感设计的六个表达维度。每个维度都可以做不同程度的设计和表达。综合效果可以做到非常丰富。
怎么实现触感?整个触感生态有两个痛点:第一,效果的设计和实现。触感的实现依赖于硬件和软件。关于硬件,RichTap已经和手机厂商广泛合作, 60%的新机都带了高端的X轴线性马达,系统层集成控制马达的算法。在软件方面,设计缺少工具,比如我看过一个Xbox手柄的振动效果,竟然是直接用代码写的。RichTap有一个工具可以以可视化的方式把振动效果设计出来。
在应用集成方面,振动效果设计出来后要在各个平台落地,因为各个平台支持的情况不一样,而且目前的触觉标准比较滞后,国际标准在制定中,但是还没有到很成熟的阶段。苹果、安卓、Meta、索尼等各个平台对振动的支持都不一样。
针对这两个痛点, RichTap都有相应的解决方案。
苹果的触感在整个行业里面做的是最好的。苹果的软件和硬件都可以说是行业的标杆,它提供了丰富的软件控制接口。最早的是UlKit里的Haptic feedback,是UI上面的反馈,定义了重的、轻的、硬的、软的几种风格。最早的UI反馈是很方便的,在苹果的应用里面能够体现出来。
之后苹果在iOS 13推出了一个核心的技术——Core Haptics。如果有人看过苹果的拆机,可以看到里面有块器件叫Taptic Engine,实际上就是苹果的振动马达。
在软件层面,苹果抽象出两个概念,Intensity强度和Sharpness频率,可以把振动效果和各种振动的模式表达出来,再通过Core Haptics完整地把振动效果在苹果手机上表现出来。它还可以保存为独立的文件格式叫.ahap文件。有些公司可能已经做了自己的格式,基本上都是参考苹果做的。
安卓最早的振动接口是vibrator,只能简单地以“振多少毫秒”的方式实现振动,因为当时手机只需要一个提醒功能,让马达振几毫秒就能实现提醒效果了。但这个接口从安卓8.0开始就已经废弃了。后来接口进行了改进,可以通过数组编排,按照一定的模式进行振动。但这个接口也在8.0被废弃,后面推荐的是更强一点的编排功能,可以按照一定的间隔重复振动,每次振动时都可以调强度。安卓10.0开始预制了四个效果,包括勾选、点击、重点击、双击等。如果在安卓应用里面只是想添加UI反馈,直接调用系统的接口,传预置的效果ID就可以实现。但是如果要做更加丰富的触感效果,靠安卓预置的这些效果是做不到的。
再看一下Windows PC。PC没有振动马达,那在PC上面如何实现振动?接一个Xbox手柄是可以实现振动的。Windows笔记本的触控板Trackpad是有马达的,但基本上很少有应用会用到。更典型的场景还是用手柄接到电脑,玩一些PC游戏。最早在PC上做高性能的多媒体用到的都是DirectX,其中的DirectInput是专门处理外设输入的。但DirectInput还不支持手柄的振动。之后微软推出了一套接口叫XInput,它最多能支持连到PC上的4个手柄,可以让左右两个握把振动。但它支持可调的参数只有转速,只能表达比较浑厚的振动效果。微软现在更推荐的是使用它的另外一套接口,是Xbox的GDK里面的一套接口叫GameInput,它支持的功能更齐全。因为Xbox手柄前面还有两个扳机,两个扳机的振动只能通过GameInput接口控制。GameInput还支持类似用方向盘玩的游戏,它也有一些振动反馈。
网页要如何实现振动?其实W3C也定义了振动的接口,和安卓的非常相似。就是一个接口,简单设定振多少时间,稍微复杂一点的就是编排一定的模式,例如振一段时间,停一段时间。但是因为浏览器刚开始定义这个接口的时候被一些网页滥用了,因此之后苹果彻底把这个振动接口取消了,所以在苹果浏览器里网页无法振动。网页里面也可以控制Gamepad的手柄,但目前还在草稿状态,很多浏览器不支持。
微信小程序里面是可以振动的,微信提供了两个接口,分别支持长振动和短振动。短振动15毫秒,长振动限定400毫秒。这是非常简单的控制,RichTap也利用它的两个接口做了一些场景,以此演示振动带来的体验提升。总体而言,它提供的控制功能非常有限。
下面看一下游戏引擎,以Unity为例。Unity有一个经典的Input Manager,但Input Manager不支持触觉反馈,还有一个XR的Plugin,因为Unity有做VR游戏,有VR手柄,VR手柄上面有两个马达,通过Input Device可以发起振动反馈,它可调的参数有强度和时长,但是没有频率。Unity后来推出了新的New Input System,开放了一个Gamepad的接口,可以控制游戏手柄振动,但是它能调的参数只有手柄的转速,可以猜测它只是对微软的XInput接口的包装。它能调的有马达的转速、暂停Haptics、继续播放、Reset等一些简单的控制功能。
爱奇艺的头显能提供Unity的XR SDK,也提供Unreal SDK,通过这些SDK和游戏引擎的插件实现对振动的控制。他们同时也提供了Native SDK,控制接口比较简单,即开始振动和停止振动。VR有两个手柄,可以指定在哪个手柄上振动、以及振动的强度和时长。PICO提供Unity、Unreal和Native SDK,但Native SDK已经在2023年1月下线,取而代之的是Open XR的Mobile SDK。图示的Open XR实际上是国际标准,它定义了XR的一些外围设备的控制接口,其中包括振动的控制。PICO实现的振动控制稍微强一些,它定义了自己的振动格式。还有Meta的Quest和索尼的PlayStation VR2,从SDK的角度都会提供Unity、Unreal、Native、WebXR的控制接口。
这是国际标准对振动的支持。OpenXR 1.0的规范对于振动而言就是两个接口,一个是开始振动,一个是停止振动,能够调的参数有强度、频率、时长。这种振动控制只能是Hardcode在代码里面设定的简单效果,相对来说没有那么灵活。在OpenXR 1.0 规范的基础上,Meta对它进行了扩展,扩展接口可以通过一组强度值形成的包络线来描述相对比较复杂的振动效果,也可以通过音频的PCM数据来表现振动效果。通过Buffer的形式,能把相对比较长且复杂的振动效果表现出来。目前的OpenXR只能支持相对简单的振动、控制和比较简单的外设。我们目前还在和一个触感行业协会一起推进 OpenXR的标准演化,能够支持更复杂的外围设备的触感。
关于触感,MPEG也有相关的支持。在2020年时,haptics已经作为一个一级的媒体类型提交到MPEG File Format工作组。所谓一级,即表示它会和Audio、Video同级别。2022年1月份,这个提案已经收编成了标准版的第7版。其实触感已经是MPEG标准当中的一部分了。
不得不再提一家叫Immersion的公司,它也在为haptics争取名分。目前互联网上传输的数据类型MIME Type有很多种,有application 、text、image、audio。在未来,触感和视听一样重要,它会成为一种主要的媒体类型和文件类型,当我们拿到一个MP4文件,除了音频、视频流之外,可能会含有触感振动的数据流,甚至一个MP4文件就只有振动数据流。所以站在解码器这个角度,需要考虑更多的兼容性。在未来,像苹果自家的.ahap文件格式也会成为标准的一个部分,在互联网上传输分发,在终端上可以直接播放。
另外一个标准是IEEE P2861.3,这是由腾讯牵头制定的标准。目前这个标准在最后审批阶段,标准本身是不公开的。这一标准的基本概念用一张图就可以表达,可以抽象为长信号和短信号的不同组合。短信号可以调整强度、频率,特征是非常短促,类似于一次快速的激励;长信号可以调的参数包括强度、频率、时长、锚点,在整个长信号过程中,可以有多个锚点去控制,每个点可以有不同的强度和频率。它的特征是比较动态、变速、有一定时间的持续。单个长信号可以有不同的表达,比如持续振动,没有变化,就类似于矩形;渐隐渐现,像一个梯形;或者比较尖锐,允许出现、消失,可以随意快速上升,又快速下降,类似于山形、坡形。还有其他各种各样的形状。这些形状都可以通过锚点控制来完成设计。通过各种信号的组合叠加,就可以表达现实场景下各种各样丰富的振动效果。
RichTap是瑞声科技集团下面触觉解决方案的一个子品牌。在内容商方面,首先RichTap提供了PC的触感设计工具,在这个工具里面,用长信号和短信号可以组合表达振动效果,并且可以连接到手机。因为PC上没有振动马达,将它连到手机上或者手柄上可以即时体验振动效果。触感设计完后,会导出一个跨平台的触感描述文件(.he文件),在应用里面就可以进行集成。无论是音视频软件还是游戏,集成RichTap的SDK,加上触感的描述文件,就可以在应用里把振动触感复现出来。
RichTap SDK调用了设备上Core Engine的底层控制算法,它会把控制信号通过驱动芯片转成模拟信号,再发到激励器。激励器器就是振动马达,最终我们手上的设备就会产生振动。图示左边这块是RichTap主要的软件方案,右边是和硬件厂商合作的一部分内容。随着时间的推移,支持这一方案和带有RichTap马达的硬件占比会越来越多!
目前这个马达硬件的发展相对来说比较成熟,能力较强,可以通过软件方案的集成把硬件的能力发挥出来,让应用产生更加沉浸、更加真实的体验。RichTap做了两个demo的APP(建议扫描上图的二维码进行安装),一个叫RichTap Creator,里面包含很多振动效果,在各种场景下都可以应用。还有一个是Muse算法,设计工具里除了支持手动设计各种信号之外,也支持导入视频或音频文件,通过算法自动为这个音视频配上振动的信号,最后导出振动相关的文件。
这边还有两个链接:一个是GitHub,RichTap提供了示例代码,也包含一个免费的SDK。免费版SDK里面集成了大约50种振动效果,如果是简单的应用,直接集成这个免费版的SDK就能满足需求。更多的介绍可以访问官方网站。
首先,统一接口、自主调试。从集成的角度来说,安卓和iOS设备都支持,接口非常类似,方便集成。
第二,设计完成后连上手机可以进行实时调试,控制的参数非常多,包括静态的频率、强度、时长,可以表达在He文件里面。播放振动的时候,也可以实时调强度、频率,控制非常强。
第三,RichTap方案把效果设计和程序员的编码工作进行了分离和解耦。有了可视化的工具套件,设计师可以独立工作,专注于振动效果调优。跨机型效果的一致性从创作的角度来说都是比较受关注的。设计师设计了一个振动效果,会希望它在各端的体验都是一致的。有了RichTap的SDK,能够尽量做到效果表现的一致性,最大程度还原设计。
第四,这一方案提供设计集成工具,游戏引擎插件,方便集成。
第五,提供强大的模板库。因为RichTap做了许多游戏项目、应用项目,在触感设计方面有了一定的积累,大家可以在效果库的基础上进行修改,能够加速自己触感的效果设计。
第六,RichTap有声音转振动的算法,能够让触感设计更快更便捷。比如线上音乐类的综艺节目,不可能花人力给每首歌配振动效果,一般都是在服务器通过算法工具预生产好,在用户点播的时候把振动相关的文件发到前端,类似播放外挂字幕,把振动效果对着时间线播放出来就可以。
第七,考虑到音视频播放的场景,RichTap提供音视频同步的播放功能,支持倍速播放。
第八,RichTap考虑到了安卓兼容性的问题。因为安卓碎片化比较严重,安卓机器搭载的马达可能也不一样,有的也不一定用了RichTap的控制方案,但RichTap的SDK完美解决了这些问题,在有RichTap马达和控制方案的机器上,可以把振动效果表现得非常极致,而在一些低品质机型上,用安卓原生的接口也可以尽可能地优化振动效果。
最后总结一下,触感生态其实是一个新生态。音视频行业里大家都在内卷,在视听之外,触感的加入能够让视听更加沉浸,带来新维度的体验。触感在硬件方面日渐成熟,软件应用方兴未艾。触感的国际标准也在制定过程中,只不过目前还处于稍微有些滞后的状态。但既然是一个标准,应该引起大家重视。
瑞声通过技术解决方案助力触觉生态的繁荣,提供了软硬件一体化的解决方案。希望大家能够通过瑞声提供的工具套件,设计丰富的触感效果,通过瑞声提供的SDK或游戏插件,能快速把振动效果集中到大家的应用或游戏项目中,让应用更加生动、真实、沉浸。
▲扫描图中二维码或点击“阅读原文” ▲
直通LiveVideoStackCon 2023深圳站 9折购票通道