TXD — различия между версиями

Материал из GTAModding.ru
Перейти к: навигация, поиск
м
м (Структура)
Строка 11: Строка 11:
  
 
     * Texture Dictionary
 
     * Texture Dictionary
           o Struct - 2b - количество текстур в архиве, 2b - неизвестно
+
           o Struct - 2b - количество текстур в архиве, 1b - deviceId (обычно 0), 1b - 0.
 
           o Texture Native - данная секция в TXD может повторяться несколько раз, в зависимости от количества текстур в архиве.
 
           o Texture Native - данная секция в TXD может повторяться несколько раз, в зависимости от количества текстур в архиве.
 
                 + Struct - заголовок с именем и параметрами текстуры + тело текстуры
 
                 + Struct - заголовок с именем и параметрами текстуры + тело текстуры

Версия 15:42, 5 апреля 2014

TXD (TeXture Dictionary) - формат, использующийся Rockstar Games для хранения игровой графики в GTA III, GTA: Vice City, GTA: San Andreas, а также Bully, The Warriors и Manhunt. TXD - это платформозависимый формат (англ. platform specific texture dictionary), таким образом файлы этого формата имеют практически идентичную структуру на одной и той же платформе, но сильно различаются на разных платформах.

Содержание

Основные данные

Все текстуры в GTA третьей серии закодированы в виде бинарных потоков - RenderWare binary stream file, специализированных для движка RenderWare, используемого в игре. Все бинарные потоки с текстурами имеют расширение TXD (TeXture Dictionary), для просмотра и редактирования иерархии которого существует программа RW Analyze от Steve M. Для создания, изменения текстур в архиве и их типа компрессии так же используют специальные программы, а именно PS2 TXD Viewer (только для просмотра текстур на PS2), G-TXD и TXD Workshop.

Типы текстур

Текстуры в GTA можно разделить на 4-битные (только для PS2), 8-битные, 16-битные, 32-битные. Разрешения всех текстур в ГТА обычно кратно N^2, т.е. встречаются 2х2, 4х4, 2x4 и т.д. В некоторых модах можно встретить нестандартные разрешения текстур, использование которых так же не запрещено документацией RenderWare.

Структура

1. Архив текстур PC и X-BOX (TXD)

   * Texture Dictionary
         o Struct - 2b - количество текстур в архиве, 1b - deviceId (обычно 0), 1b - 0.
         o Texture Native - данная секция в TXD может повторяться несколько раз, в зависимости от количества текстур в архиве.
               + Struct - заголовок с именем и параметрами текстуры + тело текстуры
               + Extension - дополнение подсекции (не используется) 
         o Extension - дополнение секции (не используется)

2. Архив текстур PS2 (TXD)

   * Texture Dictionary
         o Struct - 2b - количество текстур в архиве, 2b - неизвестно
         o Texture Native - данная секция в TXD может повторяться несколько раз, в зависимости от количества текстур в архиве.
               + Struct - 4b - платформа (строка "PS2"), 4b- флаги фильтра
               + String - имя текстуры
               + String - имя альфа-канала текстуры
               + Struct
                     # Struct - 4b- ширина, 4b - высота, 4b - битность, неизвестно
                     # Struct - 80 bytes неизвестно, пиксели/индексы (80 bytes неизвестно, палитра) 
               + Extension - дополнение секции 
                     # Sky Mipmap Val (RW Section) - 4 bytes неизвестно 
         o Extension - дополнение секции (0b - пусто - не используется)

Swizzling

Важно отметить, что на PS2 растр может хранится с использованием swizzling'а и для корректного отображения в графическом редакторе нужно преобразовать текстуру.

Особенности в GTA3 на платформе X-BOX

В TXD-файлах, содержащихся в IMG-архиве X-BOX версии GTA3 (не путать с модом GTAIII X-BOX version), применён специальный тип компрессии. Для их распаковки существует утилита dffxbox2pc от АК-73 aka Alex. После её применения TXD-архив открывается любым TXD-редактором (правда альфа-канал читается неверно).

Альфа канал

К изображениям в TXD также применим альфа канал. Разрешение текстуры и её альфа-канала всегда равны. Альфа канал, также известный как маска-канал - это черно-белое изображение, применяется с целью создания эффекта частичной прозрачности, либо с целью определения контуров, если модель выполняет роль спрайта в игровой сцене. Таким образом черные сектора альфа-канала определяют полную прозрачность, белые - полную видимость, а участки с разными оттенками серого определяют частичную прозрачность накладываемой на объект текстуры. Примеры - текстуры стекла, растительности, particle-эффектов, шрифтов и т.д.

