虚幻引擎 4.7 版本信息

本页面的内容:

虚幻引擎4.7是我们迄今为止最大的更新,您可以在大型世界中渲染大量的实例化对象、对树叶和植被的美丽渲染、HDR贴图支持,编辑器内的动画编辑,以及数以百计的最优化和改进。

我们添加了许多令人期待的功能: 您马上可以在您的关卡中使用组件来组合新actors,甚至使用蓝图可视脚本或C++来创建您自己的自定义组件类型! 说到脚本,我们已经使用干净、统一的布局来重新设计蓝图编辑器的用户接口。 在您的项目中导入内容从未如此简单 -- 虚幻编辑器现在可以检测新资源文件夹并自动导入它们!

HTML5平台 + WebGL已可使用 -- 只需简单的点击,您就可以在兼容的编辑器中运行您的游戏! 您现在也可以在Mac上构建、烘焙并部署Android的开发者。 对于虚拟现实的创建者来说,新“VR Preview”(虚拟现实预览)特性让您可以从编辑器中立即沉浸在您的游戏世界中。 另外,如果您正在构建基于代码的项目,您现在可以访问Leap Motion支持。 最后,我们现在在每个版本中都赋予您完整的C++引擎源代码,从而让您的学习和调试更为容易!

此次发布包括了38项重大变更,它们都是由虚幻引擎的杰出开发者社区提交的。 Epic对此次发布中贡献Git源代码控制插件到虚幻引擎的社区成员Sébastien Rombauts致以特别感谢。 很出色! 感谢以下所有的贡献者:

Artem V. Navrotskiy (bozaro), ArneBezuijen, Black Phoenix (PheonixBlack), codetackler, Daniel Zeligman (dzeligman), Derek van Vliet (derekvanvliet), Fazouane Marouane (fazouane-marouane), Jesus Fernandez (jsfdez), Lukasz Baran (iniside), Moritz Wundke (moritz-wundke), Michael Kosel (TheCodez), Michael Allar (Allar), Marat Radchenko (slonopotamus), 3dluvr, Pierdek, Quadtree, Rama (EverNewJoy), Robert Wallis (robert-wallis), Rick Yorgason (Skrapion), Simon Taylor (simontaylor81), Stephen Whittle (stephenwhittle), Tobias Mollstam (mollstam), Cengiz Terzibas (yaakuro)

主要新功能

真实的植被光照

新的 植物材质模式(Shading model) 可以为草、叶片、纸张等材质提供可透射到背面的光照效果。

RealisticFoliageLighting.png

在表面另一侧的漫反射光照成为着色侧的半投射光照

在大世界中渲染大量植被

我们对植被系统进行了最优化,以支持大型、开放的环境!

FoliageRenderingLargeworlds.png

我们现在使用层级式系统来管理和剔除缩放为数以百万计实例的植被! 同时,我们现在对具有临时淡入淡出的网格物体LOD间进行平滑转换以消除在切换LOD时的令人厌烦的弹出窗口!

世界中的组件编辑

组件现在可以被直接添加到放置在您关卡中的actors。 这样您可以从组件中组合新actor,而不必首先创建Class Blueprint(类蓝图)。 这对于使用组件以及在您的关卡中组合新对象很有帮助。

InworldComponentEditing01.png

您现在可以在三维关卡中选择单独的组件,使用熟悉的小工具来移动它们,并编辑其属性。

InworldComponentEditing02.png

在您创建完出色的内容后,请点击“Blueprint / Add Script”(蓝图/添加脚本)来将其保存为可再次使用的类或将对其添加脚本。 这样就会自动把您的actor替换为该类的实例。

InworldComponentEditing03.png

可放置的空白Actor

您现在可以通过拖放以直接在您的关卡中放置“空actor“!

PlaceableEmptyActors.png

我们也支持空pawn和角色。 您可以使用新建的游戏世界内组件编辑功能来在您的关卡中马上构建有趣的actor。

可蓝图化的组件

您可以使用蓝图脚本来创建特有的组件类型! 您可以保存这些组件并在任意actor上重新使用它们!

