Топология персонажей в 3D-моделировании: профессиональные стандарты и исправление ошибок

Курс посвящен профессиональным стандартам топологии персонажей для 3D-моделирования. Вы научитесь анализировать и исправлять ошибки в существующих моделях, правильно распределять плотность сетки и оптимизировать UV-развертку для качественного текстурирования.

1. Принципы распределения плотности сетки

Принципы распределения плотности сетки

Почему одна модель персонажа с 10 000 полигонов выглядит и анимируется в разы лучше другой, у которой 50 000? Ответ не в количестве, а в том, куда эти полигоны положены. Распределение плотности сетки — это, пожалуй, самый недооценённый навык, который отличает новичка от профессионала.

Равномерная сетка — миф, который нужно забыть

Самая распространённая ошибка начинающих — стремление к равномерной плотности сетки по всей модели. Логика кажется очевидной: если везде одинаковое количество полигонов, значит, везде одинаковое качество. Но это работает только для статичных объектов вроде архитектурных визуализаций. Персонаж двигается, и именно движение диктует правила.

Представьте лицо человека. Мышцы вокруг глаз, рта и бровей совершают микродвижения каждый раз, когда персонаж говорит или выражает эмоции. А стопа, если она в ботинке и не видна крупным планом, может вообще не деформироваться. Распределять полигонный бюджет поровну между этими зонами — всё равно что распределять бюджет фильма поровну между главной ролью и статистом на заднем плане.

Три зоны приоритета

Профессиональный подход строится на разделении модели на три зоны с разной плотностью:

Зона высокого приоритета — лицо, кисти рук, зона плечевого сустава. Здесь сосредоточена основная деформация и внимание зрителя. Плотность сетки здесь максимальная: на лице допустимо иметь полигоны размером 2–3 мм в реальном масштабе, а на скулах и вокруг глаз — ещё мельче.

Зона среднего приоритета — локти, колени, тазобедренные суставы, торс. Эти области деформируются при анимации, но не так интенсивно, как лицо. Плотность здесь умеренная, с достаточным количеством рёбер для плавного изгиба.

Зона низкого приоритета — голени, предплечья, спина (если не видна крупным планом), стопы под обувью. Здесь можно агрессивно снижать плотность, экономя полигонный бюджет.

| Зона | Примерная плотность | Причина | |------|-------------------|---------| | Лицо, кисти | Максимальная | Микродеформации, фокус внимания | | Суставы, торс | Средняя | Силуэтные изгибы при анимации | | Конечности, скрытые участки | Минимальная | Мало деформаций, не видны крупно |

Плавные переходы между зонами

Главная ловушка — резкие перепады плотности. Если на плече идёт мелкая сетка, а на середине плеча она внезапно укрупняется вдвое, при деформации появятся артефакты: грани будут «ломаться», тени лягут неравномерно. Решение — градиентное распределение: между зонами разных приоритетов нужно вставлять переходные петли (edge loops), которые постепенно увеличивают размер полигонов.

На практике это выглядит так: от глаза идут 3–4 плотных петли, затем 2–3 переходных с постепенным увеличением шага, и только потом — основная сетка лица. Такой подход даёт плавный силуэт при анимации и экономит ресурсы там, где мелкая детализация не нужна.

Проверка на деформацию — единственный критерий

Как понять, правильно ли распределена плотность? Есть один надёжный способ: прогн модель через скелетную анимацию. Создайте простейший скелет, привяжите (skin) модель и прокрутите базовые движения: поворот головы, подъём руки, приседание. Если в какой-то зоне полигоны начинают «проседать» или «колоться» — значит, здесь не хватает плотности. Если зона деформируется идеально, но при этом полигоны мельче, чем пиксель на финальном рендере — значит, здесь есть перерасход.

> Качество топологии определяется не количеством полигонов, а тем, насколько каждый полигон работает на деформацию или силуэт.

Плотность vs. производительность: баланс для разных платформ

Конечная плотность зависит от целевой платформы. Для мобильных игр персонаж может уместиться в 5 000–10 000 треугольников, для консольных AAA-проектов — 30 000–80 000, для кинематографической визуализации — сотни тысяч и миллионы. Но принцип распределения остаётся неизменным: приоритет деформируемым и видимым зонам, экономия на всём остальном.

