Unity Animancer插件(三)运动

一、根运动

Animancer的根运动系统与原生的工作原理完全相同,但我们可以通过继承Transition类型或实现ITransition接口,来将额外的数据与动画绑定,从而更方便地控制根运动。

在下面这个示例中,我们通过自定义的Transition类实现动画根运动的灵活控制。
首先创建一个脚本RootMotion,并编写如下代码

// 自定义Transition类,将是否启用根运动封装
[Serializable]
public class MotionTransition:ClipTransition
{
   
   
	[SerializeField,Tooltip("是否启用根运动")]
	private bool applyRootMotion;

	// 在Play()时调用
	public override void Apply(AnimancerState state)
	{
   
   
		base.Apply(state);
		state.Root.Component.Animator.applyRootMotion = applyRootMotion;
	}
}

public class RootMotion : MonoBehaviour
{
   
   
	[SerializeField]
	private MotionTransition[] animations;
	[SerializeField]
	private AnimancerComponent animancer;

	private void OnEnable()
	{
   
   
		// 启用时播放第一段动画
		Play(0);
	}
	
	/// <summary>
	/// 播放指定动画
	/// </summary>
	/// <param name="index"></param>
	public void Play(int index)
	{
   
   
		animancer.Play(animations[index]);
	}
}

接下来给角色挂载这个脚本并指定两个动画,一个动画启用根运动,另一个不启用

再通过UI动态控制角色播放的动画。看下效果

当然,在Animancer中我们也可以通过OnAnimatorMove方法来控制根运动

[SerializeField] private Rigidbody rigid;
private void OnAnimatorMove()
{
   
   
	rigid.MovePosition(rigid.position+animancer.Animator.deltaPosition);
	rigid.MoveRotation(rigid.rotation*animancer.Animator.deltaRotation);
}

二、线性混合

通过Animancer,我们可以很方便地控制动画状态机进行播放。通过ControllerTransition可以接收一个动画状态机,并通过Animancer进行播放

public class LinearBlendTreeLocomotion : 
Animancer Pro 7.4.2:提升Unity游戏动画效率的专业工具》 在游戏开发领域,Unity引擎因其强大的功能和易用性而备受青睐。然而,随着游戏内容的复杂化,对动画系统的需求也在不断提升。这就引出了我们今天的主角——Animancer Pro 7.4.2,一个专门针对Unity引擎的高级动画插件。这款插件以其卓越的性能、丰富的功能和对Unity内置AnimatorController的完美兼容,成为许多开发者不可或缺的工具。 Animancer Pro的核心优势在于其高效的动画播放机制。它允许开发者以编程方式控制游戏对象的动画,使得动画控制更加灵活且性能优越。在传统的Unity AnimatorController中,虽然也能实现复杂的动画状态机,但有时可能会因为过于繁琐的设置或资源消耗过大而困扰开发者。Animancer Pro则提供了一种新的解决方案,它可以无缝集成到Unity项目中,为开发者带来更为简洁的动画管理体验。 在7.4.2这个版本中,Animancer Pro进一步优化了性能,修复了一些已知问题,增强了稳定性和兼容性。开发者可以期待更流畅的游戏运行,以及更少的内存占用。此外,新版本还可能引入了新的特性或改进,如更便捷的动画操作接口,更强大的动画混合功能,或者对动画事件系统的扩展支持,以满足开发者日益增长的创新需求。 Animancer Pro的文件结构清晰,包含在名为"Animancer Pro 7.4.2.unitypackage"的压缩包中。这个Unity包文件包含了插件的所有资源和脚本,开发者只需将它导入到Unity项目中,就可以开始享受Animancer Pro带来的便利。在导入过程中,Unity会自动处理所有依赖关系,确保插件能正常工作。 在实际应用中,Animancer Pro不仅适用于角色动画,还可以用于场景交互、物体
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值