您可以点击“Add Component”(添加组件),然后选择顶部的“New Blueprint Script Component…”(新建蓝图脚本组件)。 您可以对您关卡中位于任意Actor类蓝图内的actor进行此项操作,您甚至可以在内容浏览器的“New Blueprint…” (新建蓝图)窗口中进行此操作。

BPComponents01.png

选择您新建 蓝图Parent Class(父类) 。 “Scene Components”(场景组件)在actor内具有三维位置,但“Actor Components”(Actor组件)仅具有脚本逻辑。

BPComponents02.png

接下来就是好玩的地方了 -- 您可以为您的组件编写蓝图脚本代码。 在这个示例中,我们使用Tick(更新)事件在每一帧围绕偏转轴旋转组件的所有者(actor)。 我们把这个组件命名为“Spinner”(旋转器),因为它会让actor旋转!

BPComponents03.png

现在,您可以拖曳组件到您场景中的任意actor上,而且它们会在游戏开始时进行旋转。 是的,可以重复使用的模块功能!

BPComponents04.png

您也可以将其拖曳到任意普通actor的类蓝图中。 您的新组件也会一直显示在“添加新组件 ”(Add Component)的菜单中(放置在’自定义’分类里),而且和其它资源一样,您也可以在内容浏览器中找到它们。

资源自动导入

导入网格物体、声音和贴图从未如此容易。 您只需把源美术文件保存在项目的内容文件夹下,编辑器将会自动导入新文件,以供您在虚幻引擎4中使用它!

如果您从外部应用中更新这些文件,编辑器将会检测到此问题并自动重新导入您的内容! 这使得对游戏内容的迭代更为快速。

这个功能默认是开启的,但是您可以使用编辑器偏好设置中的“Loading & Saving”(载入和保存)部分的“Monitor Content Directories”(监视内容目录)来切换开启和关闭状态。

重新设计的蓝图编辑器UI

蓝图编辑器已经进行了重新设计,从而让使用更加容易! 所有的三个模式都被统一到了单个屏幕中,以帮助您简化工作流程,并进行了许多其它改进。

BlueprintEditorUI.png

您现在可以自由地重新排列面板,诸如视口和图表视图,甚至可以让两者同时显示了!

"My Blueprint"(我的蓝图)视图进行了修改,从而使其更加清爽和简洁,而且可以更方便地添加新功能和变量。

在组件面板中选择您actor的名称,将会显示出您的类的默认值(您也可以点击工具条上的"Class Defaults"(类默认值))。 如需查看您的蓝图设置,请使用工具条上的"Class Settings"(类设置)按钮(其之前的名称为“Blueprint Props”(蓝图属性))。

HTML5和WebGL支持 (仅可用于Windows)

现在您可以通过启动程序的二进制工具来在网页浏览器中打包并运行您的游戏。

HTML5_WebGL01.png

您只需完成Emscripten SDK 的安装,重启您的编辑器与启动器,在启动按钮的下拉选项中选择一个网页浏览器即可!

HTML5_WebGL02.png

HTML5使用时的一些注意事项:

OpenEXR: 高动态范围HDR贴图

现在可以从 OpenEXR 文件 来导入2D的高动态范围(HDR)贴图了 ! 您可以在每个通道存储最高16位色深信息(大约相当于30级曝光)。

HighDynamicRangeTex.png

(在之前的版本中,您只能从OpenEXR文件中导入Cube Map贴图。)

使用Mac开发安卓版本

现在OS X版本的引擎完全支持安卓版本的开发了!

AndroidDeployMac01.png

Mac电脑用户现在可以构建、打包安卓版本程序,并通过编辑器或者命令行工具发布到安卓设备上 。

AndroidDeployMac02.png

您需要安装Java for OS X与安卓SDK(您可以使用Engine/Extras/Android文件夹下的TADP安装程序来进行此操作) 安装完成后,您需要重启编辑器或者是在项目设置中找到安卓SDK的部分指定正确的SDK路径。

完整引擎C++源代码与调试符

现在您用启动器安装的虚幻引擎包括了完整的C++源代码与调试符 !

Fullc++Source.png

这可以使您在调试时无缝地接入引擎代码,同时,在程序崩溃后获得完全的堆栈调用。 您无需再自己编译引擎就可以对引擎进行完整调试。