Для наглядности возьмём текстуру и её альфа-канал:

TXD redtext image.gif TXD redtext alpha.gif

В итоге мы получим красный текст.

Компрессия текстур в TXD

GTA3, GTA VC и GTA SA поддерживают TXD с компрессированными текстурами. Алгоритмы компрессии, применяемые для текстур в игре - DXT1 (для текстур без альфа-канала) и DXT3 (для текстур с альфа-каналом). Использование в модах текстур с компрессией существенно снижает размер мода, при этом качество текстуры падает не очень существенно. Тем более все современные видеокарты уже умеют работать с компрессованными текстурами. Компрессию не рекомендуется применять для текстур particle-эффектов, где после компрессии в альфа-канале могут наблюдаются сильные искажения кривой градиента, что очень заметно проявляется в игре.

GENERIC текстуры

В GTA3, GTA VC и GTA SA для моделей игровой карты можно создавать и использовать TXD вне IMG-архива. Этот тип текстур считается общим, они ищутся и загружаются движком автоматически, при загрузке игры, по адресу, указанному в gta3.dat или default.dat. Данный тип внедрён специально только для разработчиков игры, для прямого редактирования текстур без обращения к IMG-архиву игры, а так же для подгонки системных требований игры под требования заказчика. Соответственно разработчиками модов эта возможность нигде не применяется (кроме GTA Stories) и задокументирована Херомантом007 только на gtamodding.ru и gtamaps.net.

1. Для GTA3 и GTA VC - в исполняемый файл игры зашито только одно единственное имя GENERIC'а карты - generic.txd. Механизм использования множества общих текстур на карте очень простое - создаём любые папки в игровой директории (имена папок соответственно на английском языке), в каждую папку помещаем какой-нибудь TXD-файл, используемый картой и переименовываем его в generic.txd. Затем прописываем путь к архиву в gta3.dat или default.dat, а так же не забываем в секции objs ИДЕшника привязать нужную модель к generic.txd. Например, я создал в папке TXD архив generic.txd, добавил строчку в gta3.dat "TEXDICTION TXD\GENERIC.TXD" и в каком-то IDE у меня есть строчечка "5002, ind_land052, generic, 1, 300, 0". Всё, теперь движок видит все добавленные текстуры и отрисовывает их на игровой карте.

2. Для GTA SA - в исполняемый файл игры так же зашито только одно единственное имя GENERIC'а карты - generic.txd. Но так же движок GTA SA поддерживает и дочерние текстуры, на которые по принципу наследования распространяются и параметры их родителей, заданные в исполняющем файле, в том числе и параметр GENERIC. За счёт этого можно создавать внешние TXD со своими именами. Делается это так: сначала создаём где-нибудь generic.txd и прописываем его в игре так же точно, как это описано для GTA3 и GTA VC; после этого, как ресурсов generic.txd нам становится мало, в директории игры создаётся ещё один TXD-файл с любым англоязычным уникальным именем (удобнее это делать в папке GENERIC) и прописываем так же путь к нему в gta3.dat или default.dat, а в IDE, кроме указания имени текстуры в секции objs, так же прописываем её как дочернюю по отношению к generic.txd в секции txdp. Пример: я создал текстуру jetty.txd в папке GENERIC, прописал её в gta3.dat как "TEXDICTION MODELS\GENERIC\jetty.txd", в IDE у меня есть строчки "5002, ind_land052, generic, 300, 0" в секции objs и "jetty, generic" в секции txdp. Всё, теперь движок видит все добавленные текстуры и отрисовывает их на игровой карте.

