2

.fbx ファイルからアニメーションを読み取るにはどうすればよいでしょうか? これにはOpenGLでJavaを使用していますが、それはこの質問にはあまり関係ありません。いくつかの異なる情報源を調べましたが、.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" {...............................

親切な魂がこれがどのようにフォーマットされているか説明してくれませんか? 助けてください!

4

1 に答える 1

5

(IIRC) FBX 仕様は公開されていないため、通常は FBX SDK を使用します。

オンライン ドキュメントは、学習を開始するのに最適な場所です。ただし、SDK は C++ および Python API のみを公開します。

FBX SDK を使用せずに記述された FBX エクスポーターを提供する Blender (オープンソース) も参照してください。

ウィキペディアはまた、OpenEndedGroup の製品である Field には FBX Java ライブラリが含まれていると述べています。コードはGithubで見つけることができ、興味のある部分はおそらくjfbxlibの一部です。

于 2013-07-11T19:34:56.273 に答える