Автор описывает дизайн‑челлендж: создать веб‑игрушку для 3D‑моделирования (Model Toy), которая:
- очень проста и доступна, как пиксельный редактор;
- даёт узнаваемый визуальный стиль «из коробки»;
- подходит для пользовательского контента в казуальных играх;
- не копирует существующие 3D‑редакторы и не использует воксели.
Базовая идея Model Toy
Инструмент работает «от вершин» и радикально ограничивает выразительные средства, чтобы сформировать стиль и упростить интерфейс.
- Плоскость с сеткой: вся работа идёт на 2D‑плоскости с привязкой к сетке 16×16. Это ощущается ближе к 2D‑редактору, чем к классическому 3D‑пакету.
- Примитивы‑формы: каждая форма — 2D‑контур из 3–4 вершин. Типы вершин: скруглённая, полу‑скруглённая, прямая. Контур можно экструзировать и фасетировать (bevel).
- Ограничения: максимум 32 формы в модели, 16 фиксированных цветов, все вершины на сетке. Это сознательная «эстетика ограничений», как в пиксель‑арте.
Типы примитивов
- Круг: 4 скруглённые вершины.
- Прямоугольник: 4 прямые вершины.
- Полукруг: 3 вершины (1 скруглённая, 2 полу‑скруглённые).
- Треугольник: 3 прямые вершины.
Все операции (перемещение, масштаб, поворот) реализуются через перетаскивание вершин по сетке, без явных матриц трансформации. Поворот — «визуальный»: художник двигает вершины, пока форма не выглядит повернутой; точная математика не важна.
Кривые и скрытые хендлы
Для скруглённых и полу‑скруглённых углов используются скрытые bezier‑хендлы:
- для круглых углов хендлы параллельны соседнему сегменту и пропорциональны его длине (подбирается коэффициент, дающий «идеальный круг» из четырёх углов);
- для полу‑круглых углов используется «Fake A»: одна из соседних точек зеркалится относительно сегмента, и по этому новому направлению строится хендл.
Пользователь не видит и не настраивает хендлы вручную — это снижает сложность интерфейса.
3D‑измерение
Сбоку есть палитра слоёв/глубины:
- перетаскивание формы по горизонтали меняет её Z‑глубину;
- перетаскивание с левой/правой стороны — экструзия назад/вперёд с привязкой к сетке;
- в профиле показывается тип фаски (bevel).
Дополнительные свойства формы: выбор цвета из палитры, тип фаски (нет, скруглённая, купол, плоская), степень экструзии.
Осознанные упрощения
- нет произвольного скейла и ротации (всё через вершины);
- нет произвольного выбора цвета — только фиксированный набор;
- нет слоёв и групп — список из 32 форм и есть «слои»;
- нет линий и пустых контуров — только заливка формы.
Редактор и пайплайн
Планируется веб‑редактор с сохранением в БД, шарингом и форками моделей. 3D‑просмотр позволяет вращать сцену; возможны эксперименты с авто‑снапом к фронтальному/боковому виду.
Экспорт:
- 3D‑модель для импорта в Maya/3DS/Unity;
- битмапы — серия кадров вокруг модели с альфой.
Дальнейшее развитие
- Shader sets: сменные наборы материалов (дерево, металл и т.п.) поверх базовой палитры.
- Пост‑обработка: пресеты «как в Instagram» — контур (стиль Land-a Panda), поп‑арт, сепия и др.
- Состояния и анимация: модель может иметь несколько конфигураций (walk/attack и т.п.), между которыми выполняется твининг с easing. На базе этого можно делать шаблоны персонажей для UGC.
Автор подчёркивает, что ценность инструмента проявится, когда художники начнут делать в нём реальные ассеты и запрашивать точечные улучшения. В идеале можно создать целую игру, где все объекты сделаны в этом стиле.
Выводы
- Model Toy строится на жёстких ограничениях (32 формы, 16 цветов, сетка 16×16), чтобы упростить UX и задать стиль.
- Все трансформации выполняются через перетаскивание вершин; пользователь не работает с матрицами, хендлами и сложными параметрами.
- Кривые и фаски считаются автоматически, скрывая bezier‑хендлы и снижая порог входа.
- Инструмент ориентирован на UGC для игр: веб‑доступ, шаринг, экспорт в 3D и спрайты, шаблоны персонажей и анимаций.
- Ключевая гипотеза — правильно подобранные ограничения порождают узнаваемый художественный стиль и стимулируют творчество.