Ragdoll-физика
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Animatsragdollphysics.jpg/360px-Animatsragdollphysics.jpg)
Физика Ragdoll (рэгдо́лл) — вид процедурной анимации, пришедший на замену статичной, пререндерной анимации. Название произошло от английского словосочетания rag doll (rag — тряпка, doll — кукла), в силу чего на русском языке этот вид анимации часто называют «тряпичной куклой».
Развитие
[править | править код]Два простейших соединения между двумя физическими телами, использование которых является достаточным для симуляции физики Ragdoll любой сложности.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/Ball-socket_joint.png/300px-Ball-socket_joint.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/54/Hinge_joint.png/300px-Hinge_joint.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/Tokamak_ragdoll_1.png/300px-Tokamak_ragdoll_1.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/RagDoll_demo_OGRE_Newton_1.png/300px-RagDoll_demo_OGRE_Newton_1.png)
Ранние трёхмерные компьютерные игры использовали заранее созданную анимацию для отображения смерти персонажей. Для изображения умирающего персонажа использовался набор пререндеренных анимаций, этот способ характеризуется низкими затратами центрального процессора. Когда мощности компьютеров возросли, стало возможным создание симуляций физики в реальном времени с некоторыми ограничениями. На данном этапе Ragdoll представлял собой набор твёрдых тел, каждое из которых соответствует кости в системе скелетной анимации графического движка, связанных вместе с помощью системы ограничений. Она определяет на какие углы каждое тело может отклоняться от соседнего, чтобы изображение оставалось реалистичным.
Термин «тряпичная кукла» появился из-за некорректной работы системы сочленений. В связи с ограничениями реализации некоторые суставы модели имели малую или отсутствующую жёсткость, что заставляло её падать подобно настоящей тряпичной кукле, нередко вызывая комический эффект несуразностью получившейся позы.
Первой игрой, использовавшей физику ragdoll, стал проект по мотивам вселенной Парка Юрского периода, игра Jurassic Park: Trespasser, вызвавшая диаметрально противоположные мнения, большинство из которых были отрицательными. Но хотя в Trespasser было множество программных ошибок, игра запомнилась как первопроходец в физике компьютерных игр. Сейчас же «тряпичная кукла» применяется не только для отображения смерти: существуют файтинги, в которых игрок управляет одной конечностью, а остальное тело двигается за ней (Rag Doll Kung Fu); или даже гоночные игры, где в случае серьёзного столкновения модель водителя вылетает через лобовое стекло и далее ведёт себя в соответствии с законами физики (серия FlatOut). Современные технологии процедурной анимации (например те, на которых основано подпрограммное обеспечение Euphoria от NaturalMotion), позволяют разрабатывать игры, заставляющие поверить в происходящее на экране благодаря имитации как мышц, так и нервной системы. Если сравнивать подобное с архаичной рукотворной анимацией, то можно сказать, что был совершён значительный шаг в развитии видеоигр.
Использование новейших технологий, основанных на ragdoll-анимации, можно увидеть в таких играх, как Grand Theft Auto IV от Rockstar Games, Indiana Jones and the Staff of Kings и Star Wars: The Force Unleashed от LucasArts.
Схожие технологии
[править | править код]Технология ragdoll работает, основываясь на принципах алгоритма Физерстоуна и пружинно-амортизаторных контактов.[1] Существует также альтернативное решение, использующее систему ограничений и идеализированные контакты.[2] В то время как ограниченно твёрдые тела достаточно близки к «тряпичной кукле», существуют и «псевдо-ragdoll» технологии.
- Интегрирование Верле
- Использовалось в игре Hitman: Codename 47 и стало распространено благодаря Томасу Якобсону (Thomas Jakobsen)[3]. В этой технике каждая кость персонажа моделируется как точка, соединённая с произвольным числом других точек через простые ограничения. Ограничения Верле намного проще и гораздо быстрее вычисляются, чем те, которые используются в системе полностью смоделированного твердого тела, что выражается в меньших затратах процессора.
- Инверсная кинематика
- Относится к технологиям пост-обработки (англ. post-processing) и использовалась в Halo: Combat Evolved. Используя заранее созданную анимацию смерти, игровой движок просчитывает финальное положение тела, которое удовлетворяло бы реалистичному отображению. В случае применения инверсной кинематики умирающие персонажи могут частично проходить сквозь геометрию мира, однако в итоге все кости модели будут лежать на допустимом месте.
- Смешанный Ragdoll
- Данная техника совмещает предварительно сделанную анимацию с системой ограничений. Таким образом, смерть персонажа отображается заранее продуманной, но физический движок проверяет допустимость каждого движения. Смешанный Ragdoll оказывается гораздо затратнее в плане вычислительных ресурсов, чем обычная «тряпичная кукла», но превосходит её на порядок повышенной реалистичностью отображения. Пример применения можно увидеть в игре Halo 2.
- Процедурная анимация NaturalMotion
Изначально подобные технологии использовались в создании фильмов, рекламных роликов и телепрограмм, но со временем нашли своё применение и в компьютерных играх. Ключевым элементом этой процедурной анимации является расширенная симуляция человеческого тела. Технология Euphoria при обработке анимации воспроизводит не только кости, но и мускулы и нервную систему, добавляя в сцену правильное взаимодействие с окружающим миром. За счёт этого, каждый новый показ сцены отличается от предыдущего, что повышает увлекательность повторного прохождения игры. Действие технологии NaturalMotion можно увидеть в GTA IV и Star Wars: The Force Unleashed
Преимущества и недостатки
[править | править код]Поскольку просчёт физических параметров в реальном времени отнимает значительную часть вычислительной мощности процессора, многие игры используют упрощённую структуру скелета «тряпичной куклы». В частности:
- Кости конечностей, таких как пальцы, обычно не анимируются;
- Вместо реальных допустимостей человеческого тела используются упрощённые суставы (к примеру, изображение человеческого колена ограничено сгибанием и разгибанием, хотя реальный коленный сустав в некоторой степени позволяет повороты);
- Упрощённая модель столкновений лучше определяет взаимодействие с другими твёрдыми телами, чем столкновения с геометрией игрового мира.
Основным же преимуществом ragdoll-анимации перед традиционной является гораздо более правильное взаимодействие с окружающей средой. Если попытаться создать анимацию на каждый возможный игровой случай, это займёт очень много времени, а благодаря физике «тряпичной куклы» игровой движок может генерировать предельно точные сцены прямо на лету.
См. также
[править | править код]Примечания
[править | править код]- ↑ U.S. Patent 6 067 096 «Method and system for generating realistic collisions in graphical simulations» (рус. «Методика и система создания реалистичных столкновений в области симуляции графики»)
- ↑ "Physically Based Modeling: Principles and Practice". Proc. SIGGRAPH '97. SIGGRAPH 97. Los Angeles: Association for Computing Machinery Special Interest Group on Graphics. 1997. Архивировано 28 мая 2011. Дата обращения: 2 апреля 2008.
{{cite conference}}
: Неизвестный параметр|coauthors=
игнорируется (|author=
предлагается) (справка) Источник . Дата обращения: 2 апреля 2008. Архивировано 28 мая 2011 года. - ↑ Продвинутая Физика Персонажа Архивировано 11 января 2010 года. (англ. Advanced Character Physics), доклад Томаса Якобсона на GDC’01