Створення 3D-моделей персонажів (Low-poly)
Low-poly персонаж — це компроміс, виражений у полігонах. Кожен трикутник повинен працювати: на силует, на деформацію, на читаємість текстури. Зайва edge loop в непотрібному місці — це не «запас», це waste, який помножується на кількість одночасних екземплярів у сцені.
Конкретний приклад з практики: мобільна RPG з тактичною камерою, 20 юнітів одночасно на екрані. Виникне hero mesh — 8 200 triangles. Після профілювання в Unity Profiler виявляється, що самі персонажі дають 164k tris на кадр, і це до оточення. Перегін кожного юніту до 3 500–4 500 tri з переглядом UV layout знизив draw calls і дав стабільні 60fps на mid-range Android. Це не магія — це дисципліна роботи з polycount.
Де ломається low-poly pipeline
Головна помилка — робити low-poly «з high-poly через ZRemesher». Автоматичні ретопологізатори не розуміють, де потрібна edge loop під деформацію, а де — ні. Результат: додаткові полігони в статичних зонах і недостаток геометрії там, де персонаж гнеться. Плечовий суглоб з трьома петлями не деформується — він ломається.
Другий камінь — UV islands і texel density. Якщо UV-розгортка робиться на швидку руку, обличчя отримує такий же texel density, як ботинок. На 512×512 текстурі (типічно для мобайла) обличчя персонажа перетворюється в кашу. Різні частини тіла вимагають різного розподілу UV space за пріоритетом візуальної важливості.
Третій момент — skinning-friendliness топології. Edge loops повинні йти вздовж м'язових груп, а не поперек суглобів. Програміст-риггер або технічний аніматор дивиться модель і одразу розуміє, чи буде skinning передбачуваним. Погана топологія = години правок на анімаційній стадії.
Як будується робота над low-poly персонажем
Відправна точка — технічні вимоги: цільова платформа, polycount budget, розмір texture atlas, рушій. Blender, Maya або 3ds Max — інструмент вибирається під pipeline проекту, не під уподобання художника.
Blockout. Спочатку примітиви — box modeling від крупного до дрібного. Пропорції і силует важливіші деталей. На цьому етапі polycount вже контролюється: рахуємо triangles, не quads.
Topology pass. Ручна розстановка edge loops під rig. Ключові зони: плечовий суглоб (мінімум 2 петлі), лікоть (2–3 петлі залежно від діапазону руху), коліно, шия, зап'ясток. Обличчя — окрема розмова для hero character, там edge flow під мімічну анімацію принципіально важливий.
UV unwrap. Робиться в Blender або Rizom UV — залежить від складності моделі. Для мобільного персонажа з одним 2048×2048 atlas принципово важливо: обличчя отримує максимум UV space, руки — у міру, ноги і спина — мінімум. Seams приховуються у візуально непріоритетних зонах.
Підготовка під bake. Якщо модель йде в парі з high-poly, налаштовуємо cage, перевіряємо відсутність overlapping UV, експортуємо в FBX з правильними smoothing groups. Запікання робиться в Marmoset Toolbag або через Substance Painter з налаштуванням match by mesh name.
Фінальний формат — FBX або glTF 2.0 залежно від вимог рушія. Unity приймає обидва, Unreal Engine краще працює з FBX, web-рушії (Three.js, Babylon.js) надають перевагу glTF.
Орієнтири по срокам
| Складність | Polycount | Строки |
|---|---|---|
| Простий NPC (стилізація) | до 2 000 tri | 2–4 дні |
| Стандартний ігровий персонаж | 3 000–6 000 tri | 4–8 днів |
| Hero character (повне обладнання) | 6 000–12 000 tri | 8–16 днів |
| Технічно складний (мех, броня) | 10 000–20 000 tri | 12–20 днів |
Це строки на геометрію без текстурування. UV unwrap входить у базову вартість. Вартість розраховується індивідуально після аналізу вимог.
Що перевірити до початку роботи
- Узгоджений polycount budget з урахуванням кількості одночасних екземплярів у сцені
- Є концепт мінімум з двох ракурсів (front + side), краще — з чотирьох
- Визначений розмір texture atlas і кількість матеріальних слотів
- Вказано, чи буде персонаж анімований і наскільки екстремальні деформації
- Ясно, чи потрібен high-poly джерело для запікання або текстурування буде hand-painted





