Створення 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 call рисує N копій із різними матрицями трансформації. У Unity: Material.enableInstancing = true.
Snap-сітка: всі модулі створяються під спільну сітку — 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. Великі стіни, будівлі мають бути occluders — об'єкти, що приховують те, що за ними. У 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 проти terrain. Unity Terrain + Detail Meshes для трави та дрібної рослинності — вбудована система з LOD та culling. Для мобілю: Detail Distance не більше 30–50 units, Detail Density обмежуємо (щільність 1.0 трава дає тисячі об'єктів). Тип деталі Billboard (плоска текстура трава) швидше повноцінних 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 на мобілю — розкіш, якої немає в бюджеті продуктивності.
З практики: мобільний runner, Unity URP. Сцена з міськими блоками: 300 draw calls, FPS 35 на Xiaomi Redmi 10. Проблема: кожен модульний блок мав свій instance матеріалу (через випадкову зміну кольору в інспекторі на деяких об'єктах). Матеріали перестали бути ідентичними — static batching зламався. Після скидання всіх матеріалів до вихідного shared instance: 45 draw calls, стабільний 60 FPS.
Стилістика та рівень деталізації
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, batching, Occlusion Culling
Часова шкала
Модульний kit для однієї локації (20–40 унікальних модулів) — 4–8 тижнів залежно від складності стилістики та кількості hero props. Повне оточення для середньомісцевої мобільної гри (3–5 локацій) — 2–4 місяці. Вартість розраховується індивідуально.







