ufbx
🧩 ufbx — 単一ソースファイルの FBX ローダー
ufbx は、単一のソースファイルで構成された FBX ローダーです。
このライブラリは、FBX ファイル形式を簡単に扱える ユーザーフレンドリーなインターフェースを提供することを目的とし、必要に応じて 高度な機能にも完全対応しています。
特徴
- 単一ファイル構成:C99 / C++11 に対応した1つのソースファイルで完結
- 堅牢なエラーハンドリング:無効なファイルやメモリ不足などにも安全に対応
- 型安全なAPI:C++およびRustバインディングでは境界チェック付きスライスを使用
- 徹底したテストとファジング(fuzzing) による高信頼性
💾 ダウンロードと使用例
ufbx_load_opts opts = { 0 }; // 任意設定、デフォルトを使う場合は NULL を渡す
ufbx_error error; // 任意、エラーを無視する場合は NULL を渡す
ufbx_scene *scene = ufbx_load_file("my_scene.fbx", &opts, &error);
if (!scene) {
fprintf(stderr, "読み込みに失敗しました: %s\n", error.description.data);
exit(1);
}
// 読み込まれた `scene` を自由に利用できます。
// これはただのプレーンなデータ構造です!
// 例: シーン内のすべてのオブジェクトを列挙して表示
for (size_t i = 0; i < scene->nodes.count; i++) {
ufbx_node *node = scene->nodes.data[i];
if (node->is_root) continue;
printf("オブジェクト: %s\n", node->name.data);
if (node->mesh) {
printf("→ メッシュ(%zu 面)\n", node->mesh->faces.count);
}
}
ufbx_free_scene(scene);💡 補足
上記コードをコンパイルすれば、任意の .fbx ファイルを読み込み、ノード(オブジェクト)やメッシュ情報を列挙できます。scene 構造体には、マテリアル、トランスフォーム、アニメーションなどの詳細情報も格納されています。
No Comments