Результаты поиска
|
|
Сообщений: 1042
|
Опубликовано: 11.06.2009, 13:15:57
Нет это не для плейстейшон, это задумки которые не воплотились в жизнь. В начале T17 хотела создать все оружие что было в WA, но потом передумали и как я думаю это из-за того что карты были разработаны слишком мелкие для всех видов оружия... Ведь лазер то я смог восстановить к нему даже ресурс нашелся, хоть саму пушку лазерную я не нашел...
|
|
|
|
Сообщений: 1042
|
Опубликовано: 11.06.2009, 21:15:44
Quote (vera34) да кстати научите им пользововаться пожалуста smile Учись http://blender3d.org.ua/tutorial/
|
|
|
|
Сообщений: 1042
|
Опубликовано: 11.06.2009, 21:22:26
Quote (vera34) а её сделать можно просто мозг надо напрячь и все Увы, не все так просто. Нужно во первых иметь этот МОЗГ =) Во вторых Нехило напрягать, чтобы: 1. Полностью декодировать xom формат, где около 150 типов бинарно написанных, инфы по которым нету нигде. 2. Создать лазерную пушку с текстурами 3. Всунуть пушку в игру, так чтобы не повредить остальные ресурсы, что на практике нериально сделать не имея Xom структуры. Так что это НЕРИАЛЬНО для W3D. Но вполне реально для W4, т.к. там ресурсы открытые.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 11.06.2009, 21:32:03
Quote (RocketRacer) И как поменять язык в Blender'e на русский??? Вот кое что про руссификацию http://ru.wikibooks.org/wiki....1%D0%B0
|
|
|
|
Сообщений: 1042
|
Опубликовано: 12.06.2009, 23:11:13
слишком мало данных, у тебя картинка 31x31 пиксель. Так можно что угодно изобразить.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 13.06.2009, 21:06:37
Я знаю что разные, поэтому у меня для worms3D, загрузчик для всех видов экрана: 4:3 5:4 16:10 16:9 А тут я сделал лишь один, чтобы не париться, а вообще неплохая идея, сделать галочку, если будет следующая версия, сделаю.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 15.06.2009, 19:50:12
Список имен шляп прописан в WORMS 4 MAYHEM.exe поэтому нереально добавить ...
|
|
|
|
Сообщений: 1042
|
Опубликовано: 16.06.2009, 03:17:45
Теоретически можно. Хотя тут много проблем, т.к. список загружается не из файла, а из самого экзешника, а чтобы добавлять, нужно знать структуру списка шапок, и на все это надо часы декодирования.... проб и ошибок....
|
|
|
|
Сообщений: 1042
|
Опубликовано: 16.06.2009, 23:10:07
Короче бум и конец игры =) все в воде.... чистой воды идиотизм...
|
|
|
|
Сообщений: 1042
|
Опубликовано: 17.06.2009, 21:05:26
Герыч когда создашь интерфейс для "матрицы" дай знать =)
|
|
|
|
Сообщений: 1042
|
Опубликовано: 17.06.2009, 21:10:34
Я думаю проблема в том как сохраняет 3DSMAX, т.к. при сохранении он прописывает кучу всякой ненужной хрени, которую видимо K^2 не удосужился пропустить при написании своей проги. Я когда изучал формат 3DS, то учел этот факт при импорте 3DS в мой редактор.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 17.06.2009, 21:20:52
Quote (firsacho) я пока не особо уловил закономерность почему так получается (на карте матрица алексбонда снаряды пролетают через небоскребы сделанные из одного большого пикселя, а на карте Pro Studium Mix стены коробки которая окружает карту, не восприимчивы к взрывающему оружию) Я знаю почему это происходит. Дело вот в чем: Физика держится на упрощенной (не сглаженной) модели покселя. Поэтому если объект сглажен, и его обтянуть веревкой, то мы увидим неглаженый контур этого объекта в воздухе. Иными словами, программеры Т17 создали для меньших тормозов, упрощенную физику покселя. Поэтому мы и наблюдаем такие глюки. Кстати каждый поксель имеет свой удельный вес, я думаю в порядке 0.0 ... 1.0 и если много раз долбать Большой поксель, то он в конечном счете разрушается. По поводу глюков в карте матрица, то это тоже объясняется. Мало того что поксель имеет удельный вес, он еще имеет удельную плотность, которая уменьшается при увеличении покселя. Все эти вещи нужно учитывать при создании карт.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 19.06.2009, 04:33:09
Quote (vera34) слушай Алекс ты хорошо пользуешься 3ds max'ом? Ну вот такое с нуля могу сделать: люблю NURBS =)
|
|
|
|
Сообщений: 1042
|
Опубликовано: 19.06.2009, 04:36:46
поковыряй в коде может получится. в Scripts.xml
|
|
|
|
Сообщений: 1042
|
Опубликовано: 19.06.2009, 04:52:30
Итак если найдется более 2-х желающих в декодировании формата xom, то я продолжу тему =)
P.S. Инфа про Xom Формат http://w4-tweaking.bb-fr.com/tweakin....662.htm
http://www.hardline.ru/4/44/5030/
|
|
|
|
Сообщений: 1042
|
Опубликовано: 19.06.2009, 21:00:57
Если ты имеешь в виду w3dt формат. То это простые *.txt из W3D переименовоные в *.w3dt. Создается такой файл очень просто через W3DEditor, но нужен шаблон.
|
|
|
|
Сообщений: 1042
|
Опубликовано: 19.06.2009, 22:02:20
Ладно начнем-с.... Шаг первый Структура xom файла. Небольшое вступление от k^2 Quote Re: Maps Sent at: Wed Nov 22, 2006 12:55 am From: K^2 To: AlexBond Да, если добавлять карты в список проблема таже что и с заменой. По сети это дело не пройдет. Есть несколько идей по поводу синхронизатора который позволит карты закачивать при соединении, но есть сложности. Надо либо создавать виртуальную дерикторию, или перехватывать запрос на открытие потока ввода/вывода файлов, или перехватывать интернет пакеты. В каждом методе свои проблемы. Я примерно знаю как работают текстуры, и уже начал работу по добавке текстур в едитор. К сожалению, добавлять новые текстуры я не умею. Похоже что это возможно, но я так и не понял как. Работая с .xom файлами надо держать в уме то что это очень глупый формат. Общая структура .xom файлов такова. Файл начинается с заголовка в 64 байта. Количество Типов (Type) контейнеров находится по смещению 24 (0x18), а количество Контейнеров (Container) по смещению 28 (0x1c). По смещению 32 (0x20) находится номер корневого контейнера, но по моему, он важен только для карт. Сразу за заголовком следует список типов контейнеров. Каждый элемент списка состоит из 64 байт. В каждом, по смещению 8 (0x08) находится количество контейнеров этого типа, а по 32 (0x20) название типа. После списка типов идет еще один или два сегмента по 16 байт. Их назначение мне неизвестно. Их количество задано байтом по смещению 7 (0x07) в заголовке. Со следующей частью ты знаком. Это список строк. Сдесь собраны все строковые данные в файле, и отсюда они индексуются контейнерами, что и создет сложности с переименованием. По смещению 4 (0x04) наодится количество строк. По смещению 8 (0x08) полная длинна всех строк, включая нулевые байты. Начиная со смещения 12 (0x0c) идет список адресов строк, тоесть смещений относительно первого байта первой строки. Когда из контейнера индексуется строка, индекс является порядковым номером в списке адресов строк, а не номером самой строки. Сразу за этим списком идут сами строки, каждая терминирована нулевым байтом. За списком строк следует список контейнеров. В них содержится вся информация в файле. Все контейнеры сгрупированы по типу и их порядок соответствует порядку типов в списке. Тоесть, если первому типу принадлежат 5 контейнеров, то первые пять будут этого типа, а начиная с 6го следующему типу. Бывают типы с нулем контейнеров. Зачем они нужны, не понятно. Структуру каждого контейнера нужно знать. Они все разные, но контейнеры одного типа имеют одинаковую структуру. Есть несколько общих правил. Во первых, все контейнеры начинаются с последовательности их 7ми байт 'C', 'T', 'N', 'R', 0x00, 0x00, 0x00. Эту последовательность можно использовать для поиска контейнера, что часто необходимо, так как структура и длинна многих контейнеров может быть не известна. Следом за этими байтами идет еще один или два которые содержат индекс строки. Эта строка является идентификацией (ID) или названием этого контейнера. Название может повторятся, поэтому нельзя использовать этот номер как однозначную идентификацию. Интересная особеность байт индексующих строки в том что это может быть один байт или пара. Старший бит первого байта, когда выставлен в 1, говорит о том что следует еще один байт. Этот бит не учитывается при состовление числа. Таким образом, только числа превышающие 127 (0x8f) записываются двумя байтами. Итак теперь нарисую схематичный вид файла: Code Файл Xom: ...шляпа... MOIK | version | ? | Num Types | Num Counteiner | Base Counteiner ...описание типов... TYPE | Num Counteiner | GUID type | Name Type ... и так для всех типов ... ...заголовок таблицы строк... GUID | SCHM |? | STRS | Num Strings | Offset Strings ...индексы строк... offset1 | offset2 | ... | offsetN ...сами строки... 0 | строка | 0 | строка ... контейнеры ... CTNR | data code В кратце звучит так: в фотраме xom идет количество типов, количество контейнеров, описание типов, потом таблица строк, потом сами данные, начинающиеся CNTR и заканчивающиеся началом следующего контейнера. Шаг второй Как же загружается этот формат Программа считывает количество типов и контейнеров, считывает информацию о том какие типы в файле, и то сколько каждого. Затем она считывает таблицу строк. И тут наступает самое сложное, считываются контейнеры, в зависимости от его типа, т.е. размер и контейнера, и тем самым начало следующего определяется типом. Когда все данные загружены в память, по ним строится дерево. Ищется базовый контейнер, который и является корнем дерева, обычно это XDataBank. В этом контейнеры хранятся ссылки на остальные контейнеры. И таким образом строится дерево. (в этом есть большой плюс! Если создан один контейнер, и на него ссылаются куча других, то экономится размер файла, т.е. не нужно писать одинаковые данные. Этим объясняется маленький размер файлов на примере карт) Итак, наша задача, расшифровать как можно больше типов, чтобы можно было построить дерево, если дерево построено верно, то мы сможем изменять файл, именно так я и поступал с Scripts.xom для W3D где все типы я раскодировал, а именно: XContainer LevelDetails XResourceDetails XUintResourceDetails XContainerResourceDetails XDataBank Шаг третий Декодирование типов. Итак для начала приведу список типов к примеру из модели шляпы HatAfro: Code XNode(0) XInteriorNode(1) XGroup(2) XCore(0) XShape(1) XShader(0) XSimpleShader(1) XAttribute(0) XMaterial(1) XImage(1) XTextureSt age(0) XTextureMap(0) XOglTextureMap(1) XGeometry(0) XGeoSet(0) XIndexedGeoSet(0) XIndexedTriangleSet(1) XVertexDataSet(0) XCoordSet (0) XNormalSet(0) XColorSet(0) XTexCoordSet(0) XCoord3fSet(1) XNormal3fSet(1) XColor4ubSet(1) XTexCoord2fSet(1) XIndexArray(0) XInd exSet(1) XMatrix(0) XTransform(1) XCollisionGeometry(1) XCollisionData(2) XFortsExportedData(1) XDetailObjectsData(1) XGraphSet(0) X Container(0) Так мы видем слева в XomView. Где в скобках отмечается количество элементов. На сегодня хватит, переваривайте....
|
|
|
|
Сообщений: 1042
|
Опубликовано: 20.06.2009, 04:54:27
Quote (Герыч) Можешь это поточнее, т.е. длины в байтах и по каждому слову, типа Offset Strings. Все данные, как я понял идут сплошняком? Да все данные идут сплошняком... Что и усложняет декодирование. Offset это длинна таблицы строк, т.е. то где строки кончаются и начинаются контейнеры. В таблице индексов строк, стоят Offset в байтах, до начала нужной строки, длина строки определяется нулем, т.е. Pchar формат. После строк идут данные, сплошняком... Quote (Герыч) Что такое Base Counteiner? Строка/число? Корень дерева, это индекс из всех контейнеров. К примеру контейнеров было 8, и корень последний контейнер, то в байтах он будет 8-м Quote (Герыч) Что есть Name Type? индекс строки/число? это Pchar строка, прямо в коде. Quote (Герыч) Что есть GUID type? ID класса/типа, контейнера, не знаю зачем эта хрень нужна, видимо имени типа/класса не хватает. Приведу пример для наглядности того же HatAfro.xom: Code 000000 4D 4F 49 4B 00 00 00 02 00 00 00 00 00 00 00 00 MOIK............ 000010 00 00 00 00 00 00 00 00 24 00 00 00 15 00 00 00 ........$....... 000020 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000040 54 59 50 45 00 00 00 00 00 00 00 00 00 00 00 00 TYPE............ 000050 2B 8B 1E BF 5D 02 B2 4E B9 37 05 57 5E 57 71 D3 +...]..N.7.W^Wq. 000060 58 4E 6F 64 65 00 00 00 00 00 00 00 00 00 00 00 XNode........... 000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000080 54 59 50 45 00 00 00 00 01 00 00 00 00 00 00 00 TYPE............ 000090 A9 07 E3 8B 05 B7 53 47 9D 80 55 F0 1B 21 22 F8 ......SG..U..!". 0000a0 58 49 6E 74 65 72 69 6F 72 4E 6F 64 65 00 00 00 XInteriorNode... 0000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000c0 54 59 50 45 00 00 00 00 02 00 00 00 00 00 00 00 TYPE............ 0000d0 AE CD D0 DE B7 4D E2 42 84 A7 8B C0 56 73 0B A7 .....M.B....Vs.. 0000e0 58 47 72 6F 75 70 00 00 00 00 00 00 00 00 00 00 XGroup.......... 0000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000100 54 59 50 45 00 00 00 00 00 00 00 00 00 00 00 00 TYPE............ 000110 84 94 2A 34 C8 87 47 4D B5 A2 76 A7 12 67 E1 69 ..*4..GM..v..g.i 000120 58 43 6F 72 65 00 00 00 00 00 00 00 00 00 00 00 XCore........... 000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000140 54 59 50 45 03 00 00 00 01 00 00 00 00 00 00 00 TYPE............ 000150 2E 01 9F F3 00 DE 1B 45 9B 10 CB 09 40 2F 24 B4 .......E....@/$. 000160 58 53 68 61 70 65 00 00 00 00 00 00 00 00 00 00 XShape.......... 000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000180 54 59 50 45 00 00 00 00 00 00 00 00 00 00 00 00 TYPE............ 000190 A0 C3 A4 58 4D 8C 94 4E AE 28 97 5C C0 D2 46 E0 ...XM..N.(.\..F. 0001a0 58 53 68 61 64 65 72 00 00 00 00 00 00 00 00 00 XShader......... 0001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0001c0 54 59 50 45 00 00 00 00 01 00 00 00 00 00 00 00 TYPE............ 0001d0 51 26 BE 21 90 49 C0 41 A5 28 E1 56 2E 8F 1F D0 Q&.!.I.A.(.V.... 0001e0 58 53 69 6D 70 6C 65 53 68 61 64 65 72 00 00 00 XSimpleShader... 0001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000200 54 59 50 45 00 00 00 00 00 00 00 00 00 00 00 00 TYPE............ 000210 5A D5 B8 8C B7 66 C6 4F 86 35 E7 4C 3C EC 02 9B Z....f.O.5.L<... 000220 58 41 74 74 72 69 62 75 74 65 00 00 00 00 00 00 XAttribute...... 000230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000240 54 59 50 45 00 00 00 00 01 00 00 00 00 00 00 00 TYPE............ 000250 EC 48 CC 38 AF 6C FD 41 B7 4E ED 5C 9E 61 0B AE .H.8.l.A.N.\.a.. 000260 58 4D 61 74 65 72 69 61 6C 00 00 00 00 00 00 00 XMaterial....... 000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000280 54 59 50 45 00 00 00 00 01 00 00 00 00 00 00 00 TYPE............ 000290 22 BF 3F 96 30 32 89 4C A4 40 95 66 FE C7 DA A4 ".?.02.L.@.f.... 0002a0 58 49 6D 61 67 65 00 00 00 00 00 00 00 00 00 00 XImage.......... 0002b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Всего 36(0x24) типов из них 21(0x15) контейнеров, в которых 21(0x15) базовый. Но что самое интересное, так это то что 21-ого контейнера нету!!! Их вообще всего 20 в типах... Но последний контейнер, подозрительно слишком длинный, и имеет таблицу индексов, я думаю что это должен быть контейнер XGraphSet, но в описании типов для него ноль контейнеров... и перед началом этого контейнера не ставится CTRN почему???????? я не знаю....
|
|
|
|
Сообщений: 1042
|
Опубликовано: 20.06.2009, 05:21:52
Я нашел закономерность!!!!!!!! Пустые тыпы, это надклассы!!!!! XNode(0) -> XInteriorNode(1) XGroup(2) XCore(0) -> XShape(1) XShader(0)-> XSimpleShader(1) XAttribute(0) -> XMaterial(1) XImage(1) XTextureStage(0) -> XTextureMap(0) -> XOglTextureMap(1) XGeometry(0)-> XGeoSet(0) -> XIndexedGeoSet(0)-> XIndexedTriangleSet(1) XVertexDataSet(0) XCoordSet (0) XNormalSet(0) XColorSet(0) XTexCoordSet(0) XCoord3fSet(1) XNormal3fSet(1) XColor4ubSet(1) XTexCoord2fSet(1) XIndexArray(0) -> XIndexSet(1) XMatrix(0) -> XTransform(1) XCollisionGeometry(1) XCollisionData(2) XFortsExportedData(1) XDetailObjectsData(1) XGraphSet(0) XContainer(0) Уже что-то вырисовывается
|
|
|
|
Сообщений: 1042
|
Опубликовано: 20.06.2009, 14:43:16
Кое что еще расшифровывается: XIndexedTriangleSet(1) : Code 01 00 00 0E 00 00 00 00 D2 00 00 00 0A 0B 0C 0D 00 FF FF 7F 7F FF FF 7F 7F FF FF 7F 7F FF FF 7F FF FF FF 7 F FF FF FF 7F FF 01 00 00 00 0x0E 0x0A 0x0B 0x0C 0x0D - прямые индексы на контейнеры XIndexSet(1) XCoord3fSet(1) XNormal3fSet(1) XColor4ubSet(1) XTexCoord2fSet(1) Похожая структура и в 3DS файлах. Загадка что такое 0xD2 и FF FF 7F 7F FF FF 7F 7F FF FF 7F 7F FF FF 7F FF FF FF 7F FF FF FF 7F FF ... По поводу пустых контейнеров, то я думаю это надклассы , попробую их связать: Code XNode(0) -> XInteriorNode(1) XGroup(2) XCore(0) -> XShape(1) XShader(0)-> XSimpleShader(1) XAttribute(0) -> XMaterial(1) XImage(1) XTextureStage(0) -> XTextureMap(0) -> XOglTextureMap(1)
XGeometry(0)-> XGeoSet(0) -> XIndexedGeoSet(0)-> XIndexedTriangleSet(1) XVertexDataSet(0) -> XCoordSet (0) -> XCoord3fSet(1) XVertexDataSet(0) -> XNormalSet(0) -> XNormal3fSet(1) XVertexDataSet(0) -> XColorSet(0) -> XColor4ubSet(1) XVertexDataSet(0) -> XTexCoordSet(0) -> XTexCoord2fSet(1)
XIndexArray(0) -> XIndexSet(1) XMatrix(0) -> XTransform(1) XCollisionGeometry(1) XCollisionData(2) XFortsExportedData(1) XDetailObjectsData(1) XGraphSet(0) !!!!!!! тут оказывается не ноль а 1!!!!! что решает не стыковку о количестве XContainer(0)
|
|
|
|