AI × 知財 もくもく会 / 環境構築もくもく会トップ
BLENDER × AI / はじめての3D

Blender を AI に動かしてもらう入門
— 環境構築からサイコロ・ドーナツまで

Blender は無料で使える3DCGソフトです。マウス操作を覚えなくても、Python の「台本」を書けば形を作って画像にできます。台本は AI(Claude Code など)に書いてもらえます。このページでは、インストールから、立方体・サイコロ・ドーナツを作るまでを、実際に動かした台本と画像で説明します。

灰色の背景に置かれた白い立方体
1立方体(約20行)
角の丸い白いサイコロ。上面に赤い1の目
2サイコロ(約85行)
ピンクのアイシングとカラフルなスプリンクルのドーナツ
3ドーナツ(約60行)
01

Blender の2つの使い方

Blender は、画面を開いてマウスで触ることも、画面を開かずに Python の台本で動かすこともできます。AI と組むなら、台本で動かすほうが向いています。

いつもの使い方

画面を開いてマウスで操作

  • 形を見ながら直せる
  • ショートカットや操作を覚える必要がある
  • 手順をそのまま人に渡しにくい
このページ

台本(Python)で動かす

  • blender -b --python 台本.py の1行で、形づくりから画像の書き出しまで終わる
  • 台本は AI が書ける。直すときも言葉で頼める
  • 同じ台本なら、何度でも同じ結果が出る

-b は「画面を開かない(バックグラウンド)」という意味です。結果は画像ファイルと .blend ファイルに残ります。.blend をダブルクリックすれば、いつもの画面で開いて回したり直したりできます。

ほかに、開いている Blender に AI が直接つないで操作する方式(MCP)もあります。便利ですが、パソコンに外からの接続口を開けることになります。入門では台本方式で十分です。

02

インストール(5分)

入れるのは Blender 本体だけです。Python は Blender に入っているので、別に用意しなくて大丈夫です。

Mac

Homebrew を使う場合(ターミナルで1行)
brew install --cask blender

Homebrew を使っていない場合は、blender.org の Download から .dmg を落として、アプリケーションに入れます。その場合、ターミナルから呼ぶときは /Applications/Blender.app/Contents/MacOS/Blender と書きます。

Windows

PowerShell で1行(winget)
winget install BlenderFoundation.Blender

blender.org のインストーラでも入ります。blender コマンドが見つからないときは、"C:\Program Files\Blender Foundation\Blender 5.2\blender.exe" のようにフルパスで呼びます(数字は入れた版に合わせます)。

Windows の手順は、このページの作成時には実機で試していません。うまくいかなかったら掲示板で教えてください。

入ったか確かめる

ターミナル
blender --version
このページの例は Blender 5.2.2 LTS(macOS・Apple シリコン)で動かしました。画像1枚の書き出しにかかった時間は、立方体が約2秒、サイコロとドーナツが約25秒です。
03

最初の1本:立方体を置いて画像にする

3Dで絵を作るときに必要なものは4つです。形、それを撮るカメラ、照らす光、そして書き出しの設定です。下の台本はその4つだけを書いた最小の例です。

first_cube.py
# 最初の1本:立方体を置いて、画像に書き出すだけ
import bpy, os

bpy.ops.wm.read_factory_settings(use_empty=True)        # 空のシーンから始める
bpy.ops.mesh.primitive_cube_add(size=1, location=(0, 0, 0.5))   # 立方体
bpy.ops.object.camera_add(location=(3, -3, 2.5), rotation=(1.1, 0, 0.785))
bpy.context.scene.camera = bpy.context.object             # このカメラで撮る
bpy.ops.object.light_add(type="SUN", rotation=(0.7, 0.3, 0.6))  # 斜めから差す太陽光
bpy.context.object.data.energy = 4
world = bpy.data.worlds.new("World")                      # 空(背景)の明るさ
bpy.context.scene.world = world
world.use_nodes = True
world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.15, 0.17, 0.2, 1)

