このビデオでは、Blenderバージョン4.2を使用して、フォルダ内のすべてのBlenderファイルのシーンの内容を、テクスチャを含むFBX形式でエクスポートするためのPythonスクリプトをいくつか紹介します。
動画の書き起こし
みなさん、こんにちは!このビデオでは、Blenderバージョン4.2を使用して、フォルダ内のすべてのBlenderファイルのシーンの内容を、テクスチャを含むFBX形式でエクスポートするためのPythonスクリプトをいくつか紹介します。
スクリプトは2つあります。最初のスクリプトは、実行されたファイルのエクスポートを処理し、2番目のスクリプトは、フォルダ内のすべてのBlenderファイルに対して最初のスクリプトを実行します。
これらのスクリプトは私の特定のニーズに合わせて作成しましたが、これは非常に特別なケースだと認識しています。しかし、このチュートリアルは他のケースにも拡張可能です。なぜなら、実際にはBlenderを開かずにスクリプトにパラメータを提供して実行する方法を示しているからです。この方法を使用すると、今回使用するものとは異なるオペレーターやツールでも同様に活用できます!
具体的には、export_scene.fbx 関数を使用して、シーンの内容をFBXファイルにエクスポートすることが可能です。この関数はoperatorsモジュールから使用でき、Blenderマニュアルに記載されているように、出力ファイル名やその他のパラメータを指定することができます。

私が最も関心を持っているのは、テクスチャをモデルのマテリアルとともにエクスポートすることで、Copyモードを有効にしてEmbeddedオプションを使用する方法です。これは、私が以前のチュートリアルで説明した、テクスチャ付きでFBX形式にモデルをエクスポートする方法と同じです。
出力ファイル名に加えて指定する必要がある2つのパラメータは、Path Modeで、これをCopyに設定する必要があり、もう一つはembed texturesで、これをTrueに設定する必要があります。
そのため、テクスチャを埋め込むFBXエクスポートスクリプトでの関数呼び出しは次のようになります:bpy.ops.export_scene.fbx(filepath = sys.argv[-1], path_mode='COPY', embed_textures=True)。

bpyモジュールとsysモジュールをインポートした後、このエクスポートスクリプトに含める唯一の命令はこれだけです。ファイル名はスクリプトにパラメータとして渡され、Path ModeとEmbed Texturesは、テクスチャとして使用される画像をFBXファイル内に保存することを可能にします。
このスクリプトを1つのblendファイルで実行したい場合、ターミナルで次のコマンドを書くだけで十分です:
blender filename.blend --background --python export_embedded_fbx.py -- filename.fbx

しかし、フォルダ内にあるすべてのBlenderファイルに対してこのスクリプトを実行したい場合、ファイルが多いかもしれないので、毎回手動でファイル名を置き換えたくはありません!
そのため、現在のフォルダ内で見つけた各Blenderファイルに対して、そのコマンドを実行する別のスクリプト、またはバッチファイルが必要です。
簡単な解決策は、別のPythonファイルに次の指示を書き込むことです。このファイルは、例えばbatch_export_embedded_fbx.pyと呼ぶことにします。
osモジュールとsubprocessモジュールをインポートした後、ディスク上のファイルにアクセスし、他のPythonスクリプトを起動するために、現在のフォルダのパスをscript_dirという変数に格納します。
これが完了したら、現在のフォルダにあるすべてのBlenderファイルのリストを取得します。
次に、このリスト内の各Blenderファイルに対して、export_embedded_fbx.py Pythonスクリプトを実行し、現在のBlenderファイル名と、拡張子が.fbxでEMBEDDEDというサフィックスを持つ出力ファイル名を渡すループを開始します。

両方のファイルをディスクに保存した後、やるべきことは、batch_export_embedded_fbx.py スクリプトを実行して、希望する結果を得ることだけです。
さて、この短いビデオがお役に立てば幸いです!またお会いしましょう!