Unity小工具 姿态复制脚本——以骨骼动画关键帧跨动画复制为例
做骨骼动画动画时,想要让动画之间的过渡变得更好,
想做一个新的AnimationClip将两个动画先后衔接起来。
这里试了很久没法直接将两个不同动画间的关键帧进行复制,
就写了一个脚本帮忙直接在物体上复制姿态,然后可以更好的操作进行动画。
原理
原理就很简单,深度优先搜索遍历物体的儿子们,将被复制的和复制的两个物体所有儿子的Transform设置相同即可。
也可以自己改改,用来复制别的东西的参数。
脚本源代码
新建脚本复制进去即可,会自动编译
using System.Linq;
using UnityEngine;
using UnityEditor;
using System.Collections;using System.Collections.Generic;public class CopyObjectPos : EditorWindow
{static GameObject copiedGO;[MenuItem("GameObject/MyTools/Copy Object Pos #&C")]static void Copy(){copiedGO = GameObject.Instantiate(Selection.activeGameObject);}[MenuItem("GameObject/MyTools/Paste Object Pos #&P")]static void Paste(){GameObject targetGO = Selection.activeGameObject;DFS(copiedGO.GetComponentsInChildren(), targetGO.GetComponentsInChildren());DestroyImmediate(copiedGO);}static void DFS(Transform[] copiedTf, Transform[] targetTf){for(int i=1;i(), targetTf[i].GetComponentsInChildren());}}
}
使用方式
这里以我的动画制作需求为例
在场景中把需要复制的人物姿态调出来

选中复制命令

此时会有一个临时物体被复制出来

打开需要制作过渡的动画Clip,点小红圈开始录制

选中粘贴命令

复制完了

随后点击设置关键帧,将当前姿势设置为动画关键帧

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
