ARPG----C++学习记录05 Section10 武器类,IK重定向,装备和捡起武器,动画蓝图

news2024/11/28 0:47:16

代码更新

11.13 · BAOfanTing/ARPG_Game_Code@7ab54d2 · GitHub

武器类

基于item类,创建一个weapon的C++类,基于它创建一个蓝图,刀剑的网格体给它。在蓝图里调动之前在C++写好的sin函数添加到世界偏移量里,得到一把悬浮刀

在item把重叠函数虚函数话,可以重写,重写后需要在重写的地方删掉UFUCTION,并使用override重写函数

当不使用super的时候不会调用父类函数也就是该函数目前是空的,我们经过这把刀不会显示名字。使用super需要把参数也 传入,这样会调用我们在父类里边写的显示名称

Sockets

进入人物骨骼树,在右手底下添加一个Socket(插槽,可以用来连接其他物体,可以和骨头一起移动)

右击添加一个资产预览,把剑添加上调整位置

获取挥剑动画

Mixamo  Mixamo动画资源网站

找到人物xbot,下载Tpose,在引擎里右击导入包或库,直接默认导入

找到想要的动画,不带皮肤下载

导入动画,并且选择之前下载的机器人骨骼

IK RIG和动画重定向

新建一个IKRig,选择机器人的骨架

先右击豚骨将它设置为重定向根,并且在此右键生成重定向链,然后将下表这些,头,手臂,手指,腿都设置重定向链

在对于人物的mesh新建一个ik rig,按照下表进行重定向链的搭建

新建一个IK retarget选择ik Xbot(现在有的动画的对象),双击进入,新建姿势,让人物和机器人的姿势差不多,这样重定向的动画才不会有太多问题,直接输出动画,这样就得到了拿剑和挥剑的动画,然后进入动画停在帧的位置,微调剑的位置

装备武器

编写代码

捡起武器

添加一个按键映射,E,绑定按键。在人物里添加一个内联函数(内联函数通常用于简单的操作,以提高性能,因为它们在编译时会被直接嵌入到调用它们的地方,而不生成额外的函数调用)

修改item,当人物与物体重叠时调用这个SetOverLappingItem函数将重叠物体存为一个变量

在weapon.cpp里重新写下把武器附加到手上的代码,在人物里能够调用,因此在人物文件里包含武器头文件

在人物cpp里先将重叠物体转换,然后调用Equip函数装上武器

Enum for Character State角色状态

在角色代码的开头创建一个枚举,对于下边的情况,其实已经赋值了,顺序是0,1,2。宏UENUM是为了让蓝图能够读取到这个枚举,UMETA的名字是为了在蓝图里看到

在我们拿起武器时,将角色状态设置为装备一把武器,为了让动画蓝图能够读取到这个变量,我们新建议一个characterType的头文件,将ENUM的代码剪切进去,这样我们就引用了一个很小的头文件。在动画的头文件里我们依旧新建一个角色状态变量

再到cpp里,在动画的每一帧里获取角色状态,和其他的状态变量一样

选择动画转态

进入动画蓝图待机动作处,使用一个BlendPose(混合动作)基于我们角色状态的枚举,把角色状态传入,新增两个pose,一个不拿武器待机,一个拿武器待机,这样动画就会根据状态变量来选择

找一个那武器往前走的动画,这里选上Inplace只有动画不会往前移动,下载导入重定向

一样的操作,使用动画混合让不同的状态有不同的动画

更好的组织动画蓝图

新建一个mainState的动画蓝图,然后将mainState的节点复制过去

此时GetCharacterstate是灰色的节点因为父类是默认的类,需要右击新建这个变量让它实际存在。对于其他出错的变量也进行新建,但这样的话其实这些变量永远都不会被设置

回到初始动画蓝图,新建一个LinkedAnimGragh,将新建的mainstate给他,并且绑定变量

在新建一个动画蓝图IK,将剩余节点复制过去,创建错误变量,新建一个inputpose,将它存储为cachepose并使用

回到初始动画蓝图,新建一个linkAnimGraph使用ik的那个蓝图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1207524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win10系统把D盘空间分给C盘的方法

在Win10系统中,用户发现C盘的空间太少了,导致电脑运作出现了卡顿的问题,所以想把D盘的空间分给C盘,但不清楚具体的操作步骤。接下来小编给大家介绍两种简单的操作方法,帮助大家轻松将Win10系统D盘的空间分给C盘&#x…

​Unity Vuforia 新手(图片识别)教程,后续整理 实体识别 详细流程

文章目录 前言一、Vuforia是什么?二、Unity导入Vuforia1.去Unity - Windows – Asset Store,搜vuforia engine,添加到我的资源2.打开package Manager,导入到工程中即可3.或者在vuforia engine官网下载的Unity包导入4.检查是否导入…

mysql数据库时间

