FBX ファイルを GLB ファイルに変換する際、Blender を立ち上げて GUI で操作するのが面倒だったので Python スクリプトで実現する方法を試してみました。
環境
- Ubuntu 22.04.3 LTS
- Blender 4.2.0
- Python 3.11
インストール
Blender をインストールします。
いくつか方法がありそうですが、公式ページ で紹介されていた Snap からインストールする方法が簡単そうです。
apt install snapd
snap install blender --classic
Python スクリプトの作成
"作成"と書いていますが、今回は、Khronos Group(glTF/GLB の開発元)の github リポジトリで公開されているスクリプトを使用します。
このスクリプトは、変換元の形式が FBX ではなく Wavefront .obj になっているため、スクリプトを2箇所ほど書き換えます。
glb ファイルを出力するbpy.ops.export_scene.gltf()
のオプションは公式ページに記載があります。
https://docs.blender.org/api/current/bpy.ops.export_scene.html
Python スクリプトの実行
ターミナルを立ち上げて、以下のコマンドを実行します。
※スクリプトの3行目(コメント部分)に実行コマンドの記載があります。
/snap/bin/blender -b -P blender_gltf_converter.py -- -mp "FBXファイルのパス"
-b
(--background
) で、Blender をヘッドレスモードで実行します。
-P
(--python
)で、Python スクリプトを Blender に渡すことができます。
--
後の -mp
で、変換元となる FBX ファイルのパスを指定します。
さいごに
Blender Python は、最初は「この操作って、スクリプトではどう書くの?」となりますが、慣れてくれば作業効率化に繋がりそうですし、興味を持たれた方は試してみてください。