Важно помнить: субдивизия (subdivision) на этапе рендера может компенсировать низкую плотность базовой сетки, но не исправит плохое распределение. Если на лице всего 4 полигона на щеку, никакой сабдив не сделает из этого красивую скулу — он лишь сгладит плоскость. Качество закладывается на этапе базовой сетки.

2. Топология зон деформации и суставов

Топология зон деформации и суставов

Когда персонаж сгибает локоть, а на внутренней стороне сустава появляется «гармошка» из полигонов — это не баг аниматора. Это ошибка тополога. Зоны деформации требуют особого подхода к построению сетки, и правила здесь жёстче, чем где бы то ни было на модели.

Кольцевая структура суставов

Любой сустав — локоть, колено, плечо, пальцы — работает как шарнир. Он сгибается в одном преимущественном направлении, и сетка должна этому соответствовать. Базовый приём — кольцевые петли (edge loops), которые опоясывают сустав перпендикулярно направлению сгиба.

Минимальное количество петель для корректного сгиба — три: одна на вершине сгиба и по одной с каждой стороны. Но на практике для локтя или колена профессионалы закладывают 4–6 петель, потому что при глубоком сгибе (больше 90 градусов) трёх петель недостаточно для плавного складывания.

Представьте сгибание пальца: если между фалангами всего два ряда полигонов, при сгибе до 90 градусов внутренняя сторона начнёт «наезжать» сама на себя, а внешняя — растянется до плоскости. Четыре ряда дают достаточно геометрии, чтобы внутренняя сторона аккуратно сложилась, а внешняя — плавно растянулась без разрывов.

Каплевидные петли для локтей и коленей

На внутренней стороне локтя и колена используется приём каплевидной петли (diamond pattern или pinch topology). Суть в том, что петли, идущие вдоль руки, не просто пересекают сустав, а собираются в ромбовидный узор в точке максимального сгиба. Этот ромб позволяет полигонам «сложиться» компактно, не создавая пересечений.

Конструкция выглядит так: петли с передней и задней стороны руки подходят к сгибу, в центре формируется ромб из 4–6 полигонов, а затем петли расходятся дальше. Ключевой момент — ромб должен быть симметричным относительно оси сгиба, иначе деформация будет неравномерной: одна сторона сожмётся сильнее другой.

Плечевой сустав — самая сложная зона

Плечо вращается в трёх осях, и это делает его топологически самым сложным суставом на теле. Здесь не работает простая кольцевая структура, потому что направление сгиба постоянно меняется.

Профессиональный подход — тройное пересечение петель (triple junction или star point): три системы петель пересекаются в зоне дельтовидной мышцы, создавая Y-образный шов. Одна система идёт вдоль руки, вторая — вдоль торса, третья — по контуру плеча. В точке пересечения формируется зона из 5–6 полигонов, которая позволяет сетке деформироваться в любом направлении.

> Плечо — это место, где топология перестаёт быть «чистой» и становится компромиссной. Идеальных решений здесь нет, есть лишь менее и более удачные.

Шея и основание черепа

Шея вращается и наклоняется, но её топология часто строится неправильно из-за стремления к «красивым» петлям. Основная ошибка — петли, идущие от лица, продолжаются прямо вниз по шее без перехода. Это создаёт жёсткую структуру, которая плохо реагирует на повороты головы.

Правильный подход — разделение потока петель: петли от лица и черепа собираются в зоне основания черепа, а затем перестраиваются в отдельную систему для шеи. Между ними — переходная зона из 1–2 рядов, которая «переключает» направление потока. Это похоже на пересадку между линиями метро: пассажиры (петли) выходят на станции и перестраиваются на другой поезд.

Пальцы и мелкие суставы

Пальцы — это, по сути, серия маленьких суставов, и к каждому применяются те же принципы, что к локтю, но в миниатюре. Минимальная топология пальца — 4 грани в сечении (квадрат), но для качественной деформации лучше 6–8. Это означает, что каждый палец приносит существенный полигонный бюджет, и на мобильных платформах часто идут на компромисс, используя 4 грани и принимая более угловатую деформацию.

