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

文章目录

    • 一、项目创建
      • 1)准备流程(选择模板、开发语言、平台、质量等)
      • 2)界面介绍
    • 二、Actor
    • 三、操作关卡对象(旋转、移动、缩放和坐标轴)
    • 四、常用快捷键
    • 五、运行游戏
    • 六、蓝图介绍
    • 七、蓝图节点
    • 八、操作事件图表
    • 九、变量、布尔类型、数值类型、数值运算
      • 1)布尔值
      • 2)数值类型
      • 3)数值类型变量运算
      • 4)额外补充(注释)
      • 5)断开某条蓝图连线(ALT键+鼠标左键)
    • 十、蓝图注释(功能注释)
    • 十一、文本相关类型:命名、文本、字符串
      • 1)文本类型的变量类型划分:
    • 十二、向量类型、运算
      • 1)向量的定义
      • 2)反向输入向量值
      • 2)向量的运算
    • 十三、旋转体类型
    • 十四、变换类型
      • 1)变换的定义
      • 2)界面展示
    • 十五、通过变换操作关卡对象
      • 1)选中关卡对象
      • 2)在关卡蓝图中右键创建选中对象实例
      • 3)设置位置、旋转、缩放
    • 十六、变量的算术和比较运算
      • 1)变量的算数运算
      • 2)变量的比较运算(比较运算结果为布尔,因为比较只有两种结果)
    • 十七、获取按键输入
      • 1)获取键盘按键的输入
      • 2)获取鼠标按键的输入
    • 十八、分支节点
      • 1)分支节点介绍
      • 2)蓝图介绍
    • 十九、序列节点
      • 1)序列节点介绍
      • 2)使用举例
    • 二十、for循环、while循环 、DO N节点、DO ONCE节点、FLIP FLOR节点、MATE节点、Multigate节点
      • 1)FOR循环节点
        • (1)ForLoop节点
        • (2)ForLoopWithBreak节点
      • 2)whileLoop循环节点
      • 3)Do N节点
      • 4)DO Once节点
      • 5)Flip Flop翻转节点
      • 6)Gate节点
      • 7)MultiGate节点
    • 二十一、数组、获取数组元素、查找输入移除便利判断数组
      • 1)数组介绍
      • 2)数组元素获取(通过数组下标访问数组元素)
      • 3)查找数组指定元素下标(FindItem),返回的是元素的下标
      • 4)获取数组长度(Length)
      • 5)获取数组最后一个元素下标(lastindex)
      • 6)插入数组元素
      • 7)移除元素
      • 8)判断数组中是否存在指定元素
      • 9)数组的遍历
    • 二十二、修改关卡对象材质
      • 1)选中关卡对象,创建数组,并将数组提升为变量
      • 2)创建材质和材质实例
      • 3)创建材质数组(colorArray)
      • 4)在材质数组中持有材质实例
      • 5)当按下鼠标左键的时候,遍历关卡对象数组,实出材质的随机赋值
    • 二十三、案例及其场景介绍
      • 1)第一人称射击游戏(案例设计分析)
      • 2)涉及到的知识点
      • 3)从文件夹加载项目
    • 二十四、设置启动关卡
    • 二十五、蓝图类(Blueprint Class)、及创建可用于修改材质的蓝图类
      • 1)蓝图类介绍
      • 2)实际创建蓝图类
      • 3)创建一个可用于修改材质的蓝图类
    • 二十六、创建第一人称视角
      • 1)导入第一人称案例资源(需要导入第一人称功能包)
      • 2)创建一个角色控制器蓝图
      • 3)添加摄像机组件
      • 4)在摄像机下添加一个骨骼网络组件,将第一人称角色的模型赋值给骨骼网络体,选择动画蓝图
      • 5)调整位置(需要导入动画蓝图才能播放持枪的动画)
      • 6)让关卡默认创建我们的角色
          • (1)添加移动输入节点(设置角色在指定移动方向移动)
        • (2)获取actor向前方向节点(可以获取角色向前方向)
        • (3)获取actor向右方向节点(可以获取角色向右方向)
        • (4)添加空气之yaw输入(可以设置角色在z轴的旋转)
        • (5)添加控制器pitch输入节点(可以设置角色在y轴的旋转)
        • (6)MoveForward用于获取WS键按下事件、MoveRight用于获取AD键按下事件、TrunRight/Left用于获取鼠标移动x轴事件、LookUP/Down用于获取鼠标移动Y轴事件
    • 二十七、控制角色移动和旋转(同上)
    • 二十八、创建枪蓝图
      • 1)创建一个Actor蓝图
      • 2)枪蓝图类添加骨骼网格体组件(不是静态网格体,因为需要改变位置)
      • 3)选择枪模型
      • 4)将骨骼网格体设置为蓝图的根组件
      • 5)在骨骼网格体下创建一个球形碰撞器
    • 二十九、将枪创建到关卡中
      • 1)在关卡中添加一个空Actor,用于标识位置
      • 2)在关卡蓝图中持有枪的创建点
      • 3)在关卡蓝图的事件开始运转事件中,通过从类生成Actor节点,创建枪
    • 三十、控制枪旋转
      • 1)在事件图标中实现实时旋转
      • 2)修改创建点灯光
    • 三十一、拾取枪
      • 1)当角色碰撞到枪后,会触发事件Actor开始重叠事件,在事件中可以拿到与当前对象发生碰撞的那个Actor
      • 2)OtherActor只是Actor这个类型,我们要拿到Player_BP这个类型就需要强制类型转换,要通过:类型转换为Player_BP这个节点来转换
      • 3)再通过将Actor附加组件节点(枪拿到手就不旋转)
    • 三十二、创建子弹蓝图
      • 1)要实现射击就需要动态创建子弹
      • 2)添加静态网格组件
      • 3)字段射击后自己飞出去,所以需要添加发射物移动组件。配置子弹的飞行速度及重力
    • 三十三、蓝图之间交互
    • 三十四、实现射击功能
    • 三十五、实现碰撞销毁
    • 三十六、实现音效播放
    • 三十七、实现射击动画播放
    • 三十八、函数
    • 三十九、函数的参数、返回值和纯函数
    • 四十、自定义事件和函数的异同
    • 四十一、函数局部变量
    • 四十二、宏和宏库
    • 四十三、时间轴节点
    • 四十四、插值
    • 四十五、自动门功能
    • 四十六、将门的移动功能封装为事件
    • 四十七、蓝图类和关卡蓝图交互
    • 四十八、任务门功能
    • 四十九、通过射击目标实现钥匙创建
    • 五十、实现第一道门和第二道门的打开
    • 五十一、完结小节

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