注意如果您要重新编译引擎您仍然需要访问GitHub 以获取所有必须 的文件。

编辑器内直接使用VR模式

我们在编辑器中添加了新的"VR preview"(虚拟显示预览)按钮! 如果您已经插好了 Oculus Rift设备,您可以立即在虚拟现实(VR)模式下运行您的游戏 。

PlayinVR.png

点击“VR Preview”,编辑器窗口会最小化,您的游戏会直接在Oculus Rift设备上弹出显示 。

Leap Motion手部动作感应器插件 *Beta*

UE4现在通过插件支持 Leap Motion设备 。 您可以直接在项目中使用这一手部动作感应装置。 相关API同时暴露给蓝图脚本与代码,所以任何类型的项目都可以利用这一技术。

想要获取如何使用这一插件的范例,请访问Leap Motion的官方网站www.leapmotion.com 。 目前这一插件仅支持GitHub自编译版本的引擎,以及直接从Leap的网站下载到此插件的用户。

在内容浏览器中显示C++类

您的项目中的C++类现在可以显示在内容浏览器中了!

C++ContentBrowser.png

您也可以很方便地在内容浏览器中创建新的C++类! 它会自动编译和显示在编辑器中来供您使用!

C++ContentBrowser2.png

双击C++类图标,可以直接调用Visual studio或者Xcode中的源码,或右键点击来基于现有类创建新的类。

顶点变形目标动画超限化

现在变形目标动画的权重值可以超过100%了,这可以使您得到超夸张的动画效果,当然低于0%也可以。

MorphTargetExagg.png

功能包与内容包

您现在可以随时使用内容浏览器方便地在内容浏览器中添加新的“功能”包与内容包! 这些包可以包括任意的内容、蓝图类或者C++类资源的组合。

FeaturePacksandContentBrowser.png

所有已有的模板项目功能都已经打包成为功能包了。 所以您可以先添加第一人称功能包 ,然后再添加载具功能包,这样您就可以在您的项目里同时使用这两套功能了!

在内容浏览器中,只需要点击“添加新的”(Add New),然后再点 “添加功能或内容包…”(Add Feature or Content Pack…)。 这样文件就会立即导入您的项目中了! 很多包会包含内置的教程,也会一并导入!

FeaturePacksandContentBrowser2.png

甚至起始资源包(Starter Content)也可以在任何时候导入您的项目。 实际上,我们已经有了一个新的“为移动平台优化”的起始资源包让您选择。

动画编辑系统

现在您可以直接在Persona动画工具中编辑动画!

AnimEditingSystem01.png

拖动时间滑块,选择骨骼,使用控件移动、旋转骨骼,并在任意帧设置关键帧。 (提示:关键帧设置的快捷键是‘S’)

AnimEditingSystem02.png

在Persona编辑器内,所有的动画曲线编辑都会被存储到一个“叠加层” (additive layer)。 当您重新导入原始动画数据,您所做的修改仍然被保存着! 这个层数据只存在于Persona编辑器内。 只需要在工具栏中点击“应用”提交您的修改,就可以在游戏中看到动画的修改了!

AnimEditingSystem03.png

您也可以完整保存您的定制动画! 使用工具栏的“Create Asset”(创建资源)按钮从参考姿势或您的当前姿势或动画中创建新的动画。

AnimEditingSystem04.png

一些注意事项:

即时骨骼控制器预览

骨骼控制器节点现在可以使用视图中的操作器直接做交互式调整,而不用每次都重新进行编译!

目前这个功能只工作在TwoBoneIK, ModifyBone、Fabrik三种解算器上,不过我们会陆续添加更多的支持 。

使用物理模拟解算创建动画

您可以在物理编辑器(PhAT)中通过录制物理模拟来将其保存为动画 !

AnimFromPhys_Record_01.png

点击工具栏上的“Record”按钮,然后与视口中的对象进行互动以创建有趣的模拟! 在完成后,点击“Stop”,模拟的结果就存储为动画了。

您同样可以直接从关卡编辑器中捕捉动画!

项目启动器

全新的项目启动器界面拥有更多控制选项,让您更加容易的运行或者打包您的游戏项目!

ProjectLauncher.png

