🐵

GitHubActionsでBlenderをレンダリング

2021/09/16に公開

GitHubActionsを用いてBlender(2.9)をレンダリングできたので残します。

レポジトリ
https://github.com/OHMORIYUSUKE/blender-rendering

説明

注意

https://devtalk.blender.org/t/blender-2-8-unable-to-open-a-display-by-the-rendering-on-the-background-eevee/1436

Blenderをインストール

ubuntuでblender(2.9)をインストールするにはsnapdを用いてインストールします。

https://snapcraft.io/install/blender/ubuntu

そのため、apt install snapdでsnapdをインストールします。

https://snapcraft.io/docs/installing-snap-on-kubuntu

まとめると、以下のシェルでBlenderをubuntuでインストールできます。

#!/bin/bash
sudo apt -y update
sudo apt list --upgradable
sudo apt install snapd
sudo snap install blender --classic

Blenderをコマンドからレンダリング

アニメーション

render_anim.sh
sudo blender --background -noaudio blend/Miraikomachi.blend --threads 0 -E CYCLES --render-output img/anim -s 1000 -e 1030 -a
  • --backgroundバックグラウンドでレンダリング
  • -noaudio音なしでレンダリング
  • blend/Miraikomachi.blendレンダリングしたいblendファイルを指定
  • --threads 0システムプロセッサ数には0を使用
  • -E CYCLESレンダリングエンジンを指定(BLENDER_EEVEEを指定するとエラーになります)
  • --render-output img/anim画像を出力するときのファイル名(img/anim0001.pngのように画像が連番で出力される)
  • -s 1000 -e 10301000フレームから1030フレームまでをレンダリングする
  • -a画像を複数枚生成するときにつける

画像

render.sh
sudo blender --background -noaudio blend/Miraikomachi.blend --threads 0 -E CYCLES --render-output img/anim --render-frame 2310
  • --render-frame 23102310フレームをレンダリングする

詳しいコマンドの説明

https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html

コマンド一覧に出力ファイルで動画を指定できなかったのでPythonで動画を生成しました。

Pythonで連番画像から動画を生成

render_anim.sh
# 動画生成
sudo pip install opencv-python-headless==4.4.0.44
sudo python3 pngtomp4.py

opencvをインストールしてpngtomp4.pyを実行し、

render_anim.sh
sudo blender --background -noaudio blend/Miraikomachi.blend --threads 0 -E CYCLES --render-output img/anim -s 1000 -e 1030 -a

で作成したimgディレクトリにあるPNGの連番画像から動画を作成します。

最後に

PCでレンダリングすると、レンダリング中に行う他の作業に支障をきたしてしまう方はGitHubActionsでレンダリングしてはどうでしょうか。また、利用する際はGitHubActionsの実行時間の制限に注意しましょう。

Blender(2.8)では以下のようにインストールできますが、2.9ではインストールできませんでした。また、2.8と2.9では.blendのデータが異なるため、このレポジトリでは2.8のレンダリングはできません。

https://www.kkaneko.jp/tools/ubuntu/ubuntu_blender.html

Discussion