Files
engine/docs/zh/animation/examples/reuseAnimation.mdx
luzhuang 9a28f37b9c Doc: translate newest animation doc to en (#2553)
* feat: translate newest animation doc to en
2025-02-19 17:17:49 +08:00

91 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
order: 1
title: 动画复用
type: 动画
group: 指南和示例
label: Animation/Examples
---
本示例展示了如何在 Galacean 编辑器中播放其他模型的动画。通过简单的步骤,你将学习如何让一个模型复用另一个模型的动画。这个指南适合初学者了解 Galacean 编辑器的动画系统,也为更复杂的动画应用奠定基础。
如果你是第一次使用动画编辑器,建议先阅读这篇文档:
[播放模型中的动画](/docs/animation/examples/playAnimation/)
## 0. 准备工作
在开始之前,我们需要有一个没有动画的模型,和一个只有动画的模型(角色模型必须包含与动画模型同名的实体)。如果你没有模型,可以在 [mixamo](https://www.mixamo.com/#/?page=1&query=&type=Character) 上下载一个。
### 下载模型
1. 在 [mixamo](https://www.mixamo.com/#/?page=1&query=&type=Character) 中选择一个模型
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*UF2BTbu598EAAAAAAAAAAAAADsJ_AQ/original" />
直接点击下载
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*m9xuR4QewBEAAAAAAAAAAAAADsJ_AQ/original" />
2. 在 [动画Tab](https://www.mixamo.com/#/?page=1&query=&type=Motion%2CMotionPack) 中选择一个动画
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*P_e2Q4D9AN4AAAAAAAAAAAAADsJ_AQ/original" />
选择 `Without Skin` 选项,然后点击下载
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*ktbtQrG9rNEAAAAAAAAAAAAADsJ_AQ/original" />
<Callout type="positive">
在实际项目中强烈建议将FBX模型通过Blender等第三方工具转换为GLB/GLTF格式。Galacean目前仅支持解析GLB/GLTF模型。虽然可以直接将FBX拖入编辑器进行自动转换但这种方式可能会导致转换后的模型动画数据过大并可能出现还原问题。使用专业工具进行转换可以更好地控制转换质量和文件大小。
</Callout>
### 导入模型
如果你不知道如何导入模型,请参考:[导入模型](/docs/animation/examples/playAnimation/#导入模型)
将角色模型和动画模型导入到编辑器中。
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*xApDR4D-Ed0AAAAAAAAAAAAADsJ_AQ/original" />
## 1. 创建动画控制资产
想要播放其他模型的动画,需要编辑 `动画控制器` 的内容,而模型中的 `动画控制器` 是只读的,所以需要我们自己创建一个 `动画控制器` 。
如果你不知道如何创建` 动画控制器` ,请参考:[创建动画控制器](/docs/animation/examples/playAnimation/#2-创建动画控制资产)
## 2. 编辑动画控制器
1. 双击 [动画控制器](/docs/animation/animatorController/) 资产,进入动画控制器编辑器(编辑器的各个功能介绍请参考 [动画控制器编辑器](/docs/animation/animatorController/) 文档)
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*v8aUR4McTA4AAAAAAAAAAAAADsJ_AQ/original" />
2. 点击 `添加动画状态` 按钮,添加一个 `动画状态`
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*G1moSpo20KcAAAAAAAAAAAAADsJ_AQ/original" />
3. 点击 `动画状态`(动画状态的属性介绍请参考 [动画状态](/docs/animation/animatorState/) 文档),绑定动画模型中的 `动画片段` 。
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*72LhQ5gOBmgAAAAAAAAAAAAADsJ_AQ/original" />
4. 从 `entry` 连接到此 `动画状态` 并点击连线将 `Duration` 改为 0动画状态及动画过渡的详细介绍请参考 [动画状态机](/docs/animation/state-machine/) 文档),这样在这个动画控制器被应用时,就会立即自动播放此 `动画状态` 。
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*wgBgQor0c5wAAAAAAAAAAAAADsJ_AQ/original" />
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*NgW5QZ4vaFEAAAAAAAAAAAAADsJ_AQ/original" />
## 3. 使用动画控制器并预览
1. 将模型拖入到场景中
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*uEGPTZfKEZwAAAAAAAAAAAAADsJ_AQ/original" />
2. 与直接播放模型中的动画不同,我们需要找到动画模型的 `动画控制组件`[详细介绍](/docs/animation/animator/))位置, 组件一般在模型实例的根实体上,也就是编辑器的模型实体下的第一个子实体上,因此我们需要将包含动画的模型也拖到节点树中
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*kjmDSZeyq4QAAAAAAAAAAAAADsJ_AQ/original" />
我们发现 `动画控制组件` 在动画模型的 `mixamorig:Hips` 实体上,因此我们需要在角色模型的`mixamorig:Hips`实体上添加 `动画控制组件`
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*HCzWTrsp1isAAAAAAAAAAAAADsJ_AQ/original" />
3. 在动画控制器属性上替换为刚才创建的`动画控制器`
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*dFGgRqk0tvgAAAAAAAAAAAAADsJ_AQ/original" />
4. 点击播放按钮,就可以看到模型开始播放动画了
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*EeXDQp4PVRkAAAAAAAAAAAAADsJ_AQ/original" />