[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
Результаты поиска
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
В общем прицел я нашел и нашел надпись 3D. Но у меня что-то никак не выходит его преобразовать...


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

1. Проблемы при создании нового дерева объектов:
- не раскодированы некоторые данные XBinModifier, XChildSelector, XBone, XOglTextureMap
- проблема универсальности формата (структура данных WF,W3D,W4,WUM отличается)
- сложность создания с нуля контейнеров, т.к. не известны назначение не раскодированных данных.
- не возможность сохранить придаточные данные(не известные и не имеющие аналогов) во время экспорта от 3DSMAX.

2. Проблемы при копирования данных в старое дерево:
- XBone имеет слишком много линков и очень сложно организовать правильную структуру дерева.
- сложность переноса упрощенной структуры туда и обратно
- наличие клонов в ветвях дерева (ссылок на один и тот же контейнер, пример один материал для разных объектов)
- очень сложный процесс конвертации данных между такими структурами как: TContainer -> TMesh -> Xom3D ->MaxModel, и обратный перенос.

3. Проблемы в импорте в 3DSMAX:
- проблема с ориентацией координат (XYZ, в игре ось Y высота, а в 3DSMAX - ось Z ) , необходимость конвертации матрицы.
- отсутствие аналога Joint костей (кости редактора Maya)
- скудные знания в MaxScripts
- проблема получения обратной матрицы костей у модификатора Skin
- отсутствие аналога XChildSelector (для включения и выключения объектов при анимации)
- проблема с нормалями
- проблема с параметрами OpenGL для материала

Для чего нужен Xom3D?
Для того чтобы можно было менять модели с костями, т.к. формат 3DS не поддерживает кости.

Идеи как вставить свою модель со скелетом в игру:
- использовать 3DSMAX и экспорт в Xom3D
- найти другой формат с поддержкой костей и адаптировать его
- написать свой редактор костей...

P.S. Как видно из предварительного анализа - это адски сложно выполнимая задача!!! facepalm


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Создал Экспорт в Xom выделенной ветви, осталось создать импорт и тогда можно будет импортировать любой кусочек или модель в нужный xom. (и я смогу импортировать небеса!!! )

Export to .xom


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Цитата Emishka_Roper ()
Может создать сайт о модинге W3d

rofl Он просуществовал 5 лет и уже мертв. Был такой сайт www.worms3d-portal.com
Но модинг w3d продолжается, работы выкладываю на
http://vk.com/worms3d_vk
и
http://worms3d.tk/viewforum.php?f=6
вот примеры нового модинга:



 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Что уже готово:
Export Cntr to Xom
Import Cntr from Xom
Delete Cntr
HexEditor


Import to .xom !!!


HexEditor


To do:
Import Xom3D (есть некоторые проблемы)
Convert IndexSet to W3D/W4 (для WF моделей)
MatrixEdit
Fill XColorSet (а то модели черные иногда)
Add Anim (для GraphSet)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Ух ты год прошел уже =) . Вот я и добрался до редактора, потому как он мне стал нужен, проект WUM карты для W3D потребовал некоторых функций, теперь можно загружать эммитеры в виде 3D объектов прямо в редактор карт.



P.S. на данном этапе пытаюсь понять как же эти ребята из Team17 вычисляли угол для эммитеров... W4 и WUM работают превосходно, но вот W3D имеют свою уникальную поворотную систему facepalm


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Цитата (wormer_de_worm)
были видны эффекты

А что такое эффекты в твоем понимании?


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Создать таймер, который будет вызывать твою функцию и поднимать воду на определенное значение.

Код

StartTimer("Water", newtime);

function Water()  
SetData("Water.Level", WLevel);
WLevel = WLevel+div;
StartTimer("Water", divtime);
end;


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Интересная штука получается. Эмиттеры не показываются в игре если в его имени нет слова VISIBLE!!! <_<

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Я фигею с этих Team17!!! Нашел я зависимость положения эммитеров W3D на карте!
Сначала поворачивается эммитер, а потом он поворачивается на угол его предка... А не наоборот как это в W4.
И позиция его положения определяется координатами эммитера относительно уже повернутого предка... что ну никак не поддается логике...
Чтобы правильно рассчитать поворот в таком случае, нужно вернуть угол в начальное состояние, а потом произвести двойной поворот:
Код
  glRotatef(-ParentPox.Rot.X, 1, 0, 0);//X
      glRotatef(-ParentPox.Rot.Y, 0, 1, 0);//y
      glRotatef(-ParentPox.Rot.Z, 0, 0, 1);//Z

      glRotatef(Rot.Z, 0, 0, 1);//Z
      glRotatef(Rot.Y, 0, 1, 0);//y
      glRotatef(Rot.X, 1, 0, 0);//X

      glRotatef(ParentPox.Rot.Z, 0, 0, 1);//Z
      glRotatef(ParentPox.Rot.Y, 0, 1, 0);//y
      glRotatef(ParentPox.Rot.X, 1, 0, 0);//X


для W4 они убрали этот идиотизм и оставили просто:
Код
  glRotatef(Rot.Z, 0, 0, 1);//Z
      glRotatef(Rot.Y, 0, 1, 0);//y
      glRotatef(Rot.X, 1, 0, 0);//X


