2013-07-11 37 views
1

'你好,這個新貼在這裏。介紹時間?你好。閱讀.FBX動畫? '

接下來的議程中,我想問一下如何從.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" {............................... 

請問一位善良的靈魂請解釋這是如何格式化的?幫助讚賞!

+0

我是一名正在製作基於FBX文件的動畫引擎的研究生。我記錄了一些我在fbxexplorer.blogspot.com上看到的內容。隨意閱讀那裏的東西,或詢問是否有麻煩。這是一個非常複雜的文件格式。 – Philip

回答

3

由於(IIRC)FBX規範不公開,您通常希望使用FBX SDK。

online documentation是一個開始學習的好地方。但是,SDK僅公開C++和Python API。

你也可以看看Blender(開源),它提供了一個FBX exporter written without using the FBX SDK

維基百科還聲明,OpenEndedGroup的產品Field包含一個FBX java庫。你可以在Github找到他們的代碼,你感興趣的部分可能是jfbxlib的一部分。

+0

所以我明白了。我很可能只是盡力完成我的文件閱讀器。我相信我發現瞭如何閱讀動畫。不管怎麼說,多謝拉! – Braindrool