Unity/문제해결

Unity Animation Clip Curves 복사 후 새로운 클립에 넣어주기

minquu 2022. 9. 14. 11:23
반응형
    void ParseClip(AnimationClip clip, AnimationClip newclip, int clipnumber)
    {
        StringBuilder s = new StringBuilder();
        AnimationClipCurveData[] cdataarray = AnimationUtility.GetAllCurves(clip, true);
        int l = ((AnimationClipCurveData[])cdataarray).Length;

        AnimationCurve[] animationCurve = new AnimationCurve[l];

        for (int i = 0; i < l; i++)
        {
            animationCurve[i] = cdataarray[i].curve;
        }

        EditorCurveBinding[] editorCurveBindings = AnimationUtility.GetCurveBindings(clip);
        AnimationUtility.SetEditorCurves(newclip, editorCurveBindings, animationCurve);

    }

 

AnimationUtility.GetAllCurves 로 커브 데이터를 배열로 가져옴

 

커브 데이터에는 curve를 가지고 있음 이걸 애니메이션 커브 배열로 넣어주고

 

AnimationUtility.GetCurveBindings으로 커브 바인딩 값을 배열로 가져옴

 

커브 바인딩은 키프레임을 제외한 필요한 하이라키 구조 및 여러가지 값을 가지고 있음

 

이 두 가지 배열을 SetEditorCurves 메서드로 파라미터로 넣어줌

 

반응형