UE蓝图基础学习笔记(未完待续2023/05/22)

文章目录

  • 网址
    https://www.bilibili.com/video/BV1KB4y1278E/?p=13&spm_id_from=pageDriver&vd_source=27ec8b3b09d2a66ceeb9dbe961a247d3

一、项目创建

1)准备流程(选择模板、开发语言、平台、质量等)

在这里插入图片描述

2)界面介绍

  • 整体界面
    在这里插入图片描述

  • 区别
    视图面板:用于设计关卡,可以在视图面板摆放、移动、旋转游戏对象,为了便于设计,占了引擎的大部区域
    在这里插入图片描述

大纲面板:以名字显示视图区的游戏对象
在这里插入图片描述

细节面板:用于显示当前选中的对象的详细信息
在这里插入图片描述

内容侧滑菜单:为UE4的内容浏览器,用于显示当前项目中的内容(资源、蓝图、材质等),默认为隐藏状态,可通过快捷键:CTRL+空格建显示
在这里插入图片描述

二、Actor

1、所有可以被放入关卡(Level)的对象都是Actor
2、创建Actor的方式:
①从放置Actor中添加
在这里插入图片描述
②从内容浏览器中添加
在这里插入图片描述

三、操作关卡对象(旋转、移动、缩放和坐标轴)

  • 备注
    第一个图标是选中

  • 其他工具

1、移动工具
在这里插入图片描述

2、旋转工具
在这里插入图片描述

3、缩放工具
在这里插入图片描述

4、坐标轴
在这里插入图片描述

y:左右
x:前后
z:上下

四、常用快捷键

  • 1)想要近距离观察一个obj,举例图中的cube(快速双击鼠标聚焦,选中cube按F也是能快速定位)
    在这里插入图片描述

  • 2)按住鼠标中键则可左右或上下移动视角
    在这里插入图片描述

  • 3)缩放快捷键
    ①滑动鼠标滚轮
    ②按住alt键盘+鼠标右键

  • 4)旋转查看obj
    alt+鼠标左键

  • 5)克隆游戏对象
    选中要克隆的对象,按住alt键,拖动任意轴实现拖动

  • 6)下落到地面
    选中游戏对象,按END

  • 7)漫游(随意变换视角)
    按住鼠标右键+WASD

五、运行游戏

点击播放按钮
在这里插入图片描述

六、蓝图介绍

  • 定义
    可视化编程方式,用于创建新类型的Actor和关卡脚本事件,方便开发者快速创建和迭代游戏,不需要代码

  • 蓝图分类
    1)关卡蓝图:当前关卡的全局事件图
    2)蓝图类:允许创建这轻松基于现有游戏性类添加功能的资源
    3)数据蓝图:仅仅包含代码(以节点图表的形式)、变量及从父类继承的组件的类的蓝图
    4)蓝图接口:是一个函数或多个函数的集合,蓝图接口可以添加其他蓝图中,简单理解,蓝图接口允许不同的蓝图类彼此之间共享及发送数据
    5)蓝图宏库:一个容器,包含一组宏或自包含的图标,这些图表可以作为节点放置在其他蓝图中。可以节省事件,因为他们可以存储常用的节点序列,包括执行和数据传输所需的输入和输出

  • 创建蓝图
    蓝图类需要创建
    关卡蓝图是每个关卡都有的,不需要额外创建,直接就可以打开
    在这里插入图片描述
    ③蓝图编辑好后需要编译后才能生效,还要记得保存
    在这里插入图片描述
    ④新建变量
    在这里插入图片描述

七、蓝图节点

  • 蓝图节点类型
    1)事件节点:自己创建的事件,自己去触发和调用的节点
    2)功能节点:也算是功能,执行旋转移动等
    3)变量节点:自己创建的变量,需要设置变量或设置变量的值的节点
    4)引用节点:例如选中场景中的角色放到蓝图里面来
  • 蓝图结构的简单介绍
    在这里插入图片描述

