Blender crashes during rendering or exporting animations.

Blender2.8+ とAnimation nodes2.1.4ではメッシュ変形が含まれるアニメーションがレンダリング出来ないって事。

Blender crashes during rendering or exporting animations.[githab.com]

ずいぶん前から議論されているようですが直っていません。alembicの書き出しも同様です。仕事で使おうと思ったら動きませんでした。「Render Individual Frames」として以下のスクリプトでの解決法が提案されています。

import bpy

scene = bpy.context.scene
render = scene.render
directory = render.filepath

for i in range(scene.frame_start, scene.frame_end):
    scene.frame_set(i)
    render.filepath = f"{directory}{i:05d}"
    bpy.ops.render.render(write_still = True)

render.filepath = directory 

Blenderでテキストブロックを作成して実行します。手動で1フレームずつ移動してレンダリングをするという動作を自動化するスクリプトです。alembicの書き出しには使えませんけどね。

Blender2.79bとAN2.1の組み合わせはレンダリングもalembic書き出しも正常に動作します。Blender2.8のHandler[blender.org]の仕様のように思います。FLIP FluidでもHandlerに関しての問題[blender.org]が報告されていますけどステータスは解決済みになっています、直ったのかな?持ってないのでわかりませんけど。

またメッシュ変形を伴わないANでもレンダリング中クラッシュすることがあります。下の「Lock Interface」を有効にする事で回避できるようです。

早くなおらんかなあ。


Animation Node2: Offset Polygon続き

FallOffで各ポリゴンをそのエッジ中心にトランスフォームさせる。記事「Animation Node2: Offset Polygon」の続き。タイトルに「Offset Polygon」はつけていますがトランスフォームの基点はポリゴンの中心になってしまうため、今回そのノードは使いません。

ポリゴンのトランスフォーム基点は「Extract Polygon Transforms」で取得します。Extraction TypeがDefaultのままなら中心の変換行列を取得できます、「Edge」へ切り替えるとポリゴンを構成するエッジのどれかにもとづいた変換行列(Transfom Matrix)を取得出来ます(1)。それを元にポリゴンの頂点を逆変換(2)、FallOffに基づいて頂点をオフセット(3)、最後に元の変換行列をかけてあるべき位置へ戻す(4)の4ステップでエッジを軸としたトランスフォームを実現します。

要Blender2.8+Animation Nodes v2.14 test build for Blender 2.8

いつかの時点で「Offset Polygon」ノードにポリゴンの変換行列の入力があったようですが最新版ではなくなっています。それがあればもっと少ないノードで実現できたのですが、ノードの粒度を細かくする方針なんでしょうね。

追記

下は最適化したバージョンです。逆変換、オフセット、変換の復元を 一つループ内 で処理しています。


Animation Node2: Offset Polygon

Animmation Nodes2からポリゴン単位のオフセットの組み方がめんどくさくなった?AN1.6ぐらいは”Polygon Info”や”Change Matrix Pivot”ノードがあって簡単にできましたが、AN2からそれらのノードがなくなってますね。

下は AN2.0でポリゴン中心にトランスフォームする例です。 “OffsetPolygon”ノードだけで簡単に出来ます。ポリゴン中心を起点ににトランスフォームするだけなら。

ポリゴンエッジを軸に回転をさせるとなるといっきに複雑になります。以前は”Change Matrix Pivot”でポリゴンそれぞれの変換行列の中心をエッジの位置へ変更するだけだったと思うのですが、AN2よりそのノードがなくなって、ポリゴンへ逆行列かけてオフセットしてまたもとの位置へ戻して…と手間が増えました。

ノードの名前代わって見つけられてないだけかな。