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

代码更新

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.mfbz.cn/a/144188.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

13.利用辗转相除法求两个整数的最大公约数和最小公倍数。如96,36

文章目录 前言一、题目描述 二、题目分析 三、解题 前言 本系列为循环结构编程题,点滴成长,一起逆袭。 一、题目描述 利用辗转相除法求两个整数的最大公约数和最小公倍数,如96,36 二、题目分析 最小公倍数(输入的两个数之积)除(它们的最大公约数) 三…

编程怎么学习视频教程,编程实例入门教程,中文编程开发语言工具下载

编程怎么学习视频教程,编程实例入门教程,中文编程开发语言工具下载。 给大家分享一款中文编程工具,零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件,而且可以开发大型的软件…

uniapp项目运行到网易mumu模拟器流程,5分钟不到就可以运行

开发了一个uniappvitevue3的跨平台项目,但是想在手机模拟器中测试一下效果,所以就用网易mumu这个模拟器测试了,因为这是uniapp官方推荐的模拟器,所以下面开始流程:先打开网易mumu模拟器的开发者模拟。系统应用 > 设…

打造全身视角的医院可视化能源监测管理平台,实现医院能源可视化管理

医院是大型公共建筑的一种,随着医院规模的不断扩大,医院能源消耗剧增,能源消耗居高不下。医院对于能源监管的需求也越来越高。医院建立一套能耗监测管理平台,对于降低医院能耗有着非常重要的作用。 医院能耗存在的问题 1、医院能…

突破职场竞争,引领未来发展:考取《研发效能(DevOps)工程师职业技术认证》

就业形势堪忧,什么最有保障?考个“国家级”证书傍身吧! 工信部教考中心作为中国领先的行业技能认证机构,其颁发的认证证书不仅代表了个人在信息技术领域的专业能力,更可以录入工业和信息化技术技能人才数据库&#xf…

视频封装格式

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

在SpringBoot中使用EhCache缓存

在使用EhCache缓存之前,我们需要了解的是EhCache缓存是啥? Ehcache的概述 Ehcache是一个开源的Java缓存框架,用于提供高效的内存缓存解决方案,他可以用于缓存各种类型的数据,包括对象,查询结果&#xff0…

第二证券:被举牌一般会有几个涨停?

跟着股市的昌盛,越来越多的人初步查验出资,而其中一个备受注重的策略就是“举牌”。举牌是指某个股东对股票达到了必定比例的控制权,并告诉公司的一种行为。这种行为除了会对公司股价构成影响之外,还可以让股民猜疑和进一步价格走…

盘点60个Python网站项目Python爱好者不容错过

盘点60个Python网站项目Python爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 链接:https://pan.baidu.com/s/1mY8pNUpZEV0Q-5-UvJTtBA?pwd8888 提取码:8888 项目名称 (No longermainta…

【前端开发】图例宽度根据数值自适应

前端开发 先看结果图 图例的宽度会随数值的改变而变化。 HTML部分 <!-- 数值部分 --> <ul class"tuli" ref"num"><listyle"margin-top: 5px;padding: 0 5px;text-align: center;"v-for"item of itemArr":key"i…

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

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

优化千万级数据表的实用指南

文章目录 优化千万级数据表的一次实践一、查询耗时太长二、优化解决方案三、优化后查询速度 优化千万级数据表的一次实践 一、查询耗时太长 随着数据量的增长&#xff0c;数据库性能往往成为关注的焦点。特别是在处理千万级数据表时&#xff0c;查询性能往往成为一个挑战。在这…

【运维 监控】Grafana + Prometheus,监控Linux

安装和配置Grafana与Prometheus需要一些步骤&#xff0c;下面是一个简单的指南&#xff1a; 安装 Prometheus&#xff1a; 使用包管理器安装 Prometheus。在 Debian/Ubuntu 上&#xff0c;可以使用以下命令&#xff1a; sudo apt-get update sudo apt-get install prometheus在…

企业软件定制开发流程|app小程序网站建设

企业软件定制开发流程|app小程序网站建设 随着信息技术的不断发展&#xff0c;企业日常运营对于软件的需求也越来越高。然而&#xff0c;市面上的通用软件往往无法满足企业的具体需求&#xff0c;因此&#xff0c;越来越多的企业选择进行软件定制开发&#xff0c;以便更好地满足…

新公众号没有留言功能怎么办?如何设置留言?

为什么公众号没有留言功能&#xff1f;根据要求&#xff0c;自2018年2月12日起&#xff0c;新申请的微信公众号默认无留言功能。有些人听过一个说法&#xff1a;公众号粉丝累计到一定程度或者原创文章数量累计到一定程度就可以开通留言功能。其实这个方法是2018年之前才可以&am…

Spring EL表达式原来都是配合这些类一起使用的

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 Spring EL表达式可以干什么 我们最常见的一些开源框架就经常会在注解中获取方法参数的值。 比如spring cache GetMapping("/test")Cacheable(cacheNa…

mysql 中with的用法(1)

mysql 中with的用法 1、案例一&#xff1a; 建表&#xff1a; CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),salary INT );INSERT INTO employees (employee_id, first_name, last_name, salary) VALUES (1, John, Do…

20-90V输入 降压12V 3A 外置MOS 大电流降压芯片

20-90V输入 降压12V 3A 外置MOS 大电流降压芯片

【运维】-- 在线网络工具

1、https://ping.pe/ 一个免费的在线网络工具&#xff0c;可以帮助您检测和分析IP地址的连接情况。 这是搬瓦工官方做的一个 ping 在线测试网站工具。比较适合测试短时间的 ping 统计&#xff0c;并且在网页上以图表形式统计显示出来。 PS&#xff1a; a、丢包会以红色显示出…

(八)Spring源码解析:Spring MVC

一、Servlet及上下文的初始化 1.1> DispatcherServlet的初始化 对于Spring MVC来说&#xff0c;最核心的一个类就是DispatcherServlet&#xff0c;它负责请求的行为流转。那么在Servlet的初始化阶段&#xff0c;会调用init()方法进行初始化操作&#xff0c;在DispatcherSe…
最新文章