本文转自Unity官方平台公众号,详情请阅读原文链接:
http://mp.weixin.qq.com/s/XpSkLB2rbHBVFhv_fksSXg
Unity Labs创作团队一直致力于探索内容创作的未来,利用XR技术让创作者们更快捷、更容易也更轻松地创作3D内容。Unity Labs发布的EditorVR工具将Unity编辑器带入虚拟环境,最大化减少了VR开发的迭代时间。正在开发中的Carte Blanche将为非专业创作者提供虚拟世界的设计体验。本文将为大家介绍Unity Labs研究路上的小成果之一,即如何创建动画工具让虚拟对象快速勾勒序列,以及XR如何让3D动画适用性更广。
目标:保持轻量专一,避免造轮子
制作动画工具很容易变为长达一年的项目,但Unity Labs明确了加速开发的要求:一个开发者,为时一个月。目标就是对回归大型沉浸式项目的UX范例进行测试。
VR动画应用Tvori非常给力,用户构建场景,然后实时捕捉控制器运动来记录每个对象的动画。Unity Labs是Tvori工具的忠实粉丝,也希望能够实现可编辑的动画曲线与完全基于关键帧或轨道的时间轴。这些特定功能就是此项目的重点。
混合动画解决方案
在此项目中,用户从一个带有简单的对象模板与空白时间轴的空场景开始,可以在场景中组合对象,然后点击记录按钮,用户开始移动对象时动作捕捉启用。当松开该对象时动作捕捉结束,并显示新的运动曲线,时间轴显示动捕从开始到结束的所有关键帧。用户可以获得动捕曲线并调整关键点让曲线更加平滑,或调整时间轴上的关键帧来加快或减慢整个运动。
经验分享
用户反馈与视觉效果是王道。创建新UI时可以尝试仅用白色方块,或加入一些用户反馈(视觉变化,声音,触觉)作为“优化”。用户反馈和精细的视觉效果至关重要,而要让UI设计具有辨识度与实际意义且便于测试,也需要付出巨大努力。如果必须向测试者解释每个按钮的作用,就没法测试系统的可用性,并且会强迫用户浪费大量心力在记住这些模式上,而非工具的实际用法上。
在此项目中,每当引入新的UI元素,就得花时间对基本图标建模,确定这些UI元素直观明了以便于测试人员理解。这并非视觉效果上的优化,而是从程序角度上让早期测试人员也能得到具有实际意义的反馈。
尽可能提供反馈:触觉、听觉、视觉
应该为用户提供尽可能多的反馈。如果用户按下按钮,按钮应该高亮、发出声音并让控制器振动。这些反馈并非仅在操作发生的瞬间,交互发生的各个阶段都需要:此项目中每个元素都有拖拽开始、悬停与停止,以及关联开始、保持与停止共6种反馈。尝试仅可能为悬停、关联、结束或确认等交互提供反馈。在2D UI中很容易就能实现这些反馈,但在XR环境中需要从头开始创建。
为了便于理解需要给予用户的反馈,可以为每种状态(默认、鼠标悬停、选择、确认)和元素(动画对象、运动曲线、关键帧、每个按钮)都建立表格,以便于确认每个交互是否需要某个元素提供反馈。
抓取与选择
此项目尝试提供不同的选择方式来操作对象,此次最明显的区别是:主触发器(Vive触摸板)用于选中对象,辅触发器(Vive Grip)用于操作对象。这种方式对本项目非常适用,选择对象进行移动,还能避免误操作其它对象。
让用户召唤UI
设计2D界面时,可以简单地将UI控件放置于屏幕左上角。但VR环境不同,尤其是房间规模的VR,用户可以在房间的任何地方启动程序。有些应用会将UI放在VR空间的中心,这表示用户可能会搞错方向或处于UI中间。这里效果较好的方法是将UI永远放在玩家触手可及的地方,如果用户走开,让用户将UI“召唤”到身边。
为UI添加物理性
UI一般没有惯性,这可能让玩家感到惊讶或不快。鼠标作为点和数据输入设备非常强大,但无法理解身体的物理输入。
在VR中正好相反,由于VR中有大量体感追踪输入设备,所以对象比较具有惯性和物理性。如果在VR中抓取对象并推动它,在停止推动后对象也立即静止就非常不自然。这些现象在投掷石头时很容易理解,但在UI面板中还不够清楚。
试用大量VR应用后发现,为UI添加物理性非常必要。当然这也需要一些平衡,比如UI不可能被扔出后落到地面。此项目在UI动画中使用无运动学无重力有阻力的刚体,可以推动UI让其飘动,但也会快速停止,并停在玩家附近。这里具体设置为:
Drag = 8, Angular Drag = 16(以避免UI旋转)
结语
对于混合动作捕捉与Unity关键帧实现平滑的动画,还有很多内容有待探索。Unity Labs也会不断研究,并为大家分享这些研究成果,希望可以将其应用到其它的项目中。我们会继续为大家分享Unity Labs的精彩内容在Unity官方中文社区(unitychina.cn),请保持关注。
暂无关于此日志的评论。