前言:
目前是正式学习ue4第二周
个人觉得很重要的一点就是理解UE4 GamePlay框架。后续学习unity以及其他引擎,框架应该是需要最先了解的
我是先看了近2周谌嘉诚老师的教程,然后中途才了解UE4GamePlay框架,因为在蓝图、行为树中讲到的都是框架中的东西,所以当学习蓝图开始时就可以去了解框架的内容了,对我们的学习有很大的帮助
什么是GamePlay框架?
GamePlay框架就是游戏引擎组织游戏的最核心的那几个类,还有其概念。
比如Unity,它的GamePlay框架核心就是GameObject+Monobehavior。
Unity只给了你很基础构成游戏世界的最基本类的组织方案,但是要怎么搭建一整个游戏框架这方面基本是完全交给游戏开发者自己去折腾了。
但是UE4就相对复杂一点,因为UE4的理念是给出一个通用的游戏框架模型,所以它考虑的事情更多。
UE4的框架核心是Actor+Blueprint+Component,游戏中每一个对象都是这三者的集合体。Actor持有一个Blueprint,Blueprint持有若干Component。
但是UE4并没有止步于此,他还给出了一套完整框架,这套框架由若干个类组成,每个类各司其职同时又互相配合。
“GamePlay框架组成”文章看下面这篇,讲得比较通俗易懂
UE4的GamePlay框架概述_wjysg8408982的博客-CSDN博客_ue4gameplay框架
接下来就是学习笔记了,看的是谌嘉诚老师的教程
【虚幻4】UE4初学者系列教程合集-全中文新手入门教程_哔哩哔哩_bilibili
编辑界面介绍和基础操作入门
1、关于这一块没啥好说的,教程中讲了非常详细,一系列基础操作就不多过多赘述了,看教程即可,讲得非常详细,再次感谢谌嘉诚老师
本人的一个小习惯就是,先不看教程介绍,下载好UE4后,自己先玩一下,体验一下,然后再去看教程
蓝图篇
tips:和我一样英文不好的同学,在开始之前先下载一个PC端的翻译软件,虽然UE4里面汉化得不好,但还是有不少英文,翻译有助于更好的理解组件和节点含义
一、开关门互动
1、给门添加盒体碰撞(双击打开门的编辑界面--碰撞--添加盒子简化碰撞)
2、添加盒体触发器(放置--基础--盒体触发器)
3、修改门的移动性(选中门--细节面板--变换--可移动)
4、为触发盒子添加事件(选中触发盒子,工具栏打开关卡蓝图)
5、当小白人进入盒子触发的事件与当小白人离开盒子触发的事件
6、给门添加引用,添加旋转节点
7、添加时间轴
最终蓝图:
二、按键开门
节点:
1、Get Player Controller(获取玩家控制器)
2、Enable Input(启用输入)
3、Disable Input(禁用输出)
4、E(E按键)
5、Gate(在Open或Close满足时)的前提下然后输入E(Enter)的时候触发事件
6、Flip Flop(不断的翻转,A和B轮流执行,第一次调用执行A,第二次B,第三次A…)
7、SetRelativeRotation(设置相对位置的旋转)
PS:这里需要留意“设置actor旋转”、“设置世界旋转”、“设置相对旋转”区别
SetWorldRotation:世界坐标是不会被改变的,坐标永远是0,0,0
SetActorRotation:self整个蓝图类旋转
鼠标点击开门:
进行以下设置
然后运行就OK了
PS:这里我没有实现...不知道哪里出问题了。唯一的不同就是世界场景的初始的游戏模式是“None”。后面的步骤跟着视频设置成“ThirdPersonGameMode”后,因为视频中up的游戏模式初始就是“ThirdPersonGameMode”,所以问题大概率是在这里,后续再问人解决
番外篇:文字乱码问题...目前4.23后已修复
字体的导入的3种方法
1、内容浏览器---导入
2、直接从桌面拖拽到内容浏览器
3、内容浏览器--右键--用户界面--字体--字体添加界面--添加字体
关闭光照需要重建提示(有些人会觉得这个比较烦人,比如我...)
三、按键升降电梯
完整蓝图:
1、Lerp插值(由A、B、Alpha三部分输入节点和一个Reruen Value输出节点组成,A、B进行数值从A到B的变换过程,Alpha和时间轴相连,即用时间轴在多少秒内其值从0到1来控制Alpha,用于位置移动,有一个很好过渡效果,A填写电梯位移初始值,B填写电梯位置末值)
用了lerp后,时间轴里面可以不设置值。这样时间轴就可以用于设置任何对象,有多个需求时可避免创建很多个时间轴轨迹或者时间轴
遇到的问题:电梯上去后,再次按E不会下降
原因:触发盒子和电梯模型组件同一层级,电梯上去后,触发盒子留在了原地
触发盒子要放在模型的层级下面