はじめに
今回はBlenderがレンダリング途中で落ちる時の対処法を紹介します。
アニメーションのレンダリングを想定して進めます。
原因
特定のフレームで落ちない限り、原因は熱暴走です。
主に高い負荷が長時間かかるアニメーションレンダリングで熱暴走が起こります。
対処法
対処法は… ありますが、解決はしません。
落ちる時は落ちます。
そして結論だけ言うと、長編の動画は書き出せませんでした。
Blenderでの映像制作は1カット1分を目安と考えましょう。

ここでは下記の3つのアプローチで対処していきます。
・そもそもの映像構成を変える
・落ちにくくする
・落ちても大丈夫なようにする
映像構成を変える
1カット、約6分、60pfsの映像、パーティクル付き、22000フレームの映像を書き出そうとした所、色々試しても書き出せませんでした。
落ちる、パーティクルの挙動が変わる…など 様々な問題が起こりました。
なので…PVを作る際はカットやループを前提にした映像を考えます。
落ちにくくする
落ちにくくする方法を下記の3つに分けて解説します。
・Blenderの設定
・PCの設定
・アナログ的なアプローチ
Blenderの設定
Blenderを立ち上げ。
編集 → プリファレンスを選択。

システムよりCUDAを選択。
熱暴走の原因になりがちなCPUを外します。

以上がBlenderでの設定です。
PCの設定
PCに節電モードがある場合、それを有効化します。
OSなどで異なるので細かい解説は省きます。
アナログ的なアプローチ
有効なアプローチは下記。
・PCの配置を風当たりのいい日陰に変更します
・エアコンや扇風機で風を当てる
・ほこりを掃除する
・一定時間経過したらPCを休ませる
・重たい事は冬にやる
NGなアプローチは下記。
・氷を使って冷やす → 結露が起こる
・急激な温度変化を作らない → 結露が起こる
あえてPCの性能を下げる
Windowsキー → deを検索。
「電源プランを選択」を選択。

プラン設定の変更を選択。

詳細な電源設定の変更を選択。

ここにある設定項目を1つ1つ開いていきます。
できるだけ「最大限の省電力」に設定します。
プロセッサ電源管理でパフォーマンスに制限をかけます。

これで20℃近く温度が下がります。
詳細はこちらで解説。
廃熱グッズを使う
また、熱暴走対策グッズなどがあります。
ノートパソコンならこのようなファン付きスタンドを使います。
※これを買わなくても、本などを下敷きにして少し高さを出すだけで冷却効率が変わります。
PCの場合はケースに合わせてファンの増設やグラボの縦置きを考えます。
グラボの縦置きすると風の流れが改善することがあります。
縦置きには縦置き対応のケースとライザーケーブルが必要です。
このライザーケーブルはネジ穴の関係でお使いのグラボメーカーと同じものを選ぶのをおすすめします。
また、予算があれば冷却性能が高い水冷に変えるのもおすすめ。
このような簡易水冷から。
仕事で大量のレンダリングが必要な方は、本格水冷にしてもいいと思います。
見た目がカッコいいけど水冷にする理由が無い…と思ってた方は、これを機に水冷にするのもいいと思います。
落ちにくくした結果
性能を落とし、60℃で安定させても…エラーで落ちました。
正直、お手上げです。
(スリープ、ディスプレイ、ハードディスクの無操作オフ系の設定は無効化しました)

パーティクル以外の要素を削除。
背景を完全な黒に設定して映像として書き出し。

すると、なぜか1回も落ちること無く映像として書き出せました。

設定や環境は同じなので…
・レンダリング時間が長い物は落ちる
・画像の色変化が大きい物は落ちる
・Blender上の要素が多い物は落ちる
いずれかだと思いますが、原因は分かりません。
1~2分以上の映像制作はできないと考えたほうが良さそうです。
(VSEなどを使った、映像編集ならおそらくできます。)
落ちても大丈夫なようにする
どれだけ廃熱に気を使っていても落ちる時は落ちます。
仕方ないです。パソコンだもの。
それでも、どうしても1カット長尺の動画が欲しい場合、
映像を画像の連続として書き出すという対処法があります。
デメリットは下記の2つ
・容量がかなり大きくなる事
・パーティクルが途切れる事
6分ぐらいの映像を1920×1080サイズ、60fpsで書き出した所128G近く行きました。

また、パーティクルは動画やレンダリングの切れ目で切り替わってしまうみたいです。
(設定を間違えた可能性が高そうですが…)
この手の動画を作るならパーティクルは使わないか別書き出しがおすすめ。

それでも連番で書き出す場合は、レンダープロパティ → ファイルフォーマットをPNGに設定。

この状態でアニメーションレンダリング。

すると、動画ではなく大量の画像が書き出されます。

これを使えば、途中で落ちても落ちた所から再スタートできます。
映像で書き出すと一度”映像”として固める処理をするので壊れたファイルが出来上がります。

いずれにしても… PCに高いスペックが必要な事をやってるので、グラボやHDDなどどこかに負担が行くのは仕方ないです。
こちらをFilmoraを使って映像化する方法はこちらで解説。

連番書き出しのエラーを確認
書き出したフォルダを右クリック。
プロパティを選択。

内容からファイル数を確認。
22000枚書き出したのですが…足りないことが分かります。

書き出したファイルを開きます。
Ctrl+中ホイールを操作。
プレビューで0~9の画像が表示されるようにします。(10列表示)

この状態でファイルの一番下に行きます。
すると10列の画像がどこかでズレたことがわかります。

最後の数値を見ながらズレたポイントを探します。

その中のズレたポイントを見つけます。
エラーで落ちた際の再書き出しで17705と17750を打ち間違えたようです。

間違えた部分をBlenderで再度書き出します。

もう一度、書き出したフォルダを右クリック。
プロパティを選択。

枚数を確認。
22000枚の画像+それを入れるフォルダ1の22001が表示されてます。

これで書き出しエラーの修正が完了です。
まとめ
今回はBlenderがレンダリング途中で落ちる時の対処法を紹介しました。
・原因は熱暴走
・Blenderの設定でCPUをレンダリングで使わないようにする
・あらゆる熱暴走対策を講じる
・適度にPCを休ませる
・落ちても大丈夫なように動画ではなく画像で書き出す
また、他にもBlenderでLive2Dのような映像を作る方法を解説してます。

こちらがこの記事を書く事になった原因です。
ぜひこちらもご覧ください。
コメント