目录
二、Unity 代码示例(以下是示例代码,实际应用中可能需要根据具体情况调整)
一、动画剪辑设置步骤
(一)了解动画文件类型
- 首先查看动画所在的 FBX 模型文件,每个动画片段都包含在其中。
- 选中模型后,在右边可以看到几个标签选项,主要关注动画相关部分。
(二)选择动画类型
- 动画类型有四种:
- 无:表示当前模型文件不包含动画。
- 旧版:需要用 animation 组件播放,证明动画片段可通过该组件进行播放。
- 泛型:支持所有类型动画播放,如桌子被击碎、门打开、宝箱开盖子等各种非人形动画。
- 人形:使用人形骨骼做的动画,若从网上下载人形动画,可套用于不同人形模型上,更加通用好用。
(三)设置骨骼和材质(默认即可)
- 骨骼一般使用默认方案,一种是从当前选择的模型创建骨骼,一种是使用其他骨骼,默认情况下无需更改。
- 材质方面不用管,主要关注动画设置。
(四)动画剪辑操作
- 查看时间轴,了解动画长度。例如看到 60 帧,长度是 0.667 等信息。
- 在原动画基础上可通过点击加号创建新的动画剪辑,如创建 new run 新的跑步动画等。
- 选中自己创建的动画剪辑后,可以进行以下设置:
- 缩短动画长度,确定动画从哪里开始到哪里结束以及所需时长。
- 设置循环,绿色表示循环时第一帧和最后一帧匹配度高;黄色表示勉强匹配;红色表示特别不匹配。勾选循环则动画会持续播放,不勾选则只播放一遍。设置完成后要点击应用才会生效。
(五)烘焙设置
- 有三组烘焙选项,分别是旋转的烘焙、y 轴的烘焙、xz 轴的烘焙。
- 当模型本身自带旋转,在场景中播放动画时人物会转圈。若不想让其旋转影响,可以勾选旋转烘焙,将旋转烘焙到跑步动作里,旋转就不再影响人物运动。同理,若不想让 y 轴一上一下的移动影响,可进行 y 轴位置移动的烘焙。
二、Unity 代码示例(以下是示例代码,实际应用中可能需要根据具体情况调整)
using UnityEngine;
public class AnimationClipManager : MonoBehaviour
{
public AnimationClip originalClip;
public AnimationClip newClip;
void Start()
{
// 设置动画类型为人形(假设是人形动画)
AnimationImporter importer = GetComponent<AnimationImporter>();
importer.animationType = AnimationImporter.AnimationType.Humanoid;
// 创建新的动画剪辑
newClip = new AnimationClip();
newClip.name = "NewRunClip";
// 复制原动画的关键帧到新剪辑(示例代码,可能需要更精确的操作)
newClip.CopyFrom(originalClip);
// 设置新剪辑的循环
newClip.wrapMode = WrapMode.Loop;
// 进行烘焙操作(假设旋转烘焙为例)
AnimationUtility.BakeTransformIntoClip(transform, newClip, AnimationUtility.TrackTransformType.Rotation);
}
}
通过以上步骤和代码示例,可以更好地理解和操作动画剪辑相关设置在 Unity 中的应用。需要注意的是,实际项目中要根据具体需求和动画特点进行调整优化。