UE 1.蓝图入门

版权声明:本文为博主原创文章,转载请声明原创网址。 https://blog.csdn.net/lagoon_lala/article/details/88795412

目录

 

蓝图示例工程

BLUEPRINT ESSENTIAL CONCEPTS

创建蓝图/组件

蓝图图表

蓝图扩展类型

使用蓝图的注意事项


蓝图示例工程

蝴蝶是基础交互蓝图,

有雾和微光配合自动适应场景,无须改变示例

范围内随机创建物体

摄像头,警报,门是单独的蓝图,通过接口信息交互,当摄像头检测到人,警报响,关门

BLUEPRINT ESSENTIAL CONCEPTS

有哪些类型的蓝图图表可供你编写脚本:Blueprint graphs

Project Files:(我下载不下来)
https://epicgames.box.com/s/zz9ydnf9bfgdhk771w6z1ss5ldit2dzp

将蓝图中的参数公开,则可以在不修改蓝图脚本直接调整效果

蓝图可以看作由各种组件组成(面向对象(可以创建类)的编译语言

可以使用现有类)

底层是C++,可以用C++打开蓝图修改代码,能互相转换兼容。能用C++编写函数,将特定参数公开给蓝图

UE4中现有的类及层级结构:

UE4所有类都派生自Object

新建蓝图时,选择父类,继承现有功能。一般继承Actor,下面展开有Actor的子类:

pawn-应用运行时,可操作的对象,其中的character代表操控的具体游戏对象

DefaultPawn-没有网架骨骼的类,可以在场景中漫游

蓝图所有的UI,音频等都集成在引擎中

多数时候用到的2种蓝图:Level/class

Level:为关卡中的对象编写某些功能。但功能会和关卡绑定,如果新建关卡,需要新建level

Class:模块化地编写

创建蓝图/组件

在文件夹面板新建蓝图文件,继承父类

左上角的组件栏可以创建各种组件(音效、相机、静态网格、骨骼等)

在蓝图编辑器播放按钮右侧选择某个示例调试

美术师窗口

构造脚本窗口:自定义参数或预设。用构造脚本中编写脚本,公开参数。在开始游戏时也会触发

事件图表:在运行时更新蓝图脚本。大部分需要执行的脚本可能都位于这里

事件调度器:event dispatchers允许不同蓝图进行通信

 

新建蓝图下有:蓝图类,蓝图函数库,蓝图接口(通信),蓝图宏库(类似函数库,是宏的集合,可以在不同函数中使用),枚举是一种参数列表(可用于流控制,可以将角色状态用枚举类表示,基于状态切换蓝图逻辑),结构体(不同类型变量的集合,拾取物品结构-可能包含拾取物品的名称等,UI音效)

创建蓝图的另一种方式:直接从左侧模式窗口拖入视口

完成后按住Ctrl全部选中,在蓝图按钮中,转换选择的组件为蓝图,保存

这样可以直接在视口中调整至满意的状态再保存

蓝图图表

熟悉不同类型的图表,

图表中的导航方式:熟悉如何在蓝图编辑器移动

两个聚光源,构造脚本和蓝图图表区别

框选结点后按C可以添加注释

图表:

图表中的导航方式:按住右键可以拖动图表,左键框选,滚轮缩放(ctrl+滚轮超过1:1缩放)

添加、连接节点:右键添加。在选中组件时,右键的弹出菜单中将额外出现该组件的调用函数(Call function on XXX)右上角复选框:开启/关闭情景关联(关闭后将显示所有,添加节点可能无效)

添加事件Add Event

白色引脚(委托)拖出可添加链接,取消连接:Alt+LMB

构造脚本:

设置变量,并在变量旁的眼睛图标允许公开编辑-能够自定义聚光源参数/关闭则限制修改

函数在变量改变时被触发(在编辑器中修改,和运行时都会触发)修改后编译

点光源:可将俯仰和偏转值应用到聚光源网格体,如果光源是关闭状态,隐藏,否则设置各种材质

动态添加栅栏:动态生成添加额外的静态网格体

使用事件图表:

检测玩家靠近聚光源,并持续追踪

事件图表会在运行时更新脚本,并提供更新脚本的信息

选中图表的一部分,右键点击创建组织图表

Collapse to function重叠到函数:将很多节点组织到一个结点中。它会被添加进左侧的函数段:重命名

Collapse to Macro:重叠成宏(函数有输入,宏没有输入)

Collapse to Node:重叠成一个图表(纯粹是压缩)

特点:

函数允许从外部蓝图调用,

宏类似实用工具,一般在当前蓝图调用,如果要在其他蓝图调用,需要设置蓝图宏库

可以获取函数和宏,并添加到不同的部分,反复调用;重叠图表不能

蓝图扩展类型

关卡蓝图Level

触发按钮后,相关齿轮转动

打开方式:在视口上方栏中-蓝图-打开关卡蓝图

主要编写关卡特有功能,如关卡初始化

不能添加组件,也没有视口选项卡,只有事件图表(与关卡绑定)

新建关卡时会有一个全新的关卡蓝图

Actor蓝图:

Actor类绑定,更加模块化

可以复用蓝图,快速复制对象

动画蓝图:

Anim Class框引用动画蓝图

专门用于为角色创建动画逻辑,根据Event Graph变量更新Anim Graph角色姿势

Event Graph类似Actor蓝图,运行时实时更新变量

Anim Graph定义各类角色姿势、状态机

控件蓝图widget

UMG UI

可用关卡蓝图设置UI逻辑,创建HUD控件

空间蓝图中没有组件和视口,但有设计师窗口

子类蓝图:

如拾取物,只要走进,他们就会飞来,并在左上角打印拾取物品名称

父类蓝图中定义拾取物品的时机,物品如何运动等;视口中有触发器,一个光源

子类继承父类Pickup中所有功能,编写子类特性,当重叠发生时,针对不同物体打印不同信息

创建时右击父类,Create Child class

使用蓝图的注意事项

1.蓝图相较于C++代码会产生额外开销,对游戏和应用程序的性能产生更多影响,因为蓝图在运行时会将蓝图结点转换成C++本地代码

如每帧都进行大量运算和操作,则最好把运算放到C++代码

2.C++更加快速和功能强大,因为不需要虚拟机转换代码,C++中有许多内容目前还未公开给蓝图

3.蓝图完全基于事件,需要通过事件触发

4.引用和循环依赖

引用:

蓝图通过引用访问其他蓝图的数据和函数,要小心无效引用引发右下角报错:Access None trying to read property ReferenceToXXX。点击日志末尾的函数链接,打开蓝图可以看到ReferenceToXXX引用变量,在主窗口的细节中可以看到这个引用没有被赋值

转换Cast:设置只有玩家碰到按钮能触发,其他物体不行。在按钮蓝图中-On Component Begin Overlap事件检查(Other Actor)是什么和按钮发生了重叠-检测某个对象类型是否是该类型-Cast To Fundamentals_Player/StaticMeshActor(在世界大纲视图中选中球体或在连出引脚后搜索

循环依赖:

A蓝图要转换成B访问变量或调用函数,B又要转换成A调用A的函数

运行时A会加载所有依赖项

 

猜你喜欢

转载自blog.csdn.net/lagoon_lala/article/details/88795412