UE4蓝图简介[通俗易懂]

UE4蓝图简介[通俗易懂]蓝图简介蓝图内容示例Onthispage:概述蓝图的工作原理?常用的蓝图类型蓝图还能够做什么?蓝图编辑器和图表概述Blueprints(蓝图) 是特殊类型的资源,提供一

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

蓝图简介

 

概述

Blueprints(蓝图) 是特殊类型的资源,提供一种直观的、基于节点的界面,以用于创建新类型的Actor 及关卡脚本事件;它为关卡设计师和游戏开发人员提供了一种在虚幻编辑器中快速创建及迭代游戏可玩性 的工具,而且一行代码都不需要书写。

关于蓝图的更多概述信息,包括蓝图类型、蓝图剖析及关于蓝图同虚幻引擎3中的Kismet及UnrealScript的关系的探讨,请参照Blueprint Overview页面。

蓝图的工作原理?

从蓝图的基本形式上讲, 蓝图 是针对您游戏添加的可视化脚本。通过使用 连线 把 节点 、 事件 、 函数 及 变量 连接到一起,它可以创建复杂的游戏性元素。

蓝图 通过各种用途的 节点 构成图表来进行工作,这些节点包括针对蓝图每个实例的对象构建、独立的函数、一般的游戏性事件,从而实现各种行为及其他功能。

常用的蓝图类型

您将应用的最常见的 蓝图 类型是 Level Blueprints(关卡蓝图) 和 Class Blueprints(类蓝图) 。

这仅是其中的两种蓝图类型,还有蓝图宏蓝图接口

关卡蓝图 的作用和虚幻引擎3中的Kismet的作用一样,并且具有同样的功能。每个关卡具有其自己的 关卡蓝图 ,它可以引用及操作关卡中的Actor,使用Matinee Actor控制过场动画,并管理类似于关卡动态载入、检查点及其他关卡相关的系统。关卡蓝图 还可以和放置在关卡中的 类蓝图 (请参照下面的部分获得相关示例)进行交互,比如读取或设置任何变量、触发它们可能包含的自定义事件。

类蓝图 非常适合于制作交互式的资源,比如门、开关、可收集的道具及可破坏的景观。在上面的图片中,按钮和每个门都是独立的 蓝图,包含了对玩家重叠事件做出反应的必要脚本,使得它们可以产生动画、播放音效、改变材质(比如,当按下按钮时变亮)。

在该示例中,按下按钮激活了门 蓝图 中的一个事件,使得门打开,但是门既可以通过其他类型的 蓝图 激活,也可以通过 关卡蓝图 序列激活。由于 蓝图 的自包含特性,所以您可以通过这种方式构建蓝图,把它们放置到关卡中,它们就可以正常运作了,仅需要少量设置。这也意味着编辑整个项目中都在使用的一个 蓝图 将会更新蓝图的每个实例。

蓝图还能够做什么?

您已经阅读了关于 关卡蓝图 和 类蓝图 的信息,下面列出了几个可以通过 蓝图 系统完成的几个实例。

使用构建脚本创建自定义的预制

Construction_Script.png

Construction Script(构建脚本) 是 类蓝图 中的一种图表类型,当在编辑器中放置或更新Actor时会执行它,但是在游戏过程中不会执行它。这对于轻松地创建自定义的道具是非常有用的,使得环境美工人员工作效率更快,比如一个光源设备,它可以自动地更新材质来匹配点光源组件的颜色和亮度;或者一个 蓝图 ,可以在一个区域上随机地散布植被网格物体。

在Content Examples(内容示例)地图中,包含每个示例的很长的房间(如上面的图片所示)实际上是由多个组件构成的一个 蓝图 。蓝图的构建脚本 根据 蓝图 的 详细信息 面板中暴露的参数创建及排列各种静态网格物体及光源。对于我们创建的每个Content Example(内容示例)地图,我们都可以把那个示例房间 蓝图 放置在其中,设置要生成的房间的长、高及数量(及其他几个选项),并且片刻就可以完成整套房间。

像这样的 蓝图 ,初次创建时会比较耗时,但是如果您明白您要经常使用它,那么构建关卡时所节约的时间、修改时的方便程度,使得这样设计变得非常值得。