Критически важно: ногтевая фаланга должна иметь отдельную петлю по контуру ногтя. Без неё при сгибании кончика пальца ноготь будет деформироваться вместе с кожей, что выглядит неестественно.

Проверка деформации зон

После построения топологии суставов проведите стресс-тест: согните каждый сустав до максимального угла, который возможен в анимации. Для локтя — до 150°, для колена — до 140°, для пальцев — до 90° на каждую фалангу. Если сетка начинает самопересекаться, «колоться» или терять объём — нужно добавить петли в зону сгиба. Если при этом на внешней стороне сустава полигоны растягиваются в тонкие полоски — это нормально, но только до тех пор, пока они не становятся видны на рендере.

3. Чек-лист для поиска и исправления ошибок топологии

Чек-лист для поиска и исправления ошибок топологии

Вы закончили моделирование персонажа, и он выглядит хорошо в покое. Но стоит начать анимацию — появляются артефакты, тени ложатся странно, а рендер выдаёт странные артефакты. Проблема почти всегда в топологии, и найти её систематически помогает структурированная проверка.

Геометрические ошибки сетки

Начните с базовой гигиены модели. Эти ошибки не зависят от художественных решений — они纯粹 технические, и каждая из них способна сломать рендер или симуляцию.

Незамкнутые рёбра (open edges) — рёбра, принадлежащие только одному полигону. На модели персонажа их не должно быть вообще, за исключением специально подготовленных разрезов для UV-развёртки. Проверка: в Maya — Mesh → Cleanup с опцией Nonmanifold geometry, в Blender — Select → All by Trait → Non Manifold.

Двусторонние полигоны (overlapping faces) — два полигона, занимающих одно и то же пространство. Возникают при копировании граней, зеркалировании или неаккуратном экструде. Приводят к мерцанию на рендере (z-fighting).

Вырожденные полигоны (degenerate faces) — полигоны с нулевой площадью, где две или три вершины совпадают. Обычно появляются после операций объединения (merge) вершин с неправильным порогом.

Неманифольдная геометрия (non-manifold geometry) — вершины или рёбра, принадлежащие более чем двум полигонам одновременно. Например, три грани, соединённые общим ребром, или «ленточная» структура, где внутренняя и внешняя стороны не определены. Такая геометрия ломает boolean-операции, физическую симуляцию и некоторые рендеры.

Структурные ошибки топологии

Эти ошибки не ломают геометрию напрямую, но ухудшают деформацию и делают модель сложной в работе.

Треугольники в зонах деформации. Треугольники допустимы на плоских или малодеформируемых участках (подошва обуви, пояс), но в зонах активного сгибания — на лице, в суставах — они создают неравномерное распределение весов при скиннинге и приводят к «колющим» артефактам.

Полигоны с более чем четырьмя сторонами (n-gons). Пятиугольники и выше категорически не рекомендуются для персонажей. Они плохо триангулируются (каждый рендер-движок разбивает их на треугольники по-своему), создают unpredictable деформации и мешают сабдивизии.

Полярные вершины (poles) — вершины, к которым сходятся 3, 5 или более рёбер. Трёхсторонние полюса (3-poles) и пятисторонние (5-poles) неизбежны в топологии персонажа, но их расположение критически важно. Полюс в зоне деформации — источник артефактов. Полюс на плоском участке — допустим.

> Полюсы — это дорожные развязки в топологии. На прямом участке дороги развязка не нужна, а вот там, где сходятся несколько направлений — она неизбежна, но должна быть спроектирована аккуратно.

