- PVSM.RU - https://www.pvsm.ru -

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

Введение

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

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

Источники: 1 [1]2 [2]3 [3]4 [4]5 [5]

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

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

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

Проблема

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

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

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

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

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

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

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

Источник: Romero Mixamo [8]

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

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

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

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

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

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

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

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

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

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

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

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

Источник: Infinity Nikki [9]

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

Источник: Infinity Nikki [9]

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

Источник: Infinity Nikki [9]

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

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

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

Источник: Saints Row [10]

Дополнение:

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

Source: FFXIV

Источник: FFXIV [11]
Source: FFXIV

Источник: FFXIV [11]

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

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

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 [14]

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

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

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

Источник: CGarchitect

Источник: CGarchitect [15]

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

Источник: Infinity Nikki [9]

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

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

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

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

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

Источник: Infinity Nikki [9]

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

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

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

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

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

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

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

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

  1. Прятать

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

  3. Изгибать

 1. Прятать

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

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

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

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

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

Источник: Sims 4 [18]

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

Источник: Sims 4 [18]

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

Источник: Watchdog Legions [19]

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

Источник: Cyberpunk 2077 [20]

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

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

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

Source: Reddit Discussion

Source: Reddit Discussion [21]

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

Source: Platinum Games Blog

Source: Platinum Games Blog [22]

 3. Изгибать

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

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

Осанка

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

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

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

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

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

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

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

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

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

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

Источник: Romero Mixamo [8]

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

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

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

Источник: Cyberpunk 2077 [20]

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

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

Анимация

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Но…

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

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

Источник: Shutterstock [29]

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

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

Источник: Infinity Nikki [9]

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

Источник: Infinity Nikki [9]

Оптимизация

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

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

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

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

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

Источник: Saints Row [10]

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

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

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

Источник: Watchdog Legions [19]

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

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

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

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

Источник: Watchdog Legions

Источник: Watchdog Legions [19]

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

Источник: Cyberpunk 2077 [20]

Звук

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

Источник: Cyberpunk 2077 [20]

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

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

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

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

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

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

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

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

Источник: 1 [33]2 [34]

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

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

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

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

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

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

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

Урок истории

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

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

Источники

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

Ссылки

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

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

Blender

Maya

Unity

Unreal

Unreal Content Example Map: IK Rig

Unreal Content Example Map: IK Rig

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

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

Автор: PatientZero

Источник [70]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/animatsiya/419125

Ссылки в тексте:

[1] 1: https://www.youtube.com/shorts/-ymWhRhoQ2o

[2] 2: https://www.tiktok.com/@blumineck/video/7282440261223992609

[3] 3: https://www.youtube.com/shorts/2DriKlNOJcc

[4] 4: https://www.youtube.com/shorts/L-rvdMHA9ec

[5] 5: https://www.youtube.com/shorts/79n-62kQttA

[6] 1: https://youtu.be/4s31tU19dT8

[7] 2: https://youtu.be/LK44InP2Tdo

[8] Romero из Mixamo: https://www.mixamo.com/#/?page=1&type=Character

[9] Infinity Nikki: https://store.epicgames.com/fr/p/infinity-nikki-71fc64

[10] Saints Row: https://store.steampowered.com/app/742420/Saints_Row/

[11] FFXIV: https://ffxiv.eorzeacollection.com/gearset/no.2-type-b

[12] Movie Star Planet 2: https://en.wikipedia.org/wiki/MovieStarPlanet

[13] Noe: https://bsky.app/profile/petignome.bsky.social/post/3lknbdjwsi22k

[14] GTA Online: https://www.rockstargames.com/gta-online

[15] CGarchitect: https://forums.cgarchitect.com/topic/72061-axyz-women-in-heels-and-mocap/

[16] Hand Holding Mechanics: https://youtu.be/x8I2Xi8bRL8

[17] iHeartGameDev | Uncharted: https://youtu.be/dlQqiJYdyYM

[18] Sims 4: https://store.steampowered.com/app/1222670/The_Sims_4/

[19] Watchdog Legions: https://store.steampowered.com/app/2239550/Watch_Dogs_Legion/

[20] Cyberpunk 2077: https://www.cyberpunk.net/

[21] Reddit Discussion: https://www.reddit.com/r/ffxiv/comments/v52krn/fantasiad_and_was_checking_out_new_poses_when_i/

[22] Platinum Games Blog: https://www.platinumgames.com/official-blog/article/8997

[23] 3D Sex Villa 2: https://www.thrixxx.com/games/

[24] паре : https://www.oceansidepodiatrist.com/blog/item/1212-the-impact-of-high-heels-on-walking

[25] статей: https://www.learningmethods.com/downloads/pdf/rossi--why.shoes.make.normal.gait.impossible.pdf

[26] Foot in High Heel Turntable: https://youtu.be/dq9oyn9OlgA

[27] статье: http://dyros.snu.ac.kr/project/human-gait-analysis-using-3d-motion-capture/

[28] Conditional High Heel Walk: https://www.nexusmods.com/skyrimspecialedition/mods/75174

[29] Shutterstock: https://www.shutterstock.com/video/search/models/1058618608

[30] Daz To Unreal – Dealing with Heels: https://davidvodhanel.com/daz-to-unreal-dealing-with-heels/

[31] видео: https://youtu.be/tyeIaTJ0IEE

[32] Ultimate Heel Guards for Walking on Grass: https://youtu.be/dHlMLmL8mco

[33] 1: https://youtube.com/shorts/aj81fNQFYH0?si=SullodiHCRVwOput

