Кто сталкивался с программной реализацией скелетной анимации и инверсной кинематики?
Анимация персонажей
Сообщений 1 страница 10 из 10
Поделиться22009-05-12 08:03:44
Конкретная реализация зависит от движка. Причем, во всем. Если в общих чертах - в статьях у меня есть заметка. А конкретно... что за двиг?
Поделиться32009-05-12 20:08:15
Никакого конкретного движка нет. Есть идеи?
Поделиться42009-05-13 07:50:25
Скажем так, я четко знаю, как эта скелетная анимация реализована в DOOM 3, Quake 4, Prey. Могу предположить, как она реализована в Half-Life 2. Методы однозначно различаются, но могу описать. Надо?
Поделиться52009-05-15 00:30:07
Конешно! можешь даже кодом снабдить. Интересует ещё момент, как из модели обращаться к каждой кости в коде и, особенно, как создавать структуру FRAME?
Поделиться62009-05-15 09:02:43
С кодом проблема, ибо DOOM 3 изнутри я не видел, а разбирать его дизассемблером не вариант. К тому же в этом нет необходимости. Все модели в нем (md5.mesh) статичны. Есть модель, есть кости в ней (понятно, что к каждой кости привязаны какие-то участки модели). И в комплекте с этой моделью идет довольно большой набор анимации (md5.anim), в которых прописаны движения. Управление такой моделью осуществляется простым передвижением ее в пространстве и заданием файла анимации. Их может быть и очень много если охота, у меня есть плаг для макса, который загружает и сами модели и подгружает быбранную тобой анимацию к ним.
Что же до HL2, разобрать на запчасти как дум у меня не вышло. Но там есть моменты, когда четко видно принцип реализации. Принцип любой подобной костной структуры такой:
есть базовая кость (может, копчик, может позвоночник, как лучше), от нее по иерархическому принципу расходятся остальные. Реализацию такого принципа можно четко проглядеть в Cinema 4D, там это даже без самих костей прекрасно можно сделать. Кости эти неразделимы и между ними имеется "шарнир". Таким образом, при задании параметов на одну кость, остальные выставляются автоматически с учетом статуса "живой-мертвый", гравитации и позиции. В процессе игры явно видно, что если "мертвую" модель подвесить за ногу, все остальное свесится вниз, как примерно и должно быть в жизни. Просто не стоит забывать, что при такой реализации идет невероятный просчет гравитации, силы трения, инерции и еще черти чего. Либо это уже зашито в движке, либо прописывать самому. В первом случае - все легко и здорово, двиг сам присобачит гравитацию и инерцию. А вот во втором - замучаешься все просчитывать.
Если модель еще живая, то скорее всего там так же зашит набор движений (только не отдельным файлом, а внутри модели). Просто судя по всему, когда модель убивают, с нее снимается прямая анимация и она отдается на растерзание движку, а он уже сам считает, куда она упадет, как ляжет и так далее.
Так что видишь, про двиг я не спроста спрашивал.
Поделиться72009-05-15 23:15:33
Дум с собственным форматом ID .md5 не интересует. Он может и хорош, но это тоже самое как залезть в .mpq от Blizzard. Вот .х - другое дело. Про всё, что ты написал я давно знаю. Ладно, про структуру FRAME, что-нить слышал? И вообще, как программно обращаться к кости? Да забудь ты про сторонние движки. Я у тебя спрашиваю как эту часть анимации самому реализовать.
Поделиться82009-05-18 07:59:16
Дум с собственным форматом ID .md5 не интересует.
Я от тебя и не требую его использования, привел для объяснения самого принципа.
Ладно, про структуру FRAME, что-нить слышал?
Нет.
И вообще, как программно обращаться к кости?
по иерархическому принципу. в идеале это должна быть структура, внутрь которой лезешь через точку (типа как в дельфях, каждый пункт струкруры имеет свою толпу подпунктов). По крайней мере, я видел такую реализацию.
Да забудь ты про сторонние движки.
И чем тебе не угодили сторонние? Ты свой полтора года будешь писать и еще год отлаживать. Оно надо? Взял готовый и пишешь.
Я у тебя спрашиваю как эту часть анимации самому реализовать.
Принципы я тебе описал. Если нужно наглядно, в Cinema 4D загрузи библиотечную модель Zygote Man и посмотри, как там все расположено в панели справа сверху.
Поделиться92009-05-19 03:46:06
Принципы я тебе описал.
Спасибо, но я это уже знаю. Да и помимо Синема 4д, в Максе примеров насмотрелся. Ладно, сам копну.
Поделиться102009-05-19 07:53:01
Хорошо. Попробуй сам докопаться. Если получится - напиши тут, мне тоже будет интересно