【2026年版】Blenderジオメトリノードのゾーンを3.6と5.2で実測|Repeat・Simulation・For Eachの違い

当ページのリンクには広告が含まれています。
blender geometry nodes zones 36 52 2026
🎨 3DCG専門スクールで学習(2026年9月まで)
🖌️ Blender・Maya・ZBrush実習経験
📝 Tech Otaku Lab運営

Blender 3.6.11 のジオメトリノードで使えるゾーンは Simulation だけでした。Repeat(4.0〜)と For Each Element(4.3〜)は 5.2.1 で使えます。

3つを画面なしで動かして測ると、Repeat はノードを手でつないだものと全頂点が一致し、Simulation はフレームを飛ばすと途中が計算されず(1→48フレームで1フレームぶんしか進まない)、For Each は同じ処理ならフィールドより遅い(4万点で約109倍)という結果でした。

ジオメトリノードの「ゾーン」は、入口と出口の2つのノードで囲んだ範囲を、くり返したり、前のフレームの結果を引き継いだり、要素ごとに実行したりする仕組みです。3.6 から 5.2 へ移ると使えるゾーンが増えますが、それぞれ何ができて、どこでつまずくのか。同じ検証機の 3.6.11 と 5.2.1 LTS で同じノードを Python で組み、結果の座標と時間を測りました。

目次

3.6と5.2で使えるゾーンはどう違う?

ゾーン 何をするか 追加された版 3.6.11 5.2.1
Simulation 前のフレームの結果を次のフレームへ引き継ぐ 3.6 ○ ○
Repeat 囲んだノードを指定した回数くり返す 4.0 × ○
For Each Element 点や面などの要素ごとに1回ずつ実行する 4.3 × ○
Closure ノードグループの中へ、外から処理を差し込む 5.0 × ○

追加された版は公式リリースノート。○×は、各版の Python でノードを実際に追加できたかで判定しました(対照の Set Position は両方で可、存在しない型名は両方で不可)。5.2.1 には Bake ノードもあります(3.6.11 には無し)。Closure は有無だけを確かめ、動作は測っていません。

測り方:検証機は Core i7-11700F(CPU のみ)。3.6.11 と 5.2.1 LTS を初期設定・画面なしで起動し、Python で組んだノードの評価後の全頂点座標(小数点以下6桁で丸める)と評価時間(各3回の中央値)を比べました。2026年9月25日測定。

Repeat:手でつないだノードと結果は同じか

立方体を「右へずらした写しと結合する」処理を N 回くり返し(ずらす量は毎回倍)、同じノードを N 組コピーして手でつないだものと比べました。Repeat 側は、入口ノードの Iteration(0から数える回数)からずらす量を計算しています。

回数 N 頂点数 Repeat と手つなぎ
0 8 全頂点一致
1 16 全頂点一致
3 64 全頂点一致
6 512 全頂点一致
10 8,192 全頂点一致

3.6.11 で組んだ手つなぎとも、5通りすべてで全頂点が一致しました。ずらす量を毎回2倍でなく1.9倍にした Repeat は、頂点数が同じ512でも「一致しない」と判定され、比べ方が違いを見分けられることも確かめています。

3.6 でもノードを回数ぶんコピーすれば同じ形は作れますが、回数を変えるたびにつなぎ直しです。Repeat なら Iterations の数字を変えるだけで済みます。評価時間は N=10 でどちらも約0.02秒でした。

UdemyでBlenderの講座を探す※ 講座の内容と返金の条件は、購入前に公式ページでご確認ください

Simulation:フレームを飛ばすと結果が変わる?

縦に並んだ5つの点を、毎フレーム「Delta Time × 1」だけ上へ動かしました(秒速1m)。Delta Time は公式マニュアルによるとフレーム間の秒数で、24fps なら1/24秒です。フレームの進め方だけを変えて、5つの点が上がった量の平均を比べました。

フレームの進め方 上がった量
1→2→…→48 と順に進めた48フレーム目 1.958m(47フレームぶん)
1 から 48 へ直接飛んだ 0.042m(1フレームぶん)
続けて 24 へ戻った 0.020m(1 と 48 の結果の間の値)
続けて 49 へ進んだ 0.083m(48 の結果から1フレームぶん)

開始フレーム(1)では点は動きませんでした。24 の値は、1 と 48 の結果を時間の比率で混ぜた計算値(0.0417×23/47=0.0204)と一致しました。

3.6.11 と 5.2.1 で、4つの値はすべて同じでした(小数点以下6桁まで)。シミュレーションは前のフレームの結果から1ステップずつ進む仕組みで、飛ばしたフレームぶんは計算されませんでした。タイムラインで途中のフレームへ飛んで確かめると、最初から再生したときとは違う形に見えることになります。公式マニュアルは、ディスクへベイクすれば順番どおりでなくても描画できるとしています。フレームを分けて描画するときは、先にベイクしておきます。

