この簡単なチュートリアルでは、コマンドラインからレンダリングを開始する方法と、特に異なるファイルのレンダリングを順番にキューに入れる方法について説明します。
動画の書き起こし
みなさん、こんにちは!この簡単なチュートリアルでは、コマンドラインからレンダリングを開始する方法と、特に異なるファイルのレンダリングを順番にキューに入れる方法について説明します。
これらの操作は非常に便利です。なぜなら、複数のファイルからレンダリングを順次実行する必要がある場合、すべてを1つのバッチファイルにまとめてスケジュールすることができるからです。この方法を使えば、1つのレンダリングが終わるたびに次のレンダリングを手動で開始する必要がなくなります。ただバッチファイルを実行して、コーヒーを取りに行ったり、必要に応じて眠ったりすることができます。
このチュートリアルは Blender バージョン 4.2 を使用して録画されていますが、コマンドラインからレンダリングを開始するためのコードの1行は、いくつかのバージョンにわたって同じ構造を維持しており、将来のバージョンでも変更される可能性は低いです。
アクティブな仮想カメラを含む blend ファイルがある場合、インターフェース付きの Blender セッションを起動せずに、次のコード行を使用してコマンドラインから直接シーンをレンダリングすることができます:
blender.exe -b scenepath.blend -o outputpath -s startframe -e endframe -a

レンダリングは、解像度、出力ファイル形式、圧縮、およびその他すべての設定が blend ファイルに指定された内容そのままに実行されます。ただし、いくつかのパラメーターを置き換える必要があります!
具体的には、Scene Path をレンダリング対象の blend ファイルのフルパス(最後の blend 拡張子を含む)に置き換える必要があります。
同様に、Output Path をレンダリング後のファイルを保存するフルパスに置き換えます。この際、ファイル名の接頭辞を指定することもできます。この場合、出力ファイルの拡張子を指定する必要はありません。
Start Frame と End Frame には、シーケンス内でレンダリングする最初と最後のフレームを指定する必要があります。
最後の -a オプションは、レンダリング対象のファイル内にある設定を使用するように Blender に指示します。
現在、コマンドラインからアニメーションのレンダリングを開始する例を画面に表示しています。
では、このチュートリアルの第2のトピックに進みましょう。バッチファイルを使用して複数のレンダリングを順次キューに入れる方法です。
このチャンネルで以前公開した別のチュートリアルでは、フォルダー内にある blend ファイルからモデルを FBX 形式にエクスポートするバッチコマンドラインアプリケーションを紹介しました。この際、PBRマテリアルテクスチャの Copy Attributes および Embedded オプションを指定することもできました。このチュートリアルやその他の Blender チュートリアルに興味がある場合は、動画に「いいね!」やコメントを残し、さらに重要なのは、次の動画を見逃さないようにチャンネル登録をしてください!
複数の Blender ファイルを順番にレンダリングするには、テキストファイルを作成し、各 blend ファイルをレンダリングするコマンドを1行ずつ追加するだけです。
このテキストファイルは、Notepad や他のテキストエディタを使って作成できますが、適切な拡張子を設定することが重要です。Windows では、例のように拡張子を bat(バッチの略)にする必要があります。一方、Linux や Mac では、通常 sh という拡張子を持つシェルスクリプトになります。
現在、画面上に複数の blend ファイルが、それぞれの設定で順番にレンダリングされている様子を表示しています。これらはバッチファイルを1回クリックするだけで開始されます。

一般的に、コマンドラインから Blender を起動する際に使用可能な引数を確認するには、blender -h または blender --h と入力し、Enter を押します。
このチュートリアルを締めくくる前に、1つのバッチファイルから複数のバッチファイルを順番に実行する方法を見てみましょう!
私は、アセットを作成し、それぞれのアセットに対してシーン、ワイヤーフレーム、ターンテーブルファイルからレンダリングを生成する必要がある場合によくこれを行います。各アセットについて、そのプロジェクトの個々のレンダリングを管理するバッチファイルを作成します。複数のアセットを処理している場合、最終的に複数のフォルダーが作成され、それぞれに独自のバッチファイルが含まれます。
このような場合、私はコンピュータの前にいる間はアセットの作成に集中し、その後、夜間や週末などコンピュータの前にいないときにすべてのバッチファイルを順番に実行します。これは、ワークフローを最適化するための非常に優れた方法です。
この場合も、新しいテキストファイルからバッチファイルを作成する必要があります。ただし、バッチファイル内で Blender を呼び出して個別のレンダリングを実行する場合とは異なり、ここでは Call という特定のコマンドを使用する必要があります。
このコマンドは複数のバッチファイルを順番に実行する際に欠かせません。なぜなら、これがないと、スクリプトは最初にリストされたバッチファイルを完了した時点で実行を停止してしまうからです。
要約すると、1つのバッチファイルから複数のレンダリングを実行したい場合には問題ありません。しかし、別のバッチファイルから複数のバッチファイルを実行したい場合には、Call コマンドを使用する必要があります。

私自身は Linux や Mac OS の環境を使用していないため確信はありませんが、シェルスクリプトでは外部のシェルスクリプトを順番に実行するために特別なコマンドは必要ないと思われます。
補足として、Windows のバッチファイルで Call コマンドを Start コマンドに置き換えることで、プロセスを順次実行するのではなく並列で実行することができます。ただし、特にレンダリングの場合にはこのオプションをお勧めしません。
以上で、この簡単なチュートリアルは終了です!お役に立てたなら幸いです。またお会いしましょう!