Blender MCP Server

دليل عربي عملي لربط Blender بعملاء LLM، من التثبيت إلى تحليل المشاهد باستخدام اللغة الطبيعية.

خادم MCP (Model Context Protocol) خفيف لـ Blender. يوفّر واجهة باللغة الطبيعية للتعامل مع Blender Python API، ويسهّل الوصول إلى التوثيق، كما يتيح للمستخدمين استكشاف الإعدادات المعقّدة وفهمها.

للتفاصيل التقنية وتوثيق البنية، راجع الكود المصدري.

التثبيت

لا يحتوي Blender على وظيفة مدمجة للاتصال بنماذج LLM.

لكي يتصل Blender بنماذج LLM، يجب تنزيل ثلاث أدوات خارجية وتثبيتها وتشغيلها يدويًا.

المتطلبات

  1. Blender 5.1 أو أحدث
  2. Add-on
  3. LLM Client
  4. MCP Server

Add-on

للتفاعل مع جلسة Blender تحتاج إلى تثبيت Add-on مخصّصة لتكامل MCP Server.

اسحب وأفلِت داخل Blender

...أو نزّل الملف ثم استخدم Install from Disk.

إذا استخدمت السحب والإفلات داخل Blender فستحتاج إلى تنفيذ الخطوة مرتين: الأولى لإضافة مستودع Blender Lab، والثانية لتثبيت الـ Add-on نفسها.

LLM Client

تتبع MCP Servers معيارًا محددًا وتتوافق مع عدد كبير من العملاء. اتبع توثيق Llama.cpp، أو ثبّت العميل الذي يناسبك.

MCP Server

توجد طرق مختلفة للتثبيت حسب إمكانات LLM Client لديك.

التشغيل

بعد إعداد MCP Server داخل LLM Client، يمكنك البدء في استكشاف مشاهد Blender.

واجهة llama.cpp وهي تشغّل Blender MCP Server
واجهة llama.cpp وهي تشغّل Blender MCP Server.

المثال الأول: تحليل المشهد

يمكن استخدام MCP لتحليل المشهد برمجيًا واكتشاف اختناقات الأداء. جرّب مثلًا ملف Classroom التجريبي:

ملف Classroom التجريبي داخل Blender
ملف Classroom التجريبي.

هذا المشهد أحد ملفات Blender Benchmark. توجد هذه الملفات في الاختبار لأنها تمثّل ملفات إنتاج حقيقية أنشأها فنانون، لذلك ليس غريبًا أن تحتوي على عناصر يمكن تحسينها.

فحص عدد المضلّعات مفيد غالبًا، لكن الأكثر إثارة للاهتمام هو رسم عدد المضلّعات نسبةً إلى حجم ظهور العنصر في الرندر النهائي. يمكن الحصول على ذلك بالأمر التالي.

Analyze the scene and list the outliers: objects with highest polygon count but smaller size from the camera point of view.

تُظهر البيانات المرسومة عنصرين بارزين عن البقية بوضوح: alphabet و coat 1:

تحليل عدد المضلّعات مقابل مساحة الظهور
تحليل عدد المضلّعات بالنسبة إلى مساحة الظهور في مشهد Classroom.

يحتوي عنصر alphabet على 20 ألف مضلّع. وبسبب وضعه المسطّح يمكن استبداله بـ Texture مع تأثير محدود على النتيجة النهائية. أما coat 1 فيحتوي على 37 ألف مضلّع بسبب Subsurf modifier؛ وتقليل مستوى Subdivision قد يخفف المشهد إذا كانت الذاكرة هي عنق الزجاجة.

موضع عنصري alphabet وcoat داخل المشهد
يوجد alphabet في خلفية المشهد ويمكن استبداله بسهولة بـ Texture، كما يمكن تبسيط Mesh الخاص بالمعطف لبُعده عن الكاميرا.

المثال الثاني: أوامر متنوعة

هذه بعض حالات الاستخدام التي تم اختبارها. ستحتاج إلى لصق محتوى Prompt كاملًا ليعمل. استخدم ملف المثال المناسب كنقطة بداية، وستعتمد النتيجة على النموذج المستخدم.

حالة الاستخدامPromptملف التجربةالنتيجة
إعادة تسمية Data-blocks: تصحيح الأخطاءWith the current open Blender file fix the name of all the data-blocks to remove typos. Report back which data-blocks got fixed.Scattering PebblesGRP-rocks → GRP-pebble، LGT-Lights → LGT-lights، Compositing Nodetree → Compositing Node Tree
إعادة تسمية Data-blocks: أسماء أوضحWith the current open Blender file suggest descriptive names for all data-blocks, and apply if approved.Scattering PebblesCamera → CAM-main، Area → LGT-sun-key، Area.001 → LGT-sun-fill، Area.002 → LGT-area-rim، GEO-pebble.001 → GEO-pebble-B، …
استعلام علاقات البيانات باللغة الطبيعيةWhich objects are using the following material: pebblesScattering Pebbles7 objects: GEO-pebble، GEO-pebble.001، GEO-pebble.002، GEO-pebble.003، GEO-pebble.004، GEO-pebble.005، GEO-pebble.006
تشخيص المشهدWhat is the object with the highest poly-count on this file? Ignore objects which are not linked to any scene.Scattering PebblesGEO-ground with 4,096 faces.
توثيق Geometry NodesWith the current open Blender file explain what the main geometry nodes setup is doing. Add inline documentation for it with frame elements. Create a Text data-block with the result of analysis.Scattering Pebbles4 major color-coded frames + text file with explanation.

أوامر أخرى لم تُستكشف بعد:

  • Translate all the data-blocks from French to English.
  • My mesh is not being deformed by my armature, how can I fix that?
  • Blender is running out of memory rendering this scene, how can I optimize it?
  • This mesh has strange shading artifacts, how can you fix that?
  • Find objects that have meshes with bad normals.
  • Check my scene for non-uniformally transformed mesh objects.
  • The video I exported doesn’t play in my web browsers, which settings should I change?
  • Which sculpt brushes should I use for creating and detailing tree branches?
  • Set up compositing nodes to save my image both as SDR and HDR.
  • Verify this checklist: meshes must be manifold, all objects must have materials, naming must follow convention, no absolute paths, …
تصحيح أخطاء أسماء Data-blocks
  • GRP-rocks → GRP-pebbles (the scene contains only pebble objects, not rocks).
  • LGT-Lights → LGT-lights (inconsistent casing).
  • Compositing Nodetree → Compositing Node Tree (Nodetree is a compound word error).
اقتراح أسماء أوضح لـ Data-blocks

Objects

Camera → CAM-main Area → LGT-sun-key Area.001 → LGT-sun-fill Area.002 → LGT-area-rim GEO-pebble.001 → GEO-pebble-B GEO-pebble.002 → GEO-pebble-C GEO-pebble.003 → GEO-pebble-D GEO-pebble.004 → GEO-pebble-E GEO-pebble.005 → GEO-pebble-F GEO-pebble.006 → GEO-pebble-G

Light Data-Blocks

Area → LGT-sun-key Area.001 → LGT-sun-fill Area.002 → LGT-area-rim

Camera Data-Block

Camera → CAM-main

Textures

Texture → TEX-ground-clouds Texture.001 → TEX-ground-image

Scene & World

World → WLD-environment Scene → SCN-main

توثيق Geometry Nodes

Frames الجديدة

إطارات توثيق أضيفت إلى إعداد Geometry Nodes
إطارات التوثيق المضافة إلى إعداد Geometry Nodes.

Text Data-block

GEOMETRY NODES ANALYSIS -- "Pebble Scattering Nodes"
Applied to object: GEO-ground   |   Modifier: Pebbles
========================================================

OVERVIEW
This node group scatters three size categories of pebble meshes across
the faces of a ground mesh. Each category uses its own density mask
and a global Factor multiplier so coverage can be art-directed.

INPUTS (Group Interface)
Geometry            -- The ground mesh to scatter pebbles on.
Large Pebbles Mask  -- Float mask defining where large pebbles appear.
Medium Pebbles Mask -- Float mask for medium pebble placement regions.
Small Pebbles Mask  -- Float mask for small pebble placement regions.
Factor              -- Global density multiplier shared by all lanes.

LARGE PEBBLES LANE
Source object: GEO-pebble
Distribute Points on Faces -> Instance on Points -> Join Geometry.003
Random Rotation.001 [-pi, +pi]
Random Value [0.25 - 0.60]

MEDIUM PEBBLES LANE
Source object: GEO-pebble.004
Distribute Points on Faces.001 -> Instance on Points.001 -> Join Geometry.003
Random Rotation.002 [-pi, +pi]
Random Value.002 [0.25 - 0.45]

SMALL PEBBLES LANE
Source object: GEO-pebble.002
Distribute Points on Faces.002 -> Instance on Points.002 -> Join Geometry.003
Random Rotation [-pi, +pi]
Random Value.003 [0.10 - 0.35]

MERGE & OUTPUT
Join Geometry.003 receives large, medium and small instances plus
the original ground geometry, then sends Geometry to Group Output.

NOTES & SUGGESTIONS
* Add a Seed input to re-randomise all three layers simultaneously.
* Merge the three Factor inputs into one shared socket.
* Label Math.003-.007 and Random Value nodes for easier maintenance.