fbx

最終更新日27 Jun 2017 13:36

FBX SDK
インストールするとプログラム一覧のAutodeskフォルダの下にFBX SDK Online Documentationへのリンクが出てくる。
IncludeやLibはここにあった

C:\Program Files\Autodesk\FBX\FBX SDK\2018.1.1

Your First FBX SDK Programにはシーンノードを読み込んでprintfするまでが書いてある。
やってみたら、
モデル、カメラ、ライト
みたいなのが出てきて、

<node name='Suzanne' translation='(0.000000, 0.000000, 0.000000)' rotation='(-90.000009, 0.000000, 0.000000)' scaling='(100.000000, 100.000000, 100.000000)'>
    <attribute type='mesh' name='Suzanne'/>
</node>
<node name='Lamp' translation='(407.624542, 590.386230, -100.545395)' rotation='(47.533564, 107.220767, 10.743661)' scaling='(100.000008, 100.000000, 100.000000)'>
    <attribute type='light' name='Lamp'/>
</node>
<node name='Camera' translation='(748.113159, 534.366516, 650.763977)' rotation='(22.768803, 142.108342, 34.348485)' scaling='(100.000000, 100.000008, 99.999992)'>
    <attribute type='camera' name='Camera'/>
</node>

モデルの頂点情報までは出てこなかった。

サンプルの場所

C:\Program Files\Autodesk\FBX\FBX SDK\2018.1.1\samples

Blenderでエクスポートすると

BlenderでUnitがメートルだとノードのscale=100.0になる。
UnitがセンチメートルだとFbxでノードのscale=1.0になる

float factor = lScene->GetGlobalSettings().GetSystemUnit().GetScaleFactor();

このscalefactorは頂点に入ってるデータの数値が1cmに対して何倍かを示す。
単位がインチだったら2.57が入っているはず。
Blenderでは頂点データは基本的にメートルを基準とした数値が入っている。
BlenderでUnit=kmにすると頂点データが1000倍ぐらいの大きさになる(←データサイズって意味ではない)
BlenderでFbxエクスポートしたとき、Unitが正しくエクスポートされないときがある。。
COLLADAだったらテキストデータだから書き換え簡単なのになぁ。。
Blenderで使う単位を選べるならばcmかメートルが無難

頂点、インデックス

ちょっと名前がわかりにくいので注意
頂点データ GetControlPoints()
インデックスデータ GetPolygonVertices ()
Bibliography


ファイル

サポートサイト Wikidot.com