蓝图快速入门

序言

本文依据官方教程总结而来,只是带你对蓝图有一个快速的认识,如果想对蓝图有一个比较深入的了解,那么可以看官方的视频或者是做一些小项目练手,如果你有编程经验的话,上手还是很容易的。

蓝图快速入门

什么是蓝图

虚幻引擎中的蓝图可视化系统是一个完整的游戏脚本系统,其理念是使用基于节点的界面从虚幻编辑器中创建游戏可玩性元素,该系统非常灵活且非常强大,因为它为设计人员提供了一般仅供程序员使用的所有概念及工具。它是一种特殊类型的资源,为关卡设计师和游戏开发人员提供了一种在编辑器中快速创建及迭代游戏可玩性的工具。

通过使用蓝图,设计人员几乎可以创作任何游戏元素的原型,以及实现或修改这些元素。

  • Games(游戏)创建游戏规则,调整游戏条件等。
  • Players (玩家)使用不同的网格物体、材质或角色自定义来创建变种
  • Cameras (相机)创建新相机视角的原型或者在游戏运行过程中动态地改变相机。
  • Input(输入)修改玩家操作,或允许玩家向道具传入输入
  • Items (道具)武器、法术、掉落物、触发器等。
  • Environments (环境)创建随机的装置或者程序化地生成道具。

为了对蓝图有一个基本的印象,你可以查看:

  • 官方快速入门指南
  • 虚幻引擎快速入门视频教程

对于程序员来说,我们可以把它理解为一种可视化的高级语言(C#等),它有基本的变量、函数、类型转换,支持继承、多态等。

蓝图的工作原理

从蓝图的基本形式上讲,蓝图是针对您游戏添加的可视化脚本。通过使用连线把节点、事件、函数及变量连接到一起,这样就可以创建复杂的游戏性元素。蓝图通过各种用途的节点构成图来进行工作,这些节点包括针对蓝图每个实例的对象构建、独立的函数、一般的游戏性事件,从而实现各种行为及其它功能。

对比

UnrealScript vs Blueprints vs C++

UnrealScript (UE3):

  • 一种面向对象的脚本语言
  • 跟C,C++,Java的语法相似,但是也有些不同
  • 编译成虚拟机字节码
  • 添加了一些有趣的功能,比如状态(States),定时器(Timer)委托等(Delegates)

蓝图 (UE4):

  • 一种面向美术人员和设计师友好的可视化脚本系统
  • 跟UnrealScript使用的相同的虚拟机
  • 几乎跟UnrealScript一样强,在某些方面甚至更强

C++:

  • 一直是UE游戏编程中的一部分
  • 跟虚拟机相互紧密地结合在一起
  • 在UE4里面得到巨大的改进用来让编程人员替代UnrealScript

蓝图跟c++对比

  • 蓝图适合快速迭代
  • 蓝图比原生C++消耗更多的CPU性能
    • 运行在虚拟机上
    • 大约比原生C++代码慢8~10倍
    • 对于大多数简单的事件驱动的任务,你可能并不会发现性能有什么大的消耗
    • 许多发行的AAA游戏都在使用蓝图(包括Epic自己)
    • 每帧需要更新的(tick)应用使用原生C++(物理模拟)
  • 但是,蓝图仍然很合适做原型开发
    • 可以让设计师在蓝图快速得创建他们所需的原型,然后让程序员把它转换成代码
    • 这是Epic公司如何使用蓝图的

总结

  • 蓝图可以让设计师快速简单得实现想法
  • 图状结构可以让程序员快速简单得用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)

蓝图宏库是一个存放了一组宏的容器,或者是可以像节点那样放置到其他蓝图中的自包含图表。这些蓝图宏库非常节约时间,因为它们存放了常用的节点序列、及针对执行和数据变换的输入和输出。

宏会在所有引用它们的图表间共享,但是如果它们在编译过程中是合并的节点,那么它们会自动地展开为图表。这意味着蓝图宏库不需要进行编译,但是对宏所做的修改,仅当重新编译了包含引用该图表的蓝图时,这些修改才会反应在图表中。

参考:

  1. https://docs.unrealengine.com/latest/CHN/Engine/Blueprints/QuickStart/index.html
  2. http://blog.csdn.net/neil3d/article/details/49070135
  3. http://www.slideshare.net/GerkeMaxPreussner/east-coast-devcon-2014-game-framework
  4. http://www.slideshare.net/GerkeMaxPreussner/gdce-2015-blueprint-components-to-c

