🚀 春季促销开始! 🚀 不要错过以7折优惠购买我所有系统的机会! 

点击购买

角色替换&动画重定向

avatar`
Yuewu(罗传月武)
Updated: Apr 21, 2025

如何迁移动画

Demo项目中,所有的Lyra动画,以及对第三方动画包整合的动画,都与GenericGame/Shared下的UE5标准骨架进行关联。我的其他所有系统,都共享该骨架。

如果你使用预先做好的Lyra动画,那么你不需要处理动画迁移,通过GMS你可以非常迅速的为关联了任意骨架的角色添加Locomotion动画。

兼容骨架方式

如果你是新项目,我建议你沿用GMS提供的骨架。如果你的项目已经开始,但是你有自己的UE5标准骨架,那么你可以将GMS的骨架添加到你的骨架的”兼容骨架“列表中。这样你的骨架所关联的角色也可以使用GMS骨架所关联的动画。

离线重定向方式

这是最次的选择。如果你已经有开发中的项目,且你的主角没有使用UE5标准骨架,且你自己的角色的骨架与UE5标准骨架有较大差异,那么你可能需要使用5.4的动画重定向来将GMS提供的骨架所关联的动画给迁移到你的角色上。这是一个繁琐的过程。

运行时重定向方式(推荐)

GMS提供一个BC_LiteRetargeterManager组件和一个通用的动画蓝图ABP_Lite_Retargeter

GMS动画重定向.001

它允许你在真正进行离线动画重定向前,来对不同骨架角色之间的动画重定向效果进行测试和验证,如果是项目初期,也不建议一开始就进行离线动画重定向,你会一开始就面临大量动画资源管理和迁移的心智负担。

准备运行时重定向

首先,你需要找到你的角色的主要Mesh组件,并为其添加“Main”Tag,我们称这个Mesh组件为Source。

GMS动画重定向.002

同时在SourceMeshComponent上,建议将VisibilityBasedAnimTickOption设置为Always Tick Pose and Refresh Bones用于测试。

GMS动画重定向.003

然后在Source下附加另外一个SkeletalMesh组件叫做RetargeterMesh,并为其添加“RetargeterMesh”Tag,这个组件我们称其为Target。

GMS动画重定向.003.5

设置运行时重定向组件

为角色添加BC_Lite_RetargeterManager组件,该组件会根据SourceMeshTag和TargetMeshTag自动查询并设置对应的组件。

GMS动画重定向.004

Enable:决定是否启用该组件,如果取消勾选,它不会对Source和Target组件进行任何修改。

Randomized:决定是否在Retargeters列表中随机选择一个角色进行运行时重定向。

SourceOverrideMeshAsset:选中的Retargeter中的Mesh会被设置到Target组件上,这时候我们可以在这里指定一个模型去替换Source组件上的原本Mesh,GMS提供一个SKM_Manny_Invis,它具备骨架信息,可以驱动动画,但是它是隐形的。

配置IK重定向器

假设你有自己的自定义角色SKM_YourCharacter,你希望将GMS提供的动画用到你的角色上,你就应该创建一个SKM_MannySKM_YourCharacter的IK重定向器,在UE5.4你可以使用自动重定向创建IK_Retargeter资产。

然后你就可以在该组件的Retargeters数组上配置上要使用的角色,并可以指定它的性别。

监听事件

每当重定向器选择了指定的模型,都会产生OnChange事件,你可以拿到Retargeter的信息,并执行任意自定义逻辑。

比如下图,我根据性别为角色添加了不同的GameplayEffect从而添加了不同的性别标签到角色上。

GMS动画重定向.005

视频教程