Render.ru

механизм анимации в играх

#1
Доброго времени суток!

Знающие, обьясните плиз, механизм анимации в играх!
Нужен lowpoly персонаж (человекообразный) для цацки - вопорс каким
образом я могу передать информацию, о его движениях, как я понимаю это
не через кости потому как real-time rendering система не выдержит
расчетов с костями,
каким образом мне информацию от косей перевести в просто движеие
вёртексов(и какой формат), или может как то глобально умнее все это делается
 
#2
Select object, затем
Edit > Keys >Bake Simulation
и оболочка деформироватся будет не под воздействием скелета.
Удачи.
 
#3
Под конкретный движок - конкретный способ експортить...
Насколько я понял, ты сам толком не знаеш что тебе нужно...
Если движок понимает кости - експорти кости. Не понимает - експорти последовательности движения вершин. Короче, обсуди с програмером.
Как експортить - станет ясно. Мозможно прийдется писать свой плагин. Или юзать формат чей-нибуть...
Удачи.
 
#4
Спасибо, буду пробовать!

А какой формат из универсальных, в игрушках используемых позволяет сохранять анимацию (и какую именно: кости или смещение вершин)?
 
#6
А где его такой найти?
(того кто позволяет в X сохранять (и что оно за формат такой?)

Сорри за глюпый вопрос, но раньше с такой задачей никогда не сталкивался и потому совсем не знаю за что хвататься

Пограммер, с которым мы это затеяли DirectX сейчас расковыривает - жду результатов, ну и сам пытаюсь чего-ньть полезное наискать

обычно конечным продуктом была статическая модель, или отрендеренная картинка, вотъ...
 
#7
...насколько мне известно, делается так:

Метод первый - анимация вершин объекта "костями":

1) Mesh_file.ext
из нулевого кадра (типа BIND POSE) экспортится MESH объекта (кол-во и положения вершин в пространстве), кол-во используемых в нём костей (их имена, иерархическая последователность и трансформации) и весА вершин для каждой кости. По моему это называется матрица. ;-)) (я сам не программер)

2) Animation01 (02,03,04)_file.ext - по кол-ву анимаций
экспортится только анимация костей (т.е. ROTATE а иногда и TRANSLATE -зависит от движка) на каждый кадр (либо через несколько кадров - зависит от необходимой точности анимации, но также влияет на объём файла содержащего анимацию)

3)
движок берёт файл Mesh_file.ext и применяет к нему соответствующий файл с анимацией в данный момент игры (бег, прыжок, стрельба и т.д.)
То-есть, берётся вершина с индексом 01 её координатами в нулевом кадре, оприделяется к какой кости она принадлежит, если кость имеет трансформацию отличную от нулевого кадра(например в 5-ом кадре), то разница добавляется в положение вершины и она перемещается в соответствующее положение.Если несколько вершин имеют принадлежность к одной кости и одинаковый вес, то движок обсчитывает их перемещение массивом а не каждую по отдельности, что намного быстрее.

Метод второй - анимация вершин объекта путём интерполяции положения каждой вершины:

1)
Экспортится положение в пространстве для каждой вершины объекта, на каждом кадре анимации (либо через кадр или несколько - зависит от требуемой точности анимации) По существу имеем MESH-объект в каждом кадре анимации.

2) движок перемещает каждую вершину в положение, соответствующее текущему кадру анимации.

Общее: если проще, то в первом случае имеем один файл содержащий MESH и много-много маленьких файлов содержащих анимации управляющих костей. (соответственно, занимается сравнительно небольшое кол-во опертивной памяти) Скорость обсчёта данных достаточно быстрая так как можно использовать ресурсы видеокарты.

во втором случае имеем много толстых файлов содержащих MESH для каждого кадра анимации.(и много места в оперативной памяти)
Кроме того этот способ чисто "софтварный" - т.е. обсчитаваться всё будет главным процессором.

извини если что непонятно.

P.S. никаких плагинов для того или иного способа у меня нет, так как это полностью индивидуальная вещь и пишется для каждого конкретного движка своя.

удачи.
 
#8
Спасибо!

первый вариант, как по мне, выглядит много интереснее(оптимальней) - буду общаться с порограммистом - ожидаю его мнение всетки им все это движком реализовывать!
 
Сверху