一、项目创建

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第1张图片

2)界面介绍

  • 整体界面
    UE蓝图基础学习笔记(未完待续2023/05/22)_第2张图片

  • 区别
    视图面板:用于设计关卡,可以在视图面板摆放、移动、旋转游戏对象,为了便于设计,占了引擎的大部区域
    UE蓝图基础学习笔记(未完待续2023/05/22)_第3张图片

大纲面板:以名字显示视图区的游戏对象
UE蓝图基础学习笔记(未完待续2023/05/22)_第4张图片

细节面板:用于显示当前选中的对象的详细信息
UE蓝图基础学习笔记(未完待续2023/05/22)_第5张图片

内容侧滑菜单:为UE4的内容浏览器,用于显示当前项目中的内容(资源、蓝图、材质等),默认为隐藏状态,可通过快捷键:CTRL+空格建显示
UE蓝图基础学习笔记(未完待续2023/05/22)_第6张图片

二、Actor

1、所有可以被放入关卡(Level)的对象都是Actor
2、创建Actor的方式:
①从放置Actor中添加
UE蓝图基础学习笔记(未完待续2023/05/22)_第7张图片
②从内容浏览器中添加
UE蓝图基础学习笔记(未完待续2023/05/22)_第8张图片

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

  • 备注
    第一个图标是选中

  • 其他工具

1、移动工具
UE蓝图基础学习笔记(未完待续2023/05/22)_第9张图片

2、旋转工具
UE蓝图基础学习笔记(未完待续2023/05/22)_第10张图片

3、缩放工具
UE蓝图基础学习笔记(未完待续2023/05/22)_第11张图片

4、坐标轴
UE蓝图基础学习笔记(未完待续2023/05/22)_第12张图片

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

四、常用快捷键

  • 1)想要近距离观察一个obj,举例图中的cube(快速双击鼠标聚焦,选中cube按F也是能快速定位)
    UE蓝图基础学习笔记(未完待续2023/05/22)_第13张图片

  • 2)按住鼠标中键则可左右或上下移动视角
    UE蓝图基础学习笔记(未完待续2023/05/22)_第14张图片

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

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

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

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

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

五、运行游戏

点击播放按钮
UE蓝图基础学习笔记(未完待续2023/05/22)_第15张图片

六、蓝图介绍

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

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

  • 创建蓝图
    蓝图类需要创建
    关卡蓝图是每个关卡都有的,不需要额外创建,直接就可以打开
    UE蓝图基础学习笔记(未完待续2023/05/22)_第16张图片
    ③蓝图编辑好后需要编译后才能生效,还要记得保存
    UE蓝图基础学习笔记(未完待续2023/05/22)_第17张图片
    ④新建变量
    UE蓝图基础学习笔记(未完待续2023/05/22)_第18张图片

七、蓝图节点

  • 蓝图节点类型
    1)事件节点:自己创建的事件,自己去触发和调用的节点
    2)功能节点:也算是功能,执行旋转移动等
    3)变量节点:自己创建的变量,需要设置变量或设置变量的值的节点
    4)引用节点:例如选中场景中的角色放到蓝图里面来
  • 蓝图结构的简单介绍
    UE蓝图基础学习笔记(未完待续2023/05/22)_第19张图片

八、操作事件图表

  • 快捷键
    ①按住ctrl加鼠标滚轮放大
    ②可以按住鼠标滚轮缩小
    ③CTRL+D复制节点
  • 添加图标
    右键添加图标
    UE蓝图基础学习笔记(未完待续2023/05/22)_第20张图片
  • 举例创建(下面蓝图类是用的比较多的事件)
    1)事件开始运行(Event BeginPlay)
    项目运行起来只执行一次的事件
    2)事件Tick(Event Tick)
    每帧判断是否执行,Delta Second为间隔的时间
    UE蓝图基础学习笔记(未完待续2023/05/22)_第21张图片
    3)打印字符串(仅开发调试用)
    UE蓝图基础学习笔记(未完待续2023/05/22)_第22张图片
    这里点击运行就出现字符串
    UE蓝图基础学习笔记(未完待续2023/05/22)_第23张图片

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

1)布尔值

①多一个节点是将布尔值转为字符串
UE蓝图基础学习笔记(未完待续2023/05/22)_第24张图片
②总体流程是打印字符串
UE蓝图基础学习笔记(未完待续2023/05/22)_第25张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第26张图片

2)数值类型

①字节Byte
②整数Integer
③64位整数 Integer64
④浮点float
UE蓝图基础学习笔记(未完待续2023/05/22)_第27张图片

3)数值类型变量运算

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

  • 蓝图

  • 操作流程
    ①按住CTRL将numa和numb拖出来
    UE蓝图基础学习笔记(未完待续2023/05/22)_第28张图片
    ②按住ALT键把sum键拖出来
    UE蓝图基础学习笔记(未完待续2023/05/22)_第29张图片
    ③随便哪里右键搜索+号(这样数据类型就不确定)

UE蓝图基础学习笔记(未完待续2023/05/22)_第30张图片
④那么总体流程

UE蓝图基础学习笔记(未完待续2023/05/22)_第31张图片

  • 补充举例(给数值numb加上50)
    UE蓝图基础学习笔记(未完待续2023/05/22)_第32张图片

4)额外补充(注释)

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

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

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

选中蓝图然后按住C键
UE蓝图基础学习笔记(未完待续2023/05/22)_第33张图片

  • 额外选择
    可以修改注释的颜色等
    UE蓝图基础学习笔记(未完待续2023/05/22)_第34张图片
  • 可缩放气泡
    UE蓝图基础学习笔记(未完待续2023/05/22)_第35张图片

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

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

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

十二、向量类型、运算

1)向量的定义

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

2)反向输入向量值

SET连出右键出创建向量,左边定义的Myfloat可用于输入浮点值
UE蓝图基础学习笔记(未完待续2023/05/22)_第36张图片

2)向量的运算

在这里插入图片描述

  • 向量相加运算
    UE蓝图基础学习笔记(未完待续2023/05/22)_第37张图片
  • 向量相乘运算
    UE蓝图基础学习笔记(未完待续2023/05/22)_第38张图片

十三、旋转体类型

  • 定义介绍
    同向量也有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)界面展示

UE蓝图基础学习笔记(未完待续2023/05/22)_第39张图片

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

1)选中关卡对象

UE蓝图基础学习笔记(未完待续2023/05/22)_第40张图片
按住ALT键盘拖出来,拖出来是默认选中这个方块的

UE蓝图基础学习笔记(未完待续2023/05/22)_第41张图片

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

①切换关卡蓝图界面
UE蓝图基础学习笔记(未完待续2023/05/22)_第42张图片
②右键创建队SM_Cube14的引用
UE蓝图基础学习笔记(未完待续2023/05/22)_第43张图片

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

①方块添加世界变换
UE蓝图基础学习笔记(未完待续2023/05/22)_第44张图片

UE蓝图基础学习笔记(未完待续2023/05/22)_第45张图片
②添加变换(让物体沿X方向位移500)
UE蓝图基础学习笔记(未完待续2023/05/22)_第46张图片

③额外设置
UE蓝图基础学习笔记(未完待续2023/05/22)_第47张图片

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

1)变量的算数运算

基本同上的操作不变
UE蓝图基础学习笔记(未完待续2023/05/22)_第48张图片

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

①大于
②小于
③大于等于
④小于等于
⑤等于
⑥不等于
右键输入选中>
UE蓝图基础学习笔记(未完待续2023/05/22)_第49张图片
整体流程
UE蓝图基础学习笔记(未完待续2023/05/22)_第50张图片

  • 特殊注意
    1)字符串比较用eq
    UE蓝图基础学习笔记(未完待续2023/05/22)_第51张图片
    UE蓝图基础学习笔记(未完待续2023/05/22)_第52张图片

2)字符串不相等就是Not Equal(!==)
UE蓝图基础学习笔记(未完待续2023/05/22)_第53张图片

十七、获取按键输入

1)获取键盘按键的输入

①右键输入:

键 A
键 W

出现
UE蓝图基础学习笔记(未完待续2023/05/22)_第54张图片
②打印输出(CTRL+D赋值打印框)

UE蓝图基础学习笔记(未完待续2023/05/22)_第55张图片

2)获取鼠标按键的输入

右键输入鼠标左键
UE蓝图基础学习笔记(未完待续2023/05/22)_第56张图片

十八、分支节点

1)分支节点介绍

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

2)蓝图介绍

UE蓝图基础学习笔记(未完待续2023/05/22)_第57张图片

  • 举例使用(age是整数)
    UE蓝图基础学习笔记(未完待续2023/05/22)_第58张图片

十九、序列节点

1)序列节点介绍

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

  • 序列节点效果展示(下面的看起来更清晰)
    UE蓝图基础学习笔记(未完待续2023/05/22)_第59张图片

2)使用举例

