Удаление анимационных кривых в редакторе

Программирование на Юнити.

Удаление анимационных кривых в редакторе

Сообщение MetosFate 27 май 2010, 15:09

Хочу написать скрипт редакторский, не для рантайма, который удалит с анимации все кривые position, оставив кривые rotation. Раскурив мануал, понял что делается это через SetCurve с последним параметром null. Ну он ругнулся на
anim.SetCurve("Armature/Master/Ass/Hip", typeof(Transform), "localPosition.x", null);
Мол что-то там с сериализацией. Я заменил "localPosition.x" на "m_localPosition.x"... Ругаться перестал, но кривые не удаляет. :-?
Что делать?
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Удаление анимационных кривых в редакторе

Сообщение MetosFate 28 май 2010, 11:42

Полный код скрипта вылядит так
Синтаксис:
Используется csharp

using UnityEngine;
using UnityEditor;
using System;

public class FixAnimation : ScriptableObject
{
    [MenuItem("Custom/FixAnimation")]
    static void ListChildTransforms()
    {
        GameObject go = Selection.activeGameObject;
        string parent_name = go.name;
        AnimationClip anim=go.animation["jumpc"].clip;
        //Hip
        anim.SetCurve("Player/Armature/Master/Ass/Hip", typeof(Transform), "m_localPosition.x", null);
        anim.SetCurve("Player/Armature/Master/Ass/Hip", typeof(Transform), "m_localPosition.y", null);
        anim.SetCurve("Player/Armature/Master/Ass/Hip", typeof(Transform), "m_localPosition.z", null);
     }
}
 

"Player/Armature/Master/Ass/Hip" - путь к кости;
"m_localPosition.z" - то, что анимирую;
Transform -тип класса, который изменяет анимация.
Если последний параметр null, то кривая должна удаляться, но не хочет :(
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Удаление анимационных кривых в редакторе

Сообщение MetosFate 02 июн 2010, 22:13

После отчаянных поисков по всему свету решения этой проблемы я нашёл простой ответ:
вот как
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEditor;
using System;

public class FixAnimation : ScriptableObject
{
    [MenuItem("Custom/FixAnimation")]
    static void ListChildTransforms()
    {
        GameObject go = Selection.activeGameObject;
        string parent_name = go.name;
        AnimationClip anim = new AnimationClip();
            anim=go.animation["shoot_back_R"].clip;
        //Hip
       
        anim.SetCurve("путь к кости", typeof(Vector3), "localPosition", null);
   }
}
 



Всё прекрасно работает :-bd
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6