蓝图简介

初识蓝图时,可参考本文中蓝图及其作用的高阶概览,以便进行了解。

Windows
MacOS
Linux

虚幻引擎中的 蓝图可视化脚本 系统是一类完整的游戏性脚本系统,此系统的基础概念是使用基于节点的界面在虚幻编辑器中创建游戏性元素。与诸多常用脚本语言相同,其用于定于引擎中的对象驱动(OO)类或对象。使用UE4后便知,使用蓝图所定义的对象通常被直接称为"蓝图"。

该系统灵活而强大,使设计师能够使用通常仅面向程序员的几乎所有概念和工具。此外,程序员可借助虚幻引擎C++实现中可用的蓝图特定标记创建基线系统,而此系统又可被设计师加以拓展。

请参阅蓝图总览 ,了解蓝图剖析、关于蓝图如何与UE3的Kismet及虚幻脚本关联的讨论等蓝图相关详情。

蓝图的用法

在其基本形式中,蓝图是游戏的可视化脚本附加。使用引线连接节点、实践、函数和变量后即可创建复杂的游戏性元素。

蓝图使用节点图表来达到蓝图每个实例特有的诸多目的(如目标构建、个体函数,以及通用gameplay事件),以便实现行为和其他功能。

常用蓝图类型

最常使用的蓝图类型是 关卡蓝图蓝图类

它们仅是诸多蓝图类型 中的两类,其他还有蓝图宏蓝图界面

关卡蓝图

关卡蓝图的作用与虚幻引擎3中Kismet的相同,两者功能相同。每个关卡拥有各自的关卡蓝图,其可在关卡中引用并操作Actor、使用Matinee Actor控制过场动画,还能对关卡流送、检查点及其他关卡相关系统等事务进行管理。此外,关卡蓝图还能与关卡中放置的蓝图类(参见下一部分中的范例)进行交互,例如读取/设置其可能包含的变量,或触发其中的自定义事件。

蓝图类

蓝图类是创建门、开关、可收集物品、可摧毁场景等交互资源的理想类型。在上图中,按钮和门组合为单独的不同蓝图,其中包含必需脚本,以响应玩家覆盖事件、使其拥有动画、播放音效,并改变材质(如按下按钮后其将变亮)。

在此情况中,按下按钮将触发门蓝图中的事件,门因此开启——但其他类型的蓝图或关卡蓝图序列同样可轻易触发门的事件。因蓝图的自含性质,将其拖入关卡中便可构建蓝图,进行最小设置后即能生效。这也意味着对项目中使用的蓝图进行编辑后,该项目的所有实例均会更新。

蓝图的其他作用

前文已对关卡蓝图和蓝图类进行了初步讲解,下文则列出了可使用蓝图系统完成一些实用实例。

使用构造脚本创建可自定义的预设

Construction_Script.png

构造脚本是蓝图类中的一类图表,在编辑器中放置或更新Actor时该蓝图类将执行(不会在游戏进程中执行)。利用此脚本可十分容易地创建可自定义的预设,使环境美术师的工作更为高效。例如自动更新材质来匹配自身点光源组件颜色与亮度的光照设备;或是将植物网格体在区域中随机散射的蓝图。

在内容范例地图中,包含所有例子(以上图标所示)的长形房间实际上是由多个组件组合而成的单个蓝图。蓝图的构造脚本会根据蓝图 细节 面板中公开的参数创建不同静态网格体和光源。创建内容范例地图后,可进入演示房间蓝图中,设置长度、高度和生成的房间数(以及另一些选项),片刻后便能创建出完整的房间组合。

最初创建这种蓝图会很耗时,但如果经常使用该蓝图,创建关卡时将节省大量时间、进行修改时也更为便利,其价值便凸显于此。

创建可操作角色

Game_Characters.png

Pawn同样也是蓝图类的其中一种,其可将蓝图图表中可操作角色的所有元素结合在一起。从而操纵相机行为,设置鼠标、控制器和触摸屏的输入事件,并创建用于处理骨架网格体动画的动画蓝图资源。

新建角色蓝图时,其附带了内置多数移动、跳跃、游泳和坠落所需行为的角色组件,而这些行为都需要依照控制角色的方式添加输入事件。

创建HUD

Create_HUDs.png

蓝图脚本同样可用于创建游戏的HUD。与蓝图类相似,蓝图脚本包含事件序列与变量,但其被指定至项目的游戏模式资源,而非直接添加至关卡。

可设置HUD来读取其他蓝图中的变量,并将读取的变量用于显示体力条、更新分数、显示任务标志等。HUD还可用于添加元素的命中框,如可以点击的按钮;在移动平台游戏中,则用于响应触摸输入。

虽然蓝图充满了可能性,但虚幻运动图形 系统在UI布局方面对于设计师更加友好,它同样基于蓝图可视化脚本。

蓝图编辑器和图表

构建关卡蓝图或蓝图类时,需要使用蓝图编辑器 中集成的蓝图元素

依据正在使用的不同蓝图类型,可用的 蓝图编辑器 类型也有所不同。多数 蓝图编辑器 的核心功能为 图表 模式,其中央的 图表(Graph) 选项卡将对蓝图的网络进行布局。

蓝图样本和教程

以下是可协助了解蓝图系统的其他资源。

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback