在 Unity 中具有多个角色的复杂设置中重用动画、装备和控制器的最佳方式是什么?

问题描述 投票:0回答:1

在 Unity 2022.3 中具有多个角色的复杂设置中重用动画、装备和控制器的最佳方式是什么?

我有一个有点复杂的场景:

  1. 一个角色有 20 个皮肤,虽然皮肤共享很多动画和绑定结构基础知识,但它们之间存在差异:

    1.1。某些(并非全部)皮肤具有

    Walk
    循环剪辑,其具有相同的名称并具有相同的用途,但具有不同的步态。

    1.2。有些皮肤有尾巴、翅膀等附属物,这反映在它们的索具结构中。

    1.3。有些皮肤有额外的动作/剪辑,例如

    Fly
    Dive

  2. 这个角色是非人形的:它实际上是两个角色,一个骑着另一个。 我注意到,由于不坚持人形机器人,某些功能似乎在 Mechanim 上不可用。然而,将装备分成两个人形机器人对于动画制作来说根本不切实际。

  3. 每个皮肤当前都与模型/装备/动画一起从 Blender 导出到 FBX。

  4. 在 Unity 中,皮肤将在装备结构中插入约束/行为,例如使角色看向方向或按程序设置尾巴动画。

  5. 我创建了一个带有状态机的控制器,该状态机具有混合状态,因此角色将根据其速度闲置/行走/跑步/冲刺(不同的剪辑),我想保留它。

现在在继续之前我面临着一些难以回答的问题:

a) 如何在多个动画变体之间重用动画控制器?我可以为控制器制作类似“预制变体”的东西吗?

b)是否可以重用动画控制器,或者我必须为每个角色设置整个状态机?

c) 如何以我的方式在所有 20 个皮肤上设置约束和行为以保持良好的维护?

unity-game-engine animation unity3d-mecanim
1个回答
0
投票

如果我理解正确的话,

AnimatorOverride
可以为你解决问题。 https://docs.unity3d.com/Manual/AnimatorOverrideController.html

唯一的限制是,您必须为每个覆盖设置所有状态,以确保其正常工作(例如,代替独特的“挥手”或“热身”,它可以是单一状态“CustomIdle”,每次覆盖都会引用不同的动画)。

我们曾经共享过这样一个大约一百个字符的控制器,并且这个解决方案已经证明自己是一个很好的解决方案。只有一个基本控制器,具有

attack1
attack2
attack_special
walk
run
idle
death
等状态)以及每个模型的覆盖。对于类似(即兼容)的模型,一些动画可以毫无问题地重复使用。至少我记得是这样。

因此,基本动画器有点复杂,但所有更改都会自动与所有覆盖共享。我们的艺术团队能够在没有任何代码的情况下创建新的覆盖,因为对他们来说,这只是一个要求:“要完成此角色设置,请确保设置所有所需的动画。”

© www.soinside.com 2019 - 2024. All rights reserved.