首页 > 解决方案 > Unity:从 FBX 文件中获取每一帧的关节旋转

问题描述

我有一些动画存储在需要分析的 FBX 文件中。我需要知道每帧每个关节的localRotations 和s。localPosition

我目前的方法是使用 Unity 并将 FBX 文件分配给动画控制器中的状态并播放它。然后我为根关节分配一个脚本,在每次Update()调用中我递归地读取localRotation每个关节的,并将它们保存到一个列表中。

我现在的问题是:

  1. 我如何保证我从 FBX 中获取每一帧恰好一次?我应该使用FixedUpdate而不是Update吗?我希望这个脚本不受其他并行运行的程序造成的任何负载的影响。

  2. 如何获取当前播放的帧号?如何检测动画是否已结束或正在循环播放?

我只需要这个来从动画中获取关节旋转。动画实际上在屏幕上播放是不相关的。如果有更简单的方法,我也会感兴趣。我想从大约 200 个长度为 2-10 秒的 FBX 文件中提取这些信息。

我只想使用 Unity 处理文件,其他一切都将在 Python 中完成,因为我几乎没有 Unity 经验。

标签: unity3danimationfbxanimator

解决方案


推荐阅读