虚幻4蓝图快速入门(一)相关推荐

  1. 虚幻4蓝图快速入门(二)

    蓝图用户指南 由于蓝图就是个可视化的脚本系统,那么一个程序语言中的基本概念也就都存在.下面我们简单来介绍下蓝图中的一些基本概念. 变量 概述 Variables(变量) 是存放一个值或引用世界中的一个 ...

  2. 虚幻引擎5:快速入门学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:5.63 GB |时长:5h 23m 从 ...

  3. 《虚幻4引擎快速入门视频教程》FAQ

    请推荐一个VR开发用的PC机配置吧 VR开发用的PC机,个人觉得看一下这个链接吧:Oculs Ready PC https://www.oculus.com/en-us/oculus-ready-pc ...

  4. ue4显示变量_UE4:快速入门蓝图(Blueprint)的方法之一

    UE4:快速入门蓝图(Blueprint)的方法之一 前言: 不久前因为工作的需要,学习了一下UE4的蓝图,发现并没有想象中的那么难以入门.今天把入门的方法和大家分享:D 适读人群: 1 有一定编程基 ...

  5. ue4 迁移模型_UE4虚幻引擎学习云笔记(六)-关卡设计入门-[5.地形快速入门]

    [六.关卡设计入门(Level Designer Quick Start)] 19-09-29 UE4虚幻引擎学习云笔记(六)-关卡设计入门​zhuanlan.zhihu.com UE4虚幻引擎学习云 ...

  6. UE4:快速入门蓝图(Blueprint)的方法之一

    UE4:快速入门蓝图(Blueprint)的方法之一 前言: 不久前因为工作的需要,学习了一下UE4的蓝图,发现并没有想象中的那么难以入门.今天把入门的方法和大家分享:D 适读人群: 1 有一定编程基 ...

  7. 虚幻4: 蓝图入门与进阶

    有幸受邀为中国传媒大学动画学院的同学们讲授虚幻4蓝图相关的知识.这次的课程面向的同学是有一定编程基础,但是对虚幻4没有太多接触的同学. 内容方面是从蓝图的基本概念讲起,然后涉及到蓝图通信等进阶话题.围 ...

  8. 虚幻4蓝图节点的连接方式注意事项

    虚幻4蓝图节点的连接方式注意事项 在虚幻引擎4的官方文档行为树快速入门指南中,有一部分是用行为树控制AI的巡逻,在AI没有发现玩家时会进入巡逻状态,在巡逻状态下会随机生成一个可以到达的点,然后让AI走 ...

  9. 关卡设计快速入门_7. 自己来!

    通过使用这个引导的一些方法,尝试做以下这些事情: 将关卡的光照改为月光,晚间场景. 在第一个房间边上添加另一个房间. 在新添的房间里,试着抬高它并用梯子连接. 添加一些灌木,一个沙发,一些书架和一扇门 ...

最新文章

  1. ROS系统——roslaunch发布4个realsense相机的4种方法
  2. 风电功率预测matlab,一种基于二十四节气的风电功率预测方法与流程
  3. c语言课设代写一般多少钱_结婚彩礼一般多少钱 2019彩礼会涨到多少钱
  4. python简单入门
  5. java写大文件_java实现超大文件的读写功能
  6. ES6学习--Javascript中的那三个点(...)
  7. highcharts 折线图 和柱状图读取 json值
  8. python最适合做什么-总算明了python适合做什么
  9. 负载均衡和故障转移的使用案例
  10. Emacs进阶之选择当前word/line
  11. c/c++ int _tmain(int argc, _TCHAR* argv[])
  12. 20191225每日一句
  13. html自适应布局源码,手机端页面自适应解决方案—rem布局进阶版(附源码示例)...
  14. 内存取证-volatility工具的使用
  15. 基于matlab的信号频谱分析 开题报告,基于MATLAB的数字信号处理开题报告
  16. [转载]JTree 编辑、删除、添加节点_-Chaz-_新浪博客
  17. 金蝶标准版7.0计算机快捷,掌握金蝶KIS基本的技巧,快速操作金蝶软件!
  18. 史上最强模型 GPT-4 上线:一张手绘草图能生一个网站、60 秒搞定一个游戏开发!
  19. 判断点是否在点组成的封闭区域内c++
  20. m基于QPSK调制解调的无线图像传输matlab仿真,包括扩频解扩均衡等模块

热门文章

  1. 组策略应用:软件分配及软件发布
  2. Vue中的@blur事件
  3. AliOS Things 网络适配框架 - SAL
  4. OpenDlight MD-SAl应用开发(二)- ODL源码编译运行
  5. EMC学习之电磁辐射
  6. web前端入门到实战:HTML5新增和废弃的标签
  7. 开学之际被Turkey问候,只能祭出正则大法
  8. C语言制作游戏——贪吃蛇
  9. 项目管理十大知识领域和五大过程组
  10. 各大互联网公司都有哪些部门?核心部门又是什么?一文全知道!