记录MySQL今天又一个新的问题: 场景:nodejs后台容器部署 问题原因:纯属好心办坏事,由于考虑了时区(现在看来纯属多余),在写入时间时使用了time_str.toLocaleString("chinese", { ti…

android studio开发flutter应用,使用mumu模拟器调试软件

安装好mumu模拟器,先打开网易mumu模拟器的开发者模拟。系统应用 > 设置 > 关于手机 > 版本号 多点击几次调出开发者模式: 然后在android studio中刷新设备列表,就能看到新设备了: 如何确定这个设备就是你的mumu模拟器呢…

Cesium:绘制点

作者:CSDN _乐多_ 本文记录了在Cesium中绘制点的函数。 文章目录 data() 里面设置点的样式 pointOption: {show: true,pixelSize: 10,heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,color: Cesium.Color.RED,outlineColor: Cesium.Color.YELLOW,outl…

视频封装格式

FLV(Flash Video) FLV封装格式 Tag Data分为Audio,Video,Script三种 TS(Transport Stream)传输流 TS文件分为三层,(倒叙更好理解) TS层:在PES层基础上加入…

java 旋转方阵

public static void main(String[] args) {Scanner scanner new Scanner(System.in);// N阶方阵int n scanner.nextInt();// 构建方阵List<List<Integer>> matrix new ArrayList<>();for (int i 0; i < n; i) {List<Integer> row new ArrayLis…

RUST与Python对比分析

1 什么是Rust&#xff1f; Rust 是一种系统编程语言&#xff0c;注重安全性&#xff0c;尤其是并发安全性&#xff0c;支持函数式、命令式和泛型编程范式等多范式语言。Rust 在语法上与 C 类似&#xff0c;但设计者希望在保持性能的同时提供更好的内存安全性。Rust 最初是由 Mo…

集团VPN问题排查及核心交换机(思科C9500)路由编写

前言 昨天发现子公司A无法访问子公司B的服务器。已知之前是可以的。经过tracert及ping的简单排查。发现&#xff0c;A没有经过飞塔200F的防火墙出去。 已知集团使用两套防火墙。思科2110以及飞塔200F。并且在上方都做了VPN的配置。200F承接SD-WAN。 我们知道&#xff0c;当A公…

详述使用CubeMX配置STM32RCC时钟

&#x1f64c;秋名山码民的主页 &#x1f602;oi退役选手&#xff0c;Java、大数据、单片机、IoT均有所涉猎&#xff0c;热爱技术&#xff0c;技术无罪 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 获取源码&#xff0c;添加WX 目录 前言一…

帮助中心干货 | 4步即可快速搭建高效帮助中心

任何一个产品有用户涌入使用之后&#xff0c;都会不可避免地面临一个场景问题&#xff1a;如何及时、高效、便捷地解决用户使用过程中的问题&#xff1f; 在使用某些网站的功能或服务时&#xff0c;用户常常会遇到一些看似简单但没有说明依然可能难以理解的问题。如果问题没有…

linux查看端口占用情况

lsof命令 lsof(list open files)命令可以列出当前系统中打开的所有文件&#xff0c;包括网络端口。可以使用lsof命令查看某个端口被哪个进程占用。 具体的命令为&#xff1a;sudo lsof -i :端口号&#xff0c;其中端口号为需要查询的端口号。 netstat命令 使用netstat命令&a…

Vatee万腾的数字化掌舵:Vatee科技引领未来的新高度

随着数字化时代的到来&#xff0c;Vatee万腾以其卓越的科技决策力成为引领潮流的掌舵者。 Vatee万腾通过对科技前沿的不懈探索&#xff0c;站在了数字化创新的最前沿。其领先的科技团队致力于发掘并应用最新的数字技术&#xff0c;为用户提供卓越的数字化体验。 Vatee万腾以其…

运动耳机哪个牌子好性价比高?运动耳机品牌排行榜前十名

​其实&#xff0c;选择运动耳机并不只是看外观&#xff0c;性能也同样重要。在选择时&#xff0c;我们需要考虑几个关键因素&#xff0c;例如稳固性、舒适度和音质等。这些都是运动耳机必备的要求&#xff0c;因为它们能帮助我们在运动时更加专注于锻炼&#xff0c;而不会被耳…

操作系统——死锁(一文详解死锁,死锁产生的原因和死锁的解决方案)

1、什么是死锁&#xff1f;死锁产生的条件&#xff1f; 1.1、什么是死锁&#xff1f; 答&#xff1a; 在两个或者多个并发进程中&#xff0c;如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源&#xff0c;在未改变这种状态之前都不能向前推进&#xff…

Python:Virtual Environment——venv

文章目录 1 基本信息2 创建虚拟环境3 venv如何工作 1 基本信息 venv支持构建轻量级虚拟环境 包含独立的位于其site文件夹中的python package venv构建在base Python上在虚拟环境中执行pip会将package安装在当前的隔离环境中一个venv包含&#xff1a; 独立的Python解释器、libr…

在线预览编辑PDF::RAD PDF for ASP.NET

RAD PDF for ASP.NET作为功​​能最齐全的基于 HTML 的 PDF 查看器、编辑器和 ASP.NET 表单填充器&#xff0c;RAD PDF 为传统 PDF 解决方案提供了灵活而强大的替代方案。与 Adob​​e Acrobat Reader 不同&#xff0c;RAD PDF 几乎可以在任何现代网络浏览器中运行&#xff0c;…

推荐5款靠谱好用,无广告不流氓的软件

​ 话不多说&#xff0c;直入正题&#xff0c;全都是靠谱好用&#xff0c;无广告不流氓的好软件&#xff0c;可以先点赞收藏&#xff0c;以后慢慢用。 1.视频压缩工具——Moo0 VideoMinimizer ​ Moo0 VideoMinimizer是一款绿色免安装的视频压缩工具&#xff0c;它可以让你轻…

深度学习+opencv+python实现昆虫识别 -图像识别 昆虫识别 计算机竞赛

文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数&#xff1a;2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 4 MobileNetV2网络5 损失函数softmax 交叉熵5.1 softmax函数5.2 交叉熵损失函数 6 优化器SGD7 学…

干货!工业级3D开发工具HOOPS的开发环境探讨——3D模型格式转换篇

HOOPS产品主要应用于3D模型的转换、显示、处理和发布&#xff0c;包括HOOPS Exchange、HOOPS Communicator、HOOPS Visualize和HOOPS Publish等4种产品&#xff0c;其中&#xff1a; HOOPS Exchange主要应用于模型的文件格式转换。HOOPS Communicator主要应用于WEB端模型显示。…