Пошаговый чек-лист проверки

  • Удалите историю и заморозьте трансформации. Проверьте, что у модели нулевая трансформация (translate, rotate = 0, scale = 1). Незамороженные трансформации ломают экспорт и скиннинг.
  • Запустите cleanup геометрии. Удалите вырожденные полигоны, незамкнутые рёбра, неманифольдные элементы.
  • Проверьте на n-gons и треугольники. Выделите их и решите для каждого: можно ли перестроить в квады? Если треугольник на плоской поверхности — оставьте. Если на сгибе — перестройте.
  • Проверьте расположение полюсов. Найдите все 3-poles и 5-poles. Ни один не должен находиться в зонах активной деформации (лицо, суставы, кисти).
  • Проверьте направление нормалей. Все нормали должны быть направлены наружу. Разнонаправленные нормали дают тёмные пятна на рендере.
  • Проверьте петли на непрерывность. Каждая edge loop должна быть замкнутой или заканчиваться на границе модели. «Сломанные» петли — признак проблемной топологии.
  • Прогоните деформацию. Привяжите скелет, прокрутите ключевые позы. Ищите зоны, где полигоны схлопываются, растягиваются или пересекаются.
  • Проверьте масштаб UV. Все UV-островки должны иметь одинаковый texel density (плотность текстурных пикселей на единицу площади модели). Об этом подробнее в следующей статье.
  • Приоритет исправления

    Не все ошибки равнозначны. Исправляйте в порядке убывания критичности: неманифольдная геометрия → n-gons в зонах деформации → незамкнутые рёбра → полюсы в зонах деформации → треугольники в зонах деформации → направление нормалей → треугольники на плоских поверхностях. Последние можно часто оставить без внимания — они не повлияют ни на деформацию, ни на рендер.

    4. Взаимосвязь плотности сетки и масштаба UV

    Взаимосвязь плотности сетки и масштаба UV

    Вы сделали UV-развёртку, наложили текстуру 4K, а лицо персонажа выглядит чётко, а руки — размыто. Или наоборот: руки детализированы, а торс — мыльный. Причина не в текстуре, а в несоответствии плотности сетки и масштаба UV-островов. Эта связь — один из самых частых источников проблем с текстурированием персонажей.

    Что такое texel density и почему она важна

    Каждая текстура — это растровое изображение с фиксированным количеством пикселей. Когда текстура накладывается на модель через UV-координаты, каждый пиксель текстуры (texel) покрывает определённую площадь поверхности модели. Texel density — это количество текселей на единицу площади поверхности модели.

    Если texel density одинакова по всей модели, текстура выглядит равномерно: одинаковая детализация на лице, руках, ногах. Если плотность разная — одни участки будут чёткими, другие — расплывчатыми, даже если используется одна и та же текстура.

    Представьте обои на стене: если вы отрежете кусок обоев и наклеите его на маленькую поверхность — рисунок будет мелким и детальным. Тот же кусок на большой стене — рисунок растянется и станет расплывчатым. С UV работает тот же принцип: размер UV-острова относительно площади полигона на модели определяет, насколько чёткой будет текстура в этом месте.

    Почему плотность сетки влияет на UV

    Здесь работает простая механика: каждый полигон на модели соответствует участку внутри UV-острова. Если на модели одна зона имеет мелкую сетку (много маленьких полигонов), а другая — крупную (мало больших полигонов), но UV-острова этих зон занимают одинаковую площадь на UV-карте, то texel density будет разной.

    Конкретный пример: лицо персонажа содержит 2 000 полигонов, а спина — 500. Если UV-остров лица и UV-остров спины занимают одинаковую площадь на UV-карте, то каждый полигон лица получит в 4 раза меньше текселей, чем полигон спины. Результат: лицо — мыльное, спина — чёткая. А ведь нам нужно наоборот.

    Правило пропорциональности

    Решение — пропорциональное масштабирование UV-островов относительно площади, которую они представляют на модели. Формула проста:

    > Площадь UV-острова должна быть пропорциональна площади поверхности, которую этот остров представляет на 3D-модели.

    Если лицо занимает 15% площади поверхности тела персонажа, то UV-остров лица должен занимать примерно 15% площади UV-карты. Если рука занимает 8% — UV-остров руки получает 8%. Так каждый участок модели получает одинаковую texel density.

    На практике это означает, что UV-острова зон с высокой плотностью сетки должны быть крупнее, а зон с низкой плотностью — меньше. Это противоположно интуитивному подходу, когда хочется выделить больше UV-пространства для лица просто потому, что оно важнее. Важность лица решается не размером UV-острова, а общей площадью UV-карты и разрешением текстуры.

    Практический подход к выравниванию texel density

    Большинство 3D-пакетов имеют инструменты для проверки и выравнивания texel density:

    В Maya — UV Editor → Transform → Normalize с опцией Preserve Aspect Ratio и затем ручная проверка через Grid с заданным шагом. В Blender — UV Editor → UV → Average Islands Scale, а для проверки — плагин Texel Density Checker. В Substance Painter — встроенная визуализация texel density через режим Texel Density в viewport.

    Алгоритм выравнивания:

  • Разверните UV и расположите острова на UV-карте.
  • Запустите проверку texel density — большинство инструментов покажет цветовую карту: зелёный — норма, красный — слишком плотно, синий — слишком растянуто.
  • Масштабируйте острова, приводя их к единой плотности.
  • Перераспределяйте свободное пространство на UV-карте, учитывая приоритет зон (лицо и руки могут получить небольшой бонус к плотности за счёт менее важных зон).
  • Ловушки и исключения

    Лицо — исключение из правила. На практике профессионалы часто дают лицу чуть большую texel density (на 10–20%), чем остальным частям тела, потому что зритель интуитивно фокусируется на лице. Но это должен быть осознанный компромисс, а не ошибка.

    Симметрия и швы. Если модель симметрична и UV строится через зеркалирование, убедитесь, что шов UV совпадает с геометрическим швом модели. Несовпадение создаёт видимые артефакты на стыке текстур.

    Разные материалы — разные UV-сеты. Если персонаж имеет несколько материалов (кожа, ткань, металл), каждый материал может иметь свою UV-карту с отдельным разрешением. Это позволяет, например, дать коже 4K текстуру, а металлическим аксессуарам — 2K, не жертвуя качеством в критических зонах.

    UDIM для высокодетализированных персонажей. В кинопроизводстве стандартом стало использование UDIM — системы, при которой UV-карта разбивается на несколько тайлов (каждый — отдельный файл текстуры). Это позволяет разместить лицо на отдельном тайле с максимальным разрешением, а менее важные зоны — на других тайлах с меньшим. Подход UDIM решает проблему texel density радикально: каждая зона получает столько пикселей, сколько нужно.

    5. Профессиональные стандарты оптимизации модели

    Профессиональные стандарты оптимизации модели

    Модель готова: топология чистая, деформации работают, UV развёрнута. Но перед вами стоит задача уместить персонажа в бюджет производительности — 15 000 треугольников для мобильной игры, 60 000 для консольного проекта или оптимизировать кинематографическую модель для рендер-фермы. Оптимизация — это не упрощение, а умное сокращение, при котором теряется минимум визуального качества.

    LOD — уровни детализации как стандарт индустрии

    LOD (Level of Detail) — это система, при которой модель существует в нескольких вариантах с разным количеством полигонов. Движок автоматически переключается между ними в зависимости от расстояния от камеры: вблизи — детальная версия, вдали — упрощённая.

    Профессиональный стандарт для персонажей — минимум три уровня:

  • LOD0 — полная детализация, используется при крупных планах. Для AAA-персонажа это 30 000–80 000 треугольников.
  • LOD1 — упрощение на 40–50%, используется на среднем расстоянии. Крупные детали сохраняются, мелкие — сглаживаются или удаляются.
  • LOD2 — упрощение на 70–80% от оригинала, используется на дальнем расстоянии. Силуэт сохраняется, внутренняя детализация минимальна.
  • LOD3 (опционально) — billboard или примитив для экстремально дальних дистанций.
  • Ключевой принцип: при создании каждого LOD-уровня силуэт модели должен оставаться узнаваемым. Если при переходе от LOD0 к LOD1 меняется форма плеча или профиль лица — LOD построен неправильно. Силуэт важнее внутренней детализации, потому что зритель распознаёт персонажа именно по контуру.

    Ретопология: от скульпта к игровой модели

    Профессиональный пайплайн персонажа почти всегда включает ретопологию — процесс построения новой, оптимизированной сетки поверх высокополигонального скульпта. Скульпт может содержать миллионы полигонов, но игровая модель должна уместиться в заданный бюджет.

    Ретопология строится по тем же принципам распределения плотности, которые рассматривались в первой статье, но с дополнительным ограничением: общий бюджет полигонов фиксирован. Это превращает процесс в задачу оптимизации — нужно решить, какие детали скульпта сохранить в геометрии, а какие перенести в карту нормалей (normal map).

    Правило разделения: если деталь влияет на силу轮廓 (выступающие скулы, форма носа, мускулатура) — она должна быть в геометрии. Если деталь создаёт текстуру поверхности (поры кожи, морщины, складки ткани) — она переносится в карту нормалей. Граница между этими категориями — предмет художественного решения, но общий принцип неизменен.

    Карты нормалей и перенос деталей

    Карта нормалей — это специальная текстура, которая имитирует рельеф поверхности без добавления геометрии. Она работает, подменяя направление нормалей (surface normals) каждого пикселя на рендере, заставляя свет вести себя так, будто поверхность имеет микрорельеф.

    Процесс переноса (bake) выглядит так: высокополигональный скульпт и низкополигональная ретопо-модель совмещаются в пространстве, и детали скульпта проецируются на карту нормалей低полигональной модели. Результат: модель с 10 000 полигонов выглядит как модель с 5 000 000, потому что каждый пиксель рендера получает информацию о нормали из текстуры.

    Для корректного bake критически важно, чтобы низкополигональная модель полностью покрывала высокополигональную в зонах проекции. Если низкополигональная сетка «проваливается» внутрь скульпта (например, в области глазниц), на карте нормалей появятся артефакты — чёрные пятна или инвертированные нормали.

    Оптимизация UV для производительности

    Помимо texel density, о которой шла речь в предыдущей статье, UV-развёртка влияет на производительность через количество UV-швов и упаковку (UV packing).

    Каждый UV-шов — это потенциальный источник видимого стыка на текстуре и дополнительная нагрузка при bake карт. Минимизируйте количество швов, пряча их в малозаметных местах: под волосами, в подмышечных впадинах, по внутренним швам одежды.

    Упаковка UV — это задача размещения всех UV-островов на UV-карте с минимальным wasted space. Хорошая упаковка использует 85–95% площади UV-карты. Плохая — 50–60%, что фактически означает, что вы используете текстуру вдвое меньшего разрешения, чем могли бы.

    Полигональный бюджет: распределение по частям тела

    Профессионалы часто работают с бюджетной таблицей — документом, который фиксирует допустимое количество треугольников для каждой части тела. Пример для персонажа на 20 000 треугольников:

    | Часть тела | Бюджет (треугольники) | % от общего | |-----------|----------------------|------------| | Голова и лицо | 5 000 | 25% | | Торс | 4 000 | 20% | | Руки (2 шт.) | 4 000 | 20% | | Ноги (2 шт.) | 4 000 | 20% | | Аксессуары, волосы | 3 000 | 15% |

    Такая таблица не догма, а инструмент планирования. Если персонаж — говорящая голова на экране диалогов, голова может получить 50% бюджета. Если это персонаж от третьего лица с видом на спину — торс и спина получают приоритет.

    Автоматические инструменты и их граница

    Современные пакеты предлагают инструменты автоматической оптимизации: ProOptimizer в 3ds Max, Decimate в Blender, Reduce в Maya. Они работают по алгоритму уменьшения количества полигонов с сохранением общей формы.

    Но автоматическая оптимизация не понимает семантики модели. Она может одинаково агрессивно упростить лицо и подошву ботинка, потому что для алгоритма это просто набор полигонов. Поэтому автоматические инструменты годятся для генерации LOD-уровней на основе уже оптимизированной ручной топологии, но не для первичной оптимизации.

    > Автоматическая оптимизация — это финальная шлифовка, а не замена ручной работы. Она экономит часы на LOD-уровнях, но не заменяет понимания топологии.

    Финальная проверка перед экспортом

    Перед отправкой модели в конвейер производства пройдите по этому списку: общее количество треугольников соответствует бюджету; каждый LOD-уровень корректно переключается без «прыжка» силуэта; карты нормалей запечены без артефактов; UV-упаковка использует не менее 85% площади; texel density выровнена или намеренно скорректирована для приоритетных зон; модель экспортирована в правильном масштабе и ориентации; все материалы и ссылки на текстуры корректны. Каждый из этих пунктов — потенциальная точка отказа, и пропуск любого из них может стоить часов отладки на следующем этапе пайплайна.