总结 蓝图可以让设计师快速简单得实现想法 图状结构可以让程序员快速简单得用C++代码实现并优化 代码可以在编辑器中添加到任意工程中 快速协作、畅通沟通,不会出现模糊不清的玩法设计。 个人理解,蓝图系统非常强大,可用于快速原型设计、简单事件驱动玩法的开发,但是如果玩法复杂需要耗费非常多的CPU性能,那么最好把设计师使用蓝图设计的玩法翻译成原生的C++代码,如果本身一些像物理模拟等需要每帧更新又特别耗时的那么需要使用C++来进行开发。
蓝图类型
关卡蓝图(Level Blueprint)
关卡蓝图是一种特殊类型的蓝图,是作用于整个关卡的全局事件图表。关卡事件或者关卡中的Actor的特定实例,用于激活以函数调用或者流程控制操作的形式呈现的动作序列。熟悉虚幻引擎3的人应该非常熟悉这个概念,因为这和虚幻引擎3中的Kismet的工作原理非常相似。
关卡蓝图提供了针对关卡动态载入、Matinee以及给放置到关卡中的Actor绑定事件的机制。
类蓝图 (Blueprint Class)
类蓝图是一种允许内容创建者轻松地基于现有游戏性类添加功能的资源。它是在编辑器中可视化地创建的,不需要书写代码,会被作为类保存在包中。实际上,这种类蓝图定义了一种新类别或类型的Actor,这些Actor可以作为实例放置到地图中,就和其它类型的Actor的行为一样。
父类
你可以创建多种不同类型的蓝图,当然在你做这些之前,你需要指定该蓝图的**Parent Class(父类)** 选择继承父类,允许你在自己的蓝图里面调用父类创建的属性。
下面是你创建蓝图是最常见的父类:
Actor 一个可以在世界中摆放,或者生成的Actor。 Pawn Pawn是一个可以从控制器获得输入信息处理的Actor. Character 角色是一个包含了行走,跑步,跳跃以及更多动作的Pawn. PlayerController 角色控制器 Game Mode 一个Game Mode 定义了游戏是如何被执行的,游戏规则,如何的分以及其他方面的内容。仅包含数据的蓝图(Data-Only Blueprint)
仅包含数据的蓝图是指仅包含代码(以节点图表的形式)、变量及从父类继承的组件的类的蓝图。仅包含数据的蓝图允许你调整及修改继承的属性,但是不能添加新元素。从本质上讲,这些蓝图是原型的替代物,设计人员可以使用它们来调整属性或者设置具有变种的项目。可以通过添加代码、变量或者组件来将它转换成完整的类蓝图。
蓝图接口(Blueprint Interface)
蓝图接口是一个函数或多个函数的集合,它相当于C++中的一个纯虚基类,仅有函数名称,没有实现,该接口可以添加到其它蓝图中。使用具有该接口的蓝图,都一定会具备这些函数。在每个添加了接口的蓝图中,都可以提供接口的这些函数功能。从本质上讲这各一般编程中的接口概念一样,允许通过一个公共接口来共享及访问多种不同类型的对象。简单地讲,蓝图接口允许不同的类蓝图间彼此共享及发送数据。
蓝图接口的创建和其他类似,可以通过编辑器中的内容创建器进行创建,但它们有一些局限性,因为它们不能:
添加新变量 编辑图表 添加组件蓝图宏库(Blueprint Macro Library)
蓝图宏库是一个存放了一组宏的容器,或者是可以像节点那样放置到其他蓝图中的自包含图表。这些蓝图宏库非常节约时间,因为它们存放了常用的节点序列、及针对执行和数据变换的输入和输出。
宏会在所有引用它们的图表间共享,但是如果它们在编译过程中是合并的节点,那么它们会自动地展开为图表。这意味着蓝图宏库不需要进行编译,但是对宏所做的修改,仅当重新编译了包含引用该图表的蓝图时,这些修改才会反应在图表中。
参考:
https://docs.unrealengine.com/latest/CHN/Engine/Blueprints/QuickStart/index.html http://blog.csdn.net/neil3d/article/details/49070135 http://www.slideshare.net/GerkeMaxPreussner/east-coast-devcon-2014-game-framework http://www.slideshare.net/GerkeMaxPreussner/gdce-2015-blueprint-components-to-c 【版权声明】原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权。 本文出处:http://www.cnblogs.com/ghl_carmack/p/5922131.html