博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity编辑器下获取动画的根运动状态并修改
阅读量:6818 次
发布时间:2019-06-26

本文共 1361 字,大约阅读时间需要 4 分钟。

我最初想直接修改.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();

 

转载于:https://www.cnblogs.com/hont/p/4898650.html

你可能感兴趣的文章
tomcat启动脚本
查看>>
ASP.NET-FineUI开发实践-10
查看>>
小猪决定做一件尝试
查看>>
linux下jdk的安装:
查看>>
Ajax_ajax模板引擎 ---tmplate.js处理数据和标签拼接
查看>>
微信小程序-下拉松开弹不回去顶部留一段空白
查看>>
[摘录]感受弗兰克尔的故事
查看>>
jmeter响应时间与postman响应时间为什么不一样?
查看>>
HTTPonly属性
查看>>
显示磁盘信息
查看>>
基于spark和sparkstreaming的word2vec
查看>>
C++系统学习之五:表达式
查看>>
JPA多对一单向关联
查看>>
系统查看硬件相关信息命令
查看>>
sublime 3 text 中运行Java
查看>>
前序遍历
查看>>
loadrunner检查点设置失败,日志中SaveCount无法被正常统计出来
查看>>
循环结构进阶
查看>>
bzoj 2809: [Apio2012]dispatching
查看>>
关于数据库查询时报“query block has incorrect number of result columns”
查看>>