Community画像github.com

m4bwav/polywright-blender

Blenderのスクリプト作成、自動化、デバッグ時に使用するスキル。bpyコードを書く前のヘッドレス実行、bpy APIのトラップ、テスト済みレシピ、Blender MCPサーバーのリスクなど、3Dツール全般をカバーします。

polywright-blender とは?

このスキルは、AIエージェントがBlenderを効率的に操作・自動化するための包括的なガイドです。Blenderは無料で全OS対応、スクリプト可能な3Dツールであり、エージェントはヘッドレス(GUI無し)で動作させるのが最適です。スキルは`pw.py`スクリプトを使用し、Blenderのバージョン確認、ヘッドレススクリプト実行、bpy APIのトラップ(5.xでの非推奨APIと代替)、モディファイアやベイクなどのレシピ、MCPサーバーの使い方とリスク、OS別の補助ツールなどを網羅します。主なユースケースは「Blenderスクリプトを書く」「Blenderを自動化する」「.blendをバッチエクスポートする」「bpyのトレースバックを解決する」などです。このスキルはClaude CodeやCursor、CodexなどのAIエージェントで使用することを想定しており、最新のBlender LTS(5.2)を対象としています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/m4bwav/polywright/tree/HEAD/skills/polywright-blender

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

polywright-blender は何をしますか?

Blenderは作業の主力です。無料、全OS対応、あらゆるボタンまでスクリプト可能。エージェントは、ライブセッションのスクリーンショットではなく、ヘッドレスでコピーに対して短いテキストレポートを出力するのが最適です。 ハブに戻る:../polywright/SKILL.md。 詳細:references/bpy-api-traps.md、references/bpy-recipes.md、 references/bpy-recipes-scenes.md、references/bpy-recipes-physics.md (各レシピはテストスイートで実行されます)、 references/mcp-bridges.md、 references/tools-by-os.md。

ステップ1:Blenderの特定

python ../polywright/scripts/pw.py doctor でBlenderを見つけ(POLYWRIGHT_BLENDER、PATH、Windows、macOS、Linuxのインストールフォルダ)、バージョンを表示します。現在のLTS(5.2、2028年7月までサポート)をターゲットにします。バージョンをスクリプトの最初のコメントに記述します。以下のAPI情報は5.2用です。

ステップ2:ヘッドレスでのスクリプト実行

python ../polywright/scripts/pw.py bpy build.py [--blend in.blend] [--timeout 1800] -- <script args>

pw.py自身のオプションはスクリプト名の前後に配置できます。--以降はすべてスクリプトに渡されます。 これは blender --background --factory-startup --python-exit-code 3 --python build.py -- args を実行し、Blenderのログノイズを取り除き、ok、スクリプト自身の出力行、およびトレースバックを返します。--python-exit-code がない場合、Blender内のPythonエラーでも終了コードは0になります。これ以外の方法で終了コードだけで成功を判断しないでください。必要な数値(サイズ、カウント、チェック)については、独自の [pw] 行を出力します。

スクリプトのルール:

  • bpy.ops.wm.read_factory_settings(use_empty=True) または明示的な .blend から開始します。ユーザーのスタートアップファイルに依存しないでください。
  • bpy.ops よりも bpy.data と bmesh を優先します。オペレーターが必要な場合は、最初にアクティブオブジェクトと選択を設定するか、with bpy.context.temp_override(...) を使用します。
  • ビューポートオペレーターはヘッドレスでは失敗します(view3d.*、screen.screenshot、render.opengl)。自分でバウンディングからカメラをフレーミングします(pw.py render が行うように)。
  • 列挙型のアイテムは推測せずに読み取ります:m.bl_rna.properties["solver"].enum_items。
  • 実際のサイズはメートル単位。測定前にトランスフォームを適用し、glTFインポートはクォータニオンモードで軸修正が親に適用されます。トランスフォームを保持したまま親をクリアしてから適用、測定します。
  • すべての出力パスは絶対パス(os.path.abspath)で記述し、その後ファイルが存在するかどうかを出力します。相対パスの render.filepath は成功を報告しましたが、表示可能なものは何も書き込みませんでした(L-004)。
  • マイルストーンごとに番号付きの .blend を work/ に保存します。長いライブセッションを続けるよりも、そこから再開します。
  • レンダリング前にシミュレーションをベイクし、キャッシュフォルダは .blend の隣に配置します(デフォルトは一時的で、終了時に失われます)。ベイクの進行状況はstdoutを大量に出力するため、pw.py bpy は中央部分をカットします。結果はJSONファイルに書き込みます。
  • トレースバックが発生した場合は2回リトライします。それでも解決しない場合は、3回目を推測する代わりにAPIを調べます(トラップファイル、イントロスペクション、公式MCPのドキュメント検索)。

ステップ3:トラップ(簡易リスト。完全なリストはトラップファイルにあります)

古い書き方5.xでの使用法
bpy.ops.import_scene.obj、import_mesh.stl、import_mesh.ply、wm.collada_*wm.obj_import、wm.stl_import、wm.ply_import。Colladaは廃止されました
BLENDER_EEVEE_NEXTBLENDER_EEVEE
import bglgpu モジュール
Principled Specular、Subsurface、Transmission、Emission、ClearcoatSpecular IOR Level、Subsurface Weight、Transmission Weight、Emission Color、Coat Weight
action.fcurvesスロットアクション:レイヤー、ストリップ、チャンネルバッグ
ジオメトリノードの mod["Socket_2"] = xmod.properties.inputs.Socket_2.value = x
import_image.to_planeimage.import_as_mesh_planes
Workbench shading.show_shadowshading.show_shadows
obj.select = True、scene.objects.active、mesh.use_auto_smooth、scene.node_tree(2.7xの書籍)select_set、view_layer.objects.active、shade_auto_smooth または set_sharp_from_angle、scene.compositing_node_group
transform_apply(scale=True) 単独位置と回転も適用されます:location=False, rotation=False を渡します

