Как стать автором
Обновить

Проблема высоких каблуков в играх

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров17K
Автор оригинала: Simon Schreibt

Введение

В этой статье мы поговорим о том, как разные типы обуви могут влиять на разработку игр, и покажем примеры того, как разработчики игр решают эти проблемы на практике.

Но прежде чем приступить, давайте посмотрим, что можно делать на каблуках:

Источники: 12345

Вот небольшая таблица на случай, если я запутаюсь в терминологии:

Рост персонажа

Проблема

Из-за разных размеров тел персонажей разработчикам игр приходится выполнять кучу дополнительной работы. Вот отличный пример из Dragons Dogma 2, в котором персонажам с разным размером тел удаётся поцеловаться:

Источники: прохождения Dragons Dogma 2 (1 и 2)

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

Источник: прохождения Dragons Dogma 2 (1 и 2)

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

Источник: Romero из Mixamo

Наряду с точными взаимодействиями, могут существовать и другие особые случаи, в которых каблуки способны вызывать проблемы: например, персонажа не должно быть видно за укрытием из-за каблуков:

Источник: Romero Mixamo

Если рост персонажа меняется, то может также понадобиться обновление его объёмов определения коллизий, особенно в соревновательных играх. Это зависит от того, как движок обрабатывает такие объёмы. Лучше всё перепроверить дважды!

У разработчиков здесь возникает дилемма. Подходящий вариант нужно выбирать с умом.

Изменять рост или найти обходное решение?
Изменять рост или найти обходное решение?

Давайте сначала поговорим о первом варианте, то есть о корректном и реалистичном изменении роста!

 Решение А: «менять рост»

Существует три способа работы с последствиями разных высот обуви персонажей:

  1. Надеяться на лучшее

  2. Исправлять вручную

  3. Исправлять динамически

 1. Надеяться на лучшее

Некоторые игры могут позволить себе изменения роста персонажей, потому что в них очень мало точных взаимодействий с NPC и окружениями. Например, когда я играл в Infinity Nikki, то для анимаций в основном было не важно, выше или ниже Никки на десять сантиметров (например, при открытии сундука):

Источник: Infinity Nikki

И не могу припомнить ни одного точного взаимодействия в катсценах (например, рукопожатий). То есть поднятие тела не создаёт особых проблем:

Источник: Infinity Nikki

Однако одно исключение есть: я заметил ситуацию, в которой есть близкое взаимодействие: поглаживание. Для этого есть два наряда, с каблуками и без них:

Источник: Infinity Nikki

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

Saints Row — это ещё одна игра, корректно меняющая рост персонажа. Это единственная из найденных мной игр, где каблуки могут носить мужские персонажи.

Источник: Saints Row

Дополнение:

Lady Estradiol объяснила мне в комментариях, что в FFXIV носить высокие каблуки могут все.

Source: FFXIV
Источник: FFXIV
Source: FFXIV
Источник: FFXIV

Также мне сообщили, что в Movie Star Planet 2 (2D-игре про одежду) тоже есть возможность надевать обувь с каблуком на любых персонажей.

А Noe показал мне пример особого случая: если модель носит только умеренно высокие каблуки или прикрывающую лодыжки обувь на плоской подошве (не кроссовки и не босиком), то такая методика не требует изменений в ступнях/ногах при смене обуви:

Source: Noe on Bluesky
Source: Noe on Bluesky

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

 2. Ручной труд

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

stand_groom_barefoot.fbx
stand_groom_shoe_5cm.fbx
stand_groom_shoe_12cm.fbx

Но будьте внимательны! Если адаптируются не все анимации, это может привести к проблемам. Здесь, например, похоже, что конкретная анимация игры в гольф доступна только для обуви с плоской подошвой:

Источник: GTA Online

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

Посмотрим, что происходит: при надевании высоких каблуков ноги должны находиться в другой позе (справа). В противном случае это выглядит смешно (слева):

Источник: CGarchitect
Источник: CGarchitect

Кстати, то же самое поведение можно заметить в Nikki в единственном кадре, когда заменяется обувь. Меш обуви меняется за один кадр до изменения позы:

Источник: Infinity Nikki

 3. Динамическое изменение

Для ручной настройки требуется много труда! Можно ли как-то его автоматизировать? Например, если в игре есть механика держания за руки и вам пришлось бы создавать кучи анимаций, чтобы руки персонажей с разной высотой обуви точно совпадали, то это было бы настоящим кошмаром.

Источник: Hand Holding Mechanics

На помощь приходит инверсная кинематика!

В современных движках есть системы инверсной кинематики реального времени. Большинству игроков они уже известны, потому что эти системы адаптируют ориентацию ног к рельефу:

Источник: Infinity Nikki

Такие системы можно использовать и для процедурных анимаций взаимодействия с окружением, например, для касания стены, мимо которой проходит персонаж:

Источник: iHeartGameDev | Uncharted

Или же, что особенно восхитительно, для динамического изменения положения рук в направлении цели, чтобы персонаж мог иметь разную высоту и/или цель могла находиться на динамической высоте на уровне:

