Введение.
Приветствую всех Стопгеймовцев. Тему для блога я подобрал просто: сидел я и играл в Max Payne на своем смарте, как вдруг вспомнил про вторую часть этой игры, и про замечательную Ragdoll-физику в ней. Начал рыться в интернете в поисках информации, узнал немало, и поэтому я решил создать тему, где постараюсь тщательно рассказать об истории появления этой замечательной технологии, без которой не обходится ни одна игра современности.
История.
Для начала немного теории. Физика Ragdoll — вид процедурной анимации, пришедший на замену статичной, пререндерной анимации.
Здесь мы можем наблюдать раннюю модель использования Ragdoll. 1997 год
Ранние трёхмерные компьютерные игры использовали заранее созданную анимацию для отображения смерти персонажей. Конечно, никто не собирался делать тысячу анимаций смерти, да и слишком муторная это была работа. Поэтому нам сейчас кажется диким, когда в игре вместо Ragdoll'a заранее созданные анимации, но в то время никто не жаловался, ибо компьютерная мощь не была столь велика, чтобы в реальном времени создавать анимацию смерти. Когда же компьютеры стали мощнее, появились и первые задатки Ragdoll'a с некоторыми ограничениями.
Физику Ragdoll в народе называют «тряпичной куклой», такое название произошло из-за некорректной работы системы сочленений, в связи с ограничениями реализации некоторые суставы модели имели малую или отсутствующую жёсткость, что заставляло её падать подобно настоящей тряпичной кукле, нередко вызывая комический эффект несуразностью получившейся позы.
Первой игрой с физикой Ragdoll для меня стала Hitman: Codename 47, но там физика имела другую формулу, нежели привычный Ragdoll, о нем мы поговорим позже.
Истинным же первопроходцем в области этой технологии стала игра Jurassic Park: Trespasser. Многие критиковали ее из-за огромного количества програмных ошибок, но тем не менее, игра стала своеобразным хитом и была единственной игрой на то время, имевшая такой технологический прорыв.
Сама игра представляла из себя Survival-Horror с видом от первого лица, мы играли за девушку, нам приходилось выживать от полчища динозавров, которые вырвались наружу заполонив весь парк юрского периода. Правой рукой главной героини можно было делать различные действия, например, поднять небольшой булыжник и бросить его в коробку, в которой находятся ценные ресурсы. Вообще, в игре нужно было больше думать, нежели стрелять. Вы могли обшарить локацию в поисках ключ-карты к воротам, а если вы смекалистый тип — можете натаскать к забору мусор, сделать из нее ступеньки и спокойно перепрыгнуть через забор. Сейчас этим никого не удивишь, но на то время это действительно увлекало.
Помимо Ragdoll'a игра еще обладала рядом интересных качеств. Например: в игре не было интерфейса, целиться нужно было с помощью мушки, количество патронов героиня произносила вслух при выстреле, ну а количество здоровья можно было узнать по татуировке в виде сердца на груди героини.
На данный момент игра не забыта, есть даже специальный фанатский сайт, где можно найти кучу информации и модов на эту игру, создается даже ремейк на движке CryEngine 3.
Ну а мы перейдем к следующему разделу повествования.
Схожие технологии.
Технология ragdoll работает, основываясь на принципах алгоритма Физерстоуна и пружинно-амортизаторных контактов. Существует также альтернативное решение, использующее систему ограничений и идеализированные контакты. В то время, как ограниченно твёрдые тела достаточно близки к «тряпичной кукле», существуют и «псевдо-ragdoll» технологии.
1. Интегрирование Верле.
Использовалось в игре Hitman: Codename 47 и стало распространено благодаря Томасу Якобсону. В этой технике каждая кость персонажа моделируется как точка, соединённая с произвольным числом других точек через простые ограничения. Ограничения Верле намного проще и гораздо быстрее вычисляются, чем те, которые используются в системе полностью смоделированного твердого тела, что выражается в меньших затратах процессора.
2. Инверсная кинематика
Относится к технологиям пост-обработки (англ. post-processing) и использовалась в Halo: Combat Evolved. Используя заранее созданную анимацию смерти, игровой движок просчитывает финальное положение тела, которое удовлетворяло бы реалистичному отображению. В случае применения инверсной кинематики умирающие персонажи могут частично проходить сквозь геометрию мира, однако в итоге все кости модели будут лежать на допустимом месте.
Если Мастер Чиф выстрелит в труп, он шевельнется подобно Рэгдоллу.
3. Смешанный Ragdoll.
Данная техника совмещает предварительно сделанную анимацию с системой ограничений. Таким образом, смерть персонажа отображается заранее продуманной, но физический движок проверяет допустимость каждого движения. Смешанный Ragdoll оказывается гораздо затратнее в плане вычислительных ресурсов, чем обычная «тряпичная кукла», но превосходит её на порядок повышенной реалистичностью отображения. Пример применения можно увидеть в игре Halo 2.
4.Процедурная анимация (NaturalMotion)
Изначально подобные технологии использовались в создании фильмов, рекламных роликов и телепрограмм, но со временем нашли своё применение и в компьютерных играх. Ключевым элементом этой процедурной анимации является расширенная симуляция человеческого тела. Технология Euphoria при обработке анимации воспроизводит не только кости, но и мускулы и нервную систему, добавляя в сцену правильное взаимодействие с окружающим миром. За счёт этого, каждый новый показ сцены отличается от предыдущего, что повышает увлекательность повторного прохождения игры. Действие технологии NaturalMotion можно увидеть в GTA IV и Star Wars: The Force Unleashed.
В современном мире компьютеры уже достаточно сильны и с легкостью переваривают «Куколку», поэтому это даже менее затратно, чем писать заранее продуманные анимации, ведь технология просчитывает все в реальном времени. С каждым разом Ragdoll усовершенствуется, становясь более реалистичным. Использование новейших технологий, основанных на ragdoll-анимации, можно увидеть в таких играх, как Grand Theft Auto IV от Rockstar Games, Indiana Jones and the Staff of Kings и Star Wars: The Force Unleashed от LucasArts.
Немного научного.
Основой всех основ «Кукольной физики» являются простейшие варианты соединения.
Видов соединения в основном выделяют два, это Шариковое соединение:
и Шарнирное соединение:
Конечно, технологии Ragdoll'a везде разные, но эти два способа соединения по сути являются основой нормальной физики тел.
Значение в игровой индустрии.
Естественно, Ragdoll играет немаловажную роль в индустрии игр. Ее роль доходит аж до того, что создаются целые игры, которые полностью основываются на технологии «Куклы из тряпки». Например: Файтинг Rag Doll Kung Fu. Игрок волен махать своими руками и ногами в различные стороны, естественно, используя физику Ragdoll. На экране творится полная ахинея: игроки летят через весь экран, перелетают друг друга, выполняют сумасшедшие комбо ногами, буквально вдавливая друг друга в землю, выглядит и вправду зрелищно. Более простой аналог файтинга с использованием данной технологии игра под названием Ragdoll masters, управление здесь заметно проще, нежели в первом варианте: если в Rag Doll Kung Fu игрок отвечал за каждую конечность отдельно, то в Ragdoll masters — за все тело целиком, поэтому он беден на эффектные комбо, но это восполняется простотой управления, игрой на двух игроков(Один через мышь, другой — WASD), и скоростью игры, а она быстрая, очень быстрая.
Так же Ragdoll играл немаловажное значение в гоночных аркадах. На ум сразу приходит сумасшедшая гоночная серия FlatOut. По сути это была обычная аркада, с хорошей разрушаемостью автомобилей, но в игре также были мини-игры, некоторые из них были основаны как раз таки на Ragdoll. Суть таких мини-игр была проста: вам нужно на максимальной скорости врезаться в бордюр, в следствие чего уже мертвый водитель вылетает из лобового стекла, меняя траекторию тушки бедолаги его нужно забросить как можно выше.
Известны также такие игры как Stair Dismount и Truck Dismount, в которых Ragdoll-физика стала основой геймплея. В обеих играх смысл сводился к тому, чтоб причинить больше увечий нашей «тряпичной кукле»
Отдельного упоминания также заслуживает игра Toribash. Это по своей сути пошаговый файтинг на основе физики «Рэгдолл». Игра вышла в 2006 году и была создана всего лишь одним человеком — шведом Хампусом Сёдерстрёмом. Игра распространяется бесплатно и по состоянию на 2013 год продолжает развиваться и периодически обновляться. Также была выпущена версия для Wii, которая отличается от оригинала менее качественной графикой и измененными звуками. В 2012 году также была создана упрощённая 2D-версия игры под названием Minibash, распостраняющаяся на платформах iOS и Android.
Управление в игре осуществляется изменением положения (расслаблением, напряжением, сгибанием, разгибанием, вращением и наклонением) суставов отображаемой на экране куклы. Также можно сделать ладони «липкими» и схватиться за противника. Нажимая пробел, игрок делает ход и продвигает время на определенное количество фреймов (по умолчанию 10). Когда при правильных манипуляциях одна кукла бьёт другую, то, при достаточном нанесении ущерба, часть тела может оторваться или сломаться. Правильно управляя куклой, можно выполнять довольно сложные атаки. Есть также много различных модов, как официальных, так и созданных игроками. Эти моды могут изменить вид куклы, воздействовать на её движение, а также добавить новые объекты к окружению.
Ragdoll уже в вашем кармане.
Мощность смартфонов и планшетов растет все быстрее и быстрее. Буквально несколько лет назад никто и представить не мог, что ragdoll сможет работать и на смартфонах, об этом просто не думали. Сейчас даже средненький смартфон или планшет легко и без тормозов запускает игры с Ragdoll-физикой. Конечно, не все «карманные развлекухи» имеют такую поддержку, но все же есть некоторые разработчики игр, которые в особенностях своей игрушки гордо приписывают надпись: «Поддержка Ragdoll-физики!». Приведу вам несколько примеров игр с данной физикой.
Знаете ли вы...
что в игре Crysis отсутствует физика Ragdoll, хотя она поддерживается движком и даже включена в его официальную спецификацию. Очевидно, это связано с желанием разработчиков уменьшить возрастные рейтинги игры. Несмотря на то, что анимация «тряпичной куклы» в игре отключена, после выхода игры были выпущены модификации, которые её включают.
Заключение.
На этом я заканчиваю свой блог, возможно, я обновлю его, когда найду еще что-нибудь интересное по теме Ragdoll'a. Всем Стопгеймовцам желаю успехов во всех делах, и конечно: играйте только в хорошие игры!
Лучшие комментарии
Но я не смотрю игрозор.
Короче, эта «википедия» не тянет на косарь;)) Про такие вещи, интересно умеют рассказывать только те кто юзает эту технологию. Например, у WEta digital где-то видел видюшку на эту тему. И кстати, коль ведешь разговор про читсто динамические вещи, лучше смонтировать ролик, чем ваять стену текста. Ибо в 9000 раз нагляднее же будет.
И там просто ужасно весело играться силой с телами врагом :D
Можно схватить силой врага, протащить его рядом с перилами или другим врагом, так он хватается за эти перила или за другого врага :D В первом случае он будет изо всех сил держаться за перила и кричать, во втором будут сцепившись кричать уже двое врагов :D
В такие моменты чувствуешь себя настоящим ситхом =)
Смысл обеих игр сведен к простому: причинить как можно больше увечий «болванчику». В «лестницу» я играл мало, но вот на «грузовик» угробил очень много, уж очень весело проводить краш-тесты. Море веселья=) Всячески советую разыскать и поиграть!