录制动画时AnimationClip.SetCurve的relativePath问题

发表于2018-04-28
评论0 1.2k浏览
做项目时有时候需要把某个GameObject及其子物体的动作录制成Animation动画,当然这些动画是在Unity的Animation能力范围内的。正常情况下是使用程序控制物体的动作,然后把这些动作一帧一帧录下来。(固定帧即在FixedUpdate中录制,我把固定帧间隔设为了0.04s,在Update中1秒60帧实在承受不住)主要分为两步:1、new一个AnimationCurve,调用AnimationCurve.AddKey向这条曲线中加关键帧。2、调用AnimationClip.SetCurve()将曲线设置为物体的某一个属性,比如localRotation.x、localRotation.y、localPosition.x等。不详述过程,问题不在这。

这是这个GameObject的层级,Animation挂在父物体上,我可能需要控制任意一个子物体而只用一个Animation。

问题在于AnimationClip.SetCurve()中relativePath这个参数。
官方文档是这样解释的:The path to the game object this curve applies to. relativePath is formatted similar to a pathname, e.g. "root/spine/leftArm". If relativePath is empty it refers to the game object the animation clip is attached to.

应用给该曲线的游戏物体的路径。relativePath被格式化类似路径,如"root/spine/leftArm"。如果relativePath为空,表示动画剪辑附加的游戏物体。
可能有些人也被误导了。

在Animation面板中就是类似于这样的路径:
事实是当path为空的时候表示这条Curve设置在Animation所挂在的GameObject上。物体“1”的path是“1”而不是“ABB_Tuxing/1”,物体“2”的path是“1/2”,物体“3”的path为“1/2/3”,物体“Static”的path是“Static”。就是这么简单。

参考链接:
http://forum.unity3d.com/threads/help-i-dont-get-it-animationclip-setcurve-relativepath.168050/

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签:

0个评论