Unreal蓝图-day1

砂糖桑
Aug 21, 2022
Last edited: 2022-8-22
type
Post
status
Published
date
Aug 21, 2022
slug
unreal-day1
summary
学习Unreal蓝图的第一天。主要进行工程的准备、人物移动的设置和Mixamo下载的fbx模型与动画的导入,为明天的动画重定向做准备。
tags
虚幻4蓝图
category
虚幻引擎
icon
password
Property
Aug 22, 2022 03:27 AM
📖
学习B站上的《UE4蓝图开发生存游戏教程》做的笔记。
UE4蓝图开发生存游戏教程_哔哩哔哩_bilibili
UE4蓝图开发生存游戏教程共计69条视频,包括:001 UE4框架、002 准备工程、003 HUD、004 相机原理及角色位置修改、005 旋转的实现、006 角色跟随相机旋转、007 下载和处理动画、008 动画模型骨骼和动画蓝图、009 导入骨骼和动画、010 动画重定向(不同骨骼)、011 理解动画蓝图-数据驱动动画、012 前进后退、013 冲刺动画、014 修复滑步问题和后退冲刺问题、015 加入左右平移、016 第一人称和第三人称切换、017 设置和初始化属性、018 持续减少饱腹度、019 塌陷为宏、020 创建运行时UI、021 关联UI和数据、022 创建GlobalTimer、023 设置昼夜循环逻辑、024 设置昼夜循环效果、025 准备道具素材、026 虚幻碰撞系统、027 解决碰撞的两个问题(及初识接口)、028 接口、029 拾取面板UI、030 显示拾取面板功能、031 初步拾取功能、032 背包系统尝试增加物品、033 完善拾取功能、034 创建拾取面板、035 显示物品列表、036 背包实时添加元素、037 修改鼠标隐藏Bug并增加消息显示、038 增加储物箱的蓝图和界面、039 储物箱添加和删除内容、040 储物箱UI的初始化和移除元素、041 判断左右键点击、042 物品栏被点击的初步处理、043 Content数组改造为字典、044 物品栏删除物品函数、045 右键点击背包、046 改造Cabinet中的Content数组为字典、047 左键点击背包物品、048 储物箱的点击功能、049 基础游戏循环、050 完善游戏循环、051 结算面板、052 倒地动画(Ragdoll)、053 软件开发模式、054 准备僵尸资源、055 AI基础框架搭建、056 行为树、057 EQS、058 随机巡逻、059 按路径巡逻、060 行为树进阶知识、061 僵尸添加动画、062 完善行为树、063 RootMotion、064 给僵尸应用RootMotion、065 平滑移动(到固定点)、066 再次考虑Task的性能、067 平滑追击玩家、068 分析天光性能问题、069 改进天光性能等,UP主更多精彩视频,请关注UP账号。
UE4蓝图开发生存游戏教程_哔哩哔哩_bilibili
第一天,学习了P1-P9。可能是教程比较好吧,这次总算是有一个比较好的开始了。

UE4基本概念

  1. GameInstance:游戏实例是贯穿游戏始终的,不论什么时候都可以访问到。所以常常用来放置独立于关卡的东西,如显示UI。(初始界面、退出界面等)
  1. GameMode:游戏模式就是一个玩法,包括了游戏的规则等。它和关卡绑定(一对多),但是一个游戏可以有多种玩法。
  1. GameState:记录游戏的信息,和GameMode配合使用。
  1. Pawn/Character:游戏的主体,包括玩家操控的角色、NPC、野怪等。CharacterPawn的区别就是前者更倾向于是人。
  1. PlayerState:记录玩家的信息,和Pawn/Character配合使用。
  1. PlayerController:一个控制器也有一个角色。控制器是UE抽象出来的一个层,联系了玩家和游戏的角色。玩家向控制器发出指令,控制器控制它拥有的角色行动。
  1. 蓝图、关卡蓝图、蓝图类。

使用模板

