Closed8

ASCII FBX を Binary FBX に変換する方法

YajamonYajamon

Blender (v2.93.4) に BOOTH で買ったアバターの FBX を読み込ませようとしたら、エラーが発生した。

ASCII FBX files are not supported
YajamonYajamon

FBX には ASCIIフォーマット と Binaryフォーマット がある。

YajamonYajamon

どんな手段がいいか

ASCII FBX を Unity に取り込み、Unity FBX Exporter を使って変換するとよいと思われる。

FBX Converter であれ FBX Exporter であれ、FBX を扱う実態は Autodesk FBX SDK であると見られる。
当然ながら、 Unity FBX Exporter のほうが新しい SDK を使っている。

YajamonYajamon

FBX とは

  • 3Dモデルのアセット等をひとまとめに扱う規格である
  • 現在は Autodesk が所有する規格である
    • 重なった買収によって規格が渡り歩いた結果である
  • 公開されたドキュメントはない
    • blender 社が独自に解析した 非公式な仕様 が唯一の資料である
    • FBX SDK のヘルプに参考資料がある
  • FBX にはASCIIフォーマットとBinaryフォーマットがある

References

YajamonYajamon

ASCII FBX を Binary FBX に変換する

YajamonYajamon

FBX Converter を使う

いくら古いソフトウェアでも、本家本元の実装ならきっとうまくやってくれるだろう。

手順

  1. FBX Converter を入手する
    • FBX Converter 2013.3 64bit
  2. ConverterのSourceに変換したい ASCII FBX を指定する
  3. FBX Save ModeBinary にする
  4. Convert ボタンを押す

References

YajamonYajamon

Unity FBX Exporter Package を使う

Unity は FBX のインポートに対応している。
また、 FBX Exporter というパッケージを用意している。

手順

  1. ウィンドウ -> Package Manager を開く
  2. Unity Registory から、 "FBX" で検索すると、 "FBX Exporter" というパッケージが見つかる
  3. "FBX Exporter" をインストールする
  4. Unity の Assets に ASCII FBX を放り込む
  5. インポートされたモデルを選択し、 ゲームオブジェクト -> Export to FBX を選択する
  6. 出力に関する設定を調整し、 Export を実行する
    • Export Format を Binary にする
    • 元データを上書きしないよう出力先を調整する

References

YajamonYajamon

違いを確認してみる

FBX Converter で バイナリ出力した FBX と、 Unity を経由してバイナリ出力した FBX を比較してみる。
FBX の中身は、 FBX Converter に同梱された FBX Explorer で確認できる。

  • ファイルサイズが違う
    • FBX Converter は 1396KB
    • FBX Exporter は 1963KB
  • File Version が違う
    • FBX Converter は 7300
    • FBX Exporter は 7400
  • FBX Version が違う
    • FBX Converter は 7300
    • FBX Exporter は 7400
  • Connections の内容がまったく合わない
    • FBX Converter には、各要素に OP なる種別を表すキーワードがある
      • OP 系の要素には、グルーピングの要素名と見られる文字列がある
  • Creater の内容が違う
    • FBX Converter は FBX SDK/FBX Plugin version 2013.3 build=20120911
    • FBX Exporter は FBX SDK/FBX Plugin version 2020.2 build=71821dbdf
    • もともとのFBX は FBX SDK/FBX Plugin version 2020.0

この他頂点データと思われるデータも全く合わなかった。このあたりは変換処理によって大きく異なるものと思われる。

このスクラップは2022/01/16にクローズされました