п · о · р
San Andreas Grand Theft Auto: San Andreas
Форматы файлов.col.cfg.cut.dff.dat.fxp.gxt.ide.ifp.img.ipl.rep.rrr.scm.txd.set
Документацияcarcols.datCarrecPed EventsPed TypeАдреса Памяти Функций (SA)Анимация моделей в SAВизуальные эффекты в скриптинге
Загруженные звукиКатсценыНомера оружияРисование на экранеТрюки с меткамиСтатистикаСтруктура аудио в SABeta версия
ИнструментыCLEOCollision File Editor IIENBSeriesG-ToolsGXT EditorIMG ToolPS2 TXD ModPS2 TXD ViewerLimit AdjusterMap EditorPathViewer
San Andreas Audio ToolkitSan Andreas Texture PlacerSanny BuilderTXD WorkshopTXDFuckerXBOX TXD PowerTool
ТуториалыРедактирование аудио в SAИзменение cutsceneDecision MakerПропуск роликовКонвертация автомобилей в SA
Основы маппинга GTA:SAДелаем ломающиеся объектыКонвертирование персонажа в SA2dfx в SanAndreasМоддинг San Andreas v2.0
Новая анимация персонажейУниверсальный солдат (GTA SA)
МодыAlien CityDesign Your Own MissionGTA: UnitedGTA StoriesGTA Berlin
МультиплеерgtaTournamentMulti Theft AutoSan Andreas Multiplayer
п · о · р
Vice City Grand Theft Auto: Vice City
Форматы файлов.adf.col.cfg.dff.dat.gxt.ide.ifp.img/.dir.ipl.raw/.sdt.rep.sc.scm.set.txd.zon
ИнструментыCLEOClump ViewerCol-IO‎Collision File Editor IIData toolDFF Viewerdffxbox2pcG-ToolsGame Archive Viewer
GTA Garage Mod ManagerGTA3 Script CompilerGXT EditorIMG ToolKam's Max ScriptsMap EditorMod GeneratorMod InstallerMoo Mapper
PS2 TXD ModPS2 TXD ViewerResourse HackerRotation CalculatorRW AnalyzeSanny BuilderTXD Workshop
TXD_2048TXDFuckerVC Limit AdjusterVC Mission BuilderViceTXDVC SeterVCFCToolWater EditorYAIEZModeler
МодификацииUltimate VCModern ModSnow ModDeluxeMilleniumNew AgeKiller KipAliens vs. Predator
GTA Long NightGTA Liberty CityGTA Myriad IslandsGTA State Of Liberty
ОтечественныеМентовский БеспределCделано в СССРUndergroundLost HeavenКыштымНостальгияXBox Mod (Коктейль)
МультиплейерMulti Theft AutoVice City Online
п · о · р
GTA III Grand Theft Auto III
Форматы файлов.b.a3d.anm.col.cfg.dff.dat.gxt.ide.ifp.img/.dir.ipl.raw/.sdt.rep.sc.scm.set.txd.zon
Документацияcarcols.datCHASE.DATCULLZONE.DATcuts.imgdefault.datfistfite.datflight.datgta3.exegta3.dat
gta3.imggta3.zonhandling.cfgmain.scmmap.datmap.zonobject.datparticle.cfgped.datpedgrp.dat
pedstats.datsfx.rawsurface.datTimeCyc.DATtracks.dattrain.datwater.datwaterpro.datweapon.dat
ИнструментыCLEOClump ViewerCol-IO‎Collision File Editor IIData toolDFF Viewerdffxbox2pcG-ToolsGTA Garage Mod Manager
GXT EditorGTA3 Limit AdjusterGTA3 Mission BuilderGTA3 PatcherIMG ToolKam's Max ScriptsMap Editor
Mod GeneratorMod InstallerMoo MapperPS2 TXD ModPS2 TXD ViewerResourse HackerRotation Calculator
RW AnalyzeViceTXDWater EditorSanny BuilderTXD ToolTXD WorkshopYAIEZModeler
Туториалыраздел в разработке
Классические МодыGPS RadarBye-Bye BikiniUltimate Stunt ParkThe SphereMiss LibertyIllandoIntercity HighwayShoreside Bridge
Rockstar HeightsLighthouse BridgeBlade FunparkOrbital CityLakeside IslandLiberty PenitentiaryJEM Island
Illando HelixCliff Climbing Mountain
Глобальные МодыReal GTA3Twenty TenSnow CityFrosted WinterUltimateBeta modX-box modBad BusinessGTA3 HDUltra mod
OpenTunnelsBack to the Future
МультиплеерMulti Theft AutoLiberty Unleashed
Исходники4x48ballambulanceasukaasusbcameracar_gencatcopcardebugdemodiablofiretruckfrankgates
genstufhealthhjhoodimportintrojoeykenjiloveluigimayhemmeatpickupsrampagerayrcswitch
taxitoniusjwantedyard
п · о · р
Manhunt.png Manhunt
Форматы файлов.bik.bsp.col.dff.grf.gxt.ifp.inst.fxp.mls.pak.rib.raw/.sdt/.lst.scc.spl.txd
ИнструментыClump ViewerCol-IO‎Collision File Editor IIDFF ViewerG-ToolsKam's Max ScriptsPS2 TXD Mod
PS2 TXD ViewerRW AnalyzeViceTXDTXD WorkshopZModeler