创建一个可运行的游戏角色

Game_Characters.png

Pawn 也是一种类型的 类蓝图 ,您可以把您的可运行角色需要的每个元素放到 蓝图 图表中。您可以操作相机行为,设置鼠标、控制器及触屏的输入事件,以及创建 动画蓝图 资源来处理骨架网格物体动画。

当您创建一个新的 角色蓝图 时,它自带一个角色组件,具备了到处移动、跳跃、游泳、下降等所需的大部分行为,您所需要做的就是根据您想控制角色的方式来添加一些输入事件。

创建HUD

Create_HUDs.png

蓝图 脚本也可以用于创建游戏的HUD,这和 类蓝图 类似,因为它可以包含事件序列和变量,但是它会被分配给您的项目的GameMode(游戏模式) 资源,而不是直接添加到关卡中。

您可以设置一个HUD来从其他 蓝图 中读取变量,并使用这些变量来显示一个生命值条、更新分数、显示目标标记等。您还可以使用HUD给类似于可以点击的按钮或手游中可以对触摸输入做出反应的按钮添加命中区域。

上面图片中的所有示例都存在于虚幻引擎4的示例内容中,所以如果您想仔细查看相关内容,您可以在 Content Examples 、 Shooter Game 和 Swing Ninja 中找到它。

蓝图示例和指南

以下是一些额外资源,以便您可以了解关于 蓝图 系统的更多内容。

蓝图编辑器和图表

无论您正在构建一个 关卡蓝图 还是一个 类蓝图 ,您将会用到Blueprint Editor Reference中的蓝图元素

根据您所应用的 蓝图 类型的不同,有各种不同类型的 蓝图编辑器 。大部分 蓝图编辑器 的核心功能都是 图表 模式,通过使用其核心的 图表 选卡 可以布局您的 蓝图 网络。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166536.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue-router 2.0 常用基础知识点之router.push()[通俗易懂]

    vue-router 2.0 常用基础知识点之router.push()[通俗易懂]除了使用创建a标签来定义导航链接,我们还可以借助router的实例方法,通过编写代码来实现。router.push(location)想要导航到不同的URL,则使用router.push方法。这个方法会向history栈添加一个新的记录,

    2022年7月11日
    16
  • 复杂json转MAP对象

    复杂json转MAP对象普通json对象或者字符串转换map或者实体就不说了,这里主要提供复杂json转map的方法,直接上java代码了:publicclassJsonUtils{ /** *类描述:复杂json字符串转换为Map,包含数组时value为List。 */ publicstaticMapjson2Map(Stringjson){ LinkedMap

    2022年6月16日
    24
  • wxpython中文教程_wxPython中文教程 简单入门加实例

    wxpython中文教程_wxPython中文教程 简单入门加实例原博文2015-04-2906:56−wx.Window是一个基类,许多构件从它继承。包括wx.Frame构件。技术上这意味着,我们可以在所有的子类中使用wx.Window的方法。我们这里介绍它的几种方法:*SetTitle(stringtitle)——设置窗口标题。只可用…相关推荐2008-11-2312:00−一、简介wxPython是Pytho…

    2022年5月21日
    36
  • 软件构架师的特点

    软件构架师的特点

    2021年7月31日
    60
  • @GetMapping和@GetMapping(value=““)的区别纪要「建议收藏」

    问题:@GetMapping指定value和不指定value的区别是什么?背景:刚开始接触时的理解@GetMapping是不需要有value的,以为没有指定的value就无法访问对应的请求接口.后来经过实战和学习……今天有空来立项说明一下.答案: 1.首先要清楚@GetMapping的标准写法肯定是有对应的value指向的. 2.对于没有对应value指向的@GetMapping有且只有一个.在这种情况下当你的路径指向这个@GetMapping的上级路径时系统会默认找寻该.

    2022年4月7日
    162
  • Random的nextInt()用法「建议收藏」

    Random的nextInt()用法「建议收藏」Random的nextInt()用法一、先看这样一个有趣的题目:1、设计一个密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码。2、分别以1、2、3作为种子数创建Random对象,生成六位随机密码进行测试。问题答案核心代码如下:importjava.util.Random;importjava.util.Scanner;publicclassRandomT…

    2022年7月23日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号