Источник: Unreal Content Examples: IK Rig

Но будьте аккуратны, если цель инверсной кинематики (IK) используется некорректно, то анимации могут оказаться довольно эротичными. Помните об этом!

Решение Б: «пойти в обход»

Не хотите вручную изменять все анимации или использовать динамическую систему? Без проблем! Давайте рассмотрим разные методики, позволяющие персонажам надевать высокие каблуки, без изменения их роста и не решая перечисленные выше проблемы.

Здесь у нас тоже есть три варианта:

  1. Прятать

  2. Укорачивать

  3. Изгибать

 1. Прятать

Если обувь позволяет это сделать, можно «спрятать» стопы в подошвы. Из-за этого нога будет казаться короче (как и в разделе ниже), зато не требуется вносить изменения ни в ноги, ни в обувь:

 2. Укорачивать

В своём исследовании я встречал это решение очень часто: голень просто укорачивается, чтобы рост персонажа не менялся.

Вот пример из Sims 4. Как видите, длина бёдер остаётся такой же, их положение не меняется, а голень укорачивается (угол поднимается вверх):

Источник: Sims 4

Ещё один пример с сидящим персонажем:

Источник: Sims 4

То же самое происходит в Watchdog Legions. Однако здесь немного меняется форма голени, потому что она немного сжимается:

Источник: Watchdog Legions

И ещё один пример, на этот раз из Cyberpunk:

Источник: Cyberpunk 2077

В обычном случае геометрия ноги должна меняться на другую. Теоретически также можно использовать blend shape, но они вычислительно затратны.

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

Это может приводить к сильным визуальным искажениям, например, как в Final Fantasy 14:

Source: Reddit Discussion

При ношении высоких каблуков лодыжка должна находиться в этой точке. Разумеется, в Nier можно не менять обувь на плоскую подошву, чтобы она идеально соответствовала скелету:

Source: Platinum Games Blog

 3. Изгибать

Вот хороший пример того, что синхронизованный рост персонажей очень важен (иначе бы губы не соединились при поцелуе), но вместо укорачивания голени она просто немного изгибается:

Источник: 3D Sex Villa 2

Осанка

Если вы хотите сделать всё правильно, то недостаточно приподнять бёдра и повернуть ступни в позицию «высокий каблук». Согласно паре статей, должна меняться и поза целиком! Главные отличия:

  • перераспределение веса тела

  • наклонённый вперёд таз, лёгкий изгиб позвоночника

  • напряжённые икроножные мышцы

  • подчёркнутая кривая ягодиц

Источник: Why Shoes Make“Normal” Gait Impossible

Я попробовал адаптировать это к моему зомби, сделав следующее (впрочем, я отказался от использования blended shape для более округлых ягодиц):

  • Поднял бёдра

  • Повернул ступни (чтобы они снова касались пола)

  • Перераспределил вес тела, повернув таз и изогнув позвоночник

Источник: Romero Mixamo

Потом я провёл тест с анимацией ходьбы. Я добавил своё изменение осанки как аддитивное в анимацию ходьбы Mixamo, и это сработало! Оцените моего сексуального зомби.

Источник: IV Pole Walking Mixamo

Примечание 1: я заметил в Cyberpunk небольшую деталь — при смене обуви можно заметить, как меняется поза ступни:

Источник: Cyberpunk 2077

Примечание 2: если вы хотите полной точности, то нужно будет поменять и ориентацию большого пальца, потому что часто он неестественно прижимается внутри обуви:

Источник: Foot in High Heel Turntable

Анимация

Наряду с ростом и осанкой вам может также понадобиться поменять всю анимацию, потому что высокие каблуки могут существенно менять походку:

«Высокие каблуки стимулируют к более коротким и точным шагам, приводя к более плавному и управляемую движению ходьбы.»

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

Источник: Human Gait Analysis using 3D Motion Capture

И так возникает ещё одна дилемма для разработчиков игр!

Повторно использовать анимации обуви с плоской подошвой или создавать уникальные?
Повторно использовать анимации обуви с плоской подошвой или создавать уникальные?

Если вы решите снова использовать анимации с плоской подошвой, то пусть это вас не беспокоит! На то есть две причины:

  1. Другие разработчики поступают так же

  2. Даже на высоких каблуках возможна «обычная» походка

1. Другие разработчики поступают так же

В большинстве игр просто используются те же анимации. Единственный пример, который я смог найти со специализированными анимациями — это МОД для Skyrim! Здесь анимация ходьбы на высоких каблуках приводит к ходьбе крест-накрест и более выраженному движению бёдер:

Источник: Conditional High Heel Walk

И да, такую походку действительно можно наблюдать в реальной жизни:

Источник: Who says men not walk in heels

Но…

 2. «Обычная» походка на высоких каблуках

Такая походка с перекрещиванием ног возможна и в обуви на плоской подошве (слева), а на высоких каблуках возможно умеренное перекрещивание (в центре) и полное отсутствие перекрещивания (справа):

