11_P95~P106TheWeaponClass

2023-03-23 08:55:26 来源:哔哩哔哩

95 the weapon Class武器类

inheriting from the item class从Item类继承


(相关资料图)

新建weapon类,从item类中继承

如果weapon类中需要重写item中的方法,需要将item中的函数定位为virtual ,在weapon类中的定义后面加上override

如果在weapon的类中,需要使用item中原来的方法,则需要加上Super::引用

96 Sockets接口

adding sockets and attaching actors to them添加套接字并将角色附加到它们

打开Echo的骨骼,找到左右手,可以给手骨添加socket插槽

添加预览模型

97 Downloading Animations下载动画

Finding Animations for equipping a sword找到装备剑的动画

mixamo.com

从网站上找到需要的动作下载,下载时候 不要带皮肤

然后导入UE

98 IK Rig

Creating an IK Rig for Animation Retargeting为动画重定向创建IK Rig

新建 动画->IK绑定

选择两个骨骼,并对骨骼进行IK绑定

99 IK Retargeter IK重定向

Retargeting Mixamo Animations to Echo

新建一个IK重定向器,在编辑窗口中,将两个骨骼初始位置要调整一致,然后就可以导出新的动画

100 Attaching the Sword 绑定武器

attaching the sword to the right hand socket

佩剑

把剑固定在右手的插座上

蓝图实现:在weapon的蓝图中编辑如下:

注意 右侧三个选项 需要时对齐到目标

C++实现

101 Picking Up Items拾取物品

Creating an Action Mapping to Pick Up Items创建拾取物品的动作映射

希望实现按下E键 拾取道具

首先我们现在UE项目设置中,设置E按键的操作映射

我们吧之前在Weapon中实现的检测重叠的函数移动到父类Item中,只在Weapon类中实现装备Equip的效果,然后再Character类中 实现传入重叠对象参数的函数

首先在Character中包含item和weapon的头文件

在Item中包含AEchoCharacter头文件

然后声明EkeyPress函数,并将其绑定至E键

实现EKeyPress函数的功能,传入绑定的Mesh参数和Socket名称给Weapon的Equip方法

然后在Item中的OnSphereOverlap中,判断碰撞的是否为当前角色EchoCharacter,并将Character赋值给Item的AEchoCharacter类对象

最后在Weapon中,实现Equip的方法

使用AttachToComponent将得到的角色Mesh,转换规则TransformRules,绑定socket的名称InSocketName 传入

102 Enum for Character State角色状态枚举

Creating an Enum fro the Character's State为角色的状态创建Enum

如何正确的在UE中声明一个枚举

我们需要在枚举对象的名称前面加上大写的E,表示这是一个枚举参数

建议在前面加上类型限定,如果这个枚举只是在EchoCharacter类中使用,最好加上类限制,避免与其他类中相同的枚举名称重复,虽然不会有问题,但是这样可以提高可读性

在前面加上UENUM(BlueprintType) 建立反射给UE系统,这样可以在蓝图中使用C++建立的枚举类型

我们可以在枚举中,每个标识符的名称前面加上缩写以提高可读性,比如Enum Character State 可以缩写为ECS,并附加在标识符名称前面

将这个枚举单独写在一个头文件中,这样可以在其他类里面,直接包含这个头文件,而不是包含character的头文件

我们在character类中新建一个const函数,可以返回当前角色的状态

这样在EchoAnimInstance中调用这个函数,就可以获得当前角色的状态

103 switching Animation Poses切换动画姿势

Changing Poses Based on character state根据角色状态改变姿势

104 Equipped Animations装备的动画

more animations for a Single-handed weapon单手武器的更多动画

像P98一样 ,给echo添加持武器跑步的姿势

依然需要从网上下载跑步的姿势,导入

然后用xbot创建的ik文件 转换动画

然后在echo的动画蓝图中添加状态

105 Linked anim graph链接动画图

Linking multiple animation blueprints链接多个动画蓝图

新建一个动画蓝图,将之前ABP_Echo中的动画,复制到新的蓝图中

新的蓝图中,先编译一下,可以看到缺少一些变量,找到缺失的变量,然后新建

删除ABP_Echo中的节点,然后新建一个节点 Linked Anim 然后找到新的动画蓝图

在新建节点的设置界面,将参数传入,一一对应

节点

将右上角填入传入的对应的参数

106小结

标签:

最新内容