游戏设计教程——如何在Unity中使用Blend Tree
发布时间:2022-12-29|点击:52次
在现代游戏设计和开发中,2D和3D动画变得越来越复杂。如果你在两者上都做过游戏,你可能会遇到一个需求,例如,一个基于移动速度的步行动画触发一个运行的动画。为了解决这个问题,Unity 3D有一种叫做“混合树”的东西。在这篇关于unity 3d教程的文章中,我们将讨论混合树是什么,为什么它们是有用的,以及什么时候使用它们。
一、什么是游戏设计中的混合树?
混合树就像一个正常的动画过渡。在动画转换过程中,你要从一个动画过渡到另一个动画。然而,混合树可以使用变量将动画混合在一起。混合树通常用于角色移动之类的东西。使用混合树,您可以使用您定义的变量来控制动画的混合。这允许你对动画的外观和感觉进行大量的控制。
一个简单的混合树将会是这样的:
二、什么时候使用混合树
考虑一下你有一个人的3D模型的情况。你想让这个模型在玩家想要的方向上运行。想象你的人物正在向前奔跑,但同时也在向右转。使用正常的动画过渡,你会遇到一个问题:你是否应该使用“运行前”动画或“运行正确”动画。结果是,一个动画被选中,从而导致一个不太现实的结果。如果你使用的是混合树,你可以告诉Unity根据玩家所面对的方向将两个动画混合在一起。有了一个混合树,如果玩家同时向前跑并且同时向右转,那么“向前跑”和“右转”的动画将被混合在一起,从而有一个看起来更真实的无缝动画。
虽然混合树非常适合移动,但对于单个动作或循环的动画来说,它们可能不是最佳选择。例如,让一个角色跳转可能是一系列动画。然而,跳转的开始有一个明确的单一动画。在此之后,您将为角色在空中进行循环动画。最后,你会有一个动画来让角色登陆。没有必要将这些动画混合在一起,就像正常的运动一样。您可以简单地设置正常的动画转换,使您可以从移动混合树转换到跳转动画。
那么2D游戏设计呢?
对于2D游戏来说,混合树似乎是一个奇怪的选择,因为2D动画通常是离散的,并且没有3D模型可能的运动范围。但是,混合树是让您的动画状态机保持干净和简单的一个好方法。没有混合树的普通动画状态机很快就会变得非常复杂。
考虑一下这个动画状态机的图像,它可以处理2D的行走和在4个方向上没有混合树的情况。
这仅仅是8个动画。当然,我可以更小心地把节点放在更好的地方,但是这并不能改变我们已经创建了一个只有8个动画的复杂而乏味的状态机的事实。
比较一下状态机:
这个状态机使用两种混合树:移动和空闲。混合树非常复杂,但是在使用这种模型时处理过渡和使用之间的转换要容易得多。要处理的是两个转换,而不是前一个示例中的无数转换。有了这个状态,我就有了一个布尔值,它可以决定树是否活动。当树处于活动状态时,混合树会根据我设置的变量来为我处理动画状态。
混合树允许您将您的动画绑定在一个单独的节点上,这些节点都是用变量动态控制的。这使得您更容易管理转换和您的动画状态控制器的复杂性。这也适用于3D动画。一般来说,混合树是一种很好的方式来保持组织的有序和易于使用。
结论
希望这篇文章能够帮助您更好地理解混合树是什么以及如何使用它们。像往常一样,Unity提供了非常棒的工具来帮助你提高游戏开发的流畅性。混合树是工具箱中另一个很好的工具。