Декодируем Xom, Тип за типом... шаг за шагом...
|
|
Сообщений: 336
|
Опубликовано: 11.08.2009, 03:02:15
Quote (AlexBond) Я СОЗДАЛ ПРОИГРЫВАТЕЛЬ АНИМАЦИИ в XomView v2.3 Кода выложишь?
|
|
|
|
Сообщений: 1042
|
Опубликовано: 11.08.2009, 16:47:19
Когда кости сумею воплотить.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 12.08.2009, 00:57:46
Один скелет вроде бы подошел... Но все же глючит
|
|
|
|
Сообщений: 1042
|
Опубликовано: 12.08.2009, 17:16:30
Итак, что касается костей и их привязки к объектам: 1. Joints это ни что иное как набор иерхатических матриц. Они же и есть кости. 2. В контейнере Joint имеются начальные координаты положений костей относительно объекта. (Начальная матрица) 3. В контейнере Joint находится также матрица, для начального положение скелета, подразумевается, что кости уже прикреплены к объекту. 4. Чтобы отобразить правильную анимацию костей, нужно понять что за координаты в Joint... 5. Чтобы анимация не глючила, нужно найти абсолютную матрицу кости, такую чтобы она влияла на точку объекта, ровно на такое преобразование, которое получается от изменения Начальной Матрицы Кости в текущую матрицу кости. Короче я замучался с матрицами..... и относительностью.. Моя функция изменения точек: Code if (XType='SS') then begin VCount:=Length(Vert); for i := 0 to VCount - 1 do begin RVert[i] := ZereVector; BCount:=Length(Bones); for j := 0 to BCount - 1 do begin BVert:= MatrXVert(Bones[j].BoneMatrix, Vert[i][0],Vert[i][1],Vert[i][2]); RVert[i] := VertAddVert(RVert[i],ValXVert(Weight[j][i],BVert)); end; end; glVertexPointer(3,GL_FLOAT,0,RVert); end else glVertexPointer(3,GL_FLOAT,0,Vert); Глючит, так как BoneMatrix содержит глобальную матрицу кости. а нужно Абсолютную, относительно Начальной... Функцию писал с этих примеров: http://steps3d.narod.ru/tutorials/skeletal-animation-tutorial.html Code void Md5Mesh :: calcPoints ( Joint * joints ) // compute real points from bones data { for ( int i = 0; i < numVertices; i++ ) { Vertex& v = vertices [i]; // current vertex Vector3D p ( 0, 0, 0 );
for ( int k = 0; k < v.weightCount; k++ ) { Weight& weight = weights [v.weightIndex + k]; Joint& joint = joints [weight.jointIndex];
// transform weight.pos by bone with weight p += joint.transform ( weight.pos ) * weight.weight; }
points [i] = Vector3D ( p.y, p.x, p.z ); } } http://xproger.mentalx.org/old/?id=1&page=2&doc=anim3d Code for i := 0 to V_Count - 1 do begin RVertex[i] := Vector(0, 0, 0); for j := 0 to B_Count - 1 do RVertex[i] := RVertex[i] + Weight[i][j] * Bone[j].Matrix * Vertex[i]; end; Герычь вся надежда на твой мозг... Мой мозг с матрицами не дружит...
|
|
|
|
Сообщений: 1240
|
Опубликовано: 13.08.2009, 00:38:32
*Помог чем мог по асе)
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1042
|
Опубликовано: 14.08.2009, 11:21:50
Новая проблема. В 3DSMax нету групповых связей как в Maya поэтому нельзя реализовать упрощенные объекты для анимации... И еще, анимация в 3DSMAX так же глючит как и в XomView хотя скелет строится правильно и там и там... Ничего не понимаю...
|
|
|
|
Сообщений: 1042
|
Опубликовано: 17.08.2009, 15:53:29
Анимация в XomView v2.4 работает, практически не глючит =) не считая некоторых мест... Но уже прогресс на лицо.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 17.08.2009, 22:04:30
Замораживаю проект. Прошу прощения у тех кому он не был безразличен. У меня нету времени заниматься этим. Тестовую версию прикреплю, экспорт и импорт в ней заблокирован. P.S. Может быть вернусь... когда-нибудь...
|
|
|
|
Сообщений: 2115
|
Опубликовано: 17.08.2009, 22:24:54
ты наверно с тим 17 похмеляешься...
|
|
|
|
Сообщений: 1042
|
Опубликовано: 09.12.2009, 21:31:16
Разморозить, что-ли?
|
|
|
|
Сообщений: 497
|
Опубликовано: 10.12.2009, 12:22:20
Я бы не отказался Если уж получится его полностью декодировать, тогда и сайт оживет, да и модов качественных появится... Но со временем
Trading Unusual Nickname with Perfectly Straight Underlines, serious offers only
|
|
|
|
Сообщений: 1514
|
Опубликовано: 12.12.2009, 01:36:14
Это все тот же сет или другой чувак? Айпи какой?
|
|
|
|
Сообщений: 2115
|
Опубликовано: 12.12.2009, 07:09:43
тотже
|
|
|
|
Сообщений: 668
|
Опубликовано: 23.12.2009, 18:36:45
РАЗМОРАЖИВАЙ!
|
|
|
|
Сообщений: 1099
|
Опубликовано: 11.01.2010, 19:15:18
тупо уговаривать просто так Alex`а, надо ему на счёт рублей 500 сбросить, и он нам полностью декодирует формат .xom
|
|
|
|
Сообщений: 1897
|
Опубликовано: 11.01.2010, 19:26:58
AlexBond, ппц у тя мозг как компютер )
|
|
|
|
Сообщений: 1042
|
Опубликовано: 15.01.2010, 01:57:19
Итак, в честь того что у меня появилась свободная минутка, я решил поразмышлять, по поводу XomView'a Составлю план: 1. Полностью расшифровать Анимацию, вплоть до сплайнов и т.п. вещей. 2. Составить стандарт для Xom3D 3. Написать плагины для известных редакторов, формата Xom3D. 4. Добавить редактируемость расшифрованых контейнеров в xom. И когда это будет, будет все!!!!
|
|
|
|
Сообщений: 1240
|
Опубликовано: 15.01.2010, 10:50:05
АлексБонд, можешь ли сделать экспорт xom дерева в xml и обратно? Если бы сделал, было бы просто мега-замечательно. Потому что способов работы с xml море, а с xom - только твой xomView. Ещё в небольшой совета, сделай, чтобы редактор читал аргументы, чтобы можно было открывать файл перетаскиванием xom файла(это минутное дело, имхо)
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1042
|
Опубликовано: 15.01.2010, 16:34:26
Quote (Герыч) Ещё в небольшой совета, сделай, чтобы редактор читал аргументы, чтобы можно было открывать файл перетаскиванием xom файла(это минутное дело, имхо) Уже не минутное. чтобы это сделать, надо перестроить проект, а я винду сносил, надо опять делфи настраивать... вот как настрою добавлю эту функцию. Quote (Герыч) можешь ли сделать экспорт xom дерева в xml и обратно? Если бы сделал, было бы просто мега-замечательно. Была такая идея, но проблема в том что в дереве каждая ветвь не просто указатель, а содержит переменные. А если пробовать запихать hex дату в Ansi то у тебя файл вырастит в размере до ужаса....
|
|
|
|
Сообщений: 1240
|
Опубликовано: 15.01.2010, 22:06:07
можно hex data сделать внешними по отношению к xml. экспорт для файла A.xom делаешь в форме: папочка c именем A, в ней A.xml и подпапки, папочка с ресурсами к примеру в xom дереве встретился бинарный контейнер(картинка) с каким-нито id, ты в ресурсы кладёшь такой файл, соответсвенно при воссоздании xom'а ты по xml-ю смотришь, видишь имя ресурса, запихиваешь его вовнутрь. как-то так
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|