mcpField
B
blender-core

blender-core

github.com/el4cteoクリエイティブ・メディア569164 回インストール2 週間前に更新
リポジトリ

blender-core について

blender-coreは、Blenderのシーンやスクリプトを扱うエージェント向けのBlender 5.2 LTS以降対応スキルです。ライブMCPとヘッドレス実行、APIの実践、専門スキルへの振り分け、検証手順を説明します。

主な機能

  1. 01専門的なBlenderスキルへタスクを振り分け
  2. 02ライブまたはヘッドレスでスクリプトを実行
  3. 03Blender 5.x APIの指針を適用
  4. 04シーンを安全に編集
  5. 05納品前にアセットと出力ファイルを検証

活用シーン

  1. 01エージェントからBlender編集を自動化
  2. 02ヘッドレスパイプラインでスクリプトを実行
  3. 03Blender 5.2 APIの変更にコードを適応
  4. 04納品前にシーンの変更を確認

MCP 対応

ライブ操作では、blender-mcpのexecute_blender_codeを呼び出し、look機能で視覚的に確認する方法を説明します。シェルを使うエージェント向けのヘッドレス実行方法も記載されています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/el4cteo/blender-skills --skill blender-core

インストール後、Claude Code で/blender-coreを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api-changes-5x.md
bpy-patterns.md
scripts/
_bpyx.py
env_report.py
run_in_blender.py

詳細

Blender Core (5.2 LTS+)

専門スキルへの案内

タスクスキル
単位、コレクション、命名、リンク、アセットライブラリblender-scene-setup
ハードサーフェスモデリング、ベベル、ブーリアン、法線blender-hardsurface-modeling
スカルプト、マルチレゾリューション、リメッシュblender-sculpting
リトポロジー、UV展開、テクセル密度blender-retopology-uv
PBR マテリアル、色空間、テクスチャセットblender-pbr-materials
ハイポリからローポリへのマップのベイク(法線、AO、曲率など)blender-texture-baking
ジオメトリノード、プロシージャルモデリングblender-geometry-nodes
ボディリギング、Rigify、ウェイトペイントblender-character-rigging
フェイスリグ、シェイプキー、ARKit、ビジームblender-facial-shapekeys
キーフレーム、アクション、NLA、ベイク、ルートモーションblender-animation
ポリゴン予算、LOD、ドローコール、クリーンアップblender-game-optimization
Roblox、Unity、Unreal、Godot、Web 向けのエクスポート:glTF/FBX/USDblender-export-pipelines
Cycles/EEVEE の設定、コンポジター、バッチレンダーblender-rendering
ライティング、HDRI、カメラ、ターンテーブルblender-lighting-lookdev
時刻、夜、夕焼け、霧、ムード(サイバーパンク、ホラーなど)blender-time-of-day
雨、雪、濡れた表面、水たまり、稲妻、ほこり/火の粉blender-weather-fx
クロス、リジッドボディ、流体、髪、GN 物理演算blender-simulation
アドオン/拡張機能の作成blender-addon-development
バッチ/ヘッドレスのパイプライン、ファイル変換blender-pipeline-automation
納品前のメッシュ/アセットのチェック(常に実施)blender-asset-qa
エンドツーエンドのプレイブック(プロップ、キャラクター、Roblox、製品ショット)blender-workflow-recipes

実行

ライブ(blender-mcp execute_blender_code):小さなステップで作業し、必要なものだけを出力します。スキルのスクリプトを呼び出すには、インポートします:

import sys, importlib; sys.path.insert(0, r"<skills_dir>/blender-asset-qa/scripts")
import qa_check; importlib.reload(qa_check); print(qa_check.run(objects=["Chair"]))

各 MCP 呼び出しは新しい名前空間で実行されます。呼び出しごとに再度 import してください。モジュールは sys.modules にキャッシュされるため、コストはわずかです。スクリプトを編集した後にのみ reload してください。 ヘッドレス(シェルを使える任意のエージェント):スクリプトの JSON(@@JSON@@ 行)のみを出力します:

python <skills_dir>/blender-core/scripts/run_in_blender.py --blend in.blend <script.py> -- --objects Chair --save out.blend
python <skills_dir>/blender-core/scripts/run_in_blender.py --expr "import bpy; print(len(bpy.data.objects))"

生の形式:blender -b in.blend --factory-startup --python-exit-code 1 -P x.py -- args。ここにあるすべてのスクリプトは run(**kw) -> dict を公開し、-- の後に同じフラグを指定できます。 セッションでの最初の呼び出し:scripts/env_report.py を実行します。バージョン、エンジン、GPU、アドオン、単位、カラー管理、シーンの数が返されます。

