动态创建Texture2D
本文字数:
2.2k
阅读时长 ≈
2 分钟
直接贴代码
细说UE的碰撞与检测
本文字数:
3.9k
阅读时长 ≈
4 分钟
RootMotionSource原理分析和插件封装
本文字数:
7.3k
阅读时长 ≈
7 分钟
前言
说到Root Motion, 通常会想到的是Root Motion Animation, 将位移量嵌在Animation中, 角色Tick Pose时会计算frame之间的root bone的偏移量, 換算成velocity与acceleration, 然后PerformMovement, 如此可以表现到角色位移上, 但是在多人游戏中, Root Motion Animation是个不安定因素, 在网络延迟不稳定时, 玩家就会发生被Server拉回矫正的情况
Paragon中使用了RootMotionSource(下面简称RMS)这个技术, 策略是动画单独播放, 程序控制位移
RMS是一个非常规性的RootMotion技术, 本质上已经脱离了动画, 通过程序模拟来实现每一帧的根骨骼位移. 相比较手动SetActorLocation等等的暴力方式, 好处是这套流程是在角色移动组件里的(下面会细讲), 不仅使用方便也满足于角色移动同步流程.
角色移动随笔
本文字数:
9.5k
阅读时长 ≈
9 分钟
前言
角色移动相关的林林总总
QA
- Q: 角色移动来自哪里
- A:
- 按键输入
- 物理力(Force)
- Launch
- 动画RootMotion
- RootMotionSource
- RequestVelocity
- Gravity
- Q: 角色的Z方向是速度是哪里处理的?
- A: MaintainHorizontalGroundVelocity, 而且不止调用了一次; Z速度比较复杂, 地面移动的Z速度不能通过重写这个函数来找回
- Q:刹车是怎么处理的
- A:刹车/制动
- Q:怎么判断角色处于Falling
- A:空中判断
- Q:怎么处理角色处于边缘的情况
- A:14.1.9 边缘检查
- Q:速度和加速度是哪里 计算的
- A:14.1.3 CalcVelocity
- Q:有没有处理撞墙(Hit)事件的逻辑
- A:相比于监听Capsule的Hit回调事件, 移动逻辑里有一部分相关代码也是类似情形, 大致在这里
动画优化
本文字数:
1.6k
阅读时长 ≈
1 分钟
动画逻辑深入分析
本文字数:
5.9k
阅读时长 ≈
5 分钟
AnimationDebug:Insights
本文字数:
738
阅读时长 ≈
1 分钟