Источник: Shutterstock

То есть даже если персонаж надевает высокие каблуки, это не значит, что ноги автоматически будут перекрещиваться, а бёдра изгибаться. Но если вам это нужно, а в вашей игре есть «только» обувь с плоской подошвой, то такую походку всё равно можно реализовать. Возможно всё!

Кстати, даже у Никки нет уникальных анимаций на каждый вид обуви, а ведь эта игра полностью посвящена нарядам и стилю:

Источник: Infinity Nikki

Однако в игре есть различные анимации ожидания. Я насчитал четыре, зависящих от надетой обуви. На мой взгляд, это приличное число:

Источник: Infinity Nikki

Оптимизация

Что происходит с полигонами ноги, когда они закрыты обувью? Правильная обработка может предотвратить усечение; к тому это хорошая оптимизация.

Вот, чего мы стремимся избежать:

Источник: Daz To Unreal – Dealing with Heels

Некоторые игры прячут полигоны в обувь. В Saints Row ноги состоят из отдельных частей и при необходимости могут скрываться:

Источник: Saints Row

Ещё один интересный пример — это Watchdogs:

  • Слева: нога целиком — это один вызов отрисовки, и она присутствует полностью (пальцы на месте, хоть и скрыты в обуви)

  • Справа: то же место, только обувь с плоской подошвой. Теперь нога состоит из нескольких мешей (то есть вызовов отрисовки). Не знаю, почему так, ведь в обоих видах обуви виден одно и то же количество кожи. Странно... Но в этом случае пальцы убираются оптимизацией!

Источник: Watchdog Legions

Вот статическое сравнение того, как игра обрабатывает снижение количества полигонов:

  • Высокие каблуки: используется вся нога (с пальцами).

  • Плоская подошва: нога состоит из нескольких частей; пальцы удалены.

  • Ботинки: нога состоит из множества частей; голень удалена.

Источник: Watchdog Legions
Источник: Watchdog Legions

А что в Cyberpunk? Разработчики оставили ногу целиком, даже если ботинки высокие и закрывают большую её часть!

Источник: Cyberpunk 2077

Звук

Если обувь на шпильках, то шаги должны звучать иначе. То же самое справедливо, если персонаж не носит обувь (идёт босиком). Cyberpunk хорошо с этим справилась:

Источник: Cyberpunk 2077

Если вы играете в конкурентную игру, то высокие каблуки могут легче выдать позицию игрока, потому что обычно они громче. Это может стать проблемой при поиске баланса!

Дополнительная работа

Итак, вы уже встроили высокие каблуки в свою игру, всё работает идеально, и вам стало скучно. Вот вам ещё несколько заданий:

  • Реализуйте симуляцию мышц в реальном времени, чтобы имитировать это: «высокие каблуки также вызывают напряжение икроножных мышц и выделяют кривую ягодиц […]».

  • Если вы создаёте симуляцию жизни, в которой люди могут получать травмы, то можете реализовать долговременные побочные эффекты ношения высоких каблуков: разрушение суставов, укорачивание икроножных мышц, уплотнение нервной ткани и многое другое (видео). В Dwarf Fortress уже есть симуляция этого?

  • Реализовать утопание обуви в земле, зависящее от типа каблука и почвы:

Источник: Ultimate Heel Guards for Walking on Grass

  • Реализовать повышенный радиус и урон для бойцов на каблуках, но также добавить вероятность 5% того, что они поскользнутся и потребуется долгое время, чтобы восстановиться:

Источник: 12

Подведём итог

  • Поддержка разных типов обуви может менять рост и положение стоп персонажа (и, возможно, размеры объёма коллизий).

  • Если требуется точное взаимодействие с окружением или NPC, то придётся решать проблему смены роста (уникальные анимации, системы IK) или использовать обходные пути (укорачивание голеней, изогнутые ноги)

  • Разные типы обуви влияют также на осанку, походку и звук шагов (последнее может вызывать проблемы с балансом в соревновательных играх).

  • Во многих играх используется одна и та же анимация для всех типов обуви (но особые случаи, например, езда на мотоцикле или подкрадывание на высоких каблуках, могут потребовать дополнительного внимания).

  • Иногда закрытые обувью полигоны удаляются ради оптимизации (что также может предотвратить усечение). Обычно меши просто заменяются, потому что blend shapes слишком затратны.

  • Изящная походка (ноги крест-накрест, выраженные движения бёдер) возможна и в обуви с плоской подошвой, как и «обычная» походка возможна на высоких каблуках.

Урок истории

Высокие каблуки начали носить мужчины, а потом за ними последовали женщины — «это стало их попыткой маскулинизации одежды».

Источники

Статьи и исследования

Ссылки

Туториалы и обсуждения

Общие вопросы

Blender

Maya

Unity

Unreal

Unreal Content Example Map: IK Rig
Unreal Content Example Map: IK Rig

Примеры ношения обуви

Влияние на здоровье

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+112
Комментарии39

Публикации

Работа

Ближайшие события