八、操作事件图表

  • 快捷键
    ①按住ctrl加鼠标滚轮放大
    ②可以按住鼠标滚轮缩小
    ③CTRL+D复制节点
  • 添加图标
    右键添加图标
    在这里插入图片描述
  • 举例创建(下面蓝图类是用的比较多的事件)
    1)事件开始运行(Event BeginPlay)
    项目运行起来只执行一次的事件
    2)事件Tick(Event Tick)
    每帧判断是否执行,Delta Second为间隔的时间
    在这里插入图片描述
    3)打印字符串(仅开发调试用)
    在这里插入图片描述
    这里点击运行就出现字符串
    在这里插入图片描述

九、变量、布尔类型、数值类型、数值运算

1)布尔值

①多一个节点是将布尔值转为字符串
在这里插入图片描述
②总体流程是打印字符串
在这里插入图片描述
在这里插入图片描述

2)数值类型

①字节Byte
②整数Integer
③64位整数 Integer64
④浮点float
在这里插入图片描述

3)数值类型变量运算

  • 目的:
    numa和numb相加,赋值给sum

  • 蓝图

  • 操作流程
    ①按住CTRL将numa和numb拖出来
    在这里插入图片描述
    ②按住ALT键把sum键拖出来
    在这里插入图片描述
    ③随便哪里右键搜索+号(这样数据类型就不确定)

在这里插入图片描述
④那么总体流程

在这里插入图片描述

  • 补充举例(给数值numb加上50)
    在这里插入图片描述

4)额外补充(注释)

选中整片蓝图区域,按住C键就能注释

5)断开某条蓝图连线(ALT键+鼠标左键)

十、蓝图注释(功能注释)

选中蓝图然后按住C键
在这里插入图片描述

  • 额外选择
    可以修改注释的颜色等
    在这里插入图片描述
  • 可缩放气泡
    在这里插入图片描述

十一、文本相关类型:命名、文本、字符串

1)文本类型的变量类型划分:

命名Name:轻量级字符串,经常用于对象的命名
文本Text:如果游戏中出现大段对话,基本就用Text,对于本地化非常有帮助
字符串string:常用文本类型,支持字符串拼接

十二、向量类型、运算

1)向量的定义

向量是指有方向、长度的数据,值由三个数字构成(x,y,z),用于表示位置、旋转、缩放等

2)反向输入向量值

SET连出右键出创建向量,左边定义的Myfloat可用于输入浮点值
在这里插入图片描述

2)向量的运算

在这里插入图片描述

  • 向量相加运算
    在这里插入图片描述
  • 向量相乘运算
    在这里插入图片描述

十三、旋转体类型

  • 定义介绍
    同向量也有x\y\z,不过不一样的是:
    ①设置x:绕x轴旋转(Roll);
    ②设置y:绕y轴旋转(Pitch);
    ③设置z:绕z轴旋转(Yaw)。

十四、变换类型

1)变换的定义

变换是结合了位移、旋转、缩放的数据集,通常用于同时获取游戏对象的位置(x,y,z),旋转Rotation(x,y,z),缩放Scale(x,y,z)等数据

2)界面展示

在这里插入图片描述

十五、通过变换操作关卡对象

1)选中关卡对象

在这里插入图片描述
按住ALT键盘拖出来,拖出来是默认选中这个方块的

在这里插入图片描述

2)在关卡蓝图中右键创建选中对象实例

①切换关卡蓝图界面
在这里插入图片描述
②右键创建队SM_Cube14的引用
在这里插入图片描述

3)设置位置、旋转、缩放

①方块添加世界变换
在这里插入图片描述

在这里插入图片描述
②添加变换(让物体沿X方向位移500)
在这里插入图片描述

③额外设置
在这里插入图片描述

十六、变量的算术和比较运算

1)变量的算数运算