按下鼠标左键,先输出序列1,后输出序列2
UE蓝图基础学习笔记(未完待续2023/05/22)_第60张图片

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

1)FOR循环节点

UE蓝图基础学习笔记(未完待续2023/05/22)_第61张图片

(1)ForLoop节点

  • 定义
    执行指定次数的功能节点,需要传入循环开始值和结束值

(2)ForLoopWithBreak节点

  • 定义
    在没有执行break时,与ForLoop节点功能一样,当执行break时,循环终止

  • 举例使用
    (index>3那么就break中断for循环)
    UE蓝图基础学习笔记(未完待续2023/05/22)_第62张图片

2)whileLoop循环节点

UE蓝图基础学习笔记(未完待续2023/05/22)_第63张图片

  • 举例使用
    UE蓝图基础学习笔记(未完待续2023/05/22)_第64张图片

3)Do N节点

  • 定义
    当执行N次后,功能不再执行。若想再执行,需要执行一次Reset
    UE蓝图基础学习笔记(未完待续2023/05/22)_第65张图片
  • 注意
    1)第一次进的时候是进Enter节点
    2)Exit是输出节点,输出N次
  • 使用举例(点一次输出一个数字,从1输出到5,右键重置才能再输出)
    UE蓝图基础学习笔记(未完待续2023/05/22)_第66张图片

4)DO Once节点

  • 定义
    只执行一次,要想再执行需要执行Reset
    UE蓝图基础学习笔记(未完待续2023/05/22)_第67张图片
  • 注意
    start Closed勾选后,默认一开始就需要Reset才能执行该节点
  • 使用举例
    UE蓝图基础学习笔记(未完待续2023/05/22)_第68张图片

5)Flip Flop翻转节点

  • 定义
    可以输出两个功能,第一次执行A功能,第二次执行B功能,第三次再次执行A功能,以此类推
    UE蓝图基础学习笔记(未完待续2023/05/22)_第69张图片
  • 使用举例
    UE蓝图基础学习笔记(未完待续2023/05/22)_第70张图片
    蓝图效果:交叉打印执行A功能和执行B功能

6)Gate节点

  • 定义
    又称门节点,当门打开时,随时可以执行功能,当门被关闭后,就不能执行功能
    UE蓝图基础学习笔记(未完待续2023/05/22)_第71张图片

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

  • 使用举例
    UE蓝图基础学习笔记(未完待续2023/05/22)_第72张图片
    默认门是打开的,点击鼠标左键,打印门是打开的,走Enter的逻辑;再按鼠标右键则把门关闭,这时候Enter不了,打印不出东西,需要按鼠标中键Open一下,才能鼠标左键ENter并打印东西

7)MultiGate节点

  • 定义介绍
    默认情况下会依次执行出输出,当所有输出完成后,不再执行输出。输出节点可以添加,还可以循环与随机
    UE蓝图基础学习笔记(未完待续2023/05/22)_第73张图片
  • 使用介绍
    ①简单输出两次,分别点击鼠标左键输出两次,第一次输出Out0,第二次输出Out1
    UE蓝图基础学习笔记(未完待续2023/05/22)_第74张图片
    ②只有reset后才会再依次输出Out0和Out1
    ③Is Random是随机选择输出,选择过的不再选择
    ④Loop:当第一次选择Out1输出后,顺序执行Out2,Out0
    ⑤Start Index为1时,先输出Out1,后输出Out2,最后输出Out0
    UE蓝图基础学习笔记(未完待续2023/05/22)_第75张图片

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

1)数组介绍

  • 蓝图定义数组
    UE蓝图基础学习笔记(未完待续2023/05/22)_第76张图片
  • 添加数组元素
    在这里插入图片描述
    UE蓝图基础学习笔记(未完待续2023/05/22)_第77张图片

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第78张图片

  • 使用举例
    UE蓝图基础学习笔记(未完待续2023/05/22)_第79张图片

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第80张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第81张图片

4)获取数组长度(Length)

