Blender MCP

ทางการ

เซิร์ฟเวอร์ MCP (Model Context Protocol) น้ำหนักเบาสำหรับ Blender มีอินเทอร์เฟซภาษาธรรมชาติกับ Python API ของ Blender ช่วยเพิ่มการเข้าถึงเอกสาร และให้ผู้ใช้สำรวจและทำความเข้าใจการตั้งค่าที่ซับซ้อน

คุณทำอะไรได้บ้างด้วย Blender MCP?

  • วิเคราะห์ประสิทธิภาพของฉาก — ให้ผู้ช่วยค้นหาวัตถุที่มีจำนวนโพลีกอนสูงที่สุดเมื่อเทียบกับขนาดบนหน้าจอจากมุมมองกล้อง
  • เปลี่ยนชื่อ data-blocks — แก้ไขคำผิดหรือใช้รูปแบบการตั้งชื่อที่สื่อความหมายสำหรับวัตถุ ไฟ กล้อง พื้นผิว และ data-blocks อื่นๆ
  • สอบถามความสัมพันธ์ของข้อมูล — ใช้ภาษาธรรมชาติเพื่อถามว่าวัตถุใดใช้ material ที่กำหนด หรือ data-blocks เชื่อมต่อกันอย่างไร
  • ดีบักปัญหาของฉาก — ระบุวัตถุที่มีจำนวนโพลีกอนสูงที่สุด, non-manifold meshes หรือปัญหาทั่วไปอื่นๆ ในไฟล์ที่เปิดอยู่
  • จัดทำเอกสารสำหรับ Geometry Nodes setups — สร้างเฟรมเอกสารในตัวและ text data-block ที่อธิบายว่า node group ทำอะไรและมีโครงสร้างอย่างไร

เอกสาร

เซิร์ฟเวอร์ MCP (Model Context Protocol) น้ำหนักเบาสำหรับ Blender มันมีอินเทอร์เฟซภาษาธรรมชาติกับ Python API ของ Blender ปรับปรุงการเข้าถึงเอกสาร และอนุญาตให้ผู้ใช้สำรวจและทำความเข้าใจการตั้งค่าที่ซับซ้อน

สำหรับรายละเอียดทางเทคนิคและเอกสารเกี่ยวกับสถาปัตยกรรม ตรวจสอบซอร์สโค้ด

คำเตือนด้านความปลอดภัย
เซิร์ฟเวอร์ MCP จะรันโค้ดที่สร้างโดย LLM ใน Blender โดยไม่มีระบบป้องกันใดๆ เพื่อปกป้องข้อมูลของคุณจากการถูกลบหรือถูกส่งไปยังตำแหน่งระยะไกล เพื่อให้ข้อมูลของคุณปลอดภัย ขอแนะนำให้ใช้เครื่องเสมือน หรือระบบที่ไม่มีการเข้าถึงข้อมูลที่ละเอียดอ่อน

การติดตั้ง

Blender ไม่มีฟังก์ชันในตัวสำหรับการเชื่อมต่อกับ LLM

เพื่อให้ Blender เชื่อมต่อกับ LLM ได้ ต้องดาวน์โหลด ติดตั้ง และรันเครื่องมือภายนอกสามอย่างด้วยตนเอง

ข้อกำหนด:

  1. Blender 5.1 หรือใหม่กว่า
  2. Add-on
  3. ไคลเอนต์ LLM
  4. เซิร์ฟเวอร์ MCP

Add-on

เพื่อโต้ตอบกับเซสชัน Blender ของคุณ คุณต้องติดตั้ง add-on เฉพาะสำหรับการรวมเซิร์ฟเวอร์ MCP

ลากและวางลงใน Blender

…หรือดาวน์โหลดและติดตั้งจากดิสก์

หากคุณลากและวางลงใน Blender คุณจะต้องทำสองครั้ง ครั้งแรกเพื่อเพิ่มที่เก็บ Blender Lab ครั้งที่สองเพื่อติดตั้ง add-on เอง วิธีนี้ช่วยให้คุณได้รับการแจ้งเตือนการอัปเดตเมื่อใดก็ตามที่มีเวอร์ชันใหม่ของ add-on นี้พร้อมใช้งาน


ไคลเอนต์ LLM

เซิร์ฟเวอร์ MCP ปฏิบัติตามมาตรฐานที่กำหนดไว้อย่างดีและเข้ากันได้กับไคลเอนต์มากมาย โปรดทำตามเอกสารของ Llama.cpp หรือติดตั้งไคลเอนต์ LLM ตามที่คุณต้องการ


เซิร์ฟเวอร์ MCP

มีวิธีต่างๆ ในการติดตั้งเซิร์ฟเวอร์ MCP ขึ้นอยู่กับความสามารถของไคลเอนต์ LLM ของคุณ

  • MCP Bundle: สำหรับไคลเอนต์รุ่นใหม่ที่รองรับไฟล์ .mcpb ดาวน์โหลดแพ็คเกจล่าสุดจากหน้า release Llama.cpp ยังไม่รองรับสิ่งนี้
  • MCP Server: เพื่อติดตั้งจากซอร์สโค้ด ตรวจสอบเอกสารของ Llama.cpp หรือคำแนะนำการตั้งค่า

การรัน

เมื่อคุณตั้งค่าเซิร์ฟเวอร์ MCP ภายในไคลเอนต์ LLM ของคุณแล้ว คุณสามารถเริ่มสำรวจฉาก Blender ของคุณได้

เว็บอินเทอร์เฟซ llama.cpp ที่รันเซิร์ฟเวอร์ blender-mcp


ตัวอย่างที่ 1: การวิเคราะห์ฉาก

MCP สามารถใช้ในการวิเคราะห์ฉากโดยทางโปรแกรมเพื่อหาคอขวดด้านประสิทธิภาพ ยกตัวอย่างไฟล์สาธิต Classroom:

ไฟล์สาธิต Classroom

ฉากนี้เป็นหนึ่งในไฟล์ benchmark ของ 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 มี 20k โพลีกอน เนื่องจากลักษณะที่แบนราบ มันสามารถถูกแทนที่ด้วยเท็กซ์เจอร์โดยมีข้อเสียเล็กน้อยต่อผลลัพธ์สุดท้าย วัตถุ coat 1 มี 37k โพลีกอนเนื่องจากตัวปรับแต่ง Subsurf การลดระดับ subdivision สามารถช่วยแบ่งเบาฉากได้ หากหน่วยความจำเป็นคอขวดในระบบของคุณ

ตัวอักษรอยู่ด้านหลังของฉากและสามารถถูกแทนที่ด้วยเท็กซ์เจอร์ได้อย่างง่ายดาย เสื้อโค้ทก็อยู่ไกลพอที่จะทำให้เมชของมันง่ายขึ้นได้

ผลลัพธ์เหล่านี้น่าเชื่อถือแค่ไหน?

การวิเคราะห์เบื้องต้นที่ส่งคืนโดย LLM พิจารณาเฉพาะตัวปรับแต่งที่มีผลต่อวิวพอร์ต วัตถุ coat 1 มีตัวปรับแต่ง Solidify ซึ่งเพิ่มจำนวนโพลีกอนเป็นสองเท่า ทำให้มันยิ่งเป็นค่าผิดปกติมากขึ้นไปอีก และถึงแม้ว่าฉากนี้จะไม่ได้เปิดใช้ Simplify การตั้งค่านี้ก็จะส่งผลต่อการวิเคราะห์สุดท้ายเช่นกัน


ตัวอย่างที่ 2: พรอมต์ต่างๆ

นี่คือบางกรณีการใช้งานอื่นๆ ที่ทดสอบแล้ว คุณจะต้องวางเนื้อหา "Prompt" ทั้งหมดเพื่อให้มันทำงาน เป็นจุดเริ่มต้นคุณควรใช้ไฟล์สาธิตที่เกี่ยวข้อง ความสำเร็จของการดำเนินการจะขึ้นอยู่กับโมเดลที่ใช้

กรณีการใช้งานพรอมต์ไฟล์สาธิตผลลัพธ์
การเปลี่ยนชื่อ data-block: แก้ไขคำผิดด้วยไฟล์ Blender ที่เปิดอยู่ในปัจจุบัน แก้ไขชื่อของ data-block ทั้งหมดเพื่อลบคำผิด รายงานกลับว่า data-block ใดได้รับการแก้ไขScattering PebblesGRP-rocks → GRP-pebble, LGT-Lights → LGT-lights, Compositing Nodetree → Compositing Node Tree
การเปลี่ยนชื่อ data-block: ชื่อที่ดีขึ้นด้วยไฟล์ Blender ที่เปิดอยู่ในปัจจุบัน แนะนำชื่อที่สื่อความหมายสำหรับ data-block ทั้งหมด และนำไปใช้หากได้รับการอนุมัติScattering PebblesCamera → CAM-main, Area → LGT-sun-key, Area.001 → LGT-sun-fill, Area.002 → LGT-area-rim, GEO-pebble.001 → GEO-pebble-B, …
การสืบค้นความสัมพันธ์ของข้อมูลด้วยภาษาธรรมชาติวัตถุใดกำลังใช้วัสดุต่อไปนี้: pebblesScattering Pebbles7 วัตถุ: GEO-pebble, GEO-pebble.001, GEO-pebble.002, GEO-pebble.003, GEO-pebble.004, GEO-pebble.005, GEO-pebble.006
การดีบักฉากวัตถุที่มีจำนวนโพลีกอนสูงสุดในไฟล์นี้คืออะไร? ไม่ต้องสนใจวัตถุที่ไม่ได้เชื่อมโยงกับฉากใดๆScattering PebblesGEO-ground มี 4,096 เฟส
เอกสาร Geometry Nodesด้วยไฟล์ Blender ที่เปิดอยู่ในปัจจุบัน อธิบายว่าการตั้งค่า geometry nodes หลักกำลังทำอะไร เพิ่มเอกสารแบบอินไลน์ด้วยองค์ประกอบเฟรม สร้าง data-block ข้อความพร้อมผลลัพธ์ของการวิเคราะห์Scattering Pebbles4 เฟรมรหัสสีหลัก + ไฟล์ข้อความพร้อมคำอธิบาย

พรอมต์อื่นๆ ที่ยังไม่ได้สำรวจ:

  • แปล data-block ทั้งหมดจากภาษาฝรั่งเศสเป็นภาษาอังกฤษ
  • เมชของฉันไม่ถูกเปลี่ยนรูปโดย armature ของฉัน ฉันจะแก้ไขได้อย่างไร?
  • Blender หน่วยความจำหมดขณะเรนเดอร์ฉากนี้ ฉันจะปรับให้เหมาะสมได้อย่างไร?
  • เมชนี้มีอาร์ติแฟกต์การแรเงาที่แปลก ฉันจะแก้ไขได้อย่างไร?
  • ค้นหาวัตถุที่มีเมชที่มี normal ไม่ดี
  • ตรวจสอบฉากของฉันสำหรับวัตถุเมชที่ถูกแปลงแบบไม่สม่ำเสมอ
  • วิดีโอที่ฉันส่งออกไม่เล่นในเว็บเบราว์เซอร์ของฉัน ฉันควรเปลี่ยนการตั้งค่าใด?
  • ฉันควรใช้ sculpt brushes ใดสำหรับการสร้างและเก็บรายละเอียดกิ่งไม้?
  • ตั้งค่า compositing nodes เพื่อบันทึกภาพของฉันทั้งแบบ SDR และ HDR
  • ตรวจสอบรายการตรวจสอบนี้:: เมชต้องเป็น manifold, วัตถุทั้งหมดต้องมีวัสดุ, การตั้งชื่อต้องเป็นไปตามแบบแผน, ไม่มีพาธแบบ absolute, … การเปลี่ยนชื่อ data-block: แก้ไขคำผิด

GRP-rocksGRP-pebbles (ฉากมีเฉพาะวัตถุ pebble ไม่ใช่ rocks)

LGT-LightsLGT-lights (การใช้ตัวพิมพ์ใหญ่ไม่สม่ำเสมอ)

Compositing NodetreeCompositing Node Tree (Nodetree เป็นข้อผิดพลาดของคำประสม)

การเปลี่ยนชื่อ data-block: ชื่อที่ดีขึ้น

วัตถุ:

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

Light Data-Blocks:

  • AreaLGT-sun-key
  • Area.001LGT-sun-fill
  • Area.002LGT-area-rim

Camera Data-Block:

  • CameraCAM-main

เท็กซ์เจอร์:

  • TextureTEX-ground-clouds
  • Texture.001TEX-ground-image

Scene & World:

  • WorldWLD-environment
  • SceneSCN-main เอกสาร 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 that coverage can be art-directed
per-layer without touching the raw mask textures.  The three resulting
instance layers are merged with the original ground geometry and sent
to the Group Output.

INPUTS (Group Interface)
------------------------
  Geometry           -- The ground mesh to scatter pebbles on.
  Large Pebbles Mask -- Float mask (e.g. vertex colour / texture) that
                       defines WHERE large pebbles may 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 three
                       lanes (appears three times in the interface,
                       one per lane).

NODE GRAPH -- LANE BY LANE
--------------------------

+- LARGE PEBBLES LANE -----------------------------------------------------+
|  Source object : GEO-pebble                                              |
|  Group Input.001                                                         |
|    +- Geometry ------------------------> Distribute Points on Faces      |
|    +- Large Pebbles Mask ------------> Distribute Points on Faces        |
|    |                                     (Density Factor socket)         |
|    +- Factor --> Math.003 (x)  -------> Distribute Points on Faces       |
|                                          (Density Max socket)            |
|  Distribute Points on Faces ----------> Instance on Points               |
|  Object Info (GEO-pebble) -----------> Instance on Points (Instance)     |
|  Random Rotation.001 [-pi, +pi] -----> Instance on Points (Rotation)     |
|  Random Value [0.25 - 0.60]   -------> Instance on Points (Scale)        |
|  Instance on Points ------------------> Join Geometry.003                |
+--------------------------------------------------------------------------+

+- MEDIUM PEBBLES LANE ----------------------------------------------------+
|  Source object : GEO-pebble.004                                          |
|  Group Input.002                                                         |
|    +- Geometry ------------------------> Distribute Points on Faces.001  |
|    +- Medium Pebbles Mask -----------> Math.004 (x) --> Math.005 (x)     |
|    +- Factor ------------------------> Math.005 (x)                      |
|         Math.005 output --------------> Distribute Points on Faces.001   |
|                                          (Density socket)                |
|  Distribute Points on Faces.001 -----> Instance on Points.001            |
|  Object Info.001 (GEO-pebble.004) --> Instance on Points.001             |
|  Random Rotation.002 [-pi, +pi]  ----> Instance on Points.001            |
|  Random Value.002 [0.25 - 0.45] -----> Instance on Points.001            |
|  Instance on Points.001 -------------> Join Geometry.003                 |
+--------------------------------------------------------------------------+

+- SMALL PEBBLES LANE -----------------------------------------------------+
|  Source object : GEO-pebble.002                                          |
|  Group Input.003                                                         |
|    +- Geometry ------------------------> Distribute Points on Faces.002  |
|    +- Small Pebbles Mask -----------> Math.006 (x) --> Math.007 (x)      |
|    +- Factor ------------------------> Math.006 (x)                      |
|         Math.007 output --------------> Distribute Points on Faces.002   |
|                                          (Density socket)                |
|  Distribute Points on Faces.002 -----> Instance on Points.002            |
|  Object Info.002 (GEO-pebble.002) --> Instance on Points.002             |
|  Random Rotation [-pi, +pi]      ----> Instance on Points.002            |
|  Random Value.003 [0.10 - 0.35] -----> Instance on Points.002            |
|  Instance on Points.002 -------------> Join Geometry.003                 |
+--------------------------------------------------------------------------+

+- MERGE & OUTPUT ---------------------------------------------------------+
|  Group Input.004                                                         |
|    +- Geometry (pass-through) --------> Join Geometry.003                |
|  Join Geometry.003                                                       |
|    (inputs: large instances + medium instances +                         |
|             small instances  + original ground geo)                      |
|    +- Geometry -----------------------> Group Output                     |
+--------------------------------------------------------------------------+

SCALE RANGES (uniform, per lane)
---------------------------------
  Large  pebbles : 0.25 - 0.60
  Medium pebbles : 0.25 - 0.45
  Small  pebbles : 0.10 - 0.35

ROTATION (all lanes)
---------------------
  All three axes randomised independently over [-pi, +pi],
  giving each pebble instance a fully random orientation.

DENSITY CONTROL PATTERN (Medium & Small lanes)
-----------------------------------------------
  The mask value and the Factor are first multiplied together
  (Math.004 / Math.006), then that product is multiplied again
  by a second value (Math.005 / Math.007) before being fed into
  the Density socket.  This two-stage multiply gives a non-linear
  response curve, making the density fall off more aggressively
  near the mask edges.

  The Large lane uses a different (single-stage) approach:
  the Density Factor socket receives the mask directly, and the
  Factor is only used to scale Density Max via Math.003.

NOTES & SUGGESTIONS
--------------------
  * The node group has no Seed input exposed; adding one would allow
    re-randomising all three layers simultaneously without touching
    individual nodes.
  * The Factor input currently appears three times (once per lane).
    Merging them into a single shared socket would simplify the
    modifier panel.
  * Consider labelling the unlabelled Math nodes (Math.003-.007)
    and Random Value nodes to aid future maintenance.