Развесовка на моделях (тестирование)

 

ElbeR

Wunderknabe
23.04.2009
863
15
0
Награды
0
30
Siedlce,Poland
2 Дядя Миша:
То что местами у xDShot'а в модельке луки выламывает - это нормально, т.к. анимации такие, чересчур загибают, да и это от топологии модели зависит. Я же текущей реализацией доволен. Жду интеграции в движок.
 
 

ncuxonaT

Well-known member
05.05.2013
1 153
39
48
Награды
0
2 Дядя Миша: всё ясно.

так перекручивает?
upd. в 3дмаксе то же самое
 

Вложения

  • 123.1 КБ Просмотров: 235
Последнее редактирование:
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
2 ncuxonaT: там каждую руку по очереди выламывает. В принципе чему я удивляюсь - smd хранит анимацию в углах эйлера, то есть она изначально на вход уже ломаная поступает. Вероятно есть и более другие форматы, где кей-фреймы в кватернионы записаны и там этого безобразия нет. Я как-то совсем упустил из виду это обстоятельство.

Я же текущей реализацией доволен.
Для того, чтоб вы понимали - развесовка это не конечная цель, по крайней мере для меня. Я вам говорил, что после обновления BSP-формата займусь обновлением моделей? Говорил! По давней своей традиции, я сперва делаю самое сложное, в данном случае развесовку, а потом уже всё остальное, попроще. Щас создам новую тему будем обсуждать там, чего бы добавить в новый формат моделей. Только надо понимать, что в дальнейшем я обновлять формат уже не буду, поэтому надо сейчас всё предусмотреть.

[ADDED=Дядя Миша]1494691112[/ADDED]
Собсно тема http://cs-mapping.com.ua/forum/showthread.php?p=928879#post928879

[ADDED=Дядя Миша]1494691272[/ADDED]
По багам развесовки можно писать сюда, по добавлению новых фичей - уже в новую тему.
 
Последнее редактирование:
 

nemyax

тндайпц тра
30.07.2015
641
24
18
Награды
0
Дядя Миша сказал(а):
я веса сохраняю в байт, а не флоат, в целях экономии
Ну тоись если развесовать так, что у тебя градации влияния будут 0.75, 0.5, 0.25, 0.125 и т. д. (нормализованные, ессна), то потерь точности не возникнет.
 
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
Сейчас вот ради интереса немножко похерил формат и переделал на флоаты - визуальных отличий нет.

[ADDED=Дядя Миша]1494712471[/ADDED]
Первый пост обновился, первая бета-версия компилятора и вьювера.

Вот если сравнивать гнущийся цилиндр с 3дмаксом, то видна граница вершин с развесовкой и без. В 3дмаксе такой границы нет. Это из-за недостаточной точности весов?
Оригинальный код выбрасывал веса, если их вклад был менее 0.05 (от еденицы). Подкрутил этот параметр, теперь твой цилиндр выглядит точно как в максе. Моделька в первом посте приложена.
Тестируйте. В особенности обычные модельки, на предмет всяких аттачментов, боне-контроллеров, правильности установки bbox-анимации, наконец может так случится, что модельки монстров будут ходить на месте с этим компилятором.
Тестируйте и сообщайте об ошибках.
 
Последнее редактирование:
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
Так товарищи. Я тут прикрутил процедурные косточки, мне Элбер про них долго объяснял, но я всё равно пока еще не совсем въехал. Вроде как эти процедурные кости задают лимиты для некоторых суставов, что в свою очередь исключает выворачивание рук и ног под неестественным углом. То есть аниматору не надо за этим следить, а достаточно просто навесить лимиты для скелета. И анимировать не опасаясь перекручивания. Частично эту мысль подтверждает вот этот скриншот:

Как видите в максе империалистическая гидра перекручена, а в hl2 - нет.
Если у вас есть исходники гидры с описанием процедурных костей, скиньте мне пожалуйста, надо потестировать.
 
 

nemyax

тндайпц тра
30.07.2015
641
24
18
Награды
0
2 ElbeR:
Чё за "процедурные кости"? Pole target-ы штоле?
 
 

xDShot

Well-known member
20.12.2010
1 826
44
48
Награды
0
Санкт-Петербург
Процедурки в сорсе - это такие кости, которые автоматически принимают позу и повороты в зависимости от поворотов костей-контроллеров.

Например, запястье рук (wrist) - это процедурка. Ладонь (hand) - это контроллер.

[ADDED=xDShot]1495195244[/ADDED]
Гидра - вообще такое нечто было в бете, которое анимировалось кодингом.
 
Последнее редактирование:
 

ncuxonaT

Well-known member
05.05.2013
1 153
39
48
Награды
0
Чо-т это напоминает ИК - родительская кость меняет положение в зависимости от положения дочерней кости.
А вообще это фигня ненужная, потому что поведение непредсказуемо. Должно быть соответствие тому, что аниматор видит в редакторе.
 
 

nemyax

тндайпц тра
30.07.2015
641
24
18
Награды
0
Ага, понятно. В триде-софте то же достигается констрейнтами и драйверами. Другое дело, что если ты настроил констрейнты в триде-редакторе, заанимировал и экспортировал, то анимация у тебя будет правильная и без процедурок.
 
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
А вообще это фигня ненужная, потому что поведение непредсказуемо
Тем не менее в сорсе она успешно используется с 2002-го года почти в каждой модели. Ну если эта штука спасает от перекрутов анимации - пусть будет, пригодится. Там более што она легко имплементируется и не требует каких-то серъезных доработок. А с инверсной кинематикой там мрак полнейшый. Чтобы она заработала надо указать кучу всяких параметров и переколбасить код монстров, как я понял. Это не говоря уже о том, что без нарушения бинарной совместимости она не ложится на голдсорсовский формат моделей - тупо некуда сохранять промежуточную дату.
 
 

nemyax

тндайпц тра
30.07.2015
641
24
18
Награды
0
Дядя Миша сказал(а):
А с инверсной кинематикой там мрак полнейшый.
По сути только для ИК (и возможно рогнола?) эти процедурки и нужны. Для печёной анимации и заморачиваться нечего, кмк.
 
 

ncuxonaT

Well-known member
05.05.2013
1 153
39
48
Награды
0
2 Дядя Миша:
Я думал, там не сильно сложно, по крайне мере для анимации ходьбы. Типа указать эффекторы (стопы), указать кости в иерархической цепочке (голени, бедра), задать ограничения (ну то что ты сейчас делаешь). А в движке в коде отрисовки модели делать трейс для каждой стопы, чтобы на поставить их на поверхность. Нет?

2 nemyax:
согласен с вами, сударь
 
 

nemyax

тндайпц тра
30.07.2015
641
24
18
Награды
0
ncuxonaT сказал(а):
2 Дядя Миша:
Я думал, там не сильно сложно, по крайне мере для анимации ходьбы.
Ну так IK-решатель всё равно придётся разрабатывать. Очень нетривиальная штука.
 
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
По сути только для ИК (и возможно рогнола?) эти процедурки и нужны
в сорсе оно как-то избыточно всё.
А в движке в коде отрисовки модели делать трейс для каждой стопы, чтобы на поставить их на поверхность. Нет?
Если бы ходьба была полностью процедурной, то да. Но ты не забывай, что ходьба это анимация, причём еще и 9way blend, причём на сервере и клиенте разный код выполняется. Потом там есть какие-то autoplay locks, отдельно сохраняются ошибки инверсной кинематики. Очень помороченая система.
Плюс это всё хранится в mstudioanimdesc_t, а в голдсорсе вообще нет такой структуры, там получаемся из mstudioseqdesc_t сразу доступ к raw-анимациям, в сорсе же из секвенции идёт доступ к этой mstudioanimdesc_t, из которой в свою очередь - уже непосредственно к кадрам. Появляется промежуточное звено. Но мы хотим поддерживать и старые модельки тоже. То есть весь код анимации на клиенте и сервере переделывать. Не хочу. Вон развесовку сделал, никому нахрен не нужно. А на это тем более никто не отреагирует.