UE4 技能系统(GAS插件的使用) 01--Build Basic Classes 创建基础类

2023-11-16

翻译自Udemy的视频课程introduction-to-unreal-engine-4-ability-system

Build Basic Classes 创建基础类

1、创建工程和人物设置

01、创建Git仓库,使用UE4.22 + VS2019 创建C++基础工程,并添加Paragon Shinbi到工程中

02、创建C++ BaseCharacter,并且基于该Character派生蓝图子类BP_BaseCharacter

03、BP_BaseCharacter中指定Mesh,添加SpringArm和Camera,适当调整位置,编译保存

04、创建蓝图GameMode,命名为BP_GameMode,在其中指定Default Pawn class为BP_BaseCharacter,并且在项目工程设置里(Edit->Project Settings->Maps and Modes)设置Default Mode为BP_GameMode

2、为Shinbi添加基础移动控制

01、Edit->Project Settings->Input 添加输入

02、创建C++ Player Controller类,并基于此派生蓝图子类BP_BasePlayerController,在GameMode中指定PlayerController为BP_BasePlayerController

03、在BP_BasePlayerController的EventGraph中添加基础的移动控制逻辑

 3、添加相机的旋转控制

01、在BP_BasePlayerController的EventGraph中添加基础的相机控制逻辑

 这里设置后不能够控制相机的Pitch

相应的需要在BP_BaseCharacter中设置继承Controller的Pitch和Yaw以便使得Character来使用Controller的旋转,然而你会发现旋转相机的时候人物也会跟着上下旋转

所以采用另一种方式:C++中经常会对SpringArm说bUsePawnControlRoation=true也是这个道理

SpringArm中:

 02、当前的相机设置是符合射击游戏需求的,但是RGP游戏中经常想观察人物(。。。),即不想让左右旋转相机的时候让人物跟着动,将Use Controller Rotation Yaw取消勾选。

 另外还要再Movement component中勾选Oriten Rotation to Movement,这样子在移动的时候,人物在移动的时候会自动转向相机所面对的方向

 03、当在移动的时候相机旋转的太快,人物在转向相机的方向时候不自然,将Rotation Rate 设置的大一些,如720

4、动画蓝图中的EventGraph

01、创建animation blueprint,命名为AnimBP_Shinbi。

02、EventGraph中主要是获取Velocity(用于驱动动画是否奔跑)和IsFalling(用于驱动动画是否跳跃)

 三个变量OwnedCharacter、MeshSpaceVelocity、IsFalling

5、动画蓝图中使用BlendSpace

01、AnimGraph的逻辑是通过状态机实现的,添加一个statemachine,locomotion表明动画发生在local space

02、创建一个BlendSpace,命名为BS_Idle_Walk_Run

03、在动画蓝图中使用该BlendSpace

6、动画蓝图中添加Jump

01、状态机中添加对应的动画与转换逻辑(简化了Jump部分的逻辑)

 

 7、使用动画蒙太奇做Melee Attack

在动画蓝图中,Animation montage的播放时通过slot来完成的,

01、创建Animation montage,命名为AM_Shinbi_Melee

02、拖入想要播放的动画片段,可以指定自定义的slot

 03、动画蓝图中,添加一个slot,指明为自定义的slot

04、在BP_BaseCharacter中创建一个Custom Event,当该事件发生的时候用来播放攻击的动画蒙太奇

05、设置输入PrimaryAction绑定到鼠标左键,在BP_PlayerController中的鼠标输入事件中调用MeleeAttack

8、想要在播放动画蒙太奇的过程中不打断下半身的运动,使用layerblendPerBone节点

其中该节点的相关设置,参照Shinbi自带蓝图

(说明,这里的动画上下半身不自然是由于上半身有一个360度转体的动作,如果没有较大转体的动作话会较自然一些,所以将之前的动画蒙太奇中的动画片段改为使用PrimaryMelee_D_Slow),如果我就是想用这种转体较大的动作时,我应该如何做呢?所以就有了下一节:

9、针对Montage中添加Notify

