Unity3d之骨骼动画

本文档介绍了如何在Unity3d中使用Mecanim系统进行骨骼动画的创建和管理。通过一个简单的2D游戏实例,展示了如何添加闲置、跳跃和下降动画,并解释了状态机和过渡的概念。在教程中,还提到了如何通过编写脚本来控制角色的动画状态,并提供了关于外部2D动画工具的资源和建议。
摘要由CSDN通过智能技术生成

在这个系列,我们将关注Unity引擎提供的基于骨骼动画工具。它的主要思想是为了把它应用到你自己的游戏来介绍和教基本的2D动画原理。在这节课中,我们将添加闲置,跳跃和动画。

在开始这个课程前,我们将感谢Chenguang (DragonBonesTeam)给我们提供用于本系列教程游戏艺术。

离开的地方

在 上一个课程,我们启动项目,合成2D龙角色,然后创建三种不同的动画。如果你还没完成之前的课程,在此之前,我们强烈建议您这样做。

预览效果        

这个demo演示了龙的动画,我们的目标是 –点击Space键就跳:

点击查看

Mecanim


这时候,你的龙已经完全合成并且做出了三种定义的动画。然而,他们之间还没有连接。所以,我们最初的的目标是连接不同的动画影片剪辑和混合在一起。为了达到这个目标,Unity提供你正需要的一个非常棒的工具,叫做Mecanim

Mecanim是一个功能强大且灵活的动画系统。因为它与Unity本身集成,所以不需要第三方的软件。你可以轻松改变任何东西,从精灵变成混合的形状,甚至是灯。Mecanim允许创建状态机和混合数来控制你的角色。

但是,在继续下去之前,让我们讨论一下关于混合动画和状态机,让我们有一个更好的了解我们要做什么。

状态机是什么?

Unity里,你可以混合两种或者更多的相似动画 ――举个例子来说,你想把跑步和步行的动画依靠角色当前的速度混合到一起。基本上,在Unity中有两种不同的方法可以混合动画。在一些情况下,你可能想要使用过渡,在其他情况下可能你需要使用混合树:


· 过渡常常是用在动画之间的自然过渡。这通常适用于是否快速过渡。

· 当合并部分的数量变量是,混合树允许在多种动画顺利融合。给一个实际的例子,假设有一个射击游戏,你可能想要你的角色跑着开枪。混合树允许你将两种动画混合到一起,不需要为这个特定动作的混合物创建第三种动画,就能让角色跑着开枪。


在给定的时间,一个状态机存储的状态实体,并且能够对一个输入改变实体的状态,活导致一个行动或者输出。有关更多消息请参见有限状态机理论和实现

Unity,你使用状态机来控制游戏角色的状态。举个例子,角色的一种状态叫walk,另一种状态叫Jump。一个角色从Walk的状态变成Jump的状态取决于播放器的输入(可能是通过点击Jump按钮)。

在这里你可以从Unity文旦中。看到一个例子(更复杂)的状态机。每一个箱子表示一个状态,它们之间的箭头表示可能的转换:

02.png

我们将要用我们存在的动画创建一个状态机,然后使用过渡来把它们混合起来。

创建我们的状态机

如果你检查一下Animations文件夹,你可以在Dragon.controller文件下看到已经保存为.anim文件。这些mecanim文件与角色关联,Unity保存在你第一个动画自动生成的地方。

03.png

双击 Dragon.controller 文件,Unity将打开在场景和游戏选项卡之间动画视图的选项卡。

正如你所看到的,Unity已经添加这三种动画到文档中了。因为动画已经在那里了,所以不需要添加,但是,如果你想添加额外的动画到控制器,你只需要把.anim文件拖拽到Animator视图中。同样的,如果你想移除已经存在控制器的动画,你只需要相中Animator视图,然后点击Delete按钮即可。随时可以自己试一下这个。

Animator中有四种不同的盒子:

· 任何状态

· 闲置

· 跳跃

· 下降

05.png

任何状态是mecanim创建的一种默认状态,你不能使用它。你可以把它拖拽到Animator窗口的任何角落下,然后放在哪里。

其他三种盒子使我们关于我们创建的三个动画。你可能会注意到,Idle是橙色的,其他两个是灰色的。这是因为idle

Unity3D中,骨骼重定向(Bone Retargeting)是一种技术,用于将一个角色的骨骼动画应用到另一个角色的不同骨骼结构上。这在游戏开发中非常有用,因为它可以使开发人员重复使用现有的动画资源,并将其应用到不同的角色模型上。 Unity3D提供了一些工具和方法来实现骨骼重定向: 1. Avatar Mask:Avatar Mask是一个定义了动画应用范围的蒙版。可以在Animator组件上创建Avatar Mask,并使用它来控制哪些骨骼需要应用动画,以及每个骨骼的权重。通过编辑Avatar Mask,可以精确地控制动画在目标角色上的应用程度。 2. Humanoid Retargeting:Unity3D中的Humanoid角色类型具有统一的骨骼结构和命名约定。当目标角色采用Humanoid角色类型时,可以使用Humanoid Retargeting功能将源角色的动画应用到目标角色上。这个功能会自动匹配和映射对应的骨骼。 3. 动画曲线编辑器:Unity3D提供了一个强大的动画曲线编辑器,可以对动画曲线进行编辑和调整。这个工具可以用来调整和修正动画在不同骨骼结构上的表现,以使其看起来更加自然和准确。 需要注意的是,骨骼重定向并不是一个完全自动化的过程。它可能需要一些手动调整和微调,以确保动画在目标角色上的效果符合预期。此外,骨骼结构和比例的差异也可能导致一些挑战,可能需要进行额外的处理。 总的来说,骨骼重定向是一个有用的技术,可以帮助开发人员在Unity3D中将现有的动画资源应用到不同的角色模型上。通过合理使用Avatar Mask、Humanoid Retargeting和动画曲线编辑器等工具,可以实现高质量和高效率的骨骼重定向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值