HLFX.Ru Forum Страницы (7): « 1 2 [3] 4 5 6 7 »
Показать все 100 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Скелетная SMD анимация (https://hlfx.ru/forum/showthread.php?threadid=5532)


Отправлено Crystallize 30-06-2020 в 11:03:

Цитата:
FiEctro писал:
Хоть бы кто то тутор написал как эта вся фигня в 3д работает... Много вещей делается посредством скриптов и разных плясок с бубном (для тех кому знакомо слово Maya).

Сергей Цыпцын два тома по Майе написал, там конечно не Дядя Миша но именно текст а не формулы.


Отправлено KiQ 30-06-2020 в 11:08:

Цитата:
FiEctro писал:
Если программист не умеет парсить и обрабатывать, тогда какой из него программист?

А потом начинаются наезды от креативной команды, мол "А какого вот эта моделька в игре выглядит вот так, в редакторе у нас всьо по-другому!", а оказывается, что моделлер применил там какой-нибудь пятый модификатор из третьей вкладки, о котором программист и в жизни не слыхивал, зато в редакторе "все красиво".

Цитата:
FiEctro писал:
Так что здесь понятие "дезигнер" прямо пересекается с понятием, если не "программист" то "скриптёр" уж точно

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

Цитата:
FiEctro писал:
Я щас в 2.83 работаю, обучался на 2.79, но уже полностью отвык от его интерфейса.

то же самое, сейчас вот вообще 3ds max переосваиваю. Никак у меня не получается перестроиться от кубания. Да и не надо оно, может...

__________________
-Brain is dead-


Отправлено nemyax 30-06-2020 в 11:09:

Цыпцын доходчивый чувак.

Цитата:
KiQ писал:
там и матрицы жомловские

И как там, базисы подряд или "сверху вниз"? И где лежит трансляция?


Отправлено KiQ 30-06-2020 в 11:19:

Цитата:
nemyax писал:
И как там, базисы подряд или "сверху вниз"? И где лежит трансляция?

базисы как и в OGL column-major, сверху вниз. Трансляция лежит в [3, 0] [3, 1] и [3, 2], соответственно (ну или в m[12], m[13] и m[14] если развернуть в линейный массив. Вообще странно, ибо это соответствует тому, что было у меня. Мне кажется, что-то там с умножением не-то, по-разному оно делается

__________________
-Brain is dead-


Отправлено Дядя Миша 30-06-2020 в 11:28:

Цитата:
FiEctro писал:
Морфинг, адеквакватная развесовка, материалы, анимационные слои, вертексколор, вертексгруппы (не только для костей), миррор, субдивижен, кривые и т.д. Ещё бы добавил разные констрейты, но это скорее вопрос софта и движка, нежели формата.

А в чём неадекватность текущей развесовки? Вышеперечисленное это не особенность формата, а вопрос поддержки этих вещей самим софтом. К примеру, тот же ase может содержать кадры анимации, но эти кадры никто и никогда не читает в кваках. То есть возможность есть, но не используется.
Цитата:
KiQ писал:
Да вот же http://www.tmtlib.narod.ru/skeletal.htm

Цитата:
type TModelka = object

Понятно.

Цитата:
KiQ писал:
Насколько я понял они также решают проблему gimbalock, хотя с другой стороны матрицы тоже ее решают

У Эйлера нет проблемы блокировки, пока ты не начинаешь их складывать. Можно сложить в матрице и трансформировать обратно в Эйлера.

Цитата:
KiQ писал:
да и интерполировать матрицы тоже можно

у матриц интерполяция только линейная, у кватернионов - сферическая. Тем они и ценны.

Добавлено 30-06-2020 в 14:28:

Цитата:
KiQ писал:
"А какого вот эта моделька в игре выглядит вот так, в редакторе у нас всьо по-другому!"

Так вот тож. Чем меньше фишек поддерживает формат, тем меньше вероятность разночтения редактором и движком. Поэтому я и не хочу поддерживать всякие там вертекс-колоры и смутч-группы. Тут ведь еще вот какое дело. Мне по сути нужен один общий исходный формат для всего.
ase развесовку не поддерживает и кости тоже, obj аналогично.
Только smd и остается. Проще пожертвовать цветом вертексов, тем более что его всё равно компилятор создаёт. Впрочем, я может быть создам какой-то свой текстовый формат, посмотрим. Не хотелось бы конечно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено KiQ 30-06-2020 в 11:47:

Вот не пойму, неужто в итоге весь сыр-бор с глюками в JOML из-за того, что кости нужно трансформировать row-major матрицы, а рисовать column-major, ну не должно же это по идее никак влиять

__________________
-Brain is dead-


Отправлено Дядя Миша 30-06-2020 в 11:51:

Забавно. Оказывается вальва добавила в SMD расширение vertexanimation.
Да там в принципе можно любые расширения добавлять, по такому же принципу: begin keyword - end

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено nemyax 30-06-2020 в 11:59:

Цитата:
Дядя Миша писал:
Только smd и остается.

IQM не рассматривал?


Отправлено KiQ 30-06-2020 в 12:26:

Цитата:
Дядя Миша писал:
Оказывается вальва добавила в SMD расширение vertexanimation

Это для лицевой анимации, но можно как угодно использовать, я выше писал. Но вообще да, расширять как угодно можно, в этом удобство, парсер особо не надо перелопачивать

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

__________________
-Brain is dead-


Отправлено Дядя Миша 30-06-2020 в 12:37:

Цитата:
nemyax писал:
IQM не рассматривал?

IQM бинарка, а я про промежуточные форматы. Можно кстати от милки подключить формат, я правда хз, юзают ли её еще.
Но там жеж все эти смутч-группы есть, как положено.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено KiQ 30-06-2020 в 12:51:

И все же некоторые скелеты корячит на JOML, причом на моих матрицах всё отлично. Обращаю внимание, что с моими матрицами я читаю значения костей подряд как они записаны в time0, только инвертирую Z. В JOML же я загружаю в порядке Z, X, Y и не инвертирую ничего

Гордон




Учоный




Добавлено 30-06-2020 в 15:51:

Так же в JOML сначала применяется трансляция, потом вращение, а вмоих - наоброт

__________________
-Brain is dead-


Отправлено FiEctro 30-06-2020 в 12:54:

>> А потом начинаются наезды от креативной команды, мол "А какого вот эта моделька в игре выглядит вот так, в редакторе у нас всьо по-другому!", а оказывается, что моделлер применил там какой-нибудь пятый модификатор из третьей вкладки, о котором программист и в жизни не слыхивал, зато в редакторе "все красиво".

Вот потому и надо садиться вместе и обсуждать, а не спихивать собственные косяки друг на друга, порой программист может подсказать более элегантное решение чем те костыли которые городят моделеры, а порой и моделеры могут нагородить костылей которые будут работать, но к ним не нужно писать код. Но лучше конечно когда есть свобода выбора, если продукт ориентирован для юзания другими людьми.

>> А в чём неадекватность текущей развесовки? Вышеперечисленное это не особенность формата, а вопрос поддержки этих вещей самим софтом. К примеру, тот же ase может содержать кадры анимации, но эти кадры никто и никогда не читает в кваках. То есть возможность есть, но не используется.

Игровые движки одной квакой не заканчиваются. Поиграй хотя бы в ГТА4 и ГТА5, посмотри на физику игрока, анимации персонажей. Меня например переворачивает когда у перса рука как росток лука перегибается, и простой развесовкой тут не отделаешься.

>> Сергей Цыпцын два тома по Майе написал, там конечно не Дядя Миша но именно текст а не формулы.

А можно полное название? Звучит вкусно.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено KiQ 30-06-2020 в 13:04:

Цитата:
FiEctro писал:
Поиграй хотя бы в ГТА4 и ГТА5, посмотри на физику игрока, анимации персонажей

Так это вообще Euphoria, сторонняя технология и очень тяжеловесная, рокстары ее просто лицензировали.

Я не понимаю, я уже привел код к идентичному состоянию, в загрузчике гружу в аналогичном порядке без всяких конверсий
Мои матрицы:
C++ Source Code:
1
Vector3f pos = startFrame.pos.get(b.id);
2
Vector3f angles = startFrame.angles.get(b.id);
3
 
4
b.pos.reset();
5
b.matRelative = Matrix.rotate(angles.x, 1, 0, 0);
6
b.matRelative = Matrix.mul(b.matRelative, Matrix.rotate(angles.y, 0, 1, 0));
7
b.matRelative = Matrix.mul(b.matRelative, Matrix.rotate(angles.z, 0, 0, 1));
8
b.matRelative = Matrix.mul(b.matRelative, Matrix.translate(pos.x, pos.y, pos.z));
9
 
10
if (b.parentId == -1) {
11
  b.matAbsolute = b.matRelative;
12
} else {
13
  Bone p = bones.get(b.parentId);
14
  b.matAbsolute = Matrix.mul(b.matRelative, p.matAbsolute);
15
}
16
 
17
b.matAbsolute.transform(b.pos);


JOML
C++ Source Code:
1
Vector3f pos = startFrame.pos.get(b.id);
2
Vector3f angles = startFrame.angles.get(b.id);
3
 
4
b.pos.zero();
5
b.matRelative.rotationX(angles.x);
6
b.matRelative.mul(new Matrix4f().rotationY(angles.y), b.matRelative);
7
b.matRelative.mul(new Matrix4f().rotationZ(angles.z), b.matRelative);
8
b.matRelative.mul(new Matrix4f().translation(pos.x, pos.y, pos.z), b.matRelative);
9
 
10
if (b.parentId == -1) {
11
  b.matAbsolute = b.matRelative;
12
} else {
13
  Bone p = bones.get(b.parentId);
14
  p.matAbsolute.mul(b.matRelative, b.matAbsolute);
15
}
16
 
17
b.matAbsolute.transformPosition(b.pos);


и все равно разный результат! Мои матрицы отрабатывают нормально, JOML корёжит

__________________
-Brain is dead-


Отправлено Дядя Миша 30-06-2020 в 13:20:

Цитата:
FiEctro писал:
когда у перса рука как росток лука перегибается, и простой развесовкой тут не отделаешься.

ну вот для этого и нужна сферическая интерполяция, о которой так долго твердили большевики. А еще DualQuats.

Цитата:
FiEctro писал:
Поиграй хотя бы в ГТА4 и ГТА5

Ну я бывал в этой игре для многих лет. Я вытащил заживо!

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 30-06-2020 в 13:35:

>> ну вот для этого и нужна сферическая интерполяция, о которой так долго твердили большевики. А еще DualQuats.

Ну будет у тебя вместо перегиба шланга, эта рука надуваться. Никакая интерполяция здесь не поможет. Для костей есть специальные шейпкеи, где в одной позиции у кости один шейп кей, в другой позиции - другой. Т.е. формально мы эту складку редактируем ещё морфингом. Это используется трёхмерщиками уже много лет повсеместно. Но да, в кваках такого нету.

У меня впрочем своя система борьбы с этим, без шейпкеев, правда пришлось дописать дополнительные констрейнсы для костей уже в самой игре.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Временная зона GMT. Текущее время 04:08. Страницы (7): « 1 2 [3] 4 5 6 7 »
Показать все 100 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024