Друзья! У меня в приложении рэгдолл устроен так:
на этапе инициализации создаются кинематические BBoxы а также
джоинты между ними. Затем, пока персонаж не умер, боксы двигаются как
кинематические актёры. Лишь после смерти персонажа они становятся
динамическими.
Трабла в том, что я не знаю, как ведут себя джоинты,
прикрепленные к кинематическим актёрам. После смерти происходит
фантасмагория - персонаж превращается в коловращение конечностей
вот я и думаю... что то тут не так...
Не думаю, что чем то помогу, однако..
по адресу \NVIDIA PhysX SDK\v2.8.1\TrainingPrograms\Docs\Chapter4_PhysicsEffects\
находится мануал Lesson403_Ragdolls.doc
когда я писал что-то под физХ - я просто брал их код, заворачивал в свой класс и юзал...)
>>коловращение конечностей
в смысле констрейнов нет?
юзай конусные констрейны.
Использовал тот же метод в нескольких FPS проектах - результат вполне достойный.
В итоге он прямо пропорционален времени потраченному на отладку и настройку.
>>После смерти происходит
>>фантасмагория - персонаж превращается в коловращение конечностей
>>вот я и думаю... что то тут не так...
Почти наверняка, что-то не так с настройками рагдолла, точнее с ограничениями в ваших шарнирах.
В момент когда он включается ошибки слишком велики, т.е. очевидно, что лимиты слишком жесткие.
Попробуйте "ослабить" лимиты для начала.
Mephisto std
Отрисуй оси и позиции джойнтов - по ним можно будет судить че как.
+ я на ОДЕ сделал рэгдолл, давно правда, и там, для создания джойнтов приходилось кости ставить в дефолтное положение ( руки в стороны, ноги вниз ), и потом, когда уже джойнты стояли, можно было перепозиционировать кости, - тогда все ограничения работали правильно.
mocia
ну судя по всему у него так все и есть. он инициализирует рагдол сначала какой то дефолтной позой, затем ставит телам флаг kinematic и двигает анимацией.
насчет отрисовки это правильно, тем более что на PhysX это ничего не стоит.
Mephisto std
Кстати проверь чем именно у тебя инициализируется рагдолл. Возможно, что другой позой, не той в которой настроены лимиты.
Т.е. допустим настроено для дефолтной позы (перс стоит, руки в стороны, ноги на ширине плеч :)). А создаешь ты рагдол когда перс стоит в уровне совсем с другой анимацией (стоит, но руки согнуты и держит оружие ).
Если они не совпадают - лимиты работать не будут, точнее будут, но не так как хотелось бы.
в общем, путём проб и ошибок, удалось сделать следующее:
1. джоинты создаются на этапе инициализации,
2. после смерти перса они "обновляются" - правда только позиции, я пока не очень понял, как констрейны работают и иже с ними
Но! теперь следующая трабла возникла, откуда глубоко теоретический вопрос -
А как вообще задать рэгдолл-модель для перса? боксы и джоинты (параметры, какие кости крепят)?
Я вообще все боксы и джоинты создаю в максе, экспорчу вместе с моделькой, но, думаю, это не очень умный подход
У кого какие идеи?
почему не умный? нормальный подход, если нету уже готовой тулзы для просмотра/настройки моделей, костей, анимаций
у нас была тулза, мы настраивали в ней
Ну что, никто не нает статеек по рэгдоллу в physx или примеров по сабжу?
Mephisto std
Есть туториал, правда не конкретно по PhysX SDK, а по врапперу PhysX под Blitz3D, но может какие-нить идеи подскажет
клик
Тема в архиве.