01、第一帧的时候添加一个Notify,命名为StartFullBody,适当的位置添加StartHalfBody

 02、动画蓝图中就会相应的获取到相应的通知事件,设置一个bool变量

 03、AnimGraph中应用BlendPosesByBool

 (说明,这相当于是强制性的播放完整动画,感觉在有的动画播放的时候应该停止移动,在接收到Start HalfBody这个通知的时候才可以移动,这样子才比较合适,如下是我自己添加的部分,主要是在人物中添加了两个CustomEvent用于设置MaxWalkSpeed的大小),此外还需要设置动画的播放速度,太快了反而缺乏感觉

 由于GAS还不完全支持蓝图,需要用到C++,在下一篇中继续记录

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UE4 技能系统(GAS插件的使用) 01--Build Basic Classes 创建基础类 的相关文章

  • UE4 Slate 柱状图

    Fill out your copyright notice in the Description page of Project Settings include ZZTWidget h include Windows AllowWind
  • 解决UE4启动出现UE4Editor.exe-无法找到dll入口的弹窗

    UE4编辑器启动 一开始遇到的问题如下 上网找问题得到的解答都是在cmd下利用regsvr32 exe注册该dll到注册表 但是也提示报错 上网搜了一下 得知原因是生成该dll的源码没有实现 DllRegisterServer和DllUne
  • UE4_UATHelper: Packaging (Windows (64-bit)): ERROR: Failed to copy

    在项目中引用了开发的插件 插件中引用了第三方库 目录结构如下 报错信息如下 UATHelper Packaging Windows 64 bit ERROR Failed to copy E Project WorkSpace KafkaD
  • UE4、5不让贴花影响Mesh

    如果不想让贴花影响某些在移动中的物体穿过它也会受到影响 例如人 车之类的 可以把mesh里的Receives Decals选项去掉
  • 如何解决x盘莫名出现的msdia80.dll文件

    如何解决x盘莫名出现的msdia80 dll文件 参考文章 https zhuanlan zhihu com p 138954717
  • UE4 解决当角色走到一个物体上时会被弹开的问题

    检查被踩物体的碰撞组件Collision那一栏的CanCharacterStepOn是否是Yes 如果不是请更改之 如果没效那就是其他的碰撞问题
  • UE 材质学习

    值材质三原素 材质 材料 肌理 纹络 or 纹理 图案 Material Texture Pattern UE5中对应材质的 三原素 的内容 材质 Metallic 金属感 Roughness 粗糙度 Specular 高光 镜面 肌理 N
  • 【UE4】多视角相机捕获图像如何同屏拼接在一起

    前段时间有个Demo移植的需求 需要把实时裸眼3D多视角立体显示的Unity版本移植到UE4 主要包含后处理Shader 相机矩阵变换 多视角画面平铺拼接三大部分 10 10 多视角相机捕获图拼接效果 对现有的多窗口显示方法进行查阅后 发现
  • 2022年11月7日--11月13日(ue4 tf1视频教程+cesium for ue源码CesiumUtility抄写,本周10小时,合计1737小时,剩余8263小时)

    目前 mysql 7 1 tf1 3 3 oss 12 1 蓝图反射 1 7 moba 1 5 webapp 2 4 mmoarpg 00A 04 socket 2 8 根据月计划 ue4 tf1视频教程 进度按照每天一小时时长视频 其余时
  • UE-从鼠标出进行射线检测

    第一种方式 Convert Mouse Location To World Space 将鼠标屏幕2D位置转换为场景空间3D位置和方向 将鼠标位置从2D转换成3D 第二种方式 Deprohiect Screen to World 将给定的2
  • 11月5日 Unreal Engine Rider 代码使用记录

    11月5日的代码使用记录 TSubclassOf UPROPERTY EditAnywhere TSubclassOf
  • ue中的经纬高转xyz的问题

    在ue中 做了个地球仪 发现经纬度转地心坐标系老是出问题 后来发现 是转ue时 x y坐标要互换 也对 因为在cesium for unreal中还有一系列ecef转ue的相关函数 即下面的代码中 xy需要互换 在ue中才能正常使用 偏心率
  • UE4 通过Echarts实现各种统计图

    主要内容 本文主要讲解UE4 UMG向网页发送数据 通过WebBrowser插件将用Echarts定制好的统计图在UE4内展现出来 达到数据可视化的效果 本文主要演示柱形图的效果 其它类型的统计图可以结合Echarts官方案列以及文档自行修
  • UE4 UI界面

    在UE4中创建UI界面是创建一个widget 进去之后左上角是选择控件 找到直接拖上去 中间那个框代表的就是我们的屏幕 在button中打字也就是给button命名时需要在上面在拖一个text控件 更好的排版可以改变锚点 这四个就类似与边距
  • UE4 VR WidgetInteraction 局域网设定

    无论用什么 我们要先确定是什么 鲁迅 下面是关于WidgetInteraction的官方定义 控件交互组件执行光线投射 确定它是否命中世界场景中的控件组件 如命中 可设置规则确定与其交互的方式 交互通过模拟定义的按键来执行 例如一个按钮可通
  • 第十七篇:Unity/UE4如何实现Cave空间(一)

    首先什么叫CAVE空间 CAVE是围绕着观察者具有多个图像画面的虚拟现实系统 多个投影面组成一个虚拟空间 理论上CAVE是基于计算机图形学把高分辨率的立体投影技术和三维计算机图形技术 音响技术 传感器技术等综合在一起 产生一个供多人使用的完
  • UE4_插件开发引用第三方库编译报错[Error C4668]

    C Program Files x86 Windows Kits 10 include 10 0 16299 0 um winioctl h 7542 error C4668 WIN32 WINNT WIN10 TH2 is not def
  • ue4_timeline时间轴

    1 给一个cube添加蓝图 需要修改的是z轴方向移动位置 将z轴传入时间轴 时间轴蓝图如下 z轴时间轴修改为 第一个节点 time 0 value 300 物体的z轴初始位置 第二个节点 time 1 value 600 z轴移动300个单
  • 时间戳获取

  • UE4(Unreal Engine4)在蒙太奇动画中添加音频轨道通知

    UE4系列文章目录 文章目录 UE4系列文章目录 前言 一 遇到的问题 二 操作步骤 前言 UE4 Unreal Engine4 在蒙太奇动画中添加音频轨道通知 我们想在某一帧动画中添加声音 比如我们想在动画的第13帧这里添加音效 一 遇到