scn = bpy.context.scene
scn.render.engine = "BLENDER_EEVEE"                       # 速い描画方式
scn.render.resolution_x, scn.render.resolution_y = 800, 600
scn.render.filepath = os.path.join(os.path.dirname(__file__), "cube.png")  # 台本と同じ場所に保存
bpy.ops.render.render(write_still=True)
実行(台本と同じフォルダに cube.png ができる)
blender -b --python first_cube.py
灰色の背景に白い立方体
結果。ここまでで、台本で3Dを動かす流れが一通り体験できます。

台本の数字を変えて、もう一度実行してみてください。たとえば location は置く場所、rotation は向き、energy は光の強さです。

04

サイコロを作る

覚える道具は2つです。角を丸める「ベベル」と、形で形をくり抜く「ブーリアン」です。
  1. 立方体を置く1辺1の立方体を、床の上に置きます。
  2. 角を丸める(ベベル)角を6段の細かい面で丸めます。これでプラスチックらしく見えます。
  3. 目の位置に球を並べる6つの面に、1〜6の配置で球を置きます。向かい合う面の和が7になるように(1と6、2と5、3と4)します。1の目だけ大きく赤くします。
  4. 球でくり抜く(ブーリアン)球を少し外側に置いておくと、浅いお皿形のくぼみになります。くぼみには球の色が移ります。
  5. なめらかに見せて撮る面の境目をぼかし(スムーズシェード)、床・カメラ・光を置いて書き出します。
サイコロ。上に1、手前に2、右に3の目
手前から見たところ(1・2・3)
サイコロの裏側。5の目と4の目
裏から見たところ(5・4)

確認も台本でできる

目の数は、見た目で数えずに台本で数えました。赤いくぼみが1つ、黒いくぼみが20個(2+3+4+5+6)なら合格です。AI に作ってもらうときは「できたことを、どう確かめるか」も一緒に頼むと安心です。

dice.py の中心部分(全体はページ末からダウンロード)
bpy.ops.mesh.primitive_cube_add(size=S, location=(0, 0, h))
die = bpy.context.object; die.name = "Die"
bv = die.modifiers.new("bevel", "BEVEL"); bv.width = 0.09; bv.segments = 6

ivory = mat("ivory", (0.93, 0.91, 0.86), rough=0.25, sss=0.05)
black = mat("pip_black", (0.02, 0.02, 0.02), rough=0.3)
red = mat("pip_red", (0.7, 0.02, 0.02), rough=0.3)
# …(目の配置表と、各面への球の配置は省略)…

# 目をひとつにまとめてからくり抜く(くぼみの面に目の色が移る)
bpy.ops.object.select_all(action="DESELECT")
for s in pips: s.select_set(True)
bpy.context.view_layer.objects.active = pips[0]
bpy.ops.object.join()
cutter = bpy.context.object; cutter.name = "Pips"
bo = die.modifiers.new("pips", "BOOLEAN")
bo.object = cutter; bo.operation = "DIFFERENCE"; bo.material_mode = "TRANSFER"
cutter.hide_render = True; cutter.hide_viewport = True
bpy.ops.object.select_all(action="DESELECT")
die.select_set(True); bpy.context.view_layer.objects.active = die
# 角を丸めてから(bevel)くり抜く(boolean)順に確定させる
bpy.ops.object.modifier_apply(modifier="bevel")
bpy.ops.object.modifier_apply(modifier="pips")
05

ドーナツを作る

ドーナツは、Blender の入門題材として昔から定番です。画面で作ると数時間かかる題材ですが、台本なら約60行で書けます。

覚える道具は3つです。表面を凸凹させる「ディスプレイス」、厚みをつける「ソリディファイ」、面を細かくしてなめらかにする「サブディビジョン」です。
  1. 生地:輪っか(トーラス)を置いて少し平たくする中心から管の中心までの半径を1、管の太さを0.45にします。上下を0.8倍につぶします。
  2. 手作り感:表面をわずかに凸凹させる雲模様のテクスチャで、表面をほんの少し押し出します(ディスプレイス)。
  3. アイシング:生地を写して、上半分だけ残す切り口の高さを波打たせて、垂れたように見せます。そこに厚みをつけて(ソリディファイ)、なめらかにします(サブディビジョン)。
  4. スプリンクル:上を向いた面に140本を散らす細い円柱を5色で作ります。表面に沿って寝かせ、向きはばらばらにします。
  5. 撮る水色の床の上で、斜め上から撮ります。
