Unity 2017.1 正式版发布啦。。。
Unity 2017.1正式版已发布,现在就可以从这里下载。感谢Unity社群在测试期间所给出的各种有价值的建议。
版本发布也代表Unity 2017产品循环的开始,将全球最受欢迎的引擎继续变好,最重要的是帮助开发者更方便开发并获得成功。
我们希望为美术、企划和开发者们提供强大的新可视化工具,让整个团队工作效率更高更顺。透过改进图形质量和执行效能来帮助大家创造令人惊艳的3A级体验。
效能方面我们希望帮助开发者有效利用最新的GPU和图形API,第一时间能发布在所有平台(PC、游戏机、手机、VR、AR、电视等等)。以此为初衷,我们建立了Unity强大的跨平台架构“一次构建,全平台发布”。我们与全球技术合作伙伴紧密合作,帮助大家落地到各个平台的用户,将成功机率最大化。
成功的范围包括营收、内建的Ads广告、IAP和在Unity 2017中提供的实时操作分析服务(Live-Ops Analtyics)。它们帮你提供更多机会,实时优化游戏效能且不需要重新打包,利用数据的力量来实现最大化利益。
Unity 2017.1适用于所有Personal个人版,Plus加强版和Pro专业版的订阅用户。至于旧的Unity 5买断授权的用户请注意,Unity 5.6是5.x产品周期中最后一个版本。Unity 2017已经无法更新上去。如果想继续获得更新版本,请联系经销商购买新授权。
我们也非常期待广大Unity社群开发者能用Unity 2017创作令人惊奇的内容!想了解未来有甚么功能可以关注Unity版本发布计划图。
接下来为大家介绍Unity 2017产品周期第一个版本所有新功能与改进。
Unity 2017.1简介
Unity
2017.1中包含大量新功能与改进。主要内容如下:
美术和设计师们:全新的叙事系统和运镜系统
Unity 2017.1为美术和设计师们提供了全新的工具,使用Timeline,Cinemachine和Post-processing工具,可以创造令人惊叹的电影等级画面与后制镜头画面,并可视化描述故事。
Timeline是一款强大的可视化创作工具,用来建立电影等级内容,例如过场动画、预告片、镜头运镜顺序等等。
Cinemachine是一个运镜系统,您可以像电影导演一样,在Unity中运用各种镜头,而且不需要写任何程序,引领您进入程序化摄影时代。
Post-processing可以很方便的为场景加上各种逼真滤镜,使用电影工业级技术、选项和颜色空间格式来创造高质量视觉效果,让画面更生动、更逼真,助您描绘更好的视觉故事。
效率:协作、实时操作分析、工具
我们发布了Unity Teams,它由一系列功能和解决方案,包含Collaborate多人协作和Cloud Build云构建。
实时操作分析系统引入了新的、更简单的方法,帮您更了解玩家,并在不需要重新打包的情况下,对游戏做出实时的反应和调整。
最重要的是,Unity 2017.1对编辑器进行了大量更新,包括对FBX汇入、动画工作流程、2D功能、Asset
Bundle和Visual Studio整合的改进。
图形与平台:全面改进
Unity
2017.1对粒子系统和渐进式烘焙光照(Progressive Lightmapper)做了大量改进,现在有更多选择来实现您的艺术愿景并保持效能。不同平台可采用不同的渲染加强选项,例如iOS平台上的Deferred Rendering,和PC上的NVIDIA VRWorks。
这些都只是Unity 2017.1的重点介绍,接下来会一一介绍完整丰富的细节内容!
Unity 2017.1新看点
艺术家叙事工具: Timeline和Cinemachine介绍
设计师、美术或动画师们可以使用新的叙事工具,自己制作电影内容和游戏分镜,不在需要仰赖程序设计师帮你调。这代表着开发效率更高,且省下沟通成本。
Timeline是一款强大的可视化新工具,可用于建立影视内容(例如短片《Adam》)。透过编排游戏对象、动画、声音和场景,来建立过场动画、游戏影片等等。有了Timeline,您可以把时间花在叙事内容和电影艺术创作,而不是写程序。
Timeline基于轨道的镜头序列工具,用拖放操作来编排动画、声音、事件、影片等元素,可以快速建立漂亮的过场动画和程序化内容。Timeline有许多功能,例如动画、音频、自动关键帧,以及可以锁定或静音特定轨道的多轨操作接口。Timeline可通过Playable API进行扩展,支持建立自定义轨道,来驱动游戏中的任何系统。您可以制作一个Timeline剪辑来驱动几乎所有内容,并且可以重复播放、缩放和混合这些剪辑,所有这些都可在Timeline中实现。
Cinemachine是累积了多年游戏和电影镜头运镜的经验而成的结晶。现在,它更将业界领先的镜头系统交到所有人手上,引领程序化摄影的时代。
这是一套智能摄影系统,可以动态根据场景的构成和互动,在最佳时间拍摄最佳镜头。使您摆脱无尽的手调动画、镜头程序设计以及后制修改的过程。
现在Cinemachine可以在Asset
Store中下载。
从第一人称射击游戏到第三人称动作冒险,您可以很容易的用Cinemachine改变游戏内镜头:
像电影导演那样,使用镜头工具及真实的镜头设定,控制镜头序列。
合成镜头,把重点放在美术方向上,而非实现细节。给Cinemachine智慧摄像机一个简单的指示,比如跟随人物的头部,如果动画发生变化,镜头会自动改变并继续工作。
在Unity 2017.1中,我们为Cinemachine加了许多新功能,比如:
多目标对象:以多个对象为目标,并设定它们的权重。它会基于任意数量的对象建立一个逻辑,根据成员的位置来定位自己该去的位置。在跟踪一组对象时,可以将它用作LookAt和Follow方法的目标。对2D场景也非常适用。
动态取景多个对象:这个功能基于对象的位置自动取景一组目标。如果对象散开,Cinemachine会根据你建立的一套规则调整FOV或Zoom(或两者同时进行)
全新开放API:轻松订制Cinemachine配置,取得项目所需的镜头行为。
镜头轨道:创造出像电影一样的镜头轨道,让镜头在游戏世界里平滑移动。适合于电影镜头或当你希望镜头沿着一组轨道跟踪拍摄对象时。
安全镜头:会根据镜头优先级与质量,动态选择最佳的镜头。例如有东西进了取景框破坏了画面?没问题,Cinemachine会判断并切换到另一个摄影机。很适合回放或场景的电影镜头序列。
状态驱动镜头:允许摄影机和动画状态之间形成关联。从动画中触发不同的镜头行为。
Timeline和Cinemachine能结合使用,可以将叙事流程带入更高层次。然后使用后制处理特效进一步强化画面,营造更好氛围和戏剧效果的场景。
想了解Timeline和Cinemachine的用法,可以看今年Unite欧洲的演讲(英文)。
Post-processing Stack的改进(Beta)
Post-processing将全屏幕滤镜和特效应用于镜头的图形缓冲区,然后再把它显示在屏幕上。你可以使用后制特效来模拟物理镜头和各种电影效果。
你可以下载最新版的Post-processing Stack(Beta)。我们预计今年夏季发布正式版(友善提示:如果你要上一个较稳定的版本可以在Asset Store下载)。
改进后的后制特效处理可以将一组完整的图形效果整合到单个后制处理流程中,并带有下列高质量的镜头效果:
Screen-space anti-aliasing
Auto Exposure
Motion Blur
Bokeh Depth of Field
Bloom
Color Grading
Chromatic Aberration
Film Grain
Vignette
你可以把多个特效合成到单个Pass中,使用基于Asset的默认设定系统管理特效也非常轻松。
颜色分级(Color grading)特效是一种支援Academy
Color Encoding System (ACES)的全HDR颜色流程,低阶平台可以使用LDR管线。这个后制特效有两个屏幕空间的光照特效,环境光遮蔽(AO)和屏幕空间反射(SSR)。
这个新版本里还提供了一个基于体积混合的特性,你可以在场景中定义区域(任何类型的网格),并在玩家进入区域时设定特定的氛围/外观。Unity会自动在范围内进行混合,实现流畅的画面转换。
Unity Collaborate多人协作已正式发布!现为Unity Teams一员
Unity
Collaborate多人协作已结束测试,与Cloud Build云端打包一起成为Unity Teams的一员,一个解决方案一套功能,就可以帮助你更快速进行团队协作。Unity Teams将可免费使用至2017年10月,可以看这里了解更多(英文)。
对于Collaborate多人协作,我们在Unity
2017.1中发布的首个版本并处理了Beta用户提供的反馈。除了效能改进、稳定性之外,我们还增加了一组新功能:选择性推送、更好的Asset浏览器整合和一个新的“In Progress”功能,用来标注团队成员在某个场景或预制对象上有未发布的本地更改。
https://youtu.be/SS8UUYT_5ew
以下是我们为Collaborate多人协作增加的一些新功能:
In Progress标注
为场景和预制对象加上了In Progress标注,告诉团队中其他人已对某个场景或预制对象做出了一些未发布的更改。这个功能有助于协调对场景和预制对象的更改。
右键单击选择性发布
我们增加了右键单击的操作,现在你可以在项目窗口中直接发布、退版、查看差异,解决档冲突等等。这是一个重要的开发者需求,我们希望让Collaborate的操作和其他项目管理更加一致。原Collaborate用户请注意,要更新这个功能之前必须确保旧的版本所有发布已更新到最新。
项目窗口体验更佳
在项目窗口的“Favorites”中加了新的筛检方式,包括“All Modified”、“All Excluded”和“All Conflicts”,这样开发者就可以看到他们所有正在修、已修改、有冲突和忽略的档案。特别要留意的是“All in Progress”,可以让你实时看到Collaborate团队中的其他人正在处理哪些Asset。
实时分析操作(Live-Ops Analytics)
Unity 2017.1可以透过数据来驱动这个服务,随时获得丰富的分析数据。深入了解你的玩家在你的游戏里的情况,方便实时针对它们的喜好做出对应的调整,不需要重新打包发布。在Unity 2017里,可以更好的为玩家提供更佳的游戏体验。
通过Standard Events (目前是Beta版)可以进行更有效的检视,它提供了一组预定义事件,可显示和你游戏相关的重要信息。使用新的 Analytics Event Tracker,不需要写程序即可实现这些功能。
使用Remote Settings 功能,可以实时更改游戏设定,不需要重新打包发布,这个功能已加到Unity Analytics分析服务中。
2D功能大跃进
在Unity 5.6中,我们在2D工具和工作流程做了重大改进。Unity 2017.1中导入了2D Sprite Atlas,这是一种新的Asset,将会取代Sprite Packer。随着它的出现,新的工作流程可以在执行时更容易控制图片的打包和使用。导入Atlas图集是Unity中2D工作流程的重要组成部分,而Sprite Atlas不仅提供了更简单的图集建立和管理方式,还有对应的API可接,能获得更多的控制。
Sprite Masks用在世界空间中隐藏或显示图片或图片组的一部分。图片屏蔽只对拥有Sprite Renderer组件或粒子系统的对象有效。
在Unity 2017.1中,我们还为Sprite编辑器加了物理形状编辑。可以为图片设定自定义的默认形状,以使用PolygonCollider2D产生碰撞器的形状。
Animation的改进
我们对Animation窗口进行了全面修改,改进了keyframe的工作流程,使动画制作更方便,支持与Animator状态机互动。而Performance Recording是一个实验中的功能。
新的keyframe工作流程支持明确指定何时将哪一格变为keyframe,并在预览时将所有未修改未定义的keyframe都删除。我们已经改变了在Animation窗口中编辑剪辑的默认行为(新的默认预览模式)、视觉和全局keyframe操作热键。这些改变的目的是在Animation窗口之外为keyframe操作提供一个更流畅的工作流程,同时预览动画不需要在autokey/rec模式下。
现在在编辑器中play状态可以对状态机行为进行除错。
我们还导入了GameObjectRecorder,这是一个新的测试编辑器功能,它允许你录制GameObject和它子对象上的任何属性行为。并将记录到的所有内容存到一个动画片段中,这样就可以轻松建立动画。
Playables已正式发布
Playables API透过使用树状结构的PlayableGraph组织和分析数据源,提供一种建立工具、特效或其他游戏机制的方法。PlayableGraph允许您混合和修改多个数据源,合成为单一输出后播放。
Playables API支持动画、音频和程序脚本。Playables API还提供了透过脚本来与动画系统和音频系统进行互动的能力。
Playable API是一个通用API,它最终也将用于影片和其他系统。查看文件了解更多细节。
Ambisonic音讯
在Unity 2017.1中,我们增加了对环绕立体声音讯剪辑的支持,这是全方位环绕音讯技术,除了水平面外,它还覆盖了听众上方和下方的声源。
Ambisonics以多声道格式储存。它不是将每个通道都映像到一个特定的喇叭,而是以一种更通用的方式来表示音场。然后根据聆听者的方向(即VR中玩家的头部角度),来旋转音场。音场也可以被解碼成一种与喇叭设定配合的格式。Ambisonics通常与360度影片结合使用,也可以用作音效skybox,表现遥远的环境声音。
我们还加了Ambisonic译码器套件,现在也可以在新的叙事工具Timeline中透过一个脚本来使用它。
编辑器改进
我们在UnityEditor.IMGUI.Controls中加了一个新的ArcHandle类别,它可以在场景视图中交互式编辑弧线。也加入了SearchField的新IMGUI控件目,它带有普通和工具栏用户接口风格,但也可以自行定制。
现在还支持使用JetBrains Rider作为外部脚本编辑器。
其他改进还包括对所有player loop阶段加上分析器标签(Profiler
labels),改进Package Export加载状态,以及记录已连接玩家的log信息,这些都将出现在编辑器控制台中,使除错更加轻松。
UI Profiler
Profiler窗口上现在把UI专门独立一个区块出来帮助您除错UI。 现在可以清楚看到UI批次产生流程中发生了什么事,方便你解决那些UI造成的效能问题。 有了这些信息,您可以重新排列层次结构来避免那些隐藏的消耗。
改进了对Visual Studio的支持,包括Mac OS
现在安装Unity时可以选择在Windows上安装Visual Studio Community 2017(而非Visual Studio
Community 2015)。安装速度较快也更省空间。
Mac用户也别难过,现在可以在Mac上使用Visual
Studio了!微软发布了Mac版的Visual Studio和Tools for Unity。Visual Studio for Mac还提供了许多很酷的功能:一键除错,IntelliSense for Unity messages,针对Shader程序高亮显示等等。
场景与Asset Bundle改进
我们对游戏中的场景和Asset Bundle进行了一些改进。更改底层架构使场景和Asset Bundle加载速度更快使玩家体验更好。我们还建立了一个工具,Asset
Bundle Browser。
Asset Bundle Browser
Asset Bundle Browser的正式版与Unity 2017.1一同发布。它允许你在Unity中查看和编辑Asset Bundle的配置。它的目的是替换当前选择Asset的工作流程,并在检视窗口中手动设定Asset Bundle的工作流程。现在您可以查看所有的Asset Bundle配置。透过拖放能安排、修改和分析相关资源包。
这个工具会显示可能需要注意的警告,提示将中断资源包创建的错误。透过查看包内容,你可以更有效地组织Asset
Bundle。也可以查看单个Asset Bundle,并处理包和包之间的Asset依赖关系。
脚本核心升级(测试)到 C# 6和.NET 4.6
在Unity 2017.1中,我们把脚本核心升级支持Mono/.NET
4.6。它包含了许多修复、效能改进,可以使用C# 6。我们相信它会提高游戏的整体效能。
可以在Player Settings中启用.NET 4.6:
注意,更改设定会在重启编辑器后生效,因为它会影响编辑器和播放。对应的脚本API是PlayerSettings.scriptingRuntimeVersion属性。
IL2CPP完全支持新的.NET 4.6 API,因此你仍可以用C#编写程序但有C 的效能优势。
Model Importer改进
现在从Unity导入Maya汇出的FBX档已支持Segment Scale Compensation,而且FBX SDK已升级至2016.1.2。
在导入FBX档时,我们还加了计算加权法线(weighted
normals)的选项,如按面积、角度或二者皆有,以及硬边缘(Hard edges)的法线产生。现在也能从FBX档中汇入灯光和镜头数据,Unity会自动在需要时为对象加入和安排镜头和灯光组件。
Unity现在可以使用“Import Visibility”属性从FBX文件中读取可见属性。值和动画曲线将启用或禁用MeshRenderer组件:
Progressive Lightmapper改进
Unity 2017.1增加了Progressive
Lightmapper中对烘焙LOD的支持。在烘焙LOD时,Enlighten和Progressive Lightmapper之间的主要区别在于使用Progressive Lightmapper不必在LOD周围放置光照探针来获得反射光。在完全烘焙分辨率下,间接光照将为LOD提供更优质的烘焙光照贴图,您也可以避开安排光照探针的繁琐过程。(Unity 5.6中也有此功能。)
我们还在Progressive Lightmapper中加了对双面材质的支持,通过加上新的材质设定,使光线与背面接触。启用后在进行全局光照计算时几何体的两面都被包括在内。当从其他对象观察时,背面不会被认定为无效。背面渲染既不受该设定的控制,也不会在光照贴图中显示。背面使用与正面相同的自发光和漫反射设定反射光线。(该功能也可在Unity 5.6中使用)。
实时阴影改进
我们优化了在稳定模式下定向光源阴影投射器的选择。这代表着产生阴影贴图时的Draw Call更少。这个优化是与场景和设定相关的。例如在四个级联光(Cascaded directional light)的情况下,可以看到Draw
Call数量明显下降不少。根据太阳/镜头的方向,有机会可以减少50%的阴影投射器数量。下面是Viking Village的一个例子:
这个场景在Unity 5.6中有5718个阴影投射器。
使用Unity 2017.1,相同的场景,只有4807个阴影投射器。
Unity 2017.1还实现了实时阴影的Percentage Closer Filtering (PCF)。每个像素的深度值都是从当前像素周围的阴影贴图中取样,并所有的采样值进行比较。这使得光和影之间的线条更加平滑。您可以在下图中看到对比:
除了实时阴影改进,Shadowmask和Distance Shadowmask光照模式现在已成为Quality Setting中的参数,可以在执行时进行修改而不会有任何效能消耗。例如可以在室内使用Shadowmask (实现柔和的阴影),并在相同关卡中的户外场景实时切换到distance Shadowmask。它也可以作为一个质量设定。
我们还加了Custom Render贴图作为渲染贴图的扩展,可以很方便的用着色器来更新贴图。这有助于实现各种复杂的模拟,比如焦散光、雨滴涟漪模拟,墙面液体喷溅等等。它还提供了一个脚本和着色器框架,以便进行更复杂的设定,比如局部或多阶段更新,不同的更新频率等等。
有了新的LineUtility类别和LineRenderer.Simplify函式,现在可以优化线条,用LineUtility建立由简单形状组成的简化版本。
使用Metal/OpenGL ES3实现iOS上的Deferred Rendering
我们为加入deferred rendering path支持使用Metal和OpenGL ES 3.0像是A8芯片和以后的iOS设备。当开启它时,影响GameObject的灯光数量就没有限制。所有的灯光都是按像素计算的,这代表着它们都能与法线贴图进行正确的计算。此外所有的灯光都可以有投影和阴影功能。
粒子系统改进
我们加入了Sprite到粒子系统,粒子的碰撞力(可以推动碰撞器),大形模型的支持改进,包括一个新的形状类型,噪点模块加了新选项,以及其他一些较小的特性和强化。因为增加了新的控制和约束,例如速度与对齐,使得在2D中使用粒子更加轻松。可以使用粒子来获得比以往更多的特效和动画效果,包括光线的线条和尾迹。
透过Texture Sheet Animation模块,我们在粒子系统中增加了对图形的支持。这使粒子系统能更好进行图集处理和批处理,同时也在粒子系统中增加了大量与Sprite相关的特性,例如不同大小的动画帧,以及每帧的轴心点。
噪点模块(Noise Module)提供了新的选项,可以更好将噪点应用于粒子效果中。这个功能在Unity
5.5中第一次出现,噪点被应用到粒子的位置属性。在2017.1中我们可以将噪点应用到更多的地方:
位置
旋转
大小
使用Custom Vertex Streams的着色器(非常适合制作UV失真效果!)
在粒子系统形状模块的碰撞模式中,我们引入了一个新的甜甜圈粒子发射形状和编辑模式。模块内的Transform可以为粒子发射的形状应用自定义位置、旋转和缩放。
其他的改进还包括将粒子与速度方向对齐的能力,以及允许在局部空间系统使用Emit over Distance。边缘粒子发射现在更加灵活,可以选择用来产生粒子的边缘厚度。
粒子现在也可以使用碰撞模块对碰撞器进行施力。
Windows
Store现在改名为Universal Windows Platform
Unity现在支持Windows商店的Universal Windows Platform(UWP)应用模式,支持为Xbox
One、Windows 10、Windows Phone 10和HoloLens进行构建。
请注意,对Windows Mixed Reality PC设备的支持将在今年发布。
我们增加了对UWP的多显示支持,现在Unity player 二进制文件已做数字签名,增加了额外的一层安全性,可以防止对Unity运行时二进制文件进行篡改。
最后,我们取消了对Windows 8.1和Windows
Phone 8.1应用的支持,Unity 5.6是最后一个支持这两个平台的版本。
Sony PS4支援Video Player
我们在Unity 5.6中加入了一个全新的Video
Player,在Unity 2017.1中正式支持 Sony
PS4,完成了对跨平台的支持。PS4的Video Player使用Sony的AvPlayer库来加速h.264的解碼。解碼h.264(PS4的推荐格式)时,CPU消耗非常低。可以同时对最多8个h.264进行译码。它还支持对webm容器中的VP8格式进行软件译码(会有更高的CPU消耗)。最后它支持多种影片渲染模式(直接渲染到摄影机的近/远平面,作为材质覆盖,或渲染贴图),音讯流可以直接输出或发送到Audio Source进行混合。
Low-Level Native Plugin渲染扩展
我们扩展了底层渲染API,并提供了一些很酷的新功能:
现在可以将user data发送callback函式。
我们扩展callback的可能事件列表增加。
我们在Shader编译程序中加了hook功能,允许你在发送到编译程序之前对着色器进行更新。这可以设计透过自定义关键词来控制自定义变体(Variants)。
要想了解这些扩展功能的威力,可以查看NVIDIA的VRWorks里面的数据,它是实现这一切的基础。
VR: NVIDIA VRWorks
在Unity 2017.1中,NVIDIA
VRWorks透过以下功能帮虚拟现实提供了一种全新高度的视觉拟真、效能和反馈力:
Multi-Res Shading是一种用于VR的创新性渲染技术,它可以使图像的每一部分都能渲染在一个与镜头矫正图像像素密度相匹配的分辨率上。
Lens Matched Shading使用NVIDIA基于Pascal的GPU的新Simultaneous Multi-Projection架构,为像素着色提供潜在的效能改进。
Single Pass Stereo使用NVIDIA基于Pascal的GPU的新Simultaneous Multi-Projection架构,仅对模型进行一次绘制,即可在双眼视图同时投射相同物体。
VR SLI为虚拟现实应用程序提供更高的效能,可以指派独立GPU给特定眼睛,大大加速立体渲染。
为了更好实现这些功能,建议在PC上使用GeForce 9系列或更高的GPU来执行。可以从Asset Store下载
Release notes
请查阅Release notes说明,了解新功能与bug修复的完整列表。
再次感谢那些在测试版本协助我们改进功能的开发者们。