qvib.pro
EN

~8 мин чтения · всем · Обновлено: 28.07.2026

3D-модель по тексту через Claude и Blender MCP

3D-модель по тексту через Claude и Blender MCP

Коротко

Claude не «рисует» 3D. Через Blender MCP он делает три разные вещи, и от того, какую именно вы просите, зависит результат. Первое: пишет и выполняет Python-код в bpy — примитивы, булевы, массивы, модификаторы, материалы. Второе: дёргает генератор Hyper3D Rodin, который отдаёт готовый меш по тексту или картинке. Третье: качает готовый ассет из Poly Haven или Sketchfab. Первый путь даёт точную управляемую геометрию, но только для того, что описывается математикой: мебель, здания, техника, модульные сцены. Второй — единственный, который справится с органикой (персонаж, дерево, статуэтка), но топология и UV придут «как получится». Третий быстрее и дешевле обоих, если модель уже существует в библиотеке.

Рабочий рецепт: сформулировать ТЗ с размерами в метрах и опорной точкой, попросить Claude сначала показать план, потом исполнять по одному объекту, а после каждого шага проверять сцену скриптом — габариты, число треугольников, применён ли scale. Ждать финального ассета из одного промпта не стоит: выйдет болванка, которую вы будете доводить руками.

В чём задача

Запрос «сгенерировать 3D через Claude» на практике распадается на три несовместимых сценария. Люди приходят с ним, получают инструкцию по установке аддона — и упираются в то, что нужный им объект не получается. Не потому что что-то настроено криво, а потому что выбран не тот путь.

Путь Что умеет Где ломается Цена
Код на bpy (execute_blender_code) Точные размеры, параметрика, повторяемость, чистая сетка из квадов Органика, сложная топология, всё, что нельзя описать числами Только токены модели
Hyper3D Rodin (generate_hyper3d_model_*) Органика, персонажи, декор — по тексту или картинке Грязная топология и UV, размеры «на глаз», нужен свой ключ Free-тариф: генерация до подтверждения бесплатна, прямые кредиты $1,5 за штуку; Creator $30/мес ≈ 60 моделей (hyper3d.ai/pricing, июль 2026)
Библиотеки (Poly Haven, Sketchfab) Готовые модели, текстуры, HDRI прод-качества Только то, что уже кто-то сделал Poly Haven — CC0, полностью бесплатно; Sketchfab — лицензия у каждой модели своя

Ошибка новичка — просить кодом то, что делается генератором («сделай мне дракона»), и наоборот — гонять Rodin на кубическом стеллаже, где код точнее и бесплатнее.

Про сам аддон, архитектуру сокет-моста и разницу между сообществным ahujasid/blender-mcp и официальным сервером Blender Lab — в отдельном разборе Blender MCP и Claude. Здесь считаем, что подключение уже работает: панель BlenderMCP в сайдбаре, сервер запущен, Claude видит сцену.

Пошагово

1. Пишите ТЗ, а не пожелание

«Сделай стол» даёт куб на ножках произвольного размера. Модель не знает вашей единицы измерения, точки отсчёта и того, для чего ассет. Рабочая форма промпта — четыре блока:

Объект: стеллаж, 5 полок.
Габариты: 1.8 м высота (Z), 0.8 м ширина (X), 0.3 м глубина (Y).
Опора: центр нижней грани в (0,0,0), ось Z вверх.
Ограничения: только квады, толщина доски 18 мм, боковины цельные,
полки врезаны заподлицо, один материал "Wood", без модификаторов Subdivision.
Сначала покажи план объектов и их координаты. Код не выполняй, пока не подтвержу.

Последняя строка — половина успеха. План на 10 строк проверяется глазами за 20 секунд, а сцена из 30 неверно расставленных объектов разбирается полчаса.

2. Один объект — один шаг

README проекта прямо советует разбивать сложные операции на последовательность мелких: длинный скрипт падает на середине и оставляет сцену в промежуточном состоянии. Практически это значит: боковины → полки → материал → проверка. После каждого шага просите Claude выполнить проверочный скрипт (ниже) и показать вывод.

3. Органику отдавайте генератору

Если в ТЗ появляются слова «органичный», «естественный», «как настоящий» — код не поможет. Просите модель вызвать Rodin: сгенерируй через Hyper3D модель "деревянная статуэтка совы, стилизованная, low-poly" и укажите bbox, в который её нужно вписать. Результат прилетает в сцену как обычный меш; дальше он ретопится и разворачивается уже вашими руками. Общий контекст по генераторам такого класса — в карточке Text-to-3D и ассеты.

4. Проверяйте прежде, чем усложнять

Каждый следующий объект строится относительно предыдущих. Если на третьем шаге масштаб «уехал», к десятому сцена нерасчищаема.

Проверка результата

Это тот скрипт, которого нет ни в одном туториале, и именно он экономит вечер. Просите Claude выполнить его после каждого блока — и читайте вывод сами, не полагаясь на «готово, я всё сделал».

import bpy

print(f"единицы: {bpy.context.scene.unit_settings.length_unit}, "
      f"scale_length={bpy.context.scene.unit_settings.scale_length}")

for obj in bpy.context.scene.objects:
    if obj.type != 'MESH':
        continue
    d = obj.dimensions
    tris = sum(len(p.vertices) - 2 for p in obj.data.polygons)
    ngons = sum(1 for p in obj.data.polygons if len(p.vertices) > 4)
    uv = len(obj.data.uv_layers)
    print(f"{obj.name:20} {d.x:.3f}x{d.y:.3f}x{d.z:.3f} м | "
          f"loc={tuple(round(v, 3) for v in obj.location)} | "
          f"scale={tuple(round(s, 3) for s in obj.scale)} | "
          f"tris={tris} ngons={ngons} uv={uv} mat={len(obj.data.materials)}")

