物理控制组件允许您创建和管理多个控件,通常每个身体部位可以有多个控件。
分为两大类:
基础概念
Control
用于控制一个物理体相对于另一个物理体或者世界空间下,这些控制通过物理弹簧或者阻尼器驱动。这些控件可以在世界空间或父空间(类似于肌肉)中工作。每个控件都可以控制任意一对骨骼网格或静态网格(甚至是演员以外的网格)
创建
其中是Control Data
是FPhysicsControlData结构体,用来控制阻尼弹簧模型,其基本原理公式如下:
物理控制组件允许您创建和管理多个控件,通常每个身体部位可以有多个控件。
分为两大类:
用于控制一个物理体相对于另一个物理体或者世界空间下,这些控制通过物理弹簧或者阻尼器驱动。这些控件可以在世界空间或父空间(类似于肌肉)中工作。每个控件都可以控制任意一对骨骼网格或静态网格(甚至是演员以外的网格)
其中是Control Data
是FPhysicsControlData结构体,用来控制阻尼弹簧模型,其基本原理公式如下:
这是一篇视频记录文档,视频地址[UFSH2024]使用虚幻引擎5开发3D动作游戏 | 槐宏文 凉屋上海工作室负责人,《楼兰》制作人。
他讲了一些开发时使用的技术栈,挺有启发意义的。
进行以下操作可以减少包体:
关闭预先要求的软件:
在Uproject文件中可以直接全部关闭引擎的插件,然后手动管理你所需要的插件:
在做玩法时,经常会有一个需求根据角色当前的播的动画触发一些特殊规则。
比如角色在待机状态下和行走状态下他的相机的FOV不同,最先想到的使用动画通知来制作该需求,在两个动画中配置对应的FOV设置再应用即可。如果这样的需求多起来,就会有很多动画通知。
那如果想要做变化值的插值、或者处于该动画时,需要实时检查一些东西、该动画结束后需要做一些操作。这样自然就会想到把播放该动画作为一个状态。
正常来说角色的locomotion是使用的动画蓝图中的状态机来实现,那可以将这个状态机作为基础,对动画中的状态添加一个对应控制Gameplay的状态。
有两种做法:
通常来说使用物理模拟的情况会多一些
骨骼中需要有胸部骨骼:
在动画蓝图中分别对胸部骨骼添加添加Spring Controller
控制节点即可
这篇文章写Orientation Warping
、Slope Warping
、Stride Warping
的很清晰:上万字详解UE5动画新特性Pose Warping原理与应用
Orientation Warping 是 UE5 Animation Warping 插件的核心动画节点之一,主要用于分离角色上下半身的旋转动作,解决传统动画混合导致的滑步、躯干扭曲等问题。
这是一篇视频记录,视频地址:Unreal Engine 5 Character and Animation Optimizations | Unreal Fest 2024
通过角色与目标点的距离和动画根节点移动的距离进行匹配,可以使角色脚步准确落到目标点上,已解决滑步的问题。这个技术一般应用在角色的起步、停步、急停、下落反馈中。
具体的使用可以查看:
一种可以动态调整角色的根骨骼运动以对齐目标的功能。在UE中是以插件的方式集成。
使用该功能的动画一定要开启Root Motion
当主角背向敌人时,想要主角边播放动画边旋转至面向敌人,如下图效果:
实现该功能分为以下几步:
MotionWarpingComponent
组件到主角上MotionWarping
动画通知状态,其长度为旋转到目标点的时间MotionWarping
动画通知状态:在Unreal Engine(UE)中,Inertialization(惯性化)是一种动画过渡技术,用于在不同动画状态之间实现平滑的过渡,避免突兀的切换。它通过模拟物理惯性效果,使角色的动作过渡更加自然流畅。
Inertialization 是 UE 动画系统中的一种过渡机制,主要用于在两个动画状态之间进行插值。传统的动画过渡通常使用线性插值(Lerp)或混合(Blend),但这些方法可能会导致动作不连贯或僵硬。Inertialization 通过模拟物理惯性,使得过渡更加平滑,尤其是在快速切换动画状态时。