Roblox — это уже давно не только кубические аватары. Современные experiences наполнены детализированными машинами, реалистичными пропсами и полноценными PBR-материалами, собранными в Roblox Studio через MeshPart. Узкое горлышко всегда было одно: контент. Где взять хорошие 3D-ассеты без команды моделлеров?
AI-генераторы стали самым быстрым входом. Снимаете фото, генерируете GLB, импортируете как MeshPart — и через пару минут это уже играбельно в Studio.
Что принимает Roblox Studio
Roblox Studio импортирует и FBX, и GLB через 3D Importer (Avatar → Import 3D). GLB — рекомендуемый путь, потому что собирает геометрию, UV и PBR-текстуры в один файл — ровно то, что выдают современные AI-генераторы. Каждый импортированный меш становится MeshPart со своими свойствами CollisionFidelity, RenderFidelity и SurfaceAppearance.
Для общего бэкграунда по формату см. как превратить фото в 3D модель.
Workflow: фото → MeshPart
- Сгенерируйте GLB на HiGen3D из чистой фотографии объекта.
- Откройте Roblox Studio и нажмите Avatar → Import 3D.
- Выберите .glb-файл. Studio покажет превью с панелью предупреждений о нарушениях ограничений.
- Вставьте в workspace. Меш появится как MeshPart внутри Model.
Ограничения, которые нужно знать
- Лимит треугольников — примерно 21 000 на один MeshPart. Если ИИ выдаёт более плотный меш, делите на части или децимируйте перед импортом.
- Размер текстур — бесплатные аккаунты ограничены 1024×1024. Premium может больше, но 1024 — безопасный дефолт.
- Bounding box — максимум 2048×2048×2048 studs на MeshPart.
- Размер файла — держите отдельные меши под несколько МБ для быстрого стриминга.
Если AI-выход вылетает за бюджет треугольников, гайд по оптимизации для мобильных игр покрывает те же приёмы децимации, которыми пользуются Roblox-разработчики.
Настройка коллизий
У каждого MeshPart есть свойство CollisionFidelity. Ошибётесь — игроки будут проваливаться сквозь пол или застревать в невидимых стенах.
- Box — самое быстрое, для простых пропсов без близкого взаимодействия.
- Hull — выпуклая аппроксимация, идеально для машин, валунов, мебели.
- Default — выпуклая декомпозиция, точнее, но тяжелее; для сложных форм.
- PreciseConvexDecomposition — ближе всего к визуальному мешу, используйте только для hero-ассетов.
Начинайте с Hull. Если коллизии ощущаются неправильно — поднимайте до Default.
Материалы через SurfaceAppearance
Базовый материал MeshPart годится для плоского шейдинга, но AI-генерируемые GLB идут с полными PBR-картами. Чтобы их использовать, добавьте дочерний объект SurfaceAppearance и назначьте текстуры: ColorMap (albedo), NormalMap, MetalnessMap, RoughnessMap. Установите AlphaMode в Overlay, чтобы SurfaceAppearance полностью перекрыл базовый цвет.
Если PBR-карты для вас в новинку, сперва прочитайте объяснение PBR-текстур — там расписано, что делает каждый канал.
Публикация в Marketplace
ПКМ по MeshPart → Save to Roblox. Заполните имя, описание, теги. Roblox прогонит модерацию (обычно меньше часа). После одобрения у ассета появится публичный AssetId, который можно вставить в любую experience или продавать на Marketplace. Убедитесь, что исходная фотография ваша или у вас есть лицензия.
Типичные ошибки и решения
- Меш импортируется в неправильном масштабе — Roblox использует studs (1 stud ≈ 0.28 м). Перемасштабируйте свойством Size в Studio или заранее в Blender. Гайд по импорту GLB в Blender показывает конвертацию единиц.
- Текстуры пропали после импорта — убедитесь, что добавили SurfaceAppearance; базовый Color у MeshPart не покажет ваши AI-текстуры.
- Ошибка «Mesh too dense» — децимируйте до 21k треугольников на часть. Разбивайте на несколько MeshPart при необходимости.
- Колёса не крутятся — у машин каждое колесо должно быть отдельным MeshPart, соединённым HingeConstraint. AI-инструменты с автосегментацией колёс (см. наш Unity-гайд по машинам) экономят здесь часы.
Пример: drivable car из фотографии
Сфотографируйте машину в ракурсе 3/4. Сгенерируйте GLB на HiGen3D — колёса выйдут отдельными мешами. Импортируйте в Studio: получите пять MeshPart (кузов + четыре колеса). На кузове поставьте CollisionFidelity в Hull, на колёсах — Box. Соедините каждое колесо с шасси через HingeConstraint. Вставьте VehicleSeat внутрь кузова, напишите 20 строк на Lua для throttle и steer — и машина едет. Общее время: меньше 15 минут.
Подробнее о повторяемом пайплайне такого рода — в статье про инди-пайплайн, а готовые модели от сообщества можно посмотреть на странице community HiGen3D. Готовы попробовать? Сгенерируйте свой первый GLB под Roblox — пакеты кредитов в разделе pricing.