Winding Trail project

 

Экспорт моделей с анимацией из 3DStudio

Июнь 18, 2006, 22:33
Автор:
Alena
Категория: Программист

В качестве формата хранения моделей мы используем .x файлы. Это самое простое и дешевое решение, поддержка этого формата есть непосредственно в DirectX. Для экспорта моделей из 3DStudio в .x формат мы используем Панду.
Обычное решение для более-менее крупных студий - использовать свой формат и писать под него свой экспортер моделей, но для нас это неподъемно.

При работе с моделями нам встретились определенные грабли, которые я перечислю.

Во-первых, в 3DS возможна только одна цепочка анимации. Нам же для моделей нужно несколько. Для этого все анимации загоняются последовательно в одну, а потом уже при экспорте бьются экспортером (Пандой в нашем случае) на несколько. Например: кадры 1-10 - первая анимация, кадры 11-20 - вторая, ну и так далее. До недавнего времени Джим каждый раз при каждом экспорте эти цепочки перевбивал. Не очень творческое занятие. В последнюю версию Панды есть попытка встроить конфиги, специально чтобы это информацию сохранять. Мы с Джимом долгое время плясали с бубном, чтобы заставить их работать из интерфейса, не вышло. Похоже, это просто там не доделано. Но конфиги можно подпихнуть не из интерфейса, а руками файл поправить. Не очень удобно, но в итоге можно хотя бы не перевбивать кадры анимаций и их названия каждый раз при сохранении.

Во-вторых, ко мне приходят анимации, стартующие не с 0 кадра. Выглядит это так: некоторое время чего-то ждем, потом анимация отрабатывает. Чтобы этого эффекта избежать, я уже программно скидываю анимации на нулевой кадр.

Я много рылась в Интернете, чтобы понять как с такими моделями работают люди. В основном все используют Панду. А с цепочками анимаций все мучаются точно так же как и мы.


Комментариев: 5
Оставить комментарий
Автор: Jim (06.19.06, Июнь 19, 2006, 21:55)

Во-первых, в 3DS возможна только одна цепочка анимации.

Тут я немного уточню. В МАКС-е одна анимационная линейка, а не цепочка. Естественно, любой объект может обладать своими собственными motion-свойствами. С его, максовой, точки зрения, все это типа “цепочки”. Но, к сожалению, в .x это счастье никаким боком нам не подходит т.к. нам нужна не одна модель с комплексной анимацией, а как бы несколько _версий_ одной и той же модели, с различными и никак не зависящими друг от друга анимациями, для каждой из которых другой “линейки” как бы не должно существовать в принципе.

То, что не не мы одни с этим мумукаемся, утешает слабо :-)

Автор: CyberZX (06.26.06, Июнь 26, 2006, 0:50)

Как-то всё усложняете вы. Куда проще каждую анимацию сохранить в отдельном .max файле и уже от туда экспортировать. Гимора тоже немало, но меньше чем с разбиением анимаций на цепочки. Особенно, если экспортер не свой, а чужой.

Автор: Alena (06.26.06, Июнь 26, 2006, 9:57)

Куда проще каждую анимацию сохранить в отдельном .max файле и уже от туда экспортировать.

Очень спорно. Вот у нашего шлагбаума 10 анимаций. Это получается 10 файлов. А что если Джим решит этот шлагбаум перерисовать слегка? Перерисовывать 10 раз? Если вести работу с одним файлом, а потом его бить на 10 .max файлов при сохранении (не знаю, можно ли так), то получается то же самое, что у нас есть сейчас.
С 10 отдельными файлами мне придет 10 .x файлов. То есть не один набор вершин с десятью наборами матриц, по набору на анимацию, а 10 наборов вершин, каждый с матрицами трансформации. Это в 10 раз больше места на диске, в 10 раз больше памяти, да и работать с этим неудобно. Можно из кажого файла выдрать только анимации и слить в один… Но тут опять же получается не проще, чем есть сейчас.

Автор: CyberZX (06.27.06, Июнь 27, 2006, 17:18)

Если анимация скелетная, то в анимационных файлах достаточно хранить движение костей, геометрия там может присутствовать, но лишь для помощи художнику.
Основная рабочая модель лежит в отдельном неанимированном файле, ее можно дорабатывать и переэкспортировать. При этом не надо заново экспортировать всю анимацию. По-моему так удобнее.
Хотя тоже вариант не идеальный. Идеального мне придумать так и не удалось, хотя уже пару лет над этим думаю :)
Тут всё упирается в невозможность 3дмакса работать с несколькими анимационными дорожками.

Pingback Winding Trail project (02.16.07, Февраль 16, 2007, 21:33)

[…] По ходу дела возникла некоторая проблема с этими тенями из-за того, что у нас используются .x меши. И работаю я с ними стандартными способами, отрисовываю через DrawSubset. Так вот, этот DrawSubset выставляет свой вертексный шейдер, просто формат вершин определяет. Что отменяет мой вертексный шейдер, поставленный перед отрисовкой. Поэтому мне пришлось переписать отрисовку: вытянуть массивы вершин и индексов из меша и рисовать их самой. […]



Оставить комментарий

(обязательно)

(обязательно)


Переводы строк автоматические, e-mail никогда не показывается, разрешен HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>