UE蓝图基础学习笔记(未完待续2023/05/22)_第82张图片

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第83张图片

6)插入数组元素

UE蓝图基础学习笔记(未完待续2023/05/22)_第84张图片

7)移除元素

UE蓝图基础学习笔记(未完待续2023/05/22)_第85张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第86张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第87张图片

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第88张图片

9)数组的遍历

(1)数组遍历的方式:
①For Each Loop:
UE蓝图基础学习笔记(未完待续2023/05/22)_第89张图片

②For Each Loop With Break:

UE蓝图基础学习笔记(未完待续2023/05/22)_第90张图片

  • 使用举例(遍历打印字符串)
    UE蓝图基础学习笔记(未完待续2023/05/22)_第91张图片
  • 找到老李就break
    UE蓝图基础学习笔记(未完待续2023/05/22)_第92张图片

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

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

①场景中创建四个蓝色Cube
UE蓝图基础学习笔记(未完待续2023/05/22)_第93张图片
②选中创建为关卡对象
UE蓝图基础学习笔记(未完待续2023/05/22)_第94张图片
③创建数组(利用创建数组节点)
UE蓝图基础学习笔记(未完待续2023/05/22)_第95张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第96张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第97张图片
④返回数组充当变量

UE蓝图基础学习笔记(未完待续2023/05/22)_第98张图片

2)创建材质和材质实例

①右键新建文件夹Materials用于管理材质
UE蓝图基础学习笔记(未完待续2023/05/22)_第99张图片
②文件夹里面右键创建材质
UE蓝图基础学习笔记(未完待续2023/05/22)_第100张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第101张图片
双击打开,并按住3点开,把黑框和右边基础颜色连接上
UE蓝图基础学习笔记(未完待续2023/05/22)_第102张图片

可以点击框内选择白色
UE蓝图基础学习笔记(未完待续2023/05/22)_第103张图片
修改材质名字,方便修改,右键选择转换为参数
UE蓝图基础学习笔记(未完待续2023/05/22)_第104张图片

UE蓝图基础学习笔记(未完待续2023/05/22)_第105张图片
③右键创建材质实例
UE蓝图基础学习笔记(未完待续2023/05/22)_第106张图片
并设置新材质的颜色,勾选Color并选择红色且保存
UE蓝图基础学习笔记(未完待续2023/05/22)_第107张图片

这样设置四个新的材质
UE蓝图基础学习笔记(未完待续2023/05/22)_第108张图片

3)创建材质数组(colorArray)

UE蓝图基础学习笔记(未完待续2023/05/22)_第109张图片

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

在内容浏览器中选中材质
UE蓝图基础学习笔记(未完待续2023/05/22)_第110张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第111张图片

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

  • 注意
    这里随机数组,可能会随机到一样的元素,也就是颜色一样的材质
    UE蓝图基础学习笔记(未完待续2023/05/22)_第112张图片
  • 效果
    UE蓝图基础学习笔记(未完待续2023/05/22)_第113张图片

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

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

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

2)涉及到的知识点

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

3)从文件夹加载项目

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

①下载好资源后,加载资源
UE蓝图基础学习笔记(未完待续2023/05/22)_第114张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第115张图片
然后就可以第一次打开项目场景Demonstration,因为是第一次打开,需要编译着色器就比较慢和卡
UE蓝图基础学习笔记(未完待续2023/05/22)_第116张图片

二十四、设置启动关卡

①在自己项目中创建个Map地图,把第三方项目的地图搬到新创的Map文件夹,并命名为Main_Level(主关卡)
UE蓝图基础学习笔记(未完待续2023/05/22)_第117张图片

②设置关卡为启动关卡:
编辑->项目设置->项目->地图和模式,设置默认地图为Main_Level,然后重开下项目
UE蓝图基础学习笔记(未完待续2023/05/22)_第118张图片

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

