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



Blender の2つの使い方
Blender は、画面を開いてマウスで触ることも、画面を開かずに Python の台本で動かすこともできます。AI と組むなら、台本で動かすほうが向いています。
画面を開いてマウスで操作
- 形を見ながら直せる
- ショートカットや操作を覚える必要がある
- 手順をそのまま人に渡しにくい
台本(Python)で動かす
blender -b --python 台本.pyの1行で、形づくりから画像の書き出しまで終わる- 台本は AI が書ける。直すときも言葉で頼める
- 同じ台本なら、何度でも同じ結果が出る
-b は「画面を開かない(バックグラウンド)」という意味です。結果は画像ファイルと .blend ファイルに残ります。.blend をダブルクリックすれば、いつもの画面で開いて回したり直したりできます。
ほかに、開いている Blender に AI が直接つないで操作する方式(MCP)もあります。便利ですが、パソコンに外からの接続口を開けることになります。入門では台本方式で十分です。
インストール(5分)
Mac
brew install --cask blender
Homebrew を使っていない場合は、blender.org の Download から .dmg を落として、アプリケーションに入れます。その場合、ターミナルから呼ぶときは /Applications/Blender.app/Contents/MacOS/Blender と書きます。
Windows
winget install BlenderFoundation.Blender
blender.org のインストーラでも入ります。blender コマンドが見つからないときは、"C:\Program Files\Blender Foundation\Blender 5.2\blender.exe" のようにフルパスで呼びます(数字は入れた版に合わせます)。
入ったか確かめる
blender --version
最初の1本:立方体を置いて画像にする
3Dで絵を作るときに必要なものは4つです。形、それを撮るカメラ、照らす光、そして書き出しの設定です。下の台本はその4つだけを書いた最小の例です。
# 最初の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)
blender -b --python first_cube.py

台本の数字を変えて、もう一度実行してみてください。たとえば location は置く場所、rotation は向き、energy は光の強さです。
サイコロを作る
- 立方体を置く1辺1の立方体を、床の上に置きます。
- 角を丸める(ベベル)角を6段の細かい面で丸めます。これでプラスチックらしく見えます。
- 目の位置に球を並べる6つの面に、1〜6の配置で球を置きます。向かい合う面の和が7になるように(1と6、2と5、3と4)します。1の目だけ大きく赤くします。
- 球でくり抜く(ブーリアン)球を少し外側に置いておくと、浅いお皿形のくぼみになります。くぼみには球の色が移ります。
- なめらかに見せて撮る面の境目をぼかし(スムーズシェード)、床・カメラ・光を置いて書き出します。


確認も台本でできる
目の数は、見た目で数えずに台本で数えました。赤いくぼみが1つ、黒いくぼみが20個(2+3+4+5+6)なら合格です。AI に作ってもらうときは「できたことを、どう確かめるか」も一緒に頼むと安心です。
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")ドーナツを作る
ドーナツは、Blender の入門題材として昔から定番です。画面で作ると数時間かかる題材ですが、台本なら約60行で書けます。
- 生地:輪っか(トーラス)を置いて少し平たくする中心から管の中心までの半径を1、管の太さを0.45にします。上下を0.8倍につぶします。
- 手作り感:表面をわずかに凸凹させる雲模様のテクスチャで、表面をほんの少し押し出します(ディスプレイス)。
- アイシング:生地を写して、上半分だけ残す切り口の高さを波打たせて、垂れたように見せます。そこに厚みをつけて(ソリディファイ)、なめらかにします(サブディビジョン)。
- スプリンクル:上を向いた面に140本を散らす細い円柱を5色で作ります。表面に沿って寝かせ、向きはばらばらにします。
- 撮る水色の床の上で、斜め上から撮ります。

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
つまずいたところ(実際に踏んだもの)
このページの例を作る途中で、実際につまずいたところです。AI に頼むときにも、先に伝えておくと早く進みます。
// は「.blend ファイルの場所」という意味です。まだ保存していない台本の実行中は使えません。os.path.dirname(__file__) で台本の場所を指定します。AI への頼み方
Claude Code などのコーディング AI に、次のように頼むと台本を書いて実行までしてくれます。
Blender 5.2 を blender -b --python で動かして、サイコロを作ってほしい。 - 角を丸めた立方体に、球でくり抜いた目をつける - 向かい合う面の和は7。1の目だけ赤く大きく - 画像(PNG)と .blend を out/ に保存 - できたら、目の数を台本で数えて報告して - 画像を自分で見て、おかしいところがあれば直して
| コツ | 理由 |
|---|---|
| Blender の版を書く | 版によって台本の書き方が少し違うため |
| 「どう確かめるか」も頼む | 見た目のそれっぽさだけで合格にしないため(つまずき2) |
| 画像を AI 自身に見てもらう | 光が強すぎる、はみ出している、などは画像を見ないと分からないため |
| 直すときは言葉で | 「もう少し引いて撮って」「スプリンクルを浮かせないで」などで十分伝わります |
台本のダウンロード
4本を同じフォルダに置いて実行します。サイコロとドーナツは common.py(カメラ・光・書き出しの共通部分)を使います。
blender -b --python dice.py blender -b --python donut.py
common.py は、Mac の GPU(Metal)で書き出す設定です。Windows や NVIDIA の GPU で動かすときは、"METAL" を "CUDA" や "OPTIX" に変えるか、AI に「この環境に合わせて」と頼んでください。
次の一歩
- ドーナツの縁を、なめらかに垂れる形にする(つまずき4)
- サイコロを10個、物理シミュレーションで転がす
- カメラを1周させて、短い動画にする