基本同上的操作不变
在这里插入图片描述

2)变量的比较运算(比较运算结果为布尔,因为比较只有两种结果)

①大于
②小于
③大于等于
④小于等于
⑤等于
⑥不等于
右键输入选中>
在这里插入图片描述
整体流程
在这里插入图片描述

  • 特殊注意
    1)字符串比较用eq
    在这里插入图片描述
    在这里插入图片描述

2)字符串不相等就是Not Equal(!==)
在这里插入图片描述

十七、获取按键输入

1)获取键盘按键的输入

①右键输入:

键 A
键 W

出现
在这里插入图片描述
②打印输出(CTRL+D赋值打印框)

在这里插入图片描述

2)获取鼠标按键的输入

右键输入鼠标左键
在这里插入图片描述

十八、分支节点

1)分支节点介绍

分支节点(Branch):用于判断条件是否满足,如果条件为true,执行true输出节点的逻辑,如果条件为false,执行false节点的逻辑

2)蓝图介绍

在这里插入图片描述

  • 举例使用(age是整数)
    在这里插入图片描述

十九、序列节点

1)序列节点介绍

作用:将一个长的顺序执行代码划分成段,更便于管理,让结构更加清晰明了
注意:序列节点是单线程的,分段会按照引脚(pin)的顺序执行

  • 序列节点效果展示(下面的看起来更清晰)
    在这里插入图片描述

2)使用举例

按下鼠标左键,先输出序列1,后输出序列2
在这里插入图片描述

二十、for循环、while循环 、DO N节点、DO ONCE节点、FLIP FLOR节点、MATE节点、Multigate节点

1)FOR循环节点

在这里插入图片描述

(1)ForLoop节点
  • 定义
    执行指定次数的功能节点,需要传入循环开始值和结束值
(2)ForLoopWithBreak节点
  • 定义
    在没有执行break时,与ForLoop节点功能一样,当执行break时,循环终止

  • 举例使用
    (index>3那么就break中断for循环)
    在这里插入图片描述

2)whileLoop循环节点

在这里插入图片描述

  • 举例使用
    在这里插入图片描述

3)Do N节点

  • 定义
    当执行N次后,功能不再执行。若想再执行,需要执行一次Reset
    在这里插入图片描述
  • 注意
    1)第一次进的时候是进Enter节点
    2)Exit是输出节点,输出N次
  • 使用举例(点一次输出一个数字,从1输出到5,右键重置才能再输出)
    在这里插入图片描述

4)DO Once节点

  • 定义
    只执行一次,要想再执行需要执行Reset
    在这里插入图片描述
  • 注意
    start Closed勾选后,默认一开始就需要Reset才能执行该节点
  • 使用举例
    在这里插入图片描述

5)Flip Flop翻转节点

  • 定义
    可以输出两个功能,第一次执行A功能,第二次执行B功能,第三次再次执行A功能,以此类推
    在这里插入图片描述
  • 使用举例
    在这里插入图片描述
    蓝图效果:交叉打印执行A功能和执行B功能

6)Gate节点

  • 定义
    又称门节点,当门打开时,随时可以执行功能,当门被关闭后,就不能执行功能
    在这里插入图片描述

  • 接口解释
    1)Toggle:若当前状态是打开,则转为关闭;若当前状态是关闭,则改变为打开状态
    2)Start Closed :勾选后:门默认情况下是关闭的,需要执行一次打开门才会打开

  • 使用举例
    在这里插入图片描述
    默认门是打开的,点击鼠标左键,打印门是打开的,走Enter的逻辑;再按鼠标右键则把门关闭,这时候Enter不了,打印不出东西,需要按鼠标中键Open一下,才能鼠标左键ENter并打印东西