ルール

  • オペレーターよりデータ API:bpy.data、bmesh、mesh.attributes、および numpy を使った foreach_get/set を使用してください。オペレーターはコンテキストと選択状態に依存し、多くの場合 3D ビューが必要ですが、バックグラウンドモードにはありません。
  • オペレーターが避けられない場合:with bpy.context.temp_override(object=ob, active_object=ob, selected_objects=[ob], selected_editable_objects=[ob]): bpy.ops... を使用してください。結果が {'FINISHED'} であることを確認してください。
  • 編集モードの分離:編集モード中は ob.data が更新されません。bmesh.from_edit_mesh と bmesh.update_edit_mesh を使うか、読み取る前に OBJECT モードに切り替えてください。
  • ノード:名前はローカライズされるため、name ではなく type(n.type == "BSDF_PRINCIPLED")で検索してください。ソケットは英語名でも identifier でも問題ありません。
  • 列挙型:[i.identifier for i in T.bl_rna.properties[p].enum_items] で有効な値を読み取ってください。動的列挙型(render.engine、view_transform、look)は一部しか表示されないため、try/except TypeError の中で割り当ててください(メッセージに有効な値が表示されます)。
  • エンジン:BLENDER_EEVEE、CYCLES、BLENDER_WORKBENCH。Cycles のデバイス:scene.cycles.device = "GPU" とプリファレンスの compute_device_type を設定します。
  • 評価済みデータ:ob.evaluated_get(depsgraph)、続いて .to_mesh() を使用し、その後は必ず .to_mesh_clear() を呼び出してください。変更後に matrix_world を読み取る前に view_layer.update() を呼び出してください。
  • 解放済みデータ:モディファイアーの適用または削除、オブジェクトや ID の削除を行うと、データは解放されます。先に名前を収集し([m.name for m in ob.modifiers])、古い Python 参照にはその後触れないでください。ガベージが返されたり、クラッシュしたりする可能性があります。
  • デフォルト名を信用しない("Cube.001")。オブジェクト参照を保持し、明示的に名前を変更して、bpy.data.objects[name] でオブジェクトを検索してください。
  • スケール:1 単位 = 1 m です。ベベル、距離を使うモディファイアー、リギング、物理演算、ベイク、エクスポートの前に、回転とスケールを適用してください(transform_apply)。
  • パス:bpy.path.abspath("//textures/x.png") は .blend を基準とした相対パスを解決します。明示的に保存し、バックアップには save_as_mainfile(filepath=..., copy=True) を使用してください。
  • ライブセッションはユーザーの作業です:read_factory_settings は絶対に使用せず、自分が作成していないデータを削除しないでください。破壊的な一括編集の前にバックアップコピーを保存してください。
  • バックグラウンドでの GPU モジュール:最初に gpu.init() を呼び出してください(5.2+)。bgl はもう存在しません。
  • 大きなメッシュ:頂点ごとに bpy.ops を使わないでください。numpy の foreach_get を使用してください(references/bpy-patterns.md を参照)。

古いチュートリアルや LLM の記憶が使えなくなる 5.x API の変更

action.fcurves → channelbags · scene.node_tree → scene.compositing_node_group · material.use_nodes は非推奨(新しいマテリアルにはすでにノードがあります) · mod["Socket_2"] → mod.properties.inputs.Socket_2.value(5.2) · BLENDER_EEVEE_NEXT → BLENDER_EEVEE · Boolean FAST → FLOAT · ボーンレイヤー → ボーンコレクション · bl_info アドオン → エクステンション(blender_manifest.toml) · bpy.props の値は辞書形式でアクセスできなくなりました(scene["cycles"])。全表:references/api-changes-5x.md。

検証(「完了」と報告する前に必須)

  1. 形容詞ではなく数値を報告してください:三角形数、オブジェクト数、マテリアル数、寸法(ob.dimensions)、および書き出したファイル。
  2. ジオメトリを変更した場合 → blender-asset-qa の qa_check.py を実行してください(Z ファイティング、分離したパーツ、非多様体、法線の反転、スケール)。
  3. 実物を確認してください:MCP の look(mode="angles"、シェーディングは material/wireframe)。ヘッドレスの場合:blender-asset-qa/scripts/review_shots.py でコンタクトシートをレンダリングします。
  4. 自分の出力を再確認してください:エクスポートしたファイルが存在し、サイズが 0 ではないことを確認してください。

参考資料

  • references/api-changes-5x.md:4.x→5.2 の移行表です。コードで AttributeError/KeyError が発生した場合に読み込んでください。
  • references/bpy-patterns.md:bmesh、属性、numpy、temp_override、depsgraph、ドライバー、append/link、ハンドラー、タイマーの検証済みスニペットです。

コメント