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());}}
}

使用方式

这里以我的动画制作需求为例
在场景中把需要复制的人物姿态调出来
20220129141121

选中复制命令
20220129141513

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

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

选中粘贴命令
20220129141742

复制完了
在这里插入图片描述

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


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

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部