7)MultiGate节点

  • 定义介绍
    默认情况下会依次执行出输出,当所有输出完成后,不再执行输出。输出节点可以添加,还可以循环与随机
    在这里插入图片描述
  • 使用介绍
    ①简单输出两次,分别点击鼠标左键输出两次,第一次输出Out0,第二次输出Out1
    在这里插入图片描述
    ②只有reset后才会再依次输出Out0和Out1
    ③Is Random是随机选择输出,选择过的不再选择
    ④Loop:当第一次选择Out1输出后,顺序执行Out2,Out0
    ⑤Start Index为1时,先输出Out1,后输出Out2,最后输出Out0
    在这里插入图片描述

二十一、数组、获取数组元素、查找输入移除便利判断数组

1)数组介绍

  • 蓝图定义数组
    在这里插入图片描述
  • 添加数组元素
    在这里插入图片描述
    在这里插入图片描述

2)数组元素获取(通过数组下标访问数组元素)

在这里插入图片描述

  • 使用举例
    在这里插入图片描述

3)查找数组指定元素下标(FindItem),返回的是元素的下标

在这里插入图片描述
在这里插入图片描述

4)获取数组长度(Length)

在这里插入图片描述

5)获取数组最后一个元素下标(lastindex)

在这里插入图片描述

6)插入数组元素

在这里插入图片描述

7)移除元素

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8)判断数组中是否存在指定元素

在这里插入图片描述

9)数组的遍历

(1)数组遍历的方式:
①For Each Loop:
在这里插入图片描述

②For Each Loop With Break:

在这里插入图片描述

  • 使用举例(遍历打印字符串)
    在这里插入图片描述
  • 找到老李就break
    在这里插入图片描述

二十二、修改关卡对象材质

1)选中关卡对象,创建数组,并将数组提升为变量

①场景中创建四个蓝色Cube
在这里插入图片描述
②选中创建为关卡对象
在这里插入图片描述
③创建数组(利用创建数组节点)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
④返回数组充当变量

在这里插入图片描述

2)创建材质和材质实例

①右键新建文件夹Materials用于管理材质
在这里插入图片描述
②文件夹里面右键创建材质
在这里插入图片描述
在这里插入图片描述
双击打开,并按住3点开,把黑框和右边基础颜色连接上
在这里插入图片描述

可以点击框内选择白色
在这里插入图片描述
修改材质名字,方便修改,右键选择转换为参数
在这里插入图片描述

在这里插入图片描述
③右键创建材质实例
在这里插入图片描述
并设置新材质的颜色,勾选Color并选择红色且保存
在这里插入图片描述

这样设置四个新的材质
在这里插入图片描述

3)创建材质数组(colorArray)

在这里插入图片描述

4)在材质数组中持有材质实例

在内容浏览器中选中材质
在这里插入图片描述
在这里插入图片描述

5)当按下鼠标左键的时候,遍历关卡对象数组,实出材质的随机赋值

  • 注意
    这里随机数组,可能会随机到一样的元素,也就是颜色一样的材质
    在这里插入图片描述
  • 效果
    在这里插入图片描述

二十三、案例及其场景介绍

1)第一人称射击游戏(案例设计分析)

1、角色蓝图创建
2、角色蓝图移动功能实现
3、枪蓝图创建
4、枪的拾取
5、实现射击
6、播放音效

2)涉及到的知识点

1、蓝图类的创建
2、移动、旋转、碰撞、动态创建蓝图类、销毁等功能点
3、自定义事件
4、函数

3)从文件夹加载项目

  • 项目资料链接
链接:https://pan.baidu.com/s/1lP8TopoW8_JRkOgszYnWIQ 
提取码:33h6

①下载好资源后,加载资源
在这里插入图片描述
在这里插入图片描述
然后就可以第一次打开项目场景Demonstration,因为是第一次打开,需要编译着色器就比较慢和卡
在这里插入图片描述

二十四、设置启动关卡

①在自己项目中创建个Map地图,把第三方项目的地图搬到新创的Map文件夹,并命名为Main_Level(主关卡)
在这里插入图片描述