随机推荐

  • python 贪吃蛇小游戏代码

    usr bin python coding UTF 8 作者 黄哥 链接 https www zhihu com question 55873159 answer 146647646 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权
  • 再见!微软官宣放弃Mac 版 Visual Studio IDE

    程序员的成长之路 互联网 程序员 技术 资料共享 关注 阅读本文大概需要 5 分钟 来自 撰稿丨千山 对于Visual Studio 只要是开发者 或多或少都接触过 发布于1997年的Visual Studio标志着微软第一次将这么多开发工
  • 关系代数之专门的关系运算(选择、投影)

    选择 选择运算是从指定的关系中选出满足给定条件 用逻辑表达式表达 的元组而组成一个新的关系 进行选择运算的对象是 一个关系当中某一个属性的值 选择运算是将一张表当中的某一属性进行筛选 比如 将性别 sex 这列当中性别为女的元组筛选出来组成
  • constraint的一些用法总结

    主要就是增加约束的 以下几种约束 并 一一列举 1 主键约束 要对一个列加主键约束的话 这列就必须要满足的条件就是分空 因为主键约束 就是对一个列进行了约束 约束为 非空 不重复 以下是代码 要对一个列加主键 列名为id 表名为emp 格式
  • 刷脸支付:双12刷脸支付5折省翻天,政策持续补贴预热双十二

    刷脸支付成潮流 三家巨头争江山 刷脸支付的使用场景正在深入拓展 进入每一个与人民生活息息相关的行业 在政府综合政务 社会公交运输 商超营销运营 酒店景区服务等各方面都出现了刷脸支付的身影 我们能够看到 科技是在进步的 社会是在进步的 二维码
  • Caffe2——cifar10数据集创建lmdb或leveldb类型的数据

    cifar10数据集和mnist数据集存储方式不同 cifar10数据集把标签和图像数据以bin文件的方式存放在同一个文件内 这种存放方式使得每个子cifar数据bin文件的结构相同 所以cifar转换数据代码比mnist的代码更加的模块化
  • Vue项目提示 doesn‘t work properly without JavaScript enabled. Please enable it to continue

    由于本地是用docker部署了一套微服务 为了避免跨越问题 前端使用的nginx配置转发后端路径 访问返回状态时200 但是在response返回We re sorry but doesn t work properly without J
  • 「雕爷学编程」Arduino动手做(37)——MQ-3乙醇易燃气酒精传感器模块

    37款传感器与模块的提法 在网络上广泛流传 其实Arduino能够兼容的传感器模块肯定是不止37种的 鉴于本人手头积累了一些传感器和模块 依照实践出真知 一定要动手做 的理念 以学习和交流为目的 这里准备逐一动手试试做实验 不管成功与否 都
  • Android studio心得——fragment动态加载

    前言 在Android应用程序中 Fragment是一种可以嵌入Activity中的组件 通过 Fragment 我们可以将UI 目录 前言 一 什么是Android Studio 二 简介Fragment 三 学期知识汇总 四 什么是碎片
  • C++类与对象--static修饰符

    C 类与对象 static修饰符 1 类静态数据成员的定义及初始化 1 1 声明 1 2 初始化 1 3 调用 1 4 案例 1 5 小结 2 类静态成员函数的定义 2 1 声明 2 2 调用 2 3 案例 2 4 小结 3 static
  • 数据库字段类型

    太长时间没有操作数据库 收集了部分有用的资料 一 创建数据表 CREATE TABLE mytable id VARCHAR 4 NOT NULL name VARCHAR 10 sex CHAR 1 createtime DATE age
  • ROS系统

    参考 https blog csdn net qq 28087491 article details 119053810 https www bilibili com video BV1zt411G7Vn spm id from 333 3
  • 静态网页怎样实现动态交互?-JavaScript

    在Html基础上 javascript能够开发交互式web网页 javascript的出现使得网页和用户之间实现了一种实时性的 动态的 交互性的关系 javascript短小精悍 又是在客户机上执行的 大大提高了网页的浏览速度和交互能力 同
  • Python高级培训第三次作业

    任务 作业 import threading 导入threading库 import time 导入time库 class Get time object 创建类Get time 用于获取当前时间 def init self each ti
  • “msg“:“Request method ‘GET‘ not supported“,“code“:500原因及解决

    GetMapping add parentId 这里的路径纠错 漏 了 controller 缺少add的保存方法 GetMapping add parentId 及其以下 Html出现错误 如下图
  • B树及其基本操作、B+树的基本概念

    B树及其基本操作 B 树的基本概念 1 B树 B 树的基本概念 1 B树的基本概念及性质 2 B 树的基本概念及性质 2 B树与B 树的区别 3 B树的基本操作 1 B树的查找 2 B树的插入 3 B树的删除 1 B树 B 树的基本概念 1
  • SpringBoot集成海康设备网络SDK

    文章目录 SDK介绍 概述 功能 下载 对接指南 集成 初始化项目 初始化SDK 初始化SDK概述 新建AppRunner 新建SdkInitService 新建InitSdkTask 新建 HCNetSDK 调用业务接口 部署 拷贝so库
  • 解决鼠标右击菜单的新建中没有“文本文档”的问题

    解决鼠标右击菜单的新建中没有 文本文档 的问题 原创 丶无殇 2022 2 12 注意 博主测试平台为WIN10系统 其他系统不保证一定可以 一 问题现象 在桌面右击打开新建菜单时没有文本文档这个选项 二 问题原因 有以下可能 安装某个软件
  • 单链表的数据结构和基本操作

    单链表的基本操作 头结点单链表的基本操作 头结点单链表的数据结构 头结点的初始化 插入新结点 头插法插入新结点 尾插法插入新结点 按位置插入新结点 删除节点 头删 尾删 按位置删 头指针单链表的基本操作 实现代码 链表是一种线性结构 在存储
  • UE4 技能系统(GAS插件的使用) 01--Build Basic Classes 创建基础类

    翻译自Udemy的视频课程introduction to unreal engine 4 ability system Build Basic Classes 创建基础类 1 创建工程和人物设置 01 创建Git仓库 使用UE4 22 VS