Суббота, 18.05.2024, 18:42
GAMESTROYГлавная

Регистрация

Вход
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Программирование [47]
Графика [2]
Индустрия [0]
Дизайн [0]
Разное [7]
Наш опрос
Игры какого жанра вы предпочитаете делать?
Всего ответов: 68
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Графика

Rag doll

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

Раньше (где-то лет десять тому назад) подобное казалось невозможным (естественно не хватало вычислительной мощности тогдашних персональных компьютеров) и все мы могли лишь мечтать об этом. В последние пять лет ситуация кардинально изменилась (во многом благодаря таким гигантам индустрии как AMD и Intel): теперь процессоры обычных настольных ПК очень неплохо справляются с такой задачей, как расчет динамики твёрдых тел.

В этой статье я планирую рассказать о том, как можно делать rag doll на основе современных физических движков. Напомню, что физический движок может быть как вашим (есть некоторые требования к нему), так и сторонним (Newton, ODE, Tokamak, Meqon, Havok, NovodeX и т.д.). В статье я попытаюсь рассказать о том, как сделать это, не привязываясь к определённому физическому движку. В конце статьи будет дан пример того, как можно сделать это на физическом движке Tokamak.

Если вы собираетесь использовать физический движок собственного производства, то он должен иметь следующие характеристики:
- иметь поддержку симуляции динамики твёрдых тел;
- иметь хорошие возможности по определению столкновений между геометриями твёрдых тел, а также просчитывать ответную реакцию тел на столкновения между собой (collision response);
- поддерживать такие ограничители движения (constraints) как шарнирное соединение (ball-socket joint) и петельное соединение (hinge joint);

В том случае если вы используете один из таких физических движков, как Newton, ODE, Tokamak, Meqon, havok или NovodeX, то проблем с ними возникнуть не должно — автор даёт 100% гарантию, что в этих физических движках есть всё необходимое для реализации rag doll’ов.

Системные требования: единственное что необходимо, так это то чтобы центральный процессор вашего персонального компьютера был не ниже по производительности, чем допустим процессор Intel Pentium III, с тактовой частотой примерно 1000-1200 мегагерц.

Что же такое constraint’ы? Загляните в любой англо-русский словарь — constraint переводится как ограничение. Так на самом деле и есть: constraint’ы ограничивают движение тел в пространстве и взаимно между собой, исходя из определённых критериев. Типов constraint’ов имеется великое множество. Я не буду перечислять все, а скажу лишь то, что нам понадобятся всего два их типа: ball-socket joint и hinge joint.

Ball-socket joint


По рисунку наглядно видно, что ball-socket joint есть не что иное, как шарнирное соединение двух тел. Особенность ball-socket joint’а состоит в том, что он ограничивает перемещение тел взаимно между собой, а также ограничивает то, как повернуты тела (вдоль всех трёх осей) относительно друг друга.

Hinge joint


По рисунку мы наглядно видим, что hinge joint есть не что иное, как петельное соединение двух тел. Hinge joint очень похож на ball-socket joint, но разница состоит лишь в том, что теперь тела могут поворачиваться относительно друг друга вдоль только одной из осей.

Rag doll

Словосочетание rag doll c английского переводится как тряпичная кукла, что очень точно соответствует истине.

Теперь я хочу рассказать, о том, как делается собственно сам rag doll. На самом деле rag doll есть не что иное, как обычная комбинация твёрдых тел различных форм (и конфигураций) и двух видов их соединений между собой.
Это очень легко объяснить на примере. Допустим туловище человека, у нас будет неким convex’ом (выпуклое тело), к нему в разных его точках мы будем присоединять другие элементы тела (твёрдые тела). В свою очередь к этим другим элементам твёрдого тела мы будем подсоединять уже следующие по иерархии части тела.


Пример: к туловищу присоединяем предплечье руки, а к предплечью руки присоединяем кисть руки, и так далее.
Какими типами joint’ов соединять, спросят многие. Я отвечу так: каждый решает сам, основываясь на личных предпочтениях о том, что выглядит реалистичней.
Вообще тема rag doll’ов очень тесно связана с темой скелетной анимации (в процессе убийства монстра, каждая кость его скелета конвертируется в подобную кость rag doll’а), поэтому для более глубокого понимания темы советую прочитать статьи по данной теме на этом сайте.


Категория: Графика | Добавил: DiMENTOR (18.12.2009)
Просмотров: 730 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Пожертвование
Дорогие посетители , внесите пожертвование в развитие нашего проекта.
Благодарим Вас
WMZ
Реклама
Партнерская программа 1PS.RU Онлайн казино Nirvana
Наш возраст
DiMENTOR Studio © 2024Бесплатный конструктор сайтов - uCoz