Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Выбор формата анимированной модели персонажа. (3 стр)

Выбор формата анимированной модели персонажа. (3 стр)

Страницы: 1 2 3 4 Следующая »
MrShoorУчастникwww11 янв. 201819:44#30
Mikle
Представь idle анимация на персонаже. Два ключевых кадра. В этих двух кадрах какие то части тела модели движутся очень и очень слабо. Настолько слабо, что после компрессии половина вершин становится не подвижной. Когда треугольник большой - пофигу, ибо смотрится норм. Когда треугольник мелкий - то это приводит к тому, что треугольник растягивается между ключевыми кадрами очень сильно, и меняет свою форму.
А теперь представь, что компрессия приводит к тому, что для половины вершин между ключевыми кадрами движение отсутствует по одной/двум осям. Оно же реально будет бурлить, как будто черви под кожей. И по иронии судьбы это будет лучше всего заметно на idle анимации когда персонаж в покое. Ибо как я уже сказал в idle анимации очень много вершин меняют свое положение чуть чуть.
MikleМодераторwww11 янв. 201823:02#31
DODge
> У меня дома есть готовый тестовый проект на чистом VB6, как ты любишь :)
Звучит заманчиво :), я бы посмотрел.
MrShoor
> В этих двух кадрах какие то части тела модели движутся очень и очень слабо
Да всё понятно, какие-то части движутся слабо, какие-то сильнее. То есть это не чистый перенос, при чистом переносе все вертексы движутся одинаково, о чём я и написал ещё в п.26.
MrShoorУчастникwww11 янв. 201823:09#32
Mikle
> То есть это не чистый перенос, при чистом переносе все вертексы движутся
> одинаково, о чём я и написал ещё в п.26.
Это может быть даже чистый перенос. У тебя вершины округляются то в одну то в другую сторону.
Вот я взял красную ломаную линию, и сделал перенос. Потом нарисовал синим "округленный" шейп. Посмотри как сильно они отличаются:
rounds | Выбор формата анимированной модели персонажа.

Правка: 11 янв. 2018 23:12

MikleМодераторwww11 янв. 201823:15#33
MrShoor
> У тебя вершины округляются то в одну то в другую сторону.
А теперь нарисуй с учётом того, что координаты вертексов в ключевых кадрах уже округлены. В таком случае при переносе округление ВСЕХ вертексов будет в одну сторону. Да, ошибки, но не "кипение".

Правка: 11 янв. 2018 23:16

MrShoorУчастникwww11 янв. 201823:20#34
Mikle
> А теперь нарисуй с учётом того, что координаты вертексов в ключевых кадрах уже
> округлены. В таком случае при переносе округление ВСЕХ вертексов будет в одну
> сторону.
Так, да, но ведь так никто не делает. Как ты это себе представляешь? Аниматор такой, задал позу, потом нажал кнопочку округлить, а опотом "подвинул"? Ну опять же, повороты + скейлы сразу же отваливаются.
Собственно "кипение" получается в результате сохранения нормальной анимации в 3д пакете в формат md2.

Правка: 11 янв. 2018 23:21

MikleМодераторwww11 янв. 201823:27#35
MrShoor
> Аниматор такой, задал позу, потом нажал кнопочку округлить, а опотом "подвинул"?
А он и не мог на некруглые координаты поставить вертекс, если формат такой.
MrShoor
> Ну опять же, повороты + скейлы сразу же отваливаются
О чём я и написал в п.26 (про скейлы не уточнил), что будь ключевые кадры друг от друга достаточно далеко, проблемы бы не было, но необходимость двигать вертексы по кривой вынуждает делать много ключевых кадров, и именно в них появляются ошибки от округления, которые видно.
MrShoorУчастникwww11 янв. 201823:59#36
Mikle
> А он и не мог на некруглые координаты поставить вертекс, если формат такой.
Всмысле не мог? Округление - это результат сохранения в md2. На экране у аниматора вершины без округления.
barnesПостоялецwww12 янв. 20182:26#37
Mikle
> Между кадрами интерполяция происходит во float, откуда пляска?
Вы просто ку2 запустите и все увидите... на статике само собой все ок, а вот на аним моделях вы увидите эффект аля дыхание. Это еще очень хорошо видно на производных мд2 в кингпин и син не смотря на то, что последний исп скелетную анимацию.
MikleМодераторwww12 янв. 20189:24#38
barnes
Что за мода отвечать, не читая. Я прекрасно понимаю, что пляска будет, я играл в Q1-2 и видел её. В п.26 я описал, когда её можно избежать, а когда нельзя, кое-кто меня оспорил, видимо, не читая, и с этого началось.
MrShoor
Я исхожу из того, что моделлер сразу работает с md2, и по ходу работы делал сохранения. Естественно, что при импорте из других форматов пляска возникнет даже там, где её можно было бы избежать.

Надеюсь, с этой темой покончили?

DODge
Мне всё ещё интересно.

u960Постоялецwww12 янв. 201810:01#39
DODge
я бы тоже посмотрел
DODgeПостоялецwww12 янв. 201812:13#40
Mikle, u960 и прочие ребята...
Извините, забыл про своё обещание. Сегодня вечером обязательно выложу.
DODgeПостоялецwww13 янв. 20183:01#41
Блин, чуть опять не забыл. Держите, и не судите строго. Коду уже больше 10 лет. Советую прочитать код, понять принцип, и сделать всё по своему.
SMD loading & animation
DjeeZПостоялецwww13 янв. 20187:53#42
Ogre .skeleton and .mesh. Готовый экспорт из Макса, Майки, Блендера в xml, можно в бинарный. Код взять из Ogre. Анимация и скелетная и вершинная. Готовые модели для экспериментов.
Чего я не знаю, что это не используют? Может и я узнаю и не буду?
MikleМодераторwww13 янв. 20188:59#43
DODge
Благодарю!
MikleМодераторwww15 янв. 20189:49#44
Да уж, разобрался с SMD, портировал пример на dx9.
Модель "вывернута", так как формат ориентирован на OpenGL, простой переворот модели после загрузки выворачивает треугольники, приходится менять CullMode либо переставлять местами вертексы в треугольниках. Direct3D, конечно, позволяет использовать такую систему координат, но как-то не хочется переделывать все наработки.
TriangleList без индексов, вертексы преобразуются софтверно, поэтому модель рисуем через DPUp. Это, конечно, можно попытаться как-то конвертировать в нечто более современное, но стоит ли оно того?
Нашёл ещё вариант - .x-формат. В старом SDK есть примеры на C++ и на C#, разобраться не сложно.

Правка: 15 янв. 2018 9:51

Страницы: 1 2 3 4 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр