团结引擎动画系统|动画制作与运行时能力全面升级
团结引擎动画系统|动画制作与运行时能力全面升级
团结引擎 1.11.0 版本进一步完善动画系统的功能与工作流,围绕 AnimGraph、RigGraph 和 AnimGraph CodeGen 三大方向带来多项升级。
其中,AnimGraph 新增 Pose Cache、数学表达式等节点,优化动画逻辑编排与计算复用效率;RigGraph 新增控制器动画录制与骨骼局部物理模拟功能,丰富角色动画的制作方式与物理交互表现;AnimGraph CodeGen 进一步优化运行时执行机制与资产管理流程,显著降低资产初始化开销,提升运行时性能。
AnimGraph 升级
新增 Pose Cache 节点:
在 AnimGraph 中,当多个后续节点需要复用同一节点的计算结果时,重复计算不仅会增加性能开销,还可能因计算误差导致结果不一致。
为此,AnimGraph 新增 Pose Cache 节点,包括 Save Pose Cache 和 Use Pose Cache。开发者可以通过 Save Pose Cache 缓存节点的计算结果,并在需要复用的位置通过 Use Pose Cache 读取缓存,避免重复计算,提升 AnimGraph 的执行效率与结果一致性。
新增数学表达式节点:
数学表达式节点用表达式文本替代一系列数学节点的组合,显著降低图的复杂度。
数学表达式节点会自动为表达式中的变量生成输入端口。
数学表达式节点支持算术、比较、逻辑、三元运算,以及三角、插值、钳制、向量点积/叉积等函数,多步参数计算、条件选择、向量运算等都能在一个节点内完成。例如下图中的数学表达式节点加上计算朝向夹角的表达式即可快速实现复杂运算。
AnimGraph Package 新增 Sample:
请打开 Window > Package Manager,选择 AnimGraph 包,在示例(Samples)列表中单击所需示例旁的 导入(Import) 按钮。
新增 AnimGraphManager API
支持一键重置所有状态机至初始状态。同时优化 FacingWarp、StrideWarping 等节点的状态管理,退出 State 时自动重置,确保再次进入时动画表现正确。
RigGraph
支持 RigCtrl 动画录制
在 Animation 窗口录制控制器动画,并通过控制器驱动骨骼。
RigGraph 现支持为骨骼动画配置局部物理模拟
让遵循动画运动的骨骼也能产生碰撞交互、受力、运动滞后等物理效果。
为角色的根骨骼 GameObject 挂载
RigPhysicsSimulation组件即可配置角色模拟环境,使用Step Physics Simulation Node在 RigGraph 中推进独立的局部模拟。
在骨骼 GameObject 上挂载
RigPhysicsBody组件,以配置骨骼的刚体设置,包含质量,碰撞箱,运动学/动力学模式等,组件默认会根据骨骼长度自动创建一个胶囊体碰撞箱。挂载RigPhysicsJoint组件可在当前骨骼和父骨骼之间创建和配置关节关系。
通过
RigPhysicsSimulationSpaceController组件和RigPhysicsParentSpaceController组件调整物理骨骼的动画跟踪效果。模拟空间模式等效于施加外力控制,是提线木偶式,父级空间控制类似于关节控制,更加仿生,结合使用有更好的效果。
提供配套 Inspector、Gizmo 和 RigGraph 配置节点,便于调整参数和查看碰撞体。
AnimGraph CodeGen
在大型项目中,AnimGraph 往往会包含多个 RootAsset。过去如果需要为这些资产逐个确认是否启用 CodeGen,不仅操作繁琐,也会给打包流程和项目维护带来额外成本。
在团结引擎 1.11 中,AnimGraph Code Generate 能力进一步完善:
运行时完全使用 CodeGen 的方式执行,不再执行AnimGraph、TransitionRule的解释流程以及生成Playable的递归流程,减少了 Runtime 与 Build 过程中对 Graph、RootAsset 及相关依赖的耦合
在 CodeGen 成立下打包 Player 后,资产初始化的固定 gc 以及所消耗时间由 40+MB 及 420ms 下降为 0MB 及 0.06ms
提供统一管理窗口,集中处理多个 RootAsset 的 CodeGen 状态
CodeGen管理窗口自动分析 RootAsset 是否被场景、Resources 等使用,并以 Usage 信息辅助判断
被实际使用的 RootAsset 应参与代码生成,除非手动设置 Policy 为 Exclude ,打包过程会有所提示
快速开始
1. 启用 AnimGraph :打开 Project Settings > Player > TuanjieAnimation,勾选 Add AnimGraph Package,启用 AnimGraph 功能。
2. 创建 AnimGraph 资源 :在 Project 窗口中右键,选择 Create > AnimationGraph,在当前文件夹中创建新的 AnimGraph(.RootAsset)资源。
3. 打开 AnimGraph 编辑器: 双击创建的 AnimGraph 资源,或在 Inspector 窗口中点击 Open,即可打开 AnimGraph 编辑器并开始编辑。
更多 AnimGraph 功能介绍与使用方法,可参考团结动画系统用户手册:
https://docs.unity.cn/cn/tuanjiemanual/Manual/Animation-whats-new.html
长按关注
Unity 官方微信
第一时间了解 Unity 引擎动向,学习进阶开发技能
每一个“点赞”、“在看”,都是我们前进的动力
点击“阅读原文”,了解 Unity 中国的产品与服务!
来源:Unity官方平台 · mp.weixin.qq.com