项目启动器拥有多项功能帮助您在多种不同设备、多种不同设置间快速测试您的项目 ,并同时运行多个会话。 您可以更简单地定制不同的构建类型与打包设置,然后在任意连接好的设备上启动您的项目。

如果您需要以下这些内容,可以使用 自定义启动选项(Custom Launch Profiles) 来构建版本。

当然,您仍然可以使用主工具栏上的"启动"按钮来来运行您的游戏。 但是,如果您需要更多的灵活性,您还是可以轻松的通过“启动”按钮的下拉菜单或者是主菜单中的窗 口菜单来快速打开新的项目启动器。

蓝图合并工具

您现在可以使用新的蓝图合并工具去将不同的蓝图合并到一起。

这个工具会将两个蓝图做可视化的对比,以帮助您合并他们! 这对于同一个蓝图被不同的人反复修改之 后的合并来说是非常棒的工具。

BPmergeTool.png

您可以用三种方法调用这个工具:

Git源码控制插件(Beta!)

感谢社区成员Sébastien Rombauts友情贡献的Git源码控制插件!

GitHubPlugin.png

当您将项目连接到Git存储区,编辑器就可以支持大部分的源码控制功能,比如添加、删除文件,提交修改,显示文件历史,比较文件,显示当前的源码控制状态等等。

AI 感知系统:支持蓝图脚本

AI感知系统(AI Perception System)现在可以使用蓝图脚本来设置了! 您只需为您的AI添加AI感知组件,就可以观察、调整相关的属性与事件了。

AIperceptionSystem.png

新的项目模板附带教程

现在,每一个新的项目模板都有一个简单的 概要教程 。它大致介绍了模板的组件构成 与类是如何工作的。

TemplateTutorial.png

只需要在内容浏览器里 点击 教程预览图上的'播放'按钮 ,就可以开始播放教程!

images/TutorialContentBrowser.jpg

内容包与功能包也可以包含自己的教程! 如果添加了新的包在您的项目,您也看看附带的教程去学习一下这些包的内容!

新的缩略图视觉效果

现在编辑器能够以新的 彩色风格 显示 资源缩略图

NewThumbNail.png

同时,现在C++类与蓝图类现在也可以显示为 交互式的3D缩略图 。缩略图 右下角的小图标 会显示出它的父类。

Paper2D:增强了拼贴式地图层编辑

我们在拼贴地图编辑器里添加了一些很有用的 图层编辑功能 !

Paper2DimprovedTilemap.png

Paper2D: 翻页式动画碰撞检测

翻页式动画资源允许您创建以序列形式播放的 来自于图像的2D动画。 现在,您可以为您的动画序列定义 碰撞属性

Paper2DFlipbook.png

翻页式动画资源有了一组新的碰撞来源属性,用来控制翻页式动画碰撞数据的来源(如有的话)。

使用时的一些注意事项:

UI:支持自定义光标

现在您可以在项目中使用 软件光标 创建 自定义的控件 (custom Widgets) 。 控件可以使用UMG的所有功能,像是添加文字、血条、工具介绍以及一切您想在光标上添加的功能。

UIcustomCursor.png

软件光标在以下案例中会非常有用:

项目设置 中新 用户界面” (User Interface) 部分中设置是否使用软件光标控件。如果您没有特殊的设置,会使用 默认 的硬件光标。

注意: 软件光标的运动受限于游戏的帧率刷新,而不像是常规的硬件光标由操作系统来渲染 。这个功能主要权衡点就是这个。

虚幻运动图像: 新的UI控件绑定系统

新的UI控件绑定系统用于控件与子属性、功能集之间的绑定,这是一个很大的改进并极大的提升了性能!

UMGnewWidget.png

使用新的绑定系统的一些注意事项

可视化日志工具(AI可视化工具)

我们有了一个全新的功能超多的可视化日志工具。 他的设计目的是帮助您更好的调整与修正您游戏项目中的 AI 行为!

VisualLoggerAI.png

半透明对象排序控制

这一新功能允许您手动设置半透明对象的渲染排序。 这对2D游戏来说非常有用!

TranslucentObject.png

在项目的渲染设置中,勾选新的 半透明排序策略( Translucent Sort Policy) 选项 :

