程 琪 程明智 刘 龙
(北京印刷学院新媒体学院,北京 102600)
随着虚拟现实技术(Virtual Reality,VR)的不断发展和完善,VR 技术已经在一定程度上改变了传统行业的发展模式,“VR+行业”模式逐渐成为一种行业发展的重要方式。[1]
隶属于农业领域的茶文化起源于我国,制茶工艺作为我国优秀的传统工艺之一,包含着民众的生活智慧和思想感情,但是由于传统制茶工艺的体验成本较高、学习难度较大,在现实生活中难以直接推广。 因此,本文旨在将虚拟现实技术和我国传统制茶工艺相结合,一方面可以降低学习和体验成本;另一方面,可以作为推广和传播我国茶文化的一种方式,有利于激发用户的学习兴趣,调动用户的体验热情。
目前,国内将茶文化和虚拟现实技术结合的研究主要分为两个方向。 (1)理论研究方面:张爱华等人[2]提出将茶树种植和虚拟现实技术相结合从而阐述数字化展示茶文化中的应用机制和注意事项,在理论层面将两种领域的结合做出深刻论述。苏娜等人[3]通过研究虚拟现实技术和茶文化结合的展示策略,详细阐述了两者结合可生产的价值,并对新的传播形式进行分析,为虚拟现实技术和茶文化相结合的虚拟体验系统实现提供理论依据。(2)实际应用方面:市场上的VR 设备能够满足大部分虚拟环境中的交互需求,为虚拟现实和传统文化结合研究提供了技术支撑。 但目前茶文化和虚拟现实技术相结合的实际项目主要面向场景漫游,如蒋宁等人[4]通过使用Unity3D 引擎制作出茶文化VR 展示系统,系统中的内容包括茶馆的场景的选择和漫游、和茶具交互等功能,让体验者能够在逼真的环境中学习传统的茶文化知识,为茶文化的学习提供了全新的数字化学习方式。
基于此,本文根据我国传统制茶工艺流程中的交互需求对VR 体验系统做出架构设计,项目共分为流程体验和知识了解两个模块,实现在虚拟现实环境中体验我国传统制茶工艺流程、了解我国茶文化。 同时,在项目中优化手柄选择和抓取物体的方式,为用户提供更加真实的交互效果。
Steam VR Unity Plugin(简称Steam VR) 由Value 公司开发,是连接HTC Vive 头显和Unity 开发引擎的桥梁。 Steam VR 中提供的VR Camera 将Unity 中自带的普通相机转化为VR 相机,视觉效果也随之转换为Vive 的成像画面,同时Steam VR库中还提供了抓取、传送等功能,用户可以通过Steam VR Input System 自定义按键和动作的绑定以提供更加丰富的交互方式,如图1 所示。 Steam VR 库能够和HMD 之间的库平台兼容,并将功能封装为一个预制体,开发者可以直接使用。
图1 自定义手柄按键
Unity 中内置了一套完整的GUI(Graphical User Interface)系统,为用户提供了一套GUI 布局设计解决方案。 在Unity4.6 版本前,因未设置GUI可视化编辑器,开发者需要自行编写脚本或使用NGUI 插件实现GUI 界面功能。 在Unity4.6 之后Unity 官方提供了UGUI 组件并将其集成到编译器中,相比较之前的GUI 更加灵活、操作更加便捷。UGUI 组件中包括画布、图像、文本、按钮等控件,基本满足开发者的开发需求。 但是在虚拟现实环境中, UGUI 界面无法直接供使用者操作,需要结合手柄射线和额外脚本实现交互[5-6]。 在本文中主要使用的UGUI 组件包括Image、Text、Button、Scroll View 等以实现茶文化知识介绍,如表1所示。
表1 GUI 中常用组件
在虚拟现实环境内,碰撞检测可用于判断同一时间内是否有两个及以上的物体占用了相同区域,若占用了相同区域则需要有合理的事件响应,否则会出现穿透现象,降低用户沉浸感。 碰撞检测是虚拟现实项目开发中的重要组成部分。 在Unity3D开发平台中,主要有Box Collider 盒碰撞体、Sphere Collider 椭圆碰撞体、Capsule Collider 胶囊碰撞体和Mesh Collider 网格碰撞体等。 其中,规则物体通常根据形状选择使用盒碰撞体、椭圆碰撞体、胶囊碰撞体,如图2 所示,手柄模型使用椭圆碰撞体。网格碰撞体则通常使用在不规则的物体上,如图3所示,本文中使用的茶叶模型碰撞体类型为网格碰撞体。
图3 使用Mesh Collider 的茶叶模型
根据我国传统制茶工艺VR 体验系统对实践性、应用性和沉浸感的需求,系统构架如图4 所示。系统分为体验模块和学习模块,体验模块针对制茶流程分为完整体验和分节体验,学习模块主要是介绍茶的相关知识,包括为绿茶、红茶、乌龙茶、白茶、黄茶、黑茶六大茶类的产地、历史和代表品种等内容。 在传统制茶工艺VR 体验系统中,用户使用HTC Vive 虚拟现实游戏设备在虚拟现实场景中体验传统制茶工艺流程、了解我国茶文化。
图4 系统整体功能架构设计
本文中,交互功能依靠Steam VR 插件实现,主要分为和物体交互及和UI 交互两个方面。 Steam VR 可在Unity3D 引擎自带的商店中直接导入使用,插件中包含了较为完善的交互系统,如点击UI、拾取和投掷物体、传送等交互功能,通过手柄的直接交互可以实现项目中和茶叶等物体的交互功能,针对于UI 交互则需要在原插件的基础上做出调整和修改,以实现更加符合设计预期的交互效果。
用户进入场景后,在初始界面中选择了解传统制茶流程中各个步骤的详细信息,通过点击相应按钮进入体验模块或学习模块。 初始界面如图5 所示,点击采摘、萎凋、杀青、揉捻和晾晒的图标了解环节具体信息并单独体验;点击完整体验按钮可直接进入到场景中体验完整传统制茶工艺流程;点击了解更多按钮进入学习模块,了解相关茶文化知识。
图5 初始交互界面
2.3.1 手柄与物体交互功能实现
本文为实现更加精确的抓取效果,在手柄上添加射线检测可交互物体的位置,当射线和可交互物体发生碰撞时,通过计算其平均结果同设定的距离阈值做比较,调整手掌的朝向并确定要抓取的物体位置,最后实现抓取手势。
手柄和物体交互的过程中,主要包括手柄对物体的选择和抓取两个环节。 在选择环节中,通过在手柄模型的虎口处添加锥型射线实现同虚拟物体更加精确的碰撞检测[7],通过检测射线限制手柄的可交互范围,实现更加真实的选择效果,手部模型检测射线如图6 所示。 同时在 Unity3D 开发引擎中的Inspector 面板中挂载检测射线发出点、射线最长长度等相关组件,如图7 所示。
图6 手柄射线检测
图7 相关组件挂载
具体脚本代码如下,在脚本中控制射线的数量和角度,实现检测射线的朝向控制。 当用户进入到抓取环节中时,手柄会触发抓取效果,手指根据预设轨迹运动,当手指检测到和物体发生碰撞时,手指停止运动。
经过上述改进,针对如图3 所示的同一茶叶模型,优化前后的抓取效果对比如图8 所示。 优化的选择环节中,手柄对于不规则物体的选择是针对整个物体模型,而非模型碰撞体顶点;在抓取环节,手柄和物体模型更加贴合,视觉效果更加符合真实情况且穿模问题较少。
图8 优化后的抓取效果
2.3.2 手柄与UI 交互功能实现
我国茶文化科普是本文学习模块的主要内容,用户使用手柄和UI 界面交互。 为了保证手柄和物体、UI 界面的交互效果,本文结合使用Steam VR插件中的Steam VR LaserPointer 组件和相关脚本实现当用户通过手柄发出的射线碰撞到UI 界面时出现射线,否则射线隐藏的效果。 具体脚本代码如下,在Unity 中将UI 标签设置为Popularization,当手柄射线和Popularization 标签物体之间检测到碰撞时,射线在场景中显示,否则射线隐藏。
学习模块主要使用地图模型直观展示茶叶产地并通过图文介绍其详细信息。 进入学习模块,通过点击地图中的省份UI,了解不同省份种植的茶叶代表及其详细信息。 点击地图中的江苏省所在位置,可以查看江苏省最具代表性的茶叶品种洞庭碧螺春等的详细信息,如历史渊源和采摘节气等,如图9 所示。
图9 茶叶相关详细信息展示
本文利用Unity3D 引擎设计开发出以体验我国传统制茶工艺流程和了解我国茶文化为主要功能的沉浸式交互系统。 系统主要分为两部分,第一部分是关于我国传统制茶工艺的体验模块,第二部分是了解我国茶文化知识的学习模块。 通过这两个模块,使用者可以在虚拟现实环境中切身体验我国传统制茶的流程、了解我国茶文化。 未来对于系统优化主要包括场景和模型的优化和完善,在后续过程中通过添加相关灯光效果、优化材质等方式实现更加真实的视觉效果,提高用户沉浸感。