1)蓝图类介绍

  • 定义:
    ①蓝图类:允许开发者轻松地基于现有游戏类添加功能的资源。根据功能可以分为多个种类。
    ②创建蓝图类:由于蓝图属于资源,所以在内容浏览窗口创建名为Blueprints文件夹,用于管理所有的蓝图类。创建蓝图类需要选择对应的父类
    UE蓝图基础学习笔记(未完待续2023/05/22)_第119张图片
    UE蓝图基础学习笔记(未完待续2023/05/22)_第120张图片

2)实际创建蓝图类

①创建蓝图类文件夹
UE蓝图基础学习笔记(未完待续2023/05/22)_第121张图片
②创建一个以Actor为父类的蓝图类,命名叫Test_BP
1)视口:展示蓝图类模样
2)事件图表:蓝图类的逻辑

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

  • 流程:
    ①第一步:创建蓝图类
    根据actor创建蓝图类,命名为ColorObject_BP,并双击蓝图类打开组件
    UE蓝图基础学习笔记(未完待续2023/05/22)_第122张图片
    添加后得选择一个静态网格体
    UE蓝图基础学习笔记(未完待续2023/05/22)_第123张图片

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

③第三步:定义一个材质实例数组,可以结节面板上展示
先创建一个材质实例数组,选中可编辑实例(让这个实例的材质选择可显示编辑面板上)
UE蓝图基础学习笔记(未完待续2023/05/22)_第124张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第125张图片

直接把材质拖过去
UE蓝图基础学习笔记(未完待续2023/05/22)_第126张图片

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

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第127张图片

  • 备注:
    由于这里看不到静态网格物体,需要调整一下玩家出生点,设置第三人称视角

    选择pawn类
    UE蓝图基础学习笔记(未完待续2023/05/22)_第128张图片

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

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

①添加功能
UE蓝图基础学习笔记(未完待续2023/05/22)_第129张图片
②选择第一人称的pawn
UE蓝图基础学习笔记(未完待续2023/05/22)_第130张图片

UE蓝图基础学习笔记(未完待续2023/05/22)_第131张图片

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

①blueprints下面创建一个角色(蓝图类)
UE蓝图基础学习笔记(未完待续2023/05/22)_第132张图片
②基于角色
UE蓝图基础学习笔记(未完待续2023/05/22)_第133张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第134张图片

3)添加摄像机组件

①选择胶囊体添加摄像机组件
UE蓝图基础学习笔记(未完待续2023/05/22)_第135张图片
②摄像机重命名为FirstPersonCamera
UE蓝图基础学习笔记(未完待续2023/05/22)_第136张图片
③挪动摄像机到合适的位置
UE蓝图基础学习笔记(未完待续2023/05/22)_第137张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第138张图片

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

①先选中摄像机
UE蓝图基础学习笔记(未完待续2023/05/22)_第139张图片
②添加骨骼网格体组件
UE蓝图基础学习笔记(未完待续2023/05/22)_第140张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第141张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第142张图片

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第143张图片
拖动到合适位置
UE蓝图基础学习笔记(未完待续2023/05/22)_第144张图片

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

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

①简单介绍
UE蓝图基础学习笔记(未完待续2023/05/22)_第145张图片
②增加具体移动事件
UE蓝图基础学习笔记(未完待续2023/05/22)_第146张图片
③完整蓝图展示
UE蓝图基础学习笔记(未完待续2023/05/22)_第147张图片
绿线:正1和负1都能捕捉
黄线:前向和往后移动都能返回值
红框:捕捉移动事件

④左右移动事件

UE蓝图基础学习笔记(未完待续2023/05/22)_第148张图片
⑤鼠标左右移动事件

UE蓝图基础学习笔记(未完待续2023/05/22)_第149张图片
⑥鼠标上下移动事件
UE蓝图基础学习笔记(未完待续2023/05/22)_第150张图片
注意:由于旋转的时候,摄像机不跟随pawn旋转,所以得勾选
在这里插入图片描述

