Доброго времени суток! Знающие, обьясните плиз, механизм анимации в играх! Нужен lowpoly персонаж (человекообразный) для цацки - вопорс каким образом я могу передать информацию, о его движениях, как я понимаю это не через кости потому как real-time rendering система не выдержит расчетов с костями, каким образом мне информацию от косей перевести в просто движеие вёртексов(и какой формат), или может как то глобально умнее все это делается
Select object, затем Edit > Keys >Bake Simulation и оболочка деформироватся будет не под воздействием скелета. Удачи.
Под конкретный движок - конкретный способ експортить... Насколько я понял, ты сам толком не знаеш что тебе нужно... Если движок понимает кости - експорти кости. Не понимает - експорти последовательности движения вершин. Короче, обсуди с програмером. Как експортить - станет ясно. Мозможно прийдется писать свой плагин. Или юзать формат чей-нибуть... Удачи.
Спасибо, буду пробовать! А какой формат из универсальных, в игрушках используемых позволяет сохранять анимацию (и какую именно: кости или смещение вершин)?
А где его такой найти? (того кто позволяет в X сохранять (и что оно за формат такой?) Сорри за глюпый вопрос, но раньше с такой задачей никогда не сталкивался и потому совсем не знаю за что хвататься Пограммер, с которым мы это затеяли DirectX сейчас расковыривает - жду результатов, ну и сам пытаюсь чего-ньть полезное наискать обычно конечным продуктом была статическая модель, или отрендеренная картинка, вотъ...
...насколько мне известно, делается так: Метод первый - анимация вершин объекта "костями": 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. никаких плагинов для того или иного способа у меня нет, так как это полностью индивидуальная вещь и пишется для каждого конкретного движка своя. удачи.
Спасибо! первый вариант, как по мне, выглядит много интереснее(оптимальней) - буду общаться с порограммистом - ожидаю его мнение всетки им все это движком реализовывать!