Прототип 3D‑редактора для 2.5D RPG: мощь без вращения камерой — Game Design Radar
← Все посты

Прототип 3D‑редактора для 2.5D RPG: мощь без вращения камерой

28.01.2026
Прототип 3D‑редактора для 2.5D RPG: мощь без вращения камерой

Автор описывает концепт минималистичного 3D‑редактора для 2.5D RPG‑графики (как в классических изометрических/топдаун‑RPG), который по простоте похож на пиксель‑арт‑редактор, но позволяет создавать более сложные формы, чем воксельные редакторы.

Ключевая идея: 3D через две 2D‑плоскости

В фиксированной 2.5D‑перспективе большинство 3D‑примитивов можно описать через две плоскости куба, в который они вписаны:

  • Top Plane — верхняя грань объёма;
  • Front Plane — фронтальная грань объёма.

Манипулируя объектом в этих двух проекциях, можно сильно упростить 3D‑операции: перемещение и масштабирование выполняются в 2D, при этом полностью убирается произвольное вращение. Автор предполагает, что, как и в воксель‑редакторах, отказ от вращения всё равно оставляет большой художественный простор.

Дополнительно объект можно «переворачивать» на 90° вперёд/назад, меняя назначение плоскостей (Front — экструзия и позиция по XY, Top — масштаб и позиция по XZ).

Базовый пайплайн моделирования

  1. Добавить примитив к объекту.
  2. Расположить (масштабировать, сдвинуть) и покрасить примитив.
  3. Собирать из таких «тайловых» объектов сцены в игре.

Минимальный набор операций

  1. Добавление примитивов: Cube, Cylinder, Arc (полуцилиндр), Ramp (варианты по направлениям N/S/E/W).
  2. Выбор примитива: клик по объекту, вокруг появляются 6 точек (4 для фронтальной плоскости, 4 для верхней).
  3. Перемещение в XY: перетаскивание фронтальной грани.
  4. Масштаб в XY: перетаскивание углов фронтальной грани.
  5. Экструзия по Z: перетаскивание задних углов/рёбер.
  6. Перемещение в XZ: перетаскивание верхней грани.
  7. Выбор цвета: при выделенном примитиве клик по цвету палитры.

Ограничения, упрощающие работу

  • Снэп к сетке: все операции привязаны к сетке 16×16×16.
  • Бюджет примитивов: один объект — максимум 32 примитива.
  • Без вращения: примитивы нельзя свободно вращать.
  • Ограниченная палитра: 16 общих цветов на объект. Это позволяет «сшивать» несколько примитивов в визуально цельную форму за счёт одного цвета.
  • Детали поверхностями: мелкие детали (например, кирпичи) создаются отдельными примитивами; копланарные поверхности рендерятся как единая 2D‑текстура.
  • Порядок отрисовки: определяется порядком создания или позицией в списке примитивов.

Дополнительные функции

  • Список примитивов (до 32 штук) с возможностью выбора, миниатюрами и, по возможности, изменением порядка.
  • Сокрытие/показ примитивов через иконку «глаз» в списке.
  • Скруглённые углы: для выделенного примитива можно задать скругление 1–4 «клетки» сетки.
  • Flip Front/Top: поворот примитива на 90° вперёд/назад (например, плоский диск превращается в колесо).
  • Cutter object: примитив вычитает объём из других (boolean subtract) — для отверстий и вырезов.
  • Текстуры: помимо сплошных цветов, простые текстурные паттерны.

Рендеринг

Чтобы объекты не выглядели грубо, автор рекомендует:

  • Параллельный источник света сверху (как солнце), фронт слегка в тени.
  • Тени от объектов на другие объекты.
  • Лёгкий ambient occlusion для связности форм.
  • Вертикальный градиент: темнее внизу, светлее вверху для усиления глубины.

Тестовые кейсы

Для проверки инструмента автор предлагает набор целевых моделей: дом (House), фабрика (Factory), камень (Stone), дерево (Tree), сурок/woodchuck. Также упоминается рабочий прототип от Angry Octopus.

Выводы

  • Фиксированная 2.5D‑перспектива позволяет свести управление 3D‑формой к двум 2D‑плоскостям и отказаться от сложного вращения.
  • Жёсткие ограничения (сетка, лимит примитивов, единая палитра) делают редактор проще и ближе по ощущениям к пиксель‑арту.
  • Минимальный набор примитивов и операций уже позволяет собирать сложные объекты и сцены.
  • Допфичи (boolean‑вырезы, скругления, flip, текстуры) расширяют выразительность без усложнения базового UX.
  • Качественный рендер (свет, тени, AO, градиенты) критичен, чтобы простые примитивы выглядели эстетично в игре.
check_circle Факт-чекинг
Статья прошла проверку. Фактологических ошибок не выявили.