И теперь у меня задача как преобразовать угол из W4 в W3D учитывая предка и пространственно измененную матрицу... facepalm
Код
-----
Par.Rot x -Par.Rot x W3D.Rot x Par.Rot = Out.Rot
Par.Rot x W4.Rot = Out.Rot
W3D.Rot - ?
-----
W3D.Rot = Par.Rot x W4.Rot x -Par.Rot (?)


На матричном уровне это реально, но надо получить угол из матрицы...


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Все таки я ошибся. Там другая зависимость...
Код
-----    
W3D.Rot x Global.Rot = Out.Rot    
Global.Rot x W4.Rot = Out.Rot    
W3D.Rot - ?    
-----    
W3D.Rot = Global.Rot x W4.Rot x -Global.Rot (!!!)


В коде это будет примерно так:
Код

      glGetFloatv(GL_MODELVIEW_MATRIX,@MatrixR);
   MatrixR[4][1]:=0;
   MatrixR[4][2]:=0;
   MatrixR[4][3]:=0;
   InvMatrix:=MatrixInvert(MatrixR);
   glMultMatrixf(@InvMatrix);
   glRotatef(Rot.Z, 0, 0, 1);//Z
   glRotatef(Rot.Y, 0, 1, 0);//y
   glRotatef(Rot.X, 1, 0, 0);//X
   glMultMatrixf(@MatrixR);


Они там точно что-то курили, когда писали код структуры игры. rofl


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Цитата (firsacho)
откуда вообще инфу то взял?

Пруф http://w4-tweaking.bb-fr.com/t308-arielfx


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Некоторые идеи с wormsforts.ucoz.ru (добавлено 4erver):
- из темы "Идеи для карт" (by AlexBond)
- из темы "Map Ideas for WF" (by Woitek)
- из темы "Идеи для модов" (by 4erver)


Есть такая старенькая игрушка от Team17, которую все почему-то считают провальной, да и уже давно ушло ее время, но у меня только сейчас дошли до нее руки.

Что же на это повлияло?
1. Tunngle сеть, через которую очень удобно играть с друзьями в игры, которые уже не поддерживаются или глючат в GameSpy.
2. XomView 2.9 стал настолько хорошо что позволяет редактировать контейнеры на уровне hex и сохранять изменения.
3. WFLauncher.exe, который я написал для запуска игры на новых широкоформатных мониторах, о нем кстати я отписался тут
http://www.wsgf.org/dr/worms-forts-under-siege/en

4. Торрент с игрой для PS2, в котором все скрипты в lua формате.

Итак, что же уже достигнуто?
1. найдено место хранения списка карт и уровней
Код
\data\frontend\Local.xom

2. раскодирована защита lub файлов после компиляции, написал программку lubcode.exe для кодирования скомпилированых файлов, чтобы игра их воспринимала.
3. опытным путем добавлено две карты в режим Мультиплеера из DM.

Одно только не понятно, почему когда играю по сети, шапки всех червей сбрасываются... никаких lua функций я не нашел...
И еще, на картах WF так же есть spawn точки, в которых появляются звездочки, здания или черви, так вот для карт из DM нужно размечать вручную позиции игроков, но тем не менее, играть можно.

Если тут найдутся любители этой игры, можно будет пообщаться =)



 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Вормус, а какие моды для нее можно придумать? Давай идеи.

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Я уже научился делать офигенные вещи в этом WF:
1. XomView превратился в редактор карт для WF!!!
2. Научился создавать позиции для размещения зданий.
3. Теперь можно играть на картах 4-мя командами
4. Научился управлять телепортами, что позволяет осваивать новые местности.



 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Теперь можно полноценно редактировать карты.
Редактор позиций готов!

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

Как идет загрузка карты:
1. в Local.xom игра выбирает скрипт для карты
2. в sctipts/Multi.lub игра считывает путь к карте
3. Затем загружается XCollisionGeometry, по которой черви могут ползать.
4. Затем она загружает XFortsExportedData, тут она получает информацию о Теме для игры и о Небе, так же о зданиях и местах для их постройки.
5. Ну и потом уже грузится 3DModel из XInteriorNode

Вот редактор XomView в действии


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Цитата (Emishka_Roper)
Может плавно начнёте переходить на модельки шапок? (Лишь предлагаю)

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


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Первый наш совместный Мод (AlexBond, GX, Woitek) для WF.

Особенности:
1. Добавляет 4 карты в мультиплеер, с телепортами и интересными позициями.
2. Увеличивает время игры при выборе нулевого времени, до 120 минут.
3. На 4-й карте Tools for Fools (там где корабли) игра с нейтральными зданиями, любой может стрелять с любого дома... (странный режим, но забавный)

Ссылка на Мод 4NewMultiMaps:
http://www.2shared.com/file/ulKv6LfE/WF_4NewMultiMaps.html


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Вормус, теоретически это возможно, самая большая сложность это создать XCollisionGeometry, и преобразовать модель в Strip полигоны... Ну а так все реально, было бы желание и руки умелые. Но у меня нет пока желания создавать новые карты, Team17 и так много карт хороших сделала, но их потенциал не раскрыт, вот я и буду раскрывать его.

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Вормус, да играли до 3 ночи с модифицированной схемой игры, теперь XomView может менять схемы для игры, без особого труда =)
Прикрепления: 0385763.png (54.9 Kb) · 5493020.png (63.5 Kb)


 
Поиск: