MotionMatching
Motion Matching 现代动画技术中,Motion Matching是个绕不开的话题。为了解决动画过渡自然和真实性,动画系统从传统Locomotion状态机到混合节点,到Pose Matching、Motion Matching,从最初的特征向量基础到现在的ML/DL/RL的混合式变种。近年也很多GDC都有详细的介绍各种工程落地: Reinforcement Learni...
Motion Matching 现代动画技术中,Motion Matching是个绕不开的话题。为了解决动画过渡自然和真实性,动画系统从传统Locomotion状态机到混合节点,到Pose Matching、Motion Matching,从最初的特征向量基础到现在的ML/DL/RL的混合式变种。近年也很多GDC都有详细的介绍各种工程落地: Reinforcement Learni...
MassCrowd避障算法原理 UE5中Mass的避障算法相对比较简单,概括来说就是遍历附近Agent和非闪避Obstacle(一般就是地图障碍物和玩家),算出一个避障的力(单位速度方向)来实现,这个力分为远离力SeparationForce,避障力AvoidForce和障碍力法线ForcedNormal。可以查看UMassMovingAvoidanceProcessor::Execute...
实现网络实时对战游戏的时候,延迟是一个躲不开的难题,总是需要各种经验和技巧。只要是发布在互联网上的游戏,延迟就客观存在,以目前基础技术来说延迟不可能消除。假设光纤以光速一秒绕地球7圈半来说,1000ms/7.5=133ms,就算用光纤直连也有133ms的延迟(严谨一点的话应该算半球,也有66ms),而且互联网庞大且复杂,还要把同一根光纤的网络拥堵和路由器协调运算时间算进去。要做世界服务器网络...
对于不同角色或者是不同职业不同性别,策划和美术都会规划不同体型,不同的骨骼和骨骼结构。不同骨骼的动画管理一直是个比较麻烦的事情。项目一般喜欢把这种动画管理的解决方案叫做动画集AnimationSet。但是实际开发中不同骨骼的情况下又会要求它们要共用动画逻辑,比如说人物的Locomotion逻辑共用,各种攀爬运动逻辑共用等,而UE并没有一个完善的共用机制。本文目的是探讨一些共用动画蓝图的方法。...
程序化动画是通过算法来生成或修改动画的技术。它不是完全靠手工帧动画,而是用规则、物理模型、生物学特征等“程序”实时或在预处理阶段产生或修正动画表现。它可以“修正变形”——在已有动画基础上自动调整角色姿态或模型形变(比如根据地面高度调整脚的位置)。它可以做“物理模拟运算”——用物理规则让布料、头发、碰撞反应更自然。它还能“延申构造”——基于少量输入生成更多细节(如程序生成的连锁反应、群体行为等...
MotionWarping算是一项老生常谈的动画技术了。技术本身原理并不复杂,不过UE自己却有不少的变种实现方案,对这最基础的实现思想有不断的进化和补充,目的也是为了提高算法的最终表现效果,做3A游戏真是对细节真是孜孜不倦啊。本文主要是解释MotionWarping的基础原理和UE的SkewWarping的实现原理。 DeltaCorrection和AnimationWarping Mo...
叠加动画常用于战斗受击、射击抖动、AO等。其作用是能同时两个动画的表现,如角色在跑步的时候受击,跑动动画是不能停的同时也要有被击中的抽搐表现;又如角色瞄准的时候射击,射击会因为武器的后坐力让角色躯体发生抖动,而角色也会下意识地维持着瞄准动作……叠加动画几乎占据角色动画逻辑的一大部分,不过似乎很少人讨论有关叠加动画的技术细节。本以UE实现方法为例,意在分析叠加动画的原理和一些细节。 基本原理...
有时候实现Gameplay逻辑的时候,会要求判断屏幕的圆是否与场景的碰撞体相交(如瞄准辅助)。屏幕的圆与场景碰撞相交本质是视锥体与场景物体是否相交。此时ConeTrace能解决此问题,然而UE并不支持,Physx貌似也没有此类基本几何体。本文意在实现快速的ConeTrace。 ConeTrace在摄像机内的横截面图示 构造凸包碰撞体方案 动态生成凸包是最万金油的做法,基本上大部分三...
掩体系统在gameplay中是个复杂度较高的系统,其独立性较高的同时,也跟其他3C系统关联很大,并且不同游戏中做法也不一样。本文目的在于实现高弹性动作射击游戏的掩体系统。 掩体地形数据 掩体地形数据有些游戏是通过策划配置,编辑那些掩体哪个面,或者配置掩体位置的曲线表示哪里能进那些不能。这种做法虽然比较可控,但是制作非常繁琐。在大世界游戏中会有大量PCG内容,虽然部分掩体物体都是通过模...
1、模块缺少依赖 常见问题,再Build.CS添加上模块依赖即可,见 https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/BuildTools/UnrealBuildTool/ModuleFiles/ 2、使用没有被导出的类的情况 如图,继承UAnimGraphNode_SequencePlayer类 在子类调用...