环球快播:13_P122~P140WeaponMechanics

2023-03-23 08:53:22 来源:哔哩哔哩

122 Collision Box 碰撞盒

Adding a box component to our weapon 为我们的武器添加一个盒子组件


【资料图】

给weapon类添加一个boxcomponent组件

添加UBoxComponent 的class生命和头文件

新建Weapon类的构造函数

在构造函数中创建BoxComponet,并绑定在root组件上

打开UE,在武器的蓝图中,修改box的形状符合武器外观大小

123 Tracing跟踪

Sweeping With Box Shapes盒子形状的扫地

给武器添加了两个sence组件来确定碰撞检测的起点和终点,使用盒体检测 box trace by channel

碰撞之后,在碰撞点绘制一个图形

使用角色Echo检测碰撞

需要设置武器忽略对pawn的检测

然后设置角色

124 Box Trace in C++用C++实现碰撞

Performing our Trace From Code

新建UBoxComponent组件

新建两个USceneComponent组件,用来标记起点和终点

创建weapon类中的beginPlay()方法

创建OnBoxOverlap()方法,用于box的碰撞检测,加上UFUNCTION(),避免无法在游戏中生效

OnBoxOverlap()方法参数与OnSphereOverlap相同

实现功能

125 Dynamic Arrays动态数组

解释了动态数组的原理

126 Disabling Box collision禁止箱子碰撞

only trigger overlap events while attacking只在攻击时触发重叠事件

给攻击的蒙太奇动画添加打开碰撞和关闭碰撞的通知

然后在动画蓝图中,添加事件

在C++中,实现后面的SetWeaponCollision方法

首先需要在Weapon类中,新建一个可以返回Weaponbox的方法

然后设置WeaponBox在构造函数中,初始化碰撞类型为NoCollision

接着在Character类中,创建方法SetWeaponCollision()

最后用这个方法在动画蓝图中调用,并传入对应的参数就可以了

127 Unreal Interfaces虚幻的接口

Using Interfaces to Handle Getting Hit使用接口处理被击中

128 Enemies敌人

Enemy Character Class敌人角色类别

新建Enemy类,继承自Character然后再C++中设置了碰撞预设的一些参数

129 Root Motion Animations根运动动画

Animations that Actually Move the Character真正移动角色的动画

介绍了一个插件

https://github.com/enziop/mixamo_converter

可以将mixamo中没有root骨骼的动画,添加上root骨骼

从mixamo上找到了对应的动画,下载blander,安装插件,将动画批量处理后导入UE

130 mplementing Interfaces实现接口

Using our hit interface使用我们的点击界面

尝试创建其他的debug形状,并且将其封装为宏

在接口类中,声明一个纯虚函数

在Enemy类中,继承接口类,然后重写GetHit()函数,实现在指定位置绘制一个球体的功能

然后再weapon.cpp中,在碰撞检测方法中,向接口GetHit()方法传入参数

编译之后,就可以在游戏中,在击中目标的位置 绘制一个球体了

131 Hit React Montage 击中React蒙太奇

Creating a Montage for Hit Reacts为Hit react创建蒙太奇

创建被击中的动画蒙太奇

132 Playing the Hit React Montage播放Hit React蒙太奇

Making the Enemy Stumble让敌人跌倒

在C++中,实现播放蒙太奇的逻辑

在Enemy.h中 声明 蒙太奇对象和方法

在方法中实现简单的逻辑

在Enemy.cpp的GetHit()中关联播放动画的方法

编译之后,在游戏中就可以实现效果了

在动画中,启用根运动,这样,角色在执行位移动画时,在游戏中就会有实际的位移

133 Dot Product点积

Angle Between Two Vectors两个向量夹角

用C++实现求集中点和目标朝向夹角的代码

这里用UKismetSystemLibrary,将目标朝向和被击中的方向绘制了出来

134 Cross Product叉积

Another Advanced Vector Operation另一种高级矢量运算

自己添加的前后左右倒的逻辑

135 Directional Hit Reactions定向命中反应

Choosing the Montage Section Based on theta根据theta选择蒙太奇部分

与上面的代码相同

136 One Hit Per Swing每挥杆一击

Ignoring Actors we already hit忽略我们已经击中的actor

在Weapon类中,添加一个AActor的数组,用来存放需要忽略重叠的actor

然后我们在weapon的重叠事件逻辑中,在检测完成之后,将actor添加进入这个数组

然后在逻辑开始前,将这个数组里面的actor添加进入ActorsToIgnore中

然后我们回到Character类中,在动画通知碰撞检测关闭后,将这个数组清空,避免下次使用时失效

137 Hit SoundsPlaying a Sound 撞击的声音

when the enemy is hit

添加一个metesoundsources

在Enemy类中,声明一个USoundBase的变量,并使其可以在蓝图和实例中编辑

包含头文件

#include "Kismet/GameplayStatics.h"

在GetHit方法中添加如下

编译之后在蓝图中,添加matesoundssources

就可以在游戏中,击中目标之后发出声音了

设置声音衰减 新建一个声音衰减设置

回到MeteSoundsSources中

138 Hit Particles打击粒子

Spawning Blood when the enemy is hit敌人被击中时产生血

Visual Effects

Cascade

Niagara

在Enemy类中,声明一个UParticleSystem变量,并且将其开放给蓝图和实例

在Enemy的GetHit方法中,使用UParticleSystem

编译之后,在UE中,添加粒子

执行游戏可以检查效果

139 Weapon Trails武器追踪

Trail Visual Effects轨迹视觉效果

给武器添加粒子效果

打开AM_AttackMontage

新建一个通知轨道

添加一个尾部效果

点击trail,在右侧设置面板上,设置特效

然后来到角色的骨骼,在角色手部的位置添加两个插槽

将这两个插槽的名字设置进入特效中

保存后,进入游戏,挥动武器就会有拖尾效果了

140小结

标签:

环球快播:13_P122~P140WeaponMechanics

2023-03-23

大唐仙妖劫_大唐仙妖劫

2023-03-23

10月19号生日是什么星座(10月19日生日的是什么星座)

2023-03-23

全球微动态丨郑州市:全面实施“期货+”战略,打造期货价格规避中心和期货机构集聚中心

2023-03-22

每日焦点!教育技术学专业介绍

2023-03-22

HR三大支柱六大模块区别

2023-03-22

【环球时快讯】2023年3月22日山东省石脑油价格最新行情预测

2023-03-22

俗语:一人不进庙,二人不看井,三人不抱树,指的是什么? 当前视讯

2023-03-22

柯力传感(603662.SH)股东鲁忠耿与黄朝霞合计减持0.83%股份

2023-03-22

郑州银行董事长王天宇辞任 “75后”行长赵飞代为履职_环球观焦点

2023-03-22

兴产业 扩就业——重庆奉节高质量发展观察-当前关注

2023-03-22

环球观察:对称图案大全简单图片_对称图案

2023-03-22

速读:昆明参与川渝滇黔十六市区文化执法协作

2023-03-22

全球实时:基蛋生物:已研发出甲型/乙型流感病毒及呼吸道合胞病毒核酸联合检测试剂盒_荧光PCR法等

2023-03-22

鼎泰高科(301377):3月21日北向资金增持2.72万股 当前快播

2023-03-22

天天快消息!绝顶好图,不好看你抽我 第567期

2023-03-21

校友你好,欢迎回家!|资讯

2023-03-21

要闻速递:聚丙烯:2月供应缩量明显 3月供应面临增量压力

2023-03-21

全球实时:丰田要做改变,年轻人有那么一台可以选择

2023-03-21

二把刀

2023-03-21

当前讯息:中江县综合行政执法局考察组赴江苏、浙江学习餐厨垃圾处理体系

2023-03-21

当前热议!从幼儿园到初中 昆明西客站将配建这些教育资源

2023-03-21

时空地道_时空地道-天天播报

2023-03-21

怎么长高13岁_怎么长高

2023-03-21

陕西镇巴天坑发现1500余株野生红豆杉

2023-03-20

农垦系统继续开展带头扩种大豆油料行动

2023-03-20

好买基金:3月17日当周公募偏股型基金小幅加仓0.09个百分点

2023-03-20

CBA消息:山东队内讧,王晗下课 杜锋不满球队阵容,阿的江又甩锅|天天信息

2023-03-20

王志恒:金融业应积极支持服务实体经济,强化风险管理理念

2023-03-20

细照笃行议论文_细照笃行是什么意思

2023-03-20

Copyright ©  2015-2023 非洲频道网版权所有  备案号:沪ICP备2022005074号-8   联系邮箱:58 55 97 3@qq.com