使用UE4提供的第三人称模板。但是这些模板的文件有些多余和混乱,还需要手动整理。
  1. 删除第三人称模板场景中原有的的几何体、自带的关卡。只留下GameMode和Character这些必要的东西。
  1. 按照需求引入第一人称游戏的蓝图功能。同样对不需要的东西进行删除(不需要的以及和第三人称模板中重复的)。
  1. 创建新的文件夹并进行整理:
    1. 创建BluePrints文件夹,专门放置蓝图。将Character、GameMode和HUD移动到此处。
      1. notion image
    2. 使用原来的Mannequin文件夹,将第一人称和第三人称的合并。
      1. notion image
    3. 创建Textures文件夹,用于放置纹理。
      1. notion image
    4. 创建Levels文件夹,并在该文件夹下保存关卡。
      1. 创建关卡的步骤为:文件 > 新建关卡 > 保存当前关卡 > 选择Levels文件夹。
        notion image

十字准星

十字准星属于HUD,在BluePrints文件夹下的HUD里面设置。
notion image
💡
绘制纹理里面的选项先理解关键的几个就行了。(其实其他也很好理解,但是指定纹理的路径不太懂)

角色位置的修改

模仿绝地求生,将十字准星放在屏幕正中央,角色在十字准星的偏左侧——这样比较和谐。
notion image
打开Blueprints中的Character,先研究它的这些组件:
notion image
  1. 胶囊体组件:包括箭头组件(人物朝向)网格体(人物模型)。胶囊体的功能还有处理碰撞。
    1. notion image
  1. CameraBoom:相当于一个旋转臂。相机以白点为中心绕这个旋转臂旋转。
    1. notion image
  1. Camera:相机本身。可以对其位置进行调整。
    1. notion image
💡
要实现绝地求生那样人物向左下移动的效果,需要调整Camera的位置:
  1. CameraBoom向上移动
  1. Camera向右移动
ps:不能向右移动CameraBoom,不然有问题

按键的设置

按键在Character的蓝图里面已经设置好了,在引擎 → 输入可以找到绑定的按键:
notion image
notion image
其中包括了多种设备的按键,如手柄GamePad、鼠标Mouse、键盘Keyboard。

角色跟随相机旋转

现在移动相机人物依然站在原地不动,显然不符合一般的TPS游戏。正确的应该是人物朝向会跟随摄像机的方向一起移动。

方法一

选择Character(自身),勾选Pitch(俯仰角)、Yaw(偏航角)、Roll(滚转角)。实际上,Roll一般不会用。
notion image
notion image
这种方法得到的角色方向的转动和摄像机的转动是同步的。比较好操控,但是看起来有点生硬。

方法二

在角色移动中按下图的方式进行勾选,并设置绕Z轴旋转(Yaw)的速率。
notion image
人物旋转比摄像机旋转慢那么一点体验会好一些。

更好的体验

需要使用蓝图来实现下面的功能。
  1. 延迟旋转:当控制器朝向与人物朝向的角度相差50°后才开始旋转。
    1. notion image
  1. 人物与控制器存在角度差时向前移动的过渡衔接。
    1. notion image

骨骼与动画

现在人物的向前跑的动作基本没有问题了,但是其他动作还存在问题,比如水平移动,后退等:
所以还需要下载并导入相关的动作。在Mixamo这个网站上可以找到丰富的动画与人物模型:

基础知识

先要理解骨骼、动画与网格模型之间的关系:
  1. 动画依托于骨骼,可以理解为骨骼带动整个模型的运动。
  1. 一个比较完善的人物模型往往要包含网格(Mesh)骨骼(Skeleton)
  1. 骨骼相同的两个模型,可以通用一套动画。
  1. 骨骼与模型,骨骼与动画之间都是一对多的关系。
  1. UE4中的动画重定向功能就是通过手动的调整,使两个不同的骨骼使用一套动画的过程。
notion image

导入骨骼和动画

在Mixamo中下载好的骨骼动画:
notion image
动画的预览如下:
💡
需要先导入有骨骼的 Walking Backward.fbx,再导入其他骨骼动画。
 
Unreal蓝图-day2HTML 笔记