ピンクのアイシングとスプリンクルのドーナツ
結果。穴の側のアイシングの縁が段々になっているのは、まだ直せる点です(下の「つまずいたところ」4)。
donut.py の中心部分
R, r = 1.0, 0.45  # 大半径(中心から管の中心まで)・小半径(管の太さ)
bpy.ops.mesh.primitive_torus_add(major_radius=R, minor_radius=r,
                                 major_segments=96, minor_segments=32, location=(0, 0, r * 0.8))
dough = bpy.context.object; dough.name = "Dough"
dough.scale.z = 0.8  # 少し平たく
# 手作り感:表面をわずかに凸凹させる
tex = bpy.data.textures.new("lumps", "CLOUDS"); tex.noise_scale = 0.35
dp = dough.modifiers.new("lumps", "DISPLACE"); dp.texture = tex; dp.strength = 0.04

# アイシング:生地を複製して上側だけ残す
bmesh.ops.delete(bm, geom=[v for v in bm.verts if v.co.z < -0.08 * r + 0.06 * math.sin(8 * math.atan2(v.co.y, v.co.x))], context="VERTS")
sol = icing.modifiers.new("thick", "SOLIDIFY"); sol.thickness = 0.03; sol.offset = 1
dp2 = icing.modifiers.new("lumps", "DISPLACE"); dp2.texture = tex; dp2.strength = 0.04
sub = icing.modifiers.new("smooth", "SUBSURF"); sub.levels = 1; sub.render_levels = 2
06

つまずいたところ(実際に踏んだもの)

このページの例を作る途中で、実際につまずいたところです。AI に頼むときにも、先に伝えておくと早く進みます。

1. 丸めてからくり抜くか、くり抜いてから丸めるかくり抜いた後に角を丸めようとすると、丸めが効かずに角が立ったままになりました。順番は「丸める → くり抜く」にします。
2. 目が足りないように見えた最初の画像では、2の目が1つしか見えませんでした。台本で数えると21個そろっていて、光が強すぎて白く飛んでいただけでした。見た目で判断する前に数えるのが確実です。
3. 画像の保存先「//」が使えないBlender の // は「.blend ファイルの場所」という意味です。まだ保存していない台本の実行中は使えません。os.path.dirname(__file__) で台本の場所を指定します。
4. 縁が段々になるアイシングは、生地の頂点を消して作っています。そのため切り口が格子に沿って段々になります。なめらかにしたいときは、切り口を曲線で切る方法(ブーリアンや二等分)に変えます。
5. 真上からの光だけだと横が真っ黒太陽光は置いた場所ではなく「向き」で効きます。斜めに傾けて、背景(ワールド)にも少し明るさを入れます。
07

AI への頼み方

Claude Code などのコーディング AI に、次のように頼むと台本を書いて実行までしてくれます。

頼み方の例
Blender 5.2 を blender -b --python で動かして、サイコロを作ってほしい。
- 角を丸めた立方体に、球でくり抜いた目をつける
- 向かい合う面の和は7。1の目だけ赤く大きく
- 画像(PNG)と .blend を out/ に保存
- できたら、目の数を台本で数えて報告して
- 画像を自分で見て、おかしいところがあれば直して
コツ理由
Blender の版を書く版によって台本の書き方が少し違うため
「どう確かめるか」も頼む見た目のそれっぽさだけで合格にしないため(つまずき2)
画像を AI 自身に見てもらう光が強すぎる、はみ出している、などは画像を見ないと分からないため
直すときは言葉で「もう少し引いて撮って」「スプリンクルを浮かせないで」などで十分伝わります
08

台本のダウンロード

4本を同じフォルダに置いて実行します。サイコロとドーナツは common.py(カメラ・光・書き出しの共通部分)を使います。

実行(out/ に画像と .blend ができる)
blender -b --python dice.py
blender -b --python donut.py

common.py は、Mac の GPU(Metal)で書き出す設定です。Windows や NVIDIA の GPU で動かすときは、"METAL" を "CUDA" や "OPTIX" に変えるか、AI に「この環境に合わせて」と頼んでください。

次の一歩