Unity 2018.3 Beta版发布

今年7月,我们发布了Unity 2018.2,它大幅提升了轻量级渲染管线LWRP和高清晰渲染管线HDRP的性能,帮助开发者轻松获得高端视效质量。该版本还包含对Shader Graph着色器视图的多项改进,目前Shader Graph着色器视图已支持LWRP和HDRP,而且还为移动端、2D和脚本编写添加了多项新功能。

112900epp2p9pzpj2j2jk9.jpg.thumb
现在Unity 2018.3 Beta版发布,我们邀请开发者参与早期测试,体验Unity 2018.3中全新以及改进功能,包括:嵌套预制件、2D等距Tilemap等功能。本文将介绍Unity 2018.3 Beta版中关键的改进功能,并帮助开发者了解如何获取早期测试版本。

嵌套预制件和改进的预制件工作流程
Unity 2018.3 Beta版将为开发者带来改进预制件工作流程,包括:嵌套预制件(Nested Prefab)、预制件变体(Prefab Variant)和预制件模式(Prefab Mode)。

全新预制件工作流程允许开发者以粒度等级(Granular Level)拆分场景和预制件。该工作流程将带来更高的灵活性,提升工作效率并让开发更为得心应手,从而不必担心发生耗费时间的错误。

这些改进内容是基于150多家企业用户的调查、大量访谈、数次可用性测试以及二次Game Jam活动获得的信息而开发的。该版本的长期计划是不仅是实现嵌套支持,还要重新构思核心预制件工作流程,从而使不同团队成员可以同时高效地编辑预制件。

点击访问下面的视频了解新预制件工作流程:

[anyplayer:url=http://super007fbi.kmdns.net:444/wp-content/uploads/video/007.flv width=640 height=360 title=新预制件工作流程 open=no]

1、嵌套预制件 
嵌套预制件将具有更高的灵活性和生产效率。此前我们必须在创建例如建筑这样的大型单块的预制件,或例如家具更细粒度的预制件之间作出选择,无法拥有同时具备二种类型的预制件。

现在有了嵌套预制件的支持后,大型建筑预制件可以由多个较小房间预制件组成,进而能够由多个家具预制件组成,以此类推。

它将为任何规模的团队带来便利:

  • 将预制件分为多个条目,实现更高的效率
  • 重用任何内容,包括从小到大的各类内容
  • 同时处理内容的不同部分

2、预制件变体 
默认情况下,预制件变体会继承对象和原预制件的属性,与此同时开发者还可以重写这些属性,为变体添加组件和游戏对象。该功能类似面向对象编程的继承概念。

例如:如果你有一个门的预制件,你可以为其创建变体,给它指定不同的网格和材质,使它看起来有破旧的感觉。

对基础预制件做出的任何修改都会影响变体,例如:你可以通过修改门的基础预制件中碰撞体的大小,轻松调整二个门的碰撞体大小。

3、预制件模式 
预制件模式是全新工作流程的基础,它能让开发者单独编辑预制件。你将能够编辑整个预制件资源,不必将其实例化到场景后再编辑或编辑已有的实例,这意味着开发者可以避免由于在场景意外应用重写而产生的错误。独立编辑功能让你能够放心做出修改。

2D Tilemap等距功能
2D Tilemap世界构建工具现在允许开发者构建等距瓦片地图,从而轻易创建特定类型的游戏并隐藏对象。它能让你轻松创建多种游戏,例如:2D模拟经营游戏。

Tilemap渲染器还能对每个瓦片分类,优化动态批处理渲染。你可以使用它来创建等距世界,其中瓦片能够隐藏对象,游戏中的角色可以走到建筑、树木和其它对象背后。

该功能的另一个优点是开发者可以以特定垂直偏移绘制瓦片。这将允许开发者在等距世界中创建高层结构,该结构能够隐藏背后的其它对象。此功能适合与 “自定义轴排序”(Custom Axis Sort)功能一同使用。

112859fpian8vw5lohv8g3
粒子系统
新版本将移除旧粒子系统。我们提供了一个更新工具,它将旧组件,例如:ParticleEmitter,转换为新组件,例如:ParticleSystem。该升级功能请在Unity 2018.2及更早版本中使用。

获取更新工具:
https://forum.unity.com/threads/ … tem-updater.510879/

从Unity 2018.3开始,开发者将无法使用旧粒子组件。

Unity 2018.3为粒子系统带来了大量改进内容和新功能。值得一提的是,我们对External Forces模块的改造已经完成。它将引入全新粒子系统的Force Field组件,该组件能够给粒子施加各类作用力。

我们还添加了Ringbuffer模式,它能用于实现持续效果,例如:脚印和弹孔。Texture Sheet Animation模块将添加二个新模式,从而以固定每秒帧数或基于粒子速度来为粒子纹理设置动画。Shape模块加入了新选项,它允许你从网格顶点连续发射粒子,就像旧粒子系统中的Systematic选项一样。

Unity 2018.3 Beta版本还有很多较小的改动,包括:Burst Probability选项、网格粒子的各个粒子翻转功能、Shape模块在场景视图中的辅助图示得到改进,以及禁用公告牌滚动的功能,该功能对VR应用非常有用,适用于处理用户倾斜头部时产生的变化。

导航系统
在导航系统中,我们使预制件中的NavMesh能够直接在预制件模式中独立烘焙。而且,我们添加了NavMeshQuery.Raycast()方法,它能在作业中调用,用于跟踪NavMesh上二个位置间的直线路径。

后续我们还会不断添加更多改进内容,也期待开发者能够提供给我们对于导航系统的反馈。

其它功能和改进
其它功能和改进包括将NVIDIA PhysX的版本从3.3升级到3.4。还支持了Roslyn编译器,允许你使用最新的C# 7功能。此外,Android App Bundles的支持将根据设备配置为用户提供优化后的APK文件。

获取新版本
你可以通过下载Unity Beta版来访问到上述所有内容,在使用新功能同时,还可以帮助我们寻找Bug以保证Unity发布最高质量的软件。

成为Unity Beta版的测试者,你将获得最新的新特性,并且可以测试项目是否与新Unity Beta测试版本兼容。

你也可以成为Unity的一名专家,与Unity社区分享你的见解,赢取我们的礼品。我们会收集来自你的调查结果,反馈意见,你的意见可能会影响Unity的未来。你也将有机会成为获得特殊福利的精英团体的一员,获得Unity商品的折扣和特殊活动邀请。

下载Unity Beta版本:
https://unity3d.com/cn/unity/beta

了解如何成为一名合格的Unity Beta版测试人员,请参考《Unity测试人员指南》:
https://forum.unity.com/threads/ … beta-tester.402777/

小结
了解更多新功能、改进和修复的完整列表,请参考Unity 2018.3 Beta版发行说明:
https://unity3d.com/cn/unity/beta-download#release-notes

我们也期待来自你对Unity 2018.3 Beta版本功能的反馈,我们将持续在Unity官方微信以及Unity官方论坛上发布详细的功能预览,敬请关注!更多技术文章请访问Unity官方社区(UnityChina.cn) !

Unity与DeepMind合作推动人工智能研究

今天,我们正式宣布Unity与人工智能研究领域的全球领导者DeepMind进行合作,此次合作将帮助DeepMind的研究人员使用Unity开发虚拟环境和任务,支持DeepMind的基础人工智能研究项目

110802duyru8ecysy7yoou.jpg.thumbDeepMind的联合创始人兼首席执行官Demis Hassabis表示:“游戏和模拟是DeepMind研究计划最核心的部分,这种方法已经在人工智能研究方面取得了重大突破。我曾经是一名游戏设计师,所以对使用Unity创建虚拟环境,进行开发和测试我们解决实际问题所需的智能,灵活算法感到非常兴奋。”

Unity AI与机器学习副总裁Danny Lange表示:“DeepMind的研究人员正在试图解决大量人工智能的问题,他们选择了Unity作为主要研究平台,用于创建复杂的虚拟环境并开发能学会解决复杂任务的算法。我们相信人工智能的未来将由日益复杂的人机交互塑造,Unity非常自豪能够成为实现这些交互的引擎。”

110802zr26eg0z4g64n6nn.jpg.thumb
Unity对于人工智智能领域的研究并不陌生。一年前,Unity发布并开源了机器学习代理ML-Agents Toolkit,使机器学习研究人员能够使用Unity研究复杂行为,并为游戏开发人员提供最前沿的机器学习技术。加入机器学习代理ML-Agents Toolkit后,Unity正快速成为智能代理开发的首选平台。

在Arxiv发表的参考论文中,我们详细介绍了如何使用Unity来创建并利用模拟环境,这些环境拥有丰富的感知和物理复杂性,能够带来有趣的识别挑战,以及支持动态多代理交互功能。这些模拟环境将为加速计算机视觉、机器人、自然语言命令、自动驾驶汽车开发以及众多科学技术领域人工智能研究奠定基础。这是一个未来崭新的开始。

资源信息
了解更多关于Unity机器学习信息:https://unity3d.com/cn/machine-learning
下载Unity机器学习代理:https://github.com/Unity-Technologies/ml-agents
Arxiv论文《Unity: A General Platform for Intelligent Agents》:https://arxiv.org/abs/1809.02627

关于DeepMind
DeepMind是一家受神经科学启发所创建的人工智能公司。它开发通用学习算法,并利用其来帮助解决世界上一些最紧迫的挑战。自2010年在伦敦成立以来,DeepMind已发表了200多篇同行评审论文,其中6篇发表在最顶尖的科学杂志《自然与科学》上,这是计算机科学实验室史无前例的记录。2014年Google收购了DeepMind,这是欧洲有史以来规模最大的一次收购。DeteMind的开创性工作包括发展深度强化学习,结合深度学习和强化学习的领域。2016年,这项技术支撑着AlphaGo在世界围棋人机大战中击败了世界冠军李世石。DeepMind现在正将其技术专长应用于复杂的现实世界领域,例如:健康,包括与若干医院展开合作,提供先进的技术为患者和医生进行服务。

关于Unity Technologies
Unity是世界上使用最广泛的实时3D开发平台的创建者,为世界各地的开发人员提供了创建丰富,交互式2D,3D,VR和AR体验的工具。公司拥有超过800人技术工程师团队通过与Google,Facebook,Oculus和Microsoft等合作伙伴进行紧密合作,以确保为最新版本和平台提供优化支持,使Unity始终保持处于技术前沿。目前全球超过30亿台设备上都拥有使用Unity创作的游戏与体验,过去12个月内安装次数超过了240亿次。Unity众所周知的灵活性使开发人员能够针对包括Xbox One、PlayStation 4、Gameroom、SteamVR、Oculus、PSVR、Gear VR、HoloLens、ARKit、ARCore等25多个平台优化他们的创作。同时Unity还提供解决方案与服务,包括:Unity Ads广告,Unity Analytics分析,Unity Asset Store资源商店,Unity Cloud Build云构建,Unity Collaborate协作,Unity Connect和Unity Certification认证。

Unity制作蝴蝶烟火视觉特效

今天由育碧的工程师Parag Ponkshe为我们介绍如何制作蝴蝶攻击的视觉特效。

Parag Ponkshe曾在电影和动画行业担任视觉特效美术师,参与制作的作品包括:《波斯王子:时之逃亡》、《爱心小熊肚皮碰碰对》、《南方公园:手机毁灭者》等。本文中的作品是他为Riot Creative Contest 2017而开发的作品。

作品构思
当拳头公司宣布Riot Creative Contest 2017举行的时候,我立即决定参加,这次大赛11月开始,我花费了长达2个月来思考项目的创意和内容。某天我正在观看《魔戒》时,电影中一个优美的蝴蝶烟火吸引了我。尽管这个画面在电影中只持续了很短的时间,但我立刻意识到,可以为这次大赛去创作什么了。

由于仅有1个月实践进行创作,我不想再浪费时间考虑创意或绘制概念草图,我决定直接使用这个概念。说起蝴蝶,我们通常会想到美丽、平和等特征,但这些不是它的必然特征,蝴蝶也可以变得很危险!

005302xxq86va3qf3m1fu1
说明:Riot Creative Contest 2017为美国拳头公司举行的创意大赛,参赛者为《英雄联盟》创作动画、VFX、原画、角色、音效等,仅限制个人参赛。

原型制作
在早期阶段,我仅用基础的纹理和Unity标准粒子着色器制作了一大片蝴蝶从烟火中飞出的效果。最初我仅想要它们飞出来即可,但之后觉得,要是它们还能飞回来并进行攻击该多好。

这个想法从概念来看很棒,但我不确定蝴蝶返回冲刺的特效该怎么做。这里的关键要素是外部作用力模块,我从未使用过这个模块去吸引和驱散蝴蝶。

我使用充能特效和发射体制作出了几个原型。

005309t6ujjjllcmjl3cka
005312c63q17bib63h67c9
005316pe7ttn5tr5te17r9
特效的主要组成图层
这个特效在早期十分简单,仅有少数几个发射器。随后渐渐地变得复杂起来,因为我加入了很多嵌套子发射器。

详细的发射器层级如下图所示。

005317nwvqx6pccxcchm65
制作粒子特效
关于这个特效我有很多要说的。我制作了蝴蝶迸出锥体发射器的效果,在这个过程中使用了噪声模块,所以这些蝴蝶飞出来的动作十分自然。

为了让它们再返回攻击,我曾尝试使用‘force over time’(作用力时间),但那无法实现想要的效果,因为我想要所有的蝴蝶都飞回到一个特定点, 而不是飞向同一个指定的方向。

于是我在蝴蝶粒子系统中创建了一个子发射器,使蝴蝶在其父粒子消失后的相同位置再次生成。在这个子发射器中,我加入并启用了外部作用力模块,其作用力的值是负数,这样就能将粒子吸引到其中心点了。

005317ugjhoy86y32g3jzk
005317n9gzr99z9jz7y9b7005326hcrpg2mpaxpxc2rp 005323r2935yg5cbkrtygv
在子发射器中,我启用了碰撞模块使其与球体进行碰撞,这样会在消失的地方生成带有Glow子发射器和Explosion_Sparks子发射器的贴花粒子系统。子发射器中又有子发射器听起来有点复杂难理解。

你可以查看以下截图来理解这句话,子发射器都被标了红色。

005326g14cil5lbvt1fulc.jpg.thumb

在蝴蝶冲刺效果中,我也使用了相同的方法。除了负外部作用力外,它们还有一些额外的速度属性,从而实现螺旋式的动作。当然它们还有噪声模块来保持动作的自然流畅。

所有的蝴蝶都用拖尾(Trail)粒子实现了逐渐消失的拖尾效果。此外蝴蝶渲染模式设为了拉伸广告牌(Stretched Billboard),这样蝴蝶会与其移动方向对齐,从顶部视图你可以看到它们的轨迹是平行的。

最后的烟雾则是一个很简单的发射器,上面带有噪声模块和拖尾粒子,渲染模式为空,这样就能只渲染拖尾粒子。

下图中查看烟雾的具体属性设置。

005326nlsylnp4pyadflal
花瓣动画
最初我打算添加花的图片素材,但它的平面感太强了。另一个办法是通过建模制作花朵,然后用Unity给它做动画。最后从性能方面考虑,我决定只建模一个花瓣,然后使用粒子系统来制作动画效果。

注意看它的旋转动画:

005342ullmt0gulbulb33r 005334sbfobsozass99aea
同样的,花瓣也会从初始位置逐渐显现,所以我使用顶点颜色和Alpha值0来绘制花瓣,然后平滑修改这些数值实现所需效果。

粒子舞动
在创作粒子舞动效果时,我遇到了一些难题。

花瓣发射器的问题是,它们必须与多个花瓣在圆环发射器上均等对齐。我费了不少心思来解决这个问题,后来我偶然发现在Unity中就有这个功能。

形状(Shape)模块中的半径厚度(Radius thickness)属性会让粒子发射到圆环的边缘,但这样花瓣仍然没有均等分布。于是我将弧度的模式(Arc Mode)设为爆炸式扩散(Burst Spread),解决了这个问题。

查看下面图片中标志红色属性进行参考。

005343g7qnzsyvgsq0o0y3 005343zdb3d6m4hobmq416
另一个问题是将爆炸贴花对齐到球体上的法线方向。为了解决这个问题,我反复修改了很多次设置属性。

通过给粒子添加极少量速度,并将其渲染对齐(Render Alignment)属性设为速度(Velocity)解决了这个问题。

005344zcz7hz9c6wslscs7
粒子舞动特效的关键要素是外部作用力模块,这是一个非常有趣的模块。

此外增加自定义着色器以添加发光效果,也使效果更为出众。我还使用了Unity的Post-Processing Stack后期特效包,它能给你的场景带来令人惊叹的效果。

总的来说,粒子舞动是一个十分有趣的特效,制作这个效果的过程中我学到了很多东西,包括如何编写用于在指定时间触发特效的C#脚本。

小结
这便是Parag Ponkshe创作蝴蝶烟火特效的制作流程心地,这个特效还有很大改善空间。希望你学习到这篇文章后得以启发,在自己的作品中创作出精彩的视觉特效。