(2)获取actor向前方向节点(可以获取角色向前方向)

(3)获取actor向右方向节点(可以获取角色向右方向)

(4)添加空气之yaw输入(可以设置角色在z轴的旋转)

UE蓝图基础学习笔记(未完待续2023/05/22)_第151张图片

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第152张图片

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第153张图片

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

二十八、创建枪蓝图

1)创建一个Actor蓝图

①Blueprints创建蓝图类,命名为Gun_BP,类型是Actor
UE蓝图基础学习笔记(未完待续2023/05/22)_第154张图片
UE蓝图基础学习笔记(未完待续2023/05/22)_第155张图片

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

①添加骨骼网络体组件
UE蓝图基础学习笔记(未完待续2023/05/22)_第156张图片
②设置为根节点(选中SkeletalMesh拖到根节点位置处就行)
UE蓝图基础学习笔记(未完待续2023/05/22)_第157张图片

3)选择枪模型

UE蓝图基础学习笔记(未完待续2023/05/22)_第158张图片

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

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

①创建球形碰撞器
在这里插入图片描述
②整体缩放1.2并调整枪体位置
UE蓝图基础学习笔记(未完待续2023/05/22)_第159张图片

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

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

①创建空Actor
UE蓝图基础学习笔记(未完待续2023/05/22)_第160张图片
②打开关卡蓝图
UE蓝图基础学习笔记(未完待续2023/05/22)_第161张图片

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

①修改关卡蓝图
UE蓝图基础学习笔记(未完待续2023/05/22)_第162张图片

②完善关卡蓝图
UE蓝图基础学习笔记(未完待续2023/05/22)_第163张图片

③设置关卡蓝图旋转90度

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

①创建点光源组件
UE蓝图基础学习笔记(未完待续2023/05/22)_第164张图片
②点光源蓝图类Actor加入绑定事件
UE蓝图基础学习笔记(未完待续2023/05/22)_第165张图片

三十、控制枪旋转

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

①控制物品绕z轴,每一帧转两度
UE蓝图基础学习笔记(未完待续2023/05/22)_第166张图片

2)修改创建点灯光

①修改点光源为聚光源SpotLight,并修改绕y轴旋转负90度,角度为30度
UE蓝图基础学习笔记(未完待续2023/05/22)_第167张图片

三十一、拾取枪

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

①在GUN_BP的事件图表里面,只要Player_BP一碰到GUN_BP就会触发这个事件
(也就是人物捡到枪)
UE蓝图基础学习笔记(未完待续2023/05/22)_第168张图片

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

(设置枪的手臂持枪点,并对齐到目标,这里的持枪点提前做好了,这里持枪点不是重点,主要是查看骨骼看选持枪点)
UE蓝图基础学习笔记(未完待续2023/05/22)_第169张图片

UE蓝图基础学习笔记(未完待续2023/05/22)_第170张图片

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

UE蓝图基础学习笔记(未完待续2023/05/22)_第171张图片

三十二、创建子弹蓝图

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

①创建Actor蓝图类
UE蓝图基础学习笔记(未完待续2023/05/22)_第172张图片

2)添加静态网格组件

①创建静态网格体
UE蓝图基础学习笔记(未完待续2023/05/22)_第173张图片
②添加球体为静态网格体
UE蓝图基础学习笔记(未完待续2023/05/22)_第174张图片

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

①添加发射物移动组件
UE蓝图基础学习笔记(未完待续2023/05/22)_第175张图片
②修改抛射物参数
UE蓝图基础学习笔记(未完待续2023/05/22)_第176张图片

三十三、蓝图之间交互

三十四、实现射击功能

三十五、实现碰撞销毁

三十六、实现音效播放

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

三十八、函数

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

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

四十一、函数局部变量

四十二、宏和宏库

四十三、时间轴节点

四十四、插值

四十五、自动门功能

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

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

四十八、任务门功能

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

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

五十一、完结小节

你可能感兴趣的:(学习,笔记)