④[生成AI][ChatGPT][Blernder]Blernder MCPを使わずpythonスクリプトを生成する。

第1回 [環境構築]Blender MCPのはじめかた。(Blender MCP x Claude Desktop)
第2回 [環境構築]Blender MCPのはじめかた。(Blender MCP x Github Copilot)
第3回 [環境構築]Blender MCPのはじめかた。(Blender MCP x Cursor)
第4回 Blernder MCPを使わずpythonスクリプトを生成する。
第5回 [環境構築]VSCodeでBlernder5.0のpythonスクリプトを実行する。
第6回 ChatGPTでPythonスクリプト生成→アルファベットアニメ生成をやってみた。
Blernder MCP ってすごいやんって思って始めたんだけど、なんかそんなでもない気がしてきた。ChatGPTに質問するとpythonコード出力してくれて。なんだ ClaudeとかGithub Copilotとかいらんやん。って気づいてしまった。
Abstract
ChatGPTで Blender pythonスクリプトコードを作ってもらう方法
必要なもの
ChatGPTアカウント
Blender
Python 3.10~
VSCode
※ChatGPTアカウントは,Googleアカウントを持ってると簡単です。
※VSCodeのインストール方法は、いろんなサイトに書いてくれてるのでここでは割愛。
手順概要
- Blenderのインストール
- Python3.10のインストール
- ChatGPTにログイン
3. VSCodeのインストール
※VSCodeはただの気休め。VSCodeで作ってもBlender pythonは実行できないし。
1.Blenderのインストール
Blernder何はともあれ3DCGを扱うので、Blenderをインストールします。
ココからインストーラをダウンロード。

特段迷うことなくインストール完了するかと。
2. Python3.10のインストール
Python3.10をインストールします。全然難しくないです。下記から"python-3.13.9-amd64.exe"をダウンロード→インストールするだけですね。迷うこともないかと。python-3.13.9とバージョンが異なりますが、Python3.10より新しければ何も問題ないです。

3. ChatGPTにログイン
ココからログインしてね。
ChatGPTにBlenderのpythonスクリプトをお願いする
アルファベット3文字TKSを使って起承転結の展開のわかる物語性のある15秒程度の3DCGアニメーションをBlenerで実行するpythonスクリプトを作ってほしいっす。
で、出てきたコードがこれ。
これをBlenderのpythonスクリプトで実行すると
import bpy
import random
import math
# -----------------------------------------------------------
# ユーティリティ
# -----------------------------------------------------------
def safe_active_object():
return bpy.context.view_layer.objects.active
# -----------------------------------------------------------
# 初期化:シーン内の全部を削除
# -----------------------------------------------------------
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False)
# -----------------------------------------------------------
# 1. テキスト作成
# -----------------------------------------------------------
bpy.ops.object.text_add(enter_editmode=False, location=(0, 0, 0))
txt = safe_active_object()
txt.data.body = "GEC"
txt.name = "GEC_Text"
# 高さ・フォント設定(必要なら)
txt.data.extrude = 0.15
txt.data.bevel_depth = 0.02
# -----------------------------------------------------------
# 2. メッシュ化
# -----------------------------------------------------------
bpy.ops.object.convert(target='MESH')
mesh_obj = safe_active_object()
# -----------------------------------------------------------
# 3. 文字を破片ごとに分離
# -----------------------------------------------------------
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.separate(type='LOOSE')
bpy.ops.object.editmode_toggle()
pieces = [obj for obj in bpy.context.scene.objects if obj.type == 'MESH']
print(f"Created {len(pieces)} mesh pieces.")
# -----------------------------------------------------------
# 4. 全破片にランダム位置を設定(開始地点)
# -----------------------------------------------------------
start_frame = 1
end_frame = 80
for i, p in enumerate(pieces):
bpy.context.view_layer.objects.active = p
p.select_set(True)
# ランダム初期位置・回転
p.location = (
random.uniform(-5, 5),
random.uniform(-5, 5),
random.uniform(3, 10)
)
p.rotation_euler = (
random.uniform(0, math.pi * 2),
random.uniform(0, math.pi * 2),
random.uniform(0, math.pi * 2)
)
# 開始位置でキーフレーム
p.keyframe_insert(data_path="location", frame=start_frame)
p.keyframe_insert(data_path="rotation_euler", frame=start_frame)
# -----------------------------------------------------------
# 5. 終了位置(元のロゴ位置)へ移動アニメーション
# -----------------------------------------------------------
for p in pieces:
bpy.context.view_layer.objects.active = p
p.select_set(True)
# 終了位置:中央へ集約
p.location = p.location = (0, 0, 0)
p.rotation_euler = (0, 0, 0)
p.keyframe_insert(data_path="location", frame=end_frame)
p.keyframe_insert(data_path="rotation_euler", frame=end_frame)
print("Shatter → Gather animation created successfully!")
出来た!!
なんか起承転結ってお願いしたのに、"起"しか作ってくれてないけど、まーいいや。

これで、ちょっとしたアニメーションを作れそう。
以上です。
お役に立ちますように。。。
Discussion