修正了蓝图中的循环依赖

蓝图的加载被重新设计,所有现在可以处理任何被“循环”了的情况。您的蓝图现在可以有各种混合、交叉调用,最重要的是:它会在下一次循环时正确加载。

当然如果您有太多的蓝图加载错误,同样会导致蓝图工作在混乱的状态下!

虚幻引擎C++编程改进

我们持续的改进,让C++在虚幻引擎中更加易用。

多线程动画

动画姿势的解算现在被分配到多核CPU的各个核心,这整体上降低了引擎解算动画的负载。

这一改进将提升游戏中有大量的骨骼模型时的性能!

在安卓设备上实现桌面级渲染*BETA* (OpenGL ES 3.1 w/ AEP)

使用OpenGL ES 3.1(加上安卓扩展包功能)将带给高端安卓设备 完全桌面级的渲染效果 。 这一功能目前还在 Beta 测试中,期待各位的反馈。

目前,您需要从GitHub上获取源码,自己编译版本才能支持这个功能。

仅依赖蓝图编程的项目也需要重新编译UE4Game才能 支持OpenGL ES 3.1,请打开BaseEngine.ini设置文件中的 bBuildForES31 选项。

附加下载内容 (DLC) 打包 *BETA*

附加下载内容 (DLC) 现在可以单独打包用于发布了。

目前这个功能还处于 beta测试 中,需要使用命令行工具来调用。创建附加DLC内容需要放置在游戏插件内容文件夹中,然后使用新的打包工具选择对应的平台来优化与"烘焙"您的新内容。

这公共通过游戏的 资源组件注册表 (asset registry)来获取哪些内容已经被之前发行版的游戏所包含,哪些需要被新的DLC所包含而需要打包。

要使用这个功能,运行主游戏打包工具并附加命令行开关" -CreateReleaseVersion=x.y ", 之后针对每一个DLC插件使用 " -BasedOnReleaseVersion=x.y -DLCName=MyPluginName " 。

安卓平台电影文件播放

加载影片启动影片 现在都可以在安卓设备上播放了!您可以在 项目设置 中配置您的启动影片。

要在安卓设备上播放的影片必须是 MP4 格式。而且,需要安卓4.0或以上才能支持影片播放。

在编辑器中直接设置安卓SDK路径

您现在可以在项目设置中的“安卓SDK”属性中直接设置安卓开发所需的SDK组件的路径。这大大简化了初始安卓项目的设置!

AndroidSDKpath.png

这些路径环境变量是覆盖原有的路径设置方式的(如果原有的设置工作没问题, 您可以让这些新变量空着)。

访问非可编辑状态的蓝图变量

在4.6版中,您可以访问其他蓝图中的变量而无需让这些变量"可编辑",但在4.7中不行,抱歉拿掉这个功能!

AI 黑板同步

黑板组件内可以标记关键点为“同步的”(synced)。这些同步的值可以 被所有AI使用,这意味着您可以在多个AI间同步状态,或者是使用这些值在AI之间通讯。

通用版本信息

Rendering

Editor and Tools

ToolTipLookandFeel.png

Content Browser

Unreal Motion Graphics (UI)

Animation

Blueprints

PinforTouch.png
Previously only Pressed and Released were handled.

AI

Audio

Landscape

Matinee

Cascade

Project Browser

World Outliner

Static Mesh Editor

Source Control

World Browser

Foliage

Paper2D

Gameplay Framework

Physics

Platforms

Android
HTML5
iOS
Linux
Mac
Playstation 4
Xbox One

Networking

Materials

VR

Core

编辑器内帮助

Sample Games

Documentation

编程版本信息

AI

Animation

Audio

Automation

Blueprints

Core

Editor and Tools

Gameplay Framework

Landscape

Networking

Online

Paper2D

Physics

PanelWidget.png

PinWidget.png

Platforms

Android
iOS
Mac
Linux
Playstation 4
Xbox One

VR

Rendering

UI

Slate

Sample Games

UMG

更新信息

Versioning

Programming

C++ API Breaking Changes

Animation

Blueprints

Core

Gameplay Framework

Physics

Slate

Platforms

Android
iOS
PS4
Xbox One

Rendering

Other

AI

Paper2D