②设置关卡为启动关卡:
编辑->项目设置->项目->地图和模式,设置默认地图为Main_Level,然后重开下项目
在这里插入图片描述

二十五、蓝图类(Blueprint Class)、及创建可用于修改材质的蓝图类

1)蓝图类介绍

  • 定义:
    ①蓝图类:允许开发者轻松地基于现有游戏类添加功能的资源。根据功能可以分为多个种类。
    ②创建蓝图类:由于蓝图属于资源,所以在内容浏览窗口创建名为Blueprints文件夹,用于管理所有的蓝图类。创建蓝图类需要选择对应的父类
    在这里插入图片描述
    在这里插入图片描述

2)实际创建蓝图类

①创建蓝图类文件夹
在这里插入图片描述
②创建一个以Actor为父类的蓝图类,命名叫Test_BP
1)视口:展示蓝图类模样
2)事件图表:蓝图类的逻辑

3)创建一个可用于修改材质的蓝图类

  • 流程:
    ①第一步:创建蓝图类
    根据actor创建蓝图类,命名为ColorObject_BP,并双击蓝图类打开组件
    在这里插入图片描述
    添加后得选择一个静态网格体
    在这里插入图片描述

②第二步:添加静态网格组件(同上)

③第三步:定义一个材质实例数组,可以结节面板上展示
先创建一个材质实例数组,选中可编辑实例(让这个实例的材质选择可显示编辑面板上)
在这里插入图片描述
在这里插入图片描述

直接把材质拖过去
在这里插入图片描述

④第四步:在开始事件,随机一个材质给静态网格组件

事件图表里面设置静态网格体的材质,也就是写逻辑

在这里插入图片描述

  • 备注:
    由于这里看不到静态网格物体,需要调整一下玩家出生点,设置第三人称视角
    在这里插入图片描述
    选择pawn类
    在这里插入图片描述

二十六、创建第一人称视角

1)导入第一人称案例资源(需要导入第一人称功能包)

①添加功能
在这里插入图片描述
②选择第一人称的pawn
在这里插入图片描述

在这里插入图片描述

2)创建一个角色控制器蓝图

①blueprints下面创建一个角色(蓝图类)
在这里插入图片描述
②基于角色
在这里插入图片描述
在这里插入图片描述

3)添加摄像机组件

①选择胶囊体添加摄像机组件
在这里插入图片描述
②摄像机重命名为FirstPersonCamera
在这里插入图片描述
③挪动摄像机到合适的位置
在这里插入图片描述
在这里插入图片描述

4)在摄像机下添加一个骨骼网络组件,将第一人称角色的模型赋值给骨骼网络体,选择动画蓝图

①先选中摄像机
在这里插入图片描述
②添加骨骼网格体组件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5)调整位置(需要导入动画蓝图才能播放持枪的动画)

在这里插入图片描述
拖动到合适位置
在这里插入图片描述

6)让关卡默认创建我们的角色

(1)添加移动输入节点(设置角色在指定移动方向移动)

①简单介绍
在这里插入图片描述
②增加具体移动事件
在这里插入图片描述
③完整蓝图展示
在这里插入图片描述
绿线:正1和负1都能捕捉
黄线:前向和往后移动都能返回值
红框:捕捉移动事件

④左右移动事件

在这里插入图片描述
⑤鼠标左右移动事件

在这里插入图片描述
⑥鼠标上下移动事件
在这里插入图片描述
注意:由于旋转的时候,摄像机不跟随pawn旋转,所以得勾选
在这里插入图片描述

(2)获取actor向前方向节点(可以获取角色向前方向)
(3)获取actor向右方向节点(可以获取角色向右方向)
(4)添加空气之yaw输入(可以设置角色在z轴的旋转)

在这里插入图片描述

(5)添加控制器pitch输入节点(可以设置角色在y轴的旋转)

