前言

说到Root Motion, 通常会想到的是Root Motion Animation, 将位移量嵌在Animation中, 角色Tick Pose时会计算frame之间的root bone的偏移量, 換算成velocity与acceleration, 然后PerformMovement, 如此可以表现到角色位移上, 但是在多人游戏中, Root Motion Animation是个不安定因素, 在网络延迟不稳定时, 玩家就会发生被Server拉回矫正的情况

Paragon中使用了RootMotionSource(下面简称RMS)这个技术, 策略是动画单独播放, 程序控制位移

RMS是一个非常规性的RootMotion技术, 本质上已经脱离了动画, 通过程序模拟来实现每一帧的根骨骼位移. 相比较手动SetActorLocation等等的暴力方式, 好处是这套流程是在角色移动组件里的(下面会细讲), 不仅使用方便也满足于角色移动同步流程.

阅读全文 »

前言

角色移动相关的林林总总

QA

  • Q: 角色的Z方向是速度是哪里处理的?
  • A: MaintainHorizontalGroundVelocity, 而且不止调用了一次; Z速度比较复杂, 地面移动的Z速度不能通过重写这个函数来找回
  • Q:有没有处理撞墙(Hit)事件的逻辑
  • A:相比于监听Capsule的Hit回调事件, 移动逻辑里有一部分相关代码也是类似情形, 大致在这里
阅读全文 »

前言

之前虽然写过一些动画节点和AnimInstance相关的逻辑, 但是对整体动画模块的逻辑路线还是不是很熟, 所以本文大致研究一下

动画逻辑2
阅读全文 »

前言

以前的动画debug要么肉眼看动画蓝图, 要么用控制台来Show DebugAnimation搞得全屏幕的天书无从下手, 自从4.25以后动画模块有了一个非常友善的可视化Debug工具, 之前略有所知但是没有深入使用, 今天来研究一番看看这个工具可以干啥

image-20211231101038728

image-20211231095620356

阅读全文 »

前言

物理资产在Rigdoll和物理动画的引用中非常重要, 当然还有角色模型的碰撞检测也需要物理资产支持, 但是有很多细节在官方文档和其他文章或者教程中并没有提及, 导致编辑过程中踩了很多坑, 本文主要是记录这些细节问题

阅读全文 »

前言

maya本身的脚本编辑器比较简陋, 推荐使用 JetBrains旗下的 PyCharm来作为脚本编辑器

阅读全文 »