ステップ4:一般的なジョブ

pw.py はすでに、インスペクト、レンダリング、変換、LOD、印刷可能、ユニオンを行います。その他については、references/bpy-recipes.md からレシピを取得します:スケールに合わせたリファレンス画像、モディファイアと適用、マニフォールドソルバーとEXACTフォールバックを使ったブーリアン、ボクセルリメッシュ、QuadriFlow、スマートUVとライトマップUV、ハイからローへの法線とAOベイク、5.xソケットに対応したマテリアル、ターンテーブルスチル、ビデオ用の深度と法線パス、エンジンごとのエクスポート、および説明文からデザインされたプロップ(旋盤、スイープ、ミラー。L-003)。シーン:references/bpy-recipes-scenes.md:ジオメトリノード散布、逆深度、マスク、1レンダリングからのミストと法線、マテリアルオーバーライドによるクレイ、ラインアート、Blender自身のFFmpegによるMP4。物理とリグ:references/bpy-recipes-physics.md:剛体と布のベイク、Rigifyリグがゲーム用スケルトンでない理由、手動でのアーマチュアへのバインド、ボリュームリメッシュ。ペアレンティング、Fモディファイアモーションとドライバー:references/bpy-recipes-motion.md。鏡像パーツを含むモデルのシート:サイドカメラを10〜15度上げるか、パーツが互いに隠れないようにします(L-005)。

ステップ5:ライブセッション(MCP)

2つのサーバーが存在します:Blender Lab公式MCP(v1.0.3、Blender 5.1以上、シーン分析とAPIドキュメント検索)とコミュニティのmcp-for-blender(旧blender-mcp;アセット検索とジェネレーターフック)。どちらもモデルが送信する任意のPythonをサンドボックスなしでポート9876で実行します。どちらか一方を使用し、両方は使用しないでください。ユーザーがBlenderを監視し、ライブ編集を望む場合にのみ使用します。ダウンロードしたファイルからコードをペーストしないでください。セットアップと障害モード:references/mcp-bridges.md。ライブセッションでは、エディタにバインドされたオペレーターを context.temp_override(window=w, area=a, region=r) でラップします。モーダルオペレーターと bpy.app.timers はそこでしか実行されず、-b の下では決して実行されません。

その他のツール

Blenderを使わないメッシュチェックと修復:trimesh + manifold3d(+ PyMeshLab)。Web配信:gltf-transformまたはgltfpack。ソリッド:OpenSCAD、build123d、CadQuery、FreeCAD。スライサーにはCLIがあります。バージョンと各OSで動作するもの:references/tools-by-os.md。macOSでは、Blender 5.xとbpy wheelはApple Siliconのみ対応。bpy wheelはBlenderがバンドルするPythonと正確に一致する必要があります(5.2の場合はPython 3.13)。

メンテナンス

常緑ユニット、ティアmoderate(Blenderリリースは4ヶ月ごと。リリースごとにチェック)。コンパニオン:RESEARCH.md、CHANGELOG.md、LEARNINGS.md、TESTS.md(evals/evals.json 付き)、MAINTENANCE.md、状態は evergreen.json。使用のたびに evergreen.json を読み取り、期限が切れたら更新します。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

m4bwav/polywright

Start here whenever a task needs a 3D model and no sibling below clearly owns it: a model of a real or imagined thing for a game (Unity, Roblox, Unreal, three.js), a 3D print, AI video or AR, or another plugin asking for a mesh. Picks the route (find, capture, generate, code), scaffolds the asset folder and manifest other plugins read, and runs pw.py (inspect, render a sheet, convert, check a budget, bpy headless, match a picture's camera, army blockouts with depth and pose passes for AI...

m4bwav/polywright-finish

Use whenever a mesh must be made ready for a game engine, the web or AR: is it game-ready, too many polygons, LODs, retopology, UVs, baking, PBR and normal-map conventions, collision, rigging, and axis, unit and format export for Roblox, Unity, Unreal, Godot, three.js (meshopt, KTX2), USDZ and video blockouts. Use on 'is this game-ready', 'make this work in Roblox/Unity', 'optimise for the web', 'reduce polygons', 'add LODs', 'retopologise', 'bake normals', 'imports sideways or tiny', 'flip...

m4bwav/polywright-generate

Use whenever an imagined or hypothetical 3D model must be made from a prompt, a drawing, concept art, photos or a blockout: image-to-3D through ComfyUI (TRELLIS.2, Pixal3D, Hunyuan3D-2 via pw.py gen) or hosted (Meshy, Tripo, Rodin), or code (bpy, build123d, CadQuery, OpenSCAD) when it has dimensions; then texturing and the licence record. Use on 'make me a 3D model of a dragon', 'turn this drawing or concept art into 3D', 'image to 3D', 'text to 3D', 'TRELLIS', 'Hunyuan3D', 'Meshy', 'model a...

m4bwav/polywright-references

Use whenever reference images, views or textures for a 3D model are needed, before modelling or image-to-3D: orthographic front, side and back views with a height bar, A-pose turnarounds, multi-view sets, blockout renders repainted into consistent views, seamless textures and quick normal/height/roughness maps (pw.py texture). Use on 'what references do I need', 'reference sheet', 'front side back views', 'turnaround', 'seamless texture', 'PBR maps from this photo'. Not for flat graphic...

関連スキル