For Each Element:要素ごとに違う形を作る

横に並べた5つの点それぞれに、頂点数「点の番号+3」の円を作りました。比べる相手は、1つの三角形を全部の点へ配る Instance on Points です。

上段はFor Eachで作った3角形から7角形まで、下段はInstance on Pointsで配った同じ三角形5つ
上:For Each(点ごとに頂点数3〜7の円)/下:Instance on Points(同じ三角形を配るだけ)。5.2.1 で真上から描画

For Each は3〜7角形の5つ(計25頂点)を、Instance on Points は同じ三角形5つ(計15頂点)を出しました。違いは、Mesh Circle の頂点数が「点ごとに値が変わる入力(フィールド)」を受け付けないことです。For Each を使わずに点の番号を頂点数へ直接つなぐと、つなぎ線が無効と判定され、何も出力されませんでした(0頂点)。

では、フィールドで書ける処理を For Each に入れるとどうなるか。全部の点の高さを sin(x) だけ上げる同じ処理を、Set Position 1個(フィールド)と、For Each の中で1点ずつ実行する形で比べました。結果の座標は全点で一致しています。

点の数 フィールド For Each For Each の遅さ
1,024 0.6ミリ秒 6.9ミリ秒 約11.5倍
10,000 1.2ミリ秒 49ミリ秒 約41倍
40,000 1.8ミリ秒 197ミリ秒 約109倍

点が増えるほど差が開きました。4.3 のリリースノートも「単純なフィールド評価は、同じ計算をゾーンの中で行うよりはるかに速い」と注意しています。フィールドで書ける処理は For Each に入れず、円の頂点数のように要素ごとに変えられない入力を使うときに限るのがよさそうです。

Pythonで組むときの違い

ノードグループに入出力を足す書き方が変わっています。3.6.11 は node_group.inputs.new()/outputs.new()、5.2.1 は node_group.interface.new_socket() で、5.2.1 には inputs・outputs がありませんでした。3.6 向けのスクリプトは、そのままでは 5.2 で動きません。ゾーンは、入口ノードの pair_with_output() で出口ノードと組にしてから使いました。

まとめ

手でコピーしていたくり返しは Repeat に置き換えられ、今回の形では結果も同じでした。Simulation はフレームを飛ばすと途中が計算されないので、確認は最初から再生し、分けて描画するならベイクします。For Each は、フィールドで書ける処理では遅くなります。Closure の動作、ディスクへのベイク、3.6 で保存したファイルを 5.2 で開いた場合は測っていません。

3.6 から 5.2 へ移るかどうかは3.6・4.2 が旧 LTS に入った話、ファイルの互換は3.6 と 5.2 のファイル互換を試した記事、ジオメトリノードを土台にした新しい布は5.2 の布シミュレーションを測った記事、基本の操作はBlender の完全入門にまとめています。

UdemyでBlender・ジオメトリノードの講座を探す※ 講座の内容と返金の条件は、購入前に公式ページでご確認ください

よくある質問

Blender 3.6 で Repeat ゾーンは使えますか?
使えません。Repeat ゾーンは 4.0 で追加されました。当サイトの検証でも、3.6.11 には Repeat の型が無く、ノードツリーへ追加できませんでした。同じ処理はノードを回数ぶんコピーしてつなげば作れ、5.2.1 の Repeat と全頂点の座標が一致しました。
Simulation ゾーンの結果が、フレームを飛ばすと変わるのはなぜですか?
前のフレームの結果から1ステップずつ進む仕組みのためです。当サイトの検証では、1から48へ直接飛ぶと1フレームぶんしか進まず、順に進めた場合(47フレームぶん)と違う結果になりました。3.6.11 と 5.2.1 で同じでした。順番どおりでなく描画するには、公式マニュアルのとおりディスクへベイクします。
For Each Element ゾーンはどんなときに使いますか?
Mesh Circle の頂点数のように、フィールドを受け付けない入力を要素ごとに変えたいときです。同じ処理がフィールドで書けるならフィールドのほうが速く、当サイトの検証では4万点で約109倍の差がありました。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITインフラエンジニア歴12年、クラウド(AWSがメイン、一部Azure)の実務は4年目(いずれも2026年時点)。社会人向けの3DCGスクールを2026年9月に卒業。Windows 11 + RTX 4070 Ti SUPER の自宅環境で実際に手を動かしながら、インフラ・クラウド・AI・3DCGの技術記事を書いています。

コメント

コメントする

CAPTCHA


目次