UE4射击系统之射击感思路

射击瞄准都是通过相机朝向瞄准,就是屏幕中心发出,屏幕中心画准星。

射击感:暂时忽略射击特效、声音,这里仅仅从瞄准方向不同枪打出不同的击中效果(如Z、7、S等字样偏移曲线效果)和根据该字样方向抖动屏幕

瞄准朝向:通过GetPlayerViewPoint获取,最终瞄准朝向会叠加射击偏移效果得到最终瞄准朝向

射击偏移效果:通过曲线UCurveVector,不同枪设置不同的曲线,曲线交给策划调整,主要根据持续开火时间获取到曲线偏移效果

持续开火时间:第一枪开始的到停火时间,可以通过每种枪的开火间隔时间,每发子弹叠加开火间隔时间

最终瞄准方向 就是 原瞄准朝向 叠加射击偏移效果(根据持续开火时间获得)

抖动屏幕效果,可以通过GetActorEyesViewPoint函数修改实现,获取前面射击曲线偏移效果叠加到相机朝向输出

通过以上方式思路,过程还可以通过三角函数、VRandCone等数学函数插入一些枪支属性射击效果

 

枪开镜瞄准晃动效果,就是枪打开了瞄准镜(镜片使用后处理材质显示不同效果,FMinimalViewInfo里的PostProcessSettings.AddBlendable设置后处理材质),改变相机FOV(设置不同倍镜,改变FOV可以在CalcCamera函数里通过自定义曲线和插值函数平滑的设置FOV),瞄准过程中镜头晃动效果,其效果需要叠加到原瞄准朝向

枪开镜瞄准晃动效果第一可以通过改变屏幕X,Y得到屏幕上下左右偏移,X,Y分别在当前武器tick函数通过三角函数Sin模拟得到晃动偏移量(要注意回落原点),然后叠加到原瞄准朝向;第二视角可以把相机观察位置设置到主角模型右手插槽位置(UpdateViewTarget里修改),通过其晃动偏移量在动画蓝图上改变手骨骼空间(改变骨骼位置可能用到动画蓝图节点CopyBone复制虚骨骼保存恢复改变骨骼空间,TransformBone改变骨骼空间),其实除了自定义晃动偏移量鼠标滑动偏移量(绑定鼠标Mouse X的自定义函数Turn,Turn获取RotationInput.Yaw构造一个平滑鼠标滑动偏移量)等很多影响因子也影响晃动效果,不管哪种晃动因子,最终算出因子的偏移量,也在动画蓝图蓝图改变手骨骼空间,这样相机屏幕根据手摆动得到不同晃动效果了。

改变右手骨骼空间时,必须相对眼睛骨骼那个位置(求出晃动偏移量都是基于相机原点朝向,瞄准时候相机相当于眼睛),手拿枪瞄准动画注意相对眼睛骨骼位置上,声明一个虚骨骼RootBone(眼睛骨骼CopyBone到RootBone),RootBone子节点挂一个虚骨骼RightBone(右手骨骼CopyBone到RootBone),晃动偏移量改变虚骨骼RootBone就达到晃动手效果了。

这里说的思路关键点比较粗略,由于射击系统确实有点复杂,后面会持续更新详细代码蓝图实现。

 

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值