Создание 3D-моделей окружения для мобильной игры
Окружение в мобильной 3D-игре — это не набор красивых объектов. Это система модульных мешей, которую level designer может собирать как конструктор, с батченными материалами, правильной окклюзией и полигональным бюджетом, позволяющим рендерить целую сцену в 60fps на iPhone 13.
Модульность как основной принцип
Модульный подход — создание базовых блоков (пол, стена, угол, дверной проём, потолок), из которых собирается любой уровень. Это не просто удобство — это прямое влияние на производительность через Draw Call Batching.
В Unity: Static Batching объединяет неподвижные объекты с одинаковым материалом в один draw call. Условие: одинаковый Material (один и тот же instance). 50 стен из одного prefab с одним материалом = 1 draw call вместо 50. GameObjects → Static должен быть включён. Увеличивает RAM (объединённые меши хранятся в памяти), поэтому для мобайла осторожно с общим размером статик-геометрии.
GPU Instancing — для повторяющихся объектов (деревья, камни,草растения), которые всё же могут двигаться. Один вызов GPU рисует N копий с разными матрицами трансформации. В Unity: Material.enableInstancing = true.
Сетка снапинга: все модули создаются под общую сетку — 1м, 0.5м, 0.25м. Точки крепления (snap vertices) на краях модулей. В Blender — настройка Snap to Vertex при моделировании, Unit Scale = 1.0 (не 0.01, иначе масштаб не совпадёт с Unity's 1 unit = 1 meter).
Техники оптимизации окружения
Occluder и occludee. Крупные стены, здания должны быть occluder'ами — объектами, скрывающими то, что за ними. В Unity Occlusion Culling — запекаем данные через Window → Rendering → Occlusion Culling → Bake. Объекты за стенами не рендерятся вообще. Для мобильной игры с интерьерами (dungeon crawler, RPG) это критично — без окклюзии каждая комната загружает GPU, даже если не видна.
Collision mesh. Коллизия не должна совпадать с визуальным мешем. Для сложного объекта (кряжистое дерево, руины) — простой Box/Capsule Collider достаточен для геймплея, экономит Physics CPU. В Unity: Mesh Collider с Convex = true для выпуклых объектов, Box/Capsule Collider для простых форм.
Detail meshes vs terrain. Unity Terrain + Detail Meshes для травы и мелкой растительности — встроенная система с LOD и culling. Для мобайла: Detail Distance не больше 30–50 units, Detail Density ограничиваем (трава с плотностью 1.0 даёт тысячи объектов). Billboard detail type (плоская текстура трава) быстрее полноценных 3D мешей.
Запечка освещения (Light Baking)
Real-time Global Illumination на мобайле слишком дорогая. Стандарт — запечённое освещение через Unity Lightmapper (встроенный или Progressive GPU Lightmapper). Lightmap Resolution 10–20 texels/unit для окружения, 40+ для важных объектов. Lightmap Size максимум 2048 на мобайле — несколько атласов при большой сцене.
URP Baked Global Illumination: объекты с Contribute Global Illumination участвуют в запечке. Динамические объекты (персонажи) получают GI через Light Probes — расставляются в редакторе в местах, где перемещаются персонажи.
Ambient Occlusion для окружения — через запечку в текстуру (Substance Painter или Blender bake), не через real-time SSAO. SSAO на мобайле — luxury, которого нет в бюджете производительности.
Из практики: мобильный runner, Unity URP. Сцена с городскими блоками: 300 draw calls, FPS 35 на Xiaomi Redmi 10. Проблема: каждый модульный блок имел свой экземпляр материала (из-за случайного изменения цвета в инспекторе на некоторых объектах). Материалы перестали быть идентичными — static batching сломался. После сброса всех материалов к исходному shared instance: 45 draw calls, FPS 60 стабильно.
Стилистика и уровень детализации
Hero props — ключевые объекты, которые игрок видит крупным планом: сундуки, двери, алтари. Высокая детализация, качественные текстуры 1024×1024 или 2048×2048.
Secondary props — мебель, декор, обычные элементы окружения. Средняя детализация, атласированные текстуры (несколько объектов на одном атласе).
Filler / background props — далёкий фон, массовка. Минимальная детализация, LOD2 или billboard.
Trim sheets — один текстурный атлас с полосками разных материалов (кирпич, металл, дерево), который накладывается на модульные меши. Позволяет одним атласом покрыть всё окружение локации. Популярная техника в AAA разработке, применима и в мобайле.
Что входит в работу
- Модульный набор геометрии для локации (пол, стены, потолки, переходы, декор)
- Hero props с полным текстурным набором
- LOD0 + LOD1 для объектов окружения
- Настройка UV для запечки освещения (Lightmap UV, второй UV-канал)
- Оптимизированные коллизии
- Экспорт в FBX/glTF с правильными pivot points
- Тест в движке: Draw Calls, батчинг, Occlusion Culling
Сроки
Модульный kit для одной локации (20–40 уникальных модулей) — 4–8 недель в зависимости от сложности стилистики и количества hero props. Полный environment для mid-size мобильной игры (3–5 локаций) — 2–4 месяца. Стоимость рассчитывается индивидуально.







