zoukankan      html  css  js  c++  java
  • Unity编辑器下获取动画的根运动状态并修改

    我最初想直接修改.anim文件

    但通过后来得到的信息,其实根运动状态储存在FBX.meta文件里,转出的.anim文件虽然也有根运动的信息但是算是塌陷过的,无法进行开关操作。

    这是我针对有根运动.anim文件和无根运动的.anim对比图:

    后来根据论坛查到的信息,具体参数在meta下的这条属性中:

    humanDescription:
        human: []
        skeleton: []
        armTwist: .5
        foreArmTwist: .5
        upperLegTwist: .5
        legTwist: .5
        armStretch: .0500000007
        legStretch: .0500000007
        feetSpacing: 0
        rootMotionBoneName: Root

    官方论坛给出的具体操作代码:

    using UnityEngine;
    using UnityEditor;
    using System.Collections;
     
    public class SetRootMotionNode {
     
        [MenuItem("Mecanim/SetRootMotionNode")]
        static void DoSetRootMotionNode()
        {
            Object obj = Selection.activeObject;
            if (obj == null)
                return;
     
            string assetPath = AssetDatabase.GetAssetPath(obj);
            ModelImporter modelImporter = AssetImporter.GetAtPath(assetPath) as ModelImporter;
            if (modelImporter == null)
                return;
     
            SerializedObject modelImporterObj = new SerializedObject(modelImporter);
            SerializedProperty rootNodeProperty = modelImporterObj.FindProperty("m_HumanDescription.m_RootMotionBoneName");
     
            rootNodeProperty.stringValue = "Beta:Hips";
     
            modelImporterObj.ApplyModifiedProperties();
            AssetDatabase.ImportAsset(assetPath);
        }
    }
    View Code

    结果我修改再提取.Anim文件还是旧的。。。,如果要得到最新的.fbx中的文件,需要调用方法重新导入一次.fbx文件

    modelImporter.SaveAndReimport();
  • 相关阅读:
    【已解决】github中git push origin master出错:error: failed to push some refs to
    好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题
    THINKPHP 5.0目录结构
    thinkphp5.0入口文件
    thinkphp5.0 生命周期
    thinkphp5.0 架构
    Django template
    Django queryset
    Django model
    Python unittest
  • 原文地址:https://www.cnblogs.com/hont/p/4898650.html
Copyright © 2011-2022 走看看