在这里插入图片描述

(6)MoveForward用于获取WS键按下事件、MoveRight用于获取AD键按下事件、TrunRight/Left用于获取鼠标移动x轴事件、LookUP/Down用于获取鼠标移动Y轴事件

在这里插入图片描述

二十七、控制角色移动和旋转(同上)

二十八、创建枪蓝图

1)创建一个Actor蓝图

①Blueprints创建蓝图类,命名为Gun_BP,类型是Actor
在这里插入图片描述
在这里插入图片描述

2)枪蓝图类添加骨骼网格体组件(不是静态网格体,因为需要改变位置)

①添加骨骼网络体组件
在这里插入图片描述
②设置为根节点(选中SkeletalMesh拖到根节点位置处就行)
在这里插入图片描述

3)选择枪模型

在这里插入图片描述

4)将骨骼网格体设置为蓝图的根组件

5)在骨骼网格体下创建一个球形碰撞器

①创建球形碰撞器
在这里插入图片描述
②整体缩放1.2并调整枪体位置
在这里插入图片描述

二十九、将枪创建到关卡中

1)在关卡中添加一个空Actor,用于标识位置

①创建空Actor
在这里插入图片描述
②打开关卡蓝图
在这里插入图片描述

2)在关卡蓝图中持有枪的创建点

①修改关卡蓝图
在这里插入图片描述

②完善关卡蓝图
在这里插入图片描述

③设置关卡蓝图旋转90度
在这里插入图片描述

3)在关卡蓝图的事件开始运转事件中,通过从类生成Actor节点,创建枪

①创建点光源组件
在这里插入图片描述
②点光源蓝图类Actor加入绑定事件
在这里插入图片描述

三十、控制枪旋转

1)在事件图标中实现实时旋转

①控制物品绕z轴,每一帧转两度
在这里插入图片描述

2)修改创建点灯光

①修改点光源为聚光源SpotLight,并修改绕y轴旋转负90度,角度为30度
在这里插入图片描述

三十一、拾取枪

1)当角色碰撞到枪后,会触发事件Actor开始重叠事件,在事件中可以拿到与当前对象发生碰撞的那个Actor

①在GUN_BP的事件图表里面,只要Player_BP一碰到GUN_BP就会触发这个事件
(也就是人物捡到枪)
在这里插入图片描述

2)OtherActor只是Actor这个类型,我们要拿到Player_BP这个类型就需要强制类型转换,要通过:类型转换为Player_BP这个节点来转换

(设置枪的手臂持枪点,并对齐到目标,这里的持枪点提前做好了,这里持枪点不是重点,主要是查看骨骼看选持枪点)
在这里插入图片描述

在这里插入图片描述

3)再通过将Actor附加组件节点(枪拿到手就不旋转)

在这里插入图片描述

三十二、创建子弹蓝图

1)要实现射击就需要动态创建子弹

①创建Actor蓝图类
在这里插入图片描述

2)添加静态网格组件

①创建静态网格体
在这里插入图片描述
②添加球体为静态网格体
在这里插入图片描述

3)字段射击后自己飞出去,所以需要添加发射物移动组件。配置子弹的飞行速度及重力

①添加发射物移动组件
在这里插入图片描述
②修改抛射物参数
在这里插入图片描述

三十三、蓝图之间交互

三十四、实现射击功能

三十五、实现碰撞销毁

三十六、实现音效播放

三十七、实现射击动画播放

三十八、函数

三十九、函数的参数、返回值和纯函数

四十、自定义事件和函数的异同

四十一、函数局部变量

四十二、宏和宏库

四十三、时间轴节点

四十四、插值

四十五、自动门功能

四十六、将门的移动功能封装为事件

四十七、蓝图类和关卡蓝图交互

四十八、任务门功能

四十九、通过射击目标实现钥匙创建

五十、实现第一道门和第二道门的打开

五十一、完结小节

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值