[34] 2: https://youtu.be/C-cqUj99zMI

[35] «это стало их попыткой маскулинизации одежды»: https://www.bbc.com/news/magazine-21151350

[36] https://youtu.be/xlnmvALaMZg: https://youtu.be/xlnmvALaMZg

[37] https://pmc.ncbi.nlm.nih.gov/articles/PMC6047962/: https://pmc.ncbi.nlm.nih.gov/articles/PMC6047962/

[38] http://dyros.snu.ac.kr/project/human-gait-analysis-using-3d-motion-capture/?ckattempt=1: http://dyros.snu.ac.kr/project/human-gait-analysis-using-3d-motion-capture/?ckattempt=1

[39] https://illumin.usc.edu/walking-in-high-heels-the-physics-behind-the-physique/: https://illumin.usc.edu/walking-in-high-heels-the-physics-behind-the-physique/

[40] https://pmc.ncbi.nlm.nih.gov/articles/PMC10291901/: https://pmc.ncbi.nlm.nih.gov/articles/PMC10291901/

[41] https://www.shutterstock.com/video/search/woman-walk-side-view-heels: https://www.shutterstock.com/video/search/woman-walk-side-view-heels

[42] https://www.shutterstock.com/video/search/walk-side-view: https://www.shutterstock.com/video/search/walk-side-view

[43] https://www.artstation.com/artwork/Vy3dXn: https://www.artstation.com/artwork/Vy3dXn

[44] https://www.youtube.com/@SKAmotion/videos: https://www.youtube.com/@SKAmotion/videos

[45] https://youtu.be/RJWVI_6cgJU: https://youtu.be/RJWVI_6cgJU

[46] how do devs implement changeable footwear for female characters?: https://www.reddit.com/r/gamedev/comments/1efzail/how_do_devs_implement_changeable_footwear_for/

[47] this is not how high heels work: https://www.reddit.com/r/cyberpunkgame/comments/sfelrs/this_is_not_how_high_heels_work/

[48] Conant Exiles High Heel Modder Guide: https://docs.google.com/document/d/1Z8-J7LGmXsN6epwl5MrsRo6rPvmwtuic3eyYyyMw9TI

[49] https://www.youtube.com/watch?v=bV2jn57oJ4c: https://www.youtube.com/watch?v=bV2jn57oJ4c

[50] https://www.youtube.com/watch?v=voYM3yyeZP4: https://www.youtube.com/watch?v=voYM3yyeZP4

[51] https://www.youtube.com/@TheRoyalSkies/videos: https://www.youtube.com/@TheRoyalSkies/videos

[52] https://youtu.be/F25_c-Q0_Qw: https://youtu.be/F25_c-Q0_Qw

[53] https://www.artstation.com/blogs/dcbittorf/2ZYN/rigging-a-foot-roll-in-maya-using-a-reverse-foot: https://www.artstation.com/blogs/dcbittorf/2ZYN/rigging-a-foot-roll-in-maya-using-a-reverse-foot

[54] https://www.youtube.com/shorts/tLZ0cRhAjeM: https://www.youtube.com/shorts/tLZ0cRhAjeM

[55] https://youtu.be/RdSfLkFHTWM: https://youtu.be/RdSfLkFHTWM

[56] https://youtu.be/cg_vXWPaG8A: https://youtu.be/cg_vXWPaG8A

[57] https://discussions.unity.com/t/how-to-handle-high-heel-footwear-in-unity-characters-rigs/59685: https://discussions.unity.com/t/how-to-handle-high-heel-footwear-in-unity-characters-rigs/59685

[58] https://youtu.be/a58-dactGuU: https://youtu.be/a58-dactGuU

[59] https://youtu.be/Yho2BOrBnQs: https://youtu.be/Yho2BOrBnQs

[60] https://forums.unrealengine.com/t/high-heels-and-flat-feet-help/147715/5: https://forums.unrealengine.com/t/high-heels-and-flat-feet-help/147715/5

[61] https://forums.unrealengine.com/t/how-to-adapt-high-heel-shoe-in-metahuman/650189: https://forums.unrealengine.com/t/how-to-adapt-high-heel-shoe-in-metahuman/650189

[62] https://forums.unrealengine.com/t/attaching-high-heels-to-metahuman-resolved/1190673/5: https://forums.unrealengine.com/t/attaching-high-heels-to-metahuman-resolved/1190673/5

[63] https://youtu.be/3_b60jkuDMY: https://youtu.be/3_b60jkuDMY

[64] https://youtu.be/xsvvA042l98: https://youtu.be/xsvvA042l98

[65] https://dev.epicgames.com/documentation/en-us/unreal-engine/ik-rig-in-unreal-engine: https://dev.epicgames.com/documentation/en-us/unreal-engine/ik-rig-in-unreal-engine

[66] https://youtube.com/shorts/aj81fNQFYH0?si=aMkDqtuLvbueOWib: https://youtube.com/shorts/aj81fNQFYH0?si=aMkDqtuLvbueOWib

[67] https://www.youtube.com/shorts/1pHgqF5M-74: https://www.youtube.com/shorts/1pHgqF5M-74

[68] What Can Happen to Your Body If You Wear High Heels Every Day: https://brightside.me/articles/what-can-happen-to-your-body-if-you-wear-high-heels-every-day-801163/

[69] High Heeled Shoes: A Real Pain: https://www.functionalps.com/blog/2012/12/20/high-heeled-shoes-a-real-pain/

[70] Источник: https://habr.com/ru/articles/904456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=904456