Что смотреть в выводе:

  • Габариты — сходятся ли с ТЗ. Расхождение в 1000 раз означает, что модель считала в сантиметрах или миллиметрах.
  • scale не (1.0, 1.0, 1.0) — самая частая беда. Объект выглядит правильно, но модификаторы, физика и экспорт в игровой движок поедут. Лечится bpy.ops.object.transform_apply(scale=True).
  • ngons > 0 — если дальше планируется Subdivision или деформация, n-гоны придётся резать.
  • uv=0 — развёртки нет, текстуру класть не на что.

Про то, как поручать такие проверки и правки скриптом, а не кликами, — в разборе bpy-скриптов через Claude.

Подводные камни

Органика и топология. Модель создаёт геометрию, но не мыслит в категориях эджлупов, полюсов и сетки под сабдив. Лицо человека, реалистичное дерево, любая поверхность с нюансом — стабильный провал; то же с Geometry Nodes: дальше нескольких нод связи начинают собираться неверно.

Пространственная точность. Расстановка «на глаз» не работает: точное позиционирование обычно требует нескольких итераций правок. Дешевле сразу давать абсолютные координаты, чем потом двигать «чуть левее».

Выполнение произвольного кода. Инструмент execute_blender_code запускает в Blender любой Python без песочницы. README настаивает: сохраняйтесь до запуска. Практическое правило — отдельный .blend под эксперименты и Ctrl+S перед каждым блоком. Отсюда же и риск prompt injection, если в контекст попадают чужие данные.

Разъезд версий API. Документация bpy на июль 2026 — для Blender 5.2, а требования аддона — Blender 3.0+ и Python 3.10+. Модель нередко пишет код под ту версию, на которой училась. Классический пример: в Blender 5.0 идентификатор движка EEVEE сменился с BLENDER_EEVEE_NEXT на BLENDER_EEVEE, и старый код падает с ошибкой enum. Если получили непонятный TypeError на строчке с движком или пассами рендера — сначала проверьте версию, потом промпт.

Стоимость контекста. Каждый get_scene_info и каждый скриншот вьюпорта — это токены. Сцена на 50 объектов в длинной сессии съедает лимит быстрее, чем кажется; полезно периодически начинать заново с коротким описанием сцены вместо полного дампа.

Российский контекст. Poly Haven — CC0, качается без регистрации и оплаты. А вот Rodin с бесплатного тарифа быстро упирается в кредиты, и оплата подписки российской картой не проходит — нужен зарубежный способ оплаты либо посредник. Плюс: имена объектов, структура сцены и скриншоты вьюпорта уходят на сторону модели, так что для NDA-проектов путь через облачную модель закрыт по умолчанию.

Что всё равно останется руками. Ретопология, чистая UV-развёртка, шейдинг сложнее «цвет + шероховатость», риг и веса, финальный лукдев. MCP убирает рутину и черновой этап, а не работу моделлера.

Первоисточники, по которым сверялись цифры и имена инструментов: репозиторий ahujasid/blender-mcp, Blender Python API, release notes Blender 5.0 — Python API, тарифы Hyper3D, лицензия Poly Haven.

Частые вопросы

Может ли Claude сгенерировать 3D-модель без Blender?

Сам по себе — нет, у модели нет 3D-движка. Она либо пишет код, который выполняет Blender, либо через MCP вызывает внешний генератор вроде Rodin. Без запущенного Blender с аддоном и активным сокет-сервером обе цепочки не работают. Можно получить только текст скрипта, который вы потом вставите в Blender сами — это рабочий, хотя и менее удобный вариант, если MCP настраивать не хочется.

Годится ли результат под 3D-печать?

Только после ручной проверки. Кодовый путь даёт корректные размеры, но не гарантирует замкнутую (manifold) оболочку — булевы операции часто оставляют дыры и вывернутые нормали. Генеративный меш из Rodin почти всегда требует чистки. Гоняйте результат через встроенный аддон 3D-Print Toolbox и не отправляйте на печать по одному только «модель сказала, что всё готово».

Какая версия Blender нужна?

Аддон заявляет Blender 3.0 или новее и Python 3.10 или новее. Но чем свежее версия, тем выше шанс, что модель напишет код под устаревший API. Практически удобнее сидеть на LTS-ветке и в системном промпте прямо указывать: «целевая версия Blender такая-то, проверяй идентификаторы enum по документации этой версии».

Нужна ли платная подписка Claude?

Нет, MCP-сервер работает с любым MCP-клиентом — Claude Desktop, Claude Code, Cursor и другие. Общий порядок подключения любого сервера разобран в статье как подключить MCP к Claude Code. Локальные модели формально тоже подключаются, но на длинных bpy-скриптах ошибаются заметно чаще, и цикл «ошибка — правка» съедает всю экономию.

Почему объекты появляются не там, где я просил?

Чаще всего причина в опорной точке: модель ставит объект по его origin, а вы мыслите центром нижней грани или углом. Второе по частоте — несведённые единицы: в ТЗ метры, в коде сантиметры. Оба случая ловятся проверочным скриптом выше за десять секунд, поэтому его стоит запускать после каждого шага, а не в конце.

Читайте также

Базовый разбор темы — MCP-серверы: с него удобно начать, если тема новая.