读取 .FBX 动画?

3
你如何从.fbx文件中读取动画?我正在使用Java和OpenGL,但这与问题并不是太相关。我在多个来源中搜索,但找不到.FBX文件格式的任何信息。
我的模型加载器目前可以加载名称、索引、顶点、法线、骨骼名称、骨骼权重和骨骼矩阵。但我有困难理解如何从这里读取动画。
我可以假设这是文件的动画部分。
;Takes and animation section
;----------------------------------------------------

Takes:  {
    Current: "ArmatureAction"
    Take: "ArmatureAction" {
        FileName: "ArmatureAction.tak"
        LocalTime: -1924423249,105843278750
        ReferenceTime: -1924423249,105843278750

        ;Models animation
        ;----------------------------------------------------
        Model: "Model::body" {
            Version: 1.1
            Channel: "Transform" {
                Channel: "T" {
                    Channel: "X" {
                        Default: 0.000000000000000
                        KeyVer: 4005
                        KeyCount: 1
                        Key: 
                            1924423250,0.000000000000000,L
                        Color: 1,0,0
                    }
                    Channel: "Y" {
                        Default: 0.000000000000000
                        KeyVer: 4005
                        KeyCount: 1
                        Key: 
                            1924423250,0.000000000000000,L
                        Color: 0,1,0
                    }
                    Channel: "Z" {
                        Default: 0.000000000000000
                        KeyVer: 4005
                        KeyCount: 1
                        Key: 
                            1924423250,0.000000000000000,L
                        Color: 0,0,1
                    }
                    LayerType: 1
                }
                Channel: "R" {
                    Channel: "X" {
                        Default: 90.000002504348856
                        KeyVer: 4005
                        KeyCount: 1
                        Key: 
                            1924423250,90.000002504348856,L
                        Color: 1,0,0
                    }
                    Channel: "Y" {
                        Default: -89.999995674159678
                        KeyVer: 4005
                        KeyCount: 1
                        Key: 
                            1924423250,-89.999995674159678,L
                        Color: 0,1,0
                    }
                    Channel: "Z" {
                        Default: 0.000000000000000
                        KeyVer: 4005
                        KeyCount: 1
                        Key: 
                            1924423250,0.000000000000000,L
                        Color: 0,0,1
                    }
                    LayerType: 2
                }
                Channel: "S" {
                    Channel: "X" {
                        Default: 1.000000000000000
                        KeyVer: 4005
                        KeyCount: 1
                        Key: 
                            1924423250,1.000000000000000,L
                        Color: 1,0,0
                    }
                    Channel: "Y" {
                        Default: 1.000000000000000
                        KeyVer: 4005
                        KeyCount: 1
                        Key: 
                            1924423250,1.000000000000000,L
                        Color: 0,1,0
                    }
                    Channel: "Z" {
                        Default: 1.000000000000000
                        KeyVer: 4005
                        KeyCount: 1
                        Key: 
                            1924423250,1.000000000000000,L
                        Color: 0,0,1
                    }
                    LayerType: 3
                }
            }
        }
        Model: "Model::head" {
            Version: 1.1
            Channel: "Transform" {
                Channel: "T" {
                    Channel: "X" {...............................

有好心人能否解释一下这是如何格式化的?感谢帮助!

我是一名研究生,目前正在基于FBX文件开发一个动画引擎。我正在fbxexplorer.blogspot.com上记录一些我所学到的东西。如果你遇到困难,可以随时阅读那里的内容或向我提问。这是一个非常复杂的文件格式。 - undefined
1个回答

6

由于(如我所记)FBX规范并非公开的,因此通常需要使用FBX SDK。您可以从在线文档开始学习。然而,SDK只提供了C++和Python API。

您还可以查看Blender(开源),它提供了一个不使用FBX SDK编写的FBX导出器

维基百科还指出,OpenEndedGroup的产品Field包括一个FBX Java库。您可以在Github上找到他们的代码,您感兴趣的部分可能是jfbxlib的一部分。


我明白了。我很可能会继续完善我的文件读取器,就像之前一样。我相信我已经找到了如何读取动画的方法。还是谢谢你! - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接