[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
Форум » Моддинг » 6.1. Остальные уроки » Декодируем Xom, Тип за типом... шаг за шагом... (Собираю группу психов не жалеющих свое время и мозги...)
Декодируем Xom, Тип за типом... шаг за шагом...
Проверенные
Сообщений: 336
Реп: 51
Quote (AlexBond)
Я СОЗДАЛ ПРОИГРЫВАТЕЛЬ АНИМАЦИИ в XomView v2.3

Кода выложишь?


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Когда кости сумею воплотить.

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Один скелет вроде бы подошел...

Но все же глючит sad

Прикрепления: 8248721.png (22.6 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Итак, что касается костей и их привязки к объектам:
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
Реп: 60 / Инв: 5
*Помог чем мог по асе)

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Новая проблема. В 3DSMax нету групповых связей как в Maya поэтому нельзя реализовать упрощенные объекты для анимации...
И еще, анимация в 3DSMAX так же глючит как и в XomView хотя скелет строится правильно и там и там... Ничего не понимаю...


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Анимация в XomView v2.4 работает, практически не глючит =) не считая некоторых мест... Но уже прогресс на лицо. cool

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Замораживаю проект.

Прошу прощения у тех кому он не был безразличен. У меня нету времени заниматься этим.

Тестовую версию прикреплю, экспорт и импорт в ней заблокирован.

P.S. Может быть вернусь... когда-нибудь...

Прикрепления: XomView_v2_4.rar (268.4 Kb)


 
DrHitman27
Админы
Сообщений: 2115
Реп: 52
wacko ты наверно с тим 17 похмеляешься...

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Разморозить, что-ли? wink

 
MarkWarT
Проверенные
Сообщений: 497
Реп: 22
Я бы не отказался wink Если уж получится его полностью декодировать, тогда и сайт оживет, да и модов качественных появится... Но со временем smile

Trading Unusual Nickname with Perfectly Straight Underlines, serious offers only
 
KaMiKaZe
Проверенные
Сообщений: 1514
Реп: 23
Это все тот же сет или другой чувак? Айпи какой?
 
DrHitman27
Админы
Сообщений: 2115
Реп: 52
тотже

 
Рен
Проверенные
Сообщений: 668
Реп: 20
РАЗМОРАЖИВАЙ!
 
Drun
Хранители порядка
Сообщений: 1099
Реп: 23 / Инв: 14
тупо уговаривать просто так Alex`а, надо ему на счёт рублей 500 сбросить, и он нам полностью декодирует формат .xom
 
Некто
Проверенные
Сообщений: 1897
Реп: 21
AlexBond, ппц :v у тя мозг как компютер )
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Итак, в честь того что у меня появилась свободная минутка, я решил поразмышлять, по поводу XomView'a
Составлю план:
1. Полностью расшифровать Анимацию, вплоть до сплайнов и т.п. вещей.
2. Составить стандарт для Xom3D
3. Написать плагины для известных редакторов, формата Xom3D.
4. Добавить редактируемость расшифрованых контейнеров в xom.

И когда это будет, будет все!!!!


 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
АлексБонд, можешь ли сделать экспорт xom дерева в xml и обратно? Если бы сделал, было бы просто мега-замечательно. Потому что способов работы с xml море, а с xom - только твой xomView.

Ещё в небольшой совета, сделай, чтобы редактор читал аргументы, чтобы можно было открывать файл перетаскиванием xom файла(это минутное дело, имхо)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (Герыч)
Ещё в небольшой совета, сделай, чтобы редактор читал аргументы, чтобы можно было открывать файл перетаскиванием xom файла(это минутное дело, имхо)

Уже не минутное. чтобы это сделать, надо перестроить проект, а я винду сносил, надо опять делфи настраивать... вот как настрою добавлю эту функцию.

Quote (Герыч)
можешь ли сделать экспорт xom дерева в xml и обратно? Если бы сделал, было бы просто мега-замечательно.

Была такая идея, но проблема в том что в дереве каждая ветвь не просто указатель, а содержит переменные. А если пробовать запихать hex дату в Ansi то у тебя файл вырастит в размере до ужаса....


 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
можно hex data сделать внешними по отношению к xml. экспорт для файла A.xom делаешь в форме:
папочка c именем A, в ней A.xml и подпапки, папочка с ресурсами
к примеру в xom дереве встретился бинарный контейнер(картинка) с каким-нито id, ты в ресурсы кладёшь такой файл, соответсвенно при воссоздании xom'а ты по xml-ю смотришь, видишь имя ресурса, запихиваешь его вовнутрь. как-то так


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Форум » Моддинг » 6.1. Остальные уроки » Декодируем Xom, Тип за типом... шаг за шагом... (Собираю группу психов не жалеющих свое время и мозги...)
Поиск: