《Undersea》:Magic Leap MR海底世界铸成记

青亭网( ID:qingtinwang )--链接科技前沿,服务商业创新

前不久,Magic Leap Studios曾发布一款以海底生态为主题的MR互动应用《Undersea》,这是一款室内规模的空间计算应用,它可以将你周围的空间变成动态的海底世界,你将看到游在你身边的热带鱼,还能找到珊瑚礁生物群系,也能透过一个叫Vista的洞口看到另一头的大海。

Artboard_1undersea

据了解,《Undersea》除了结合优美舒缓的音乐外,还具有自然交互、色彩斑斓、画质逼真等特点。Magic Leap Studios开发者表示:这款应用利用UE4引擎和Vulkan接口来开发,主要是为了突破空间计算的画质极限。

image13ed

近期,Magic Leap Studios公开了在开发《Undersea》过程中遇到的一些问题,以及解决过程,接下来就一起看一下。

关于灵感来源

image8

《Undersea》MR应用来自于Magic Leap Studios此前曾开发的一个Demo应用,Demo的内容是一只能够与人手交互的热带鱼,它能够指引体验者进入一个人身大小的球形水族馆,在其中你可以看到一个珊瑚礁和各种各样的鱼。

image25

据悉,与完整版应用相比,Demo中的内容相对静止,但是每个人体验过后都能产生共鸣。此外,Magic Leap Studios在其中还看到了突破技术和图形硬件极限的可能,认为它将有望展现空间计算的真正潜力。

开发标准动画制作流水

ezgif-4-f4ccf07998fa

为了配合《Undersea》所采用的AI寻路机制,开发者们重新构建了游戏中的动画、技术和动作,让热带鱼、珊瑚礁等元素能够适应状态的改变,在网格空间中找到定位。于是,动画和绑定团队为应用中的鱼开发了一个标准的绑定和动画流水线,它的特点包括:

  • 1,标准动画和UI控制;
  • 2,自动游泳;
  • 3,自动LOD建模;
  • 4,可定制鱼眼注视方向;
  • 5,可定制触角和鱼鳍动作绑定;
  • 6,Blend Spaces(混合空间)可触发动作;
  • 7,顶点动画材质烘焙。

这些特点让游戏开发过程更加灵活,而且动画也可以反复使用,为不同的生物调试不同的行为动作。据了解,开发者原本采用着色器驱动的海洋生物移动方案,不过发现该方案的效果不够逼真,不容易控制。

开发动画过程-海洋生物篇

image6

Magic Leap Studios内部的动作绑定系统其实内置对LOD技术的支持,不过后来选用了UE4的自动LOD生成功能,好处是在运营预算变化时能够动态降低骨骼和多边形的计数。

underseaPS-edit

开发者表示:在开发海洋生物动画过程中遇到的最大挑战是,构建和测试动画组与AI寻路解决方案的适配。每一只鱼将具备一组“Blend Spaces”,即AI系统根据逻辑触发器和游泳速度、漫游、探索、逃走、喂食等特定状态而触发的一组特定动画。开发者可在Blend Spaces中制定输入值、动画和输入值融合动画的方式。

Undersea-techpost22

在制作动画过程中,开发者依赖骨骼绑定和手动输入的动画,同时也为环境中的生物(包括鳗鱼、螃蟹、章鱼、海马、海龟、魔鬼鱼、鲨鱼)找到了有效的制作方案,可以让他们通过Houdini动画工具、Maya和UE4,将动画数据烘焙进纹理中。这样做的好处是,在使用Vulkan 3.1移动渲染器时找到CPU和GPU之间的平衡,并且保证所需的性能。

ezgif-4-fcb3fd28f34a

此外,考虑到《Undersea》中包含大量内容,开发者没办法实时运行Boids集群模拟算法。因此,为了优化鱼群动画,他们采取了一个降低烘焙纹理大小的方案。举个例子,开发者将群体中的每一只鱼的活动周期从Maya导出为FBX格式的文件,然后分别将这些缓存输入到Houdini工具中,生成独立的VAT(顶点动画纹理),然后再嵌入UE4中的Houdini软体帧融合顶点渲染器,来改变鱼的形态。最后,Magic Leap特效师在Houdini工具中生成模拟,然后将匹配动画和顾各节点,来驱动鱼的动作。

Undersea-techpost25

开发动画过程-珊瑚群篇

Undersea_Comparison_Screenshot-(1)

据悉,Magic Leap Studios开发者希望海底的生物在不断变化且随机生成,这样每位用户看到的内容都不同,每次开启应用看到的内容也不同。于是,开发者需要制作一个受变量驱动,且能够感知周围环境(利用蓝图功能与真实环境集成)的珊瑚/岩石生成和放置系统。

image4-(1)

开发者们最后选择了一个对性能更友好的混合方式,即载入和放置预建的岩层和沙质地基,然后利用珊瑚生成和放置系统,在上面生成珊瑚和海藻。不过在此之前,艺术团队需要先创建一组连贯的珊瑚岩层,作为其他更多衍生设计的基础。

image19

据了解,Magic Leap Studios制作的珊瑚/岩石动态生成和放置系统是利用UE4的蓝图功能开发的,为了从蓝图功能中得到最大效果,技术美术团队也费了不少功夫。

image5 (1)

粉色的点是珊瑚可能生成的地方

这个自制系统具备如下特点:

  • 1,用数据表来设置每种生物的最大数量、生成类型、高度百分比等分类变量;
  • 2,用珊瑚生成和辐射算法来检查放置的可行性、生长和数据点缓存到文件;
  • 3,运行时珊瑚静态网格回路先计算阴影,然后为全部珊瑚创造实例静态网格;
  • 4,对于可能碰撞到周围世纪物体的特殊情况,可标记为box collider碰撞体,这样生物将不再继续生长。

Coral_Pink

为了将珊瑚群与真实环境融合,Magic Leap Studios还制作了一组小型的次要岩石和沙质元素,并且在上面加入动态移动的海藻。接着,生成管理器根据系统识别周围的空间,将这些次要元素放置在主要的珊瑚群周围,这种方法也有助于为不同的空间生成独特的布局。

image10-(1)

除了珊瑚群,前面也曾提到《Undersea》中采用Vista洞口元素。据悉,应用中一共有三种Vista环境,尽管为预置,但结合了动态AI和特效,让你从洞口中每次看到的景象都不同。

image17

总之,为了在《Undersea》中营造足够自然且动态的海洋生态,并且兼顾设备CPU和GPU的算力,Magic Leap Studios开发者们想了许多办法,也值得其他游戏开发者们借鉴。本文系青亭网翻译自:Magic Leap

更多精彩内容,关注青亭网微信号(ID:qingtinwang),或者来微博@青亭网与我们互动!转载请注明版权和原文链接!
青亭网

微信扫码关注青亭网

青亭网

青亭 | 前沿科技交流群01

责任编辑:小新
分享到QQ 分享到微信
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册