2DFX (Секция RW) — различия между версиями
Материал из GTAModding.ru
DK22 (обсуждение | вклад) (→Записи) |
Solom (обсуждение | вклад) (→Ссылки) |
||
(не показаны 16 промежуточных версий 1 участника) | |||
Строка 12: | Строка 12: | ||
Заголовок состоит из 20 байтов. | Заголовок состоит из 20 байтов. | ||
− | 0x00 | | + | 0x00 | float[3] offset // Координаты вектора (xyz) |
− | 0x0C | DWORD type // Тип 2DFX | + | 0x0C | DWORD type // Тип 2DFX |
− | 0x10 | DWORD size // Размер данных | + | 0x10 | DWORD size // Размер данных |
− | === | + | ===Тип 0 - Источник света=== |
Этот тип используется, чтобы создать источник света. Размер может составлять 76 или 80 байт. | Этот тип используется, чтобы создать источник света. Размер может составлять 76 или 80 байт. | ||
*При размере 76 байт | *При размере 76 байт | ||
− | 0x00 | | + | 0x00 | BYTE[4] color // Цвет. Значение alpha обычно равно 200 |
− | 0x04 | float | + | 0x04 | float coronaFarClip // Дистанция видимости короны |
− | 0x08 | float | + | 0x08 | float pointlightRange // Радиус точечного источника света (повершиноое освещение моделей, у которых отсутсвует прелит) |
− | 0x0C | float | + | 0x0C | float coronaSize // Размер короны (высота = ширина) |
− | 0x10 | float | + | 0x10 | float shadowSize // Размер тени (высота = ширина) |
− | 0x14 | BYTE | + | 0x14 | BYTE coronaShowMode // Тип отображения короны (1-13) |
− | 0x15 | BYTE | + | 0x15 | BYTE coronaEnableReflection // Включить отражение короны на мокром асфальте |
− | 0x16 | BYTE | + | 0x16 | BYTE coronaFlareType // Тип бликов для короны (0-1-2) |
− | 0x17 | BYTE | + | 0x17 | BYTE shadowColorMultiplier // Интенсивность тени |
− | 0x18 | BYTE | + | 0x18 | BYTE flags1 // Набор флагов 1 |
− | 0x19 | char | + | 0x19 | char coronaTexName[24] // Название текстуры короны в particle.txd |
− | 0x31 | char | + | 0x31 | char shadowTexName[24] // Название текстуры тени в particle.txd |
− | 0x49 | BYTE | + | 0x49 | BYTE shadowZDistance // Максимальное расстояние для отрисовки тени |
− | 0x4A | BYTE | + | 0x4A | BYTE flags2 // Набор флагов 2 |
− | 0x4B | BYTE | + | 0x4B | BYTE padding |
*При размере 80 байт | *При размере 80 байт | ||
− | 0x00 | | + | 0x00 | BYTE[4] color // Цвет. Значение alpha обычно равно 200 |
− | 0x04 | float | + | 0x04 | float coronaFarClip // Дистанция видимости короны |
− | 0x08 | float | + | 0x08 | float pointlightRange // Радиус точечного источника света (повершиноое освещение моделей, у которых отсутсвует прелит) |
− | 0x0C | float | + | 0x0C | float coronaSize // Размер короны (высота = ширина) |
− | 0x10 | float | + | 0x10 | float shadowSize // Размер тени (высота = ширина) |
− | 0x14 | BYTE | + | 0x14 | BYTE showMode // Тип отображения (1-13) |
− | 0x15 | BYTE | + | 0x15 | BYTE coronaEnableReflection // Включить отражение короны на мокром асфальте |
− | 0x16 | BYTE | + | 0x16 | BYTE coronaFlareType // Тип бликов для короны (0-1-2) |
− | 0x17 | BYTE | + | 0x17 | BYTE shadowColorMultiplier // Интенсивность тени |
− | 0x18 | BYTE | + | 0x18 | BYTE flags1 // Набор флагов 1 |
− | 0x19 | char | + | 0x19 | char coronaTexName[24] // Название текстуры короны в particle.txd |
− | 0x31 | char | + | 0x31 | char shadowTexName[24] // Название текстуры тени в particle.txd |
− | 0x49 | BYTE | + | 0x49 | BYTE shadowZDistance // Максимальное расстояние для отрисовки тени |
− | 0x4A | BYTE | + | 0x4A | BYTE flags2 // Набор флагов 2 |
− | 0x4B | BYTE | + | 0x4B | BYTE[3] viewVector // Вектор (xyz) определяет, из какой стороны видно источник света (xyz). Используется игрой только при включенном флаге CHECK_VIEW_VECTOR |
− | + | 0x4E | BYTE[2] padding | |
− | + | ||
− | 0x4E | BYTE | + | |
Набор флагов 1 (flags1) | Набор флагов 1 (flags1) | ||
1 CORONA_CHECK_OBSTACLES // Если между короной и камерой есть какие-либо обьекты, корона отрисована не будет | 1 CORONA_CHECK_OBSTACLES // Если между короной и камерой есть какие-либо обьекты, корона отрисована не будет | ||
Строка 62: | Строка 60: | ||
32 AT_DAY // Работает днём | 32 AT_DAY // Работает днём | ||
64 AT_NIGHT // Работает ночью | 64 AT_NIGHT // Работает ночью | ||
− | 128 BLINKING1 // Мигает | + | 128 BLINKING1 // Мигает (почти незаметно) |
Набор флагов 2 (flags2) | Набор флагов 2 (flags2) | ||
1 CORONA_ONLY_FROM_BELOW // Корону видно только снизу (когда высота позиции камеры меньше высоты источника света) | 1 CORONA_ONLY_FROM_BELOW // Корону видно только снизу (когда высота позиции камеры меньше высоты источника света) | ||
− | 2 BLINKING2 // Мигает | + | 2 BLINKING2 // Мигает (очень быстро) |
4 UDPDATE_HEIGHT_ABOVE_GROUND // Обновлять значение дистанции от короны до земли (используется для создания отражения короны) | 4 UDPDATE_HEIGHT_ABOVE_GROUND // Обновлять значение дистанции от короны до земли (используется для создания отражения короны) | ||
− | 8 | + | 8 CHECK_VIEW_VECTOR // Работает только если камера занимает определённую позицию (вектор lookDirection) |
− | 16 BLINKING3 // Мигает | + | 16 BLINKING3 // Мигает (рандомно) |
+ | Типы отображения (showMode) | ||
+ | 0 DEFAULT | ||
+ | 1 RANDOM_FLASHING | ||
+ | 2 RANDOM_FLASHIN_ALWAYS_AT_WET_WEATHER | ||
+ | 3 LIGHTS_ANIM_SPEED_4X // Используется на модели 10 green bottles. Огни поочередно включаются-выключаются. | ||
+ | 4 LIGHTS_ANIM_SPEED_2X // Используется на небоскребах в San Fierro | ||
+ | 5 LIGHTS_ANIM_SPEED_1X | ||
+ | 6 | ||
+ | 7 TRAFFICLIGHT | ||
+ | 8 TRAINCROSSLIGHT | ||
+ | 9 // Не работает (источник света постоянно выключен) | ||
+ | 10 AT_RAIN_ONLY // Включается только в дождливую погоду | ||
+ | 11 // 5с - вкл., 5с - выкл. | ||
+ | 12 // 6с - вкл., 4с - выкл. | ||
+ | 13 // 6с - вкл., 4с - выкл. | ||
− | === | + | ===Тип 1 - Партикл-эффект=== |
Этот тип используется для эффекта частиц. Состоит из 24 байтов. | Этот тип используется для эффекта частиц. Состоит из 24 байтов. | ||
0x00 | char particleName[24] // Имя эффекта частиц | 0x00 | char particleName[24] // Имя эффекта частиц | ||
Имена эффектов частиц присутствуют в файле effect.fxp. | Имена эффектов частиц присутствуют в файле effect.fxp. | ||
− | === | + | ===Тип 3 - Аттрактор пешеходов=== |
PED секция состоит из 56 байтов. Используется для появления пешеходов (Например на стульях, в магазинах, на скамейках и др..) | PED секция состоит из 56 байтов. Используется для появления пешеходов (Например на стульях, в магазинах, на скамейках и др..) | ||
− | + | 0x00 | BYTE eventType // Тип поведения | |
− | + | 0x01 | BYTE[3] padding | |
− | + | 0x04 | float[3][3] rotation // Вращение (right, top, at) | |
− | + | 0x28 | char[8] scriptName // Имя внешнего скрипта | |
− | + | 0x30 | BYTE existingProbability // Вероятность появления пешехода | |
− | + | 0x31 | BYTE[3] padding | |
− | + | 0x34 | BYTE unknown1 | |
− | + | 0x35 | BYTE padding | |
+ | 0x36 | BYTE unknown2 | ||
+ | 0x37 | BYTE padding | ||
− | === | + | Тип поведения(eventType) |
+ | 0 PED_ATM_ATTRACTOR // Пед использует банкомат в дневное время | ||
+ | 1 PED_SEAT_ATTRACTOR // Пед сидит на лавке в дневное время | ||
+ | 2 PED_STOP_ATTRACTOR // Пед стоит в дневное время | ||
+ | 3 PED_PIZZA_ATTRACTOR // Пед стоит и уходит | ||
+ | 4 PED_SHELTER_ATTRACTOR // Пед стоит, если идёт дождь, и уходит, если дождя нет | ||
+ | 5 PED_TRIGGER_SCRIPT_ATTRACTOR // Использование скриптового сценария: COPSIT, COPLOOK, BROWSE, DANCER, BARGUY, PEDROUL, PEDCARD, PEDSLOT, STRIPW, STRIPM | ||
+ | 6 PED_LOOK_AT_ATTRACTOR // Пед стоит и уходит | ||
+ | 7 PED_SCRIPTED_ATTRACTOR // Приводит к вылету игры | ||
+ | 8 PED_PARK_ATTRACTOR // Пед лежит и уходит после 6и часов | ||
+ | 9 PED_STEP_ATTRACTOR // Пед сидит на ступеньках у дома | ||
+ | |||
+ | ===Тип 4 - Солнечный блик=== | ||
Этот тип используется для создания бликов солнца на обьекте (в виде корон). Данный тип использует только данные из заголовка (позиция). | Этот тип используется для создания бликов солнца на обьекте (в виде корон). Данный тип использует только данные из заголовка (позиция). | ||
− | === | + | ===Тип 6 - Система "Вход-выход"=== |
Тип может вызвать вылеты в игре! Используется например в модели ''barrio3b_lae.dff'. | Тип может вызвать вылеты в игре! Используется например в модели ''barrio3b_lae.dff'. | ||
Строка 103: | Строка 130: | ||
4b - INT32 - [http://gtamodding.ru/wiki/IPL#.D0.A6.D0.B2.D0.B5.D1.82.D0.B0_.D0.BD.D0.B5.D0.B1.D0.B0_ENEX_.D1.81.D0.B5.D0.BA.D1.86.D0.B8.D0.B8 Цвет неба] | 4b - INT32 - [http://gtamodding.ru/wiki/IPL#.D0.A6.D0.B2.D0.B5.D1.82.D0.B0_.D0.BD.D0.B5.D0.B1.D0.B0_ENEX_.D1.81.D0.B5.D0.BA.D1.86.D0.B8.D0.B8 Цвет неба] | ||
− | === | + | ===Тип 7 - Дорожный указатель=== |
− | + | Этот тип создаёт текст в 3d-мире. Размер составляет 88 байтов. | |
− | Этот тип | + | 0x00 | RwV2d size // Масштаб (xy) |
− | + | 0x08 | RwV3d rotation // Поворот (xyz) | |
− | + | 0x14 | WORD flags // Флаги | |
− | + | 0x16 | RwChar text[16][4] // Текст (4 строки) | |
− | + | '''Флаги (flags)''' | |
− | + | ||
+ | ''Биты 0-1 - Количество используемых строк'' | ||
+ | 0 - 4 строки | ||
+ | 1 - 1 строка | ||
+ | 2 - 2 строки | ||
+ | 3 - 3 строки | ||
+ | ''Биты 2-3 - Количество символов в строке'' | ||
+ | 0 - 16 символов | ||
+ | 1 - 2 символа | ||
+ | 2 - 4 символа | ||
+ | 3 - 8 символов | ||
+ | ''Биты 4-5 - Цвет текста'' | ||
+ | 0 - 0xFFFFFFFF (белый) | ||
+ | 1 - 0xFF000000 (чёрный) | ||
+ | 2 - 0xFF808080 (серый) | ||
+ | 3 - 0xFF0000FF (красный) | ||
Строки могут начинаться с таких символов, как <code><</code>, <code>^</code> и <code>></code>; также символ <code>_</code> используется вместо пробела. | Строки могут начинаться с таких символов, как <code><</code>, <code>^</code> и <code>></code>; также символ <code>_</code> используется вместо пробела. | ||
− | === | + | ===Тип 8 - Колесо игрового автомата=== |
Это игровые автоматы. | Это игровые автоматы. | ||
Строка 123: | Строка 164: | ||
Положение индекса это положение колеса игрового автомата. Может быть, позицией можно управлять через SCM. | Положение индекса это положение колеса игрового автомата. Может быть, позицией можно управлять через SCM. | ||
− | === | + | ===Тип 9 - Укрытие=== |
− | + | Этот тип определяет места на карте, в которых можно спрятаться (может использоваться педами при перестрелке). | |
Стурктура: | Стурктура: | ||
− | 4b - FLOAT - X | + | 4b - FLOAT - Позиция X |
− | 4b - FLOAT - Y | + | 4b - FLOAT - Позиция Y |
− | 4b - INT32 - | + | 4b - INT32 - Тип укрытия |
− | + | ||
− | + | ||
+ | ===Тип 10 - Эскалатор=== | ||
Этот тип относится к эскалаторам. Размер равен 40 байтам. | Этот тип относится к эскалаторам. Размер равен 40 байтам. | ||
− | + | 0x00 | RwV3d bottom // Нижняя часть эскалатора (xyz) | |
− | + | 0x0С | RwV3d top // Верхняя часть эскалатора (xyz) | |
− | + | 0x18 | RwV3d end // Конечная точка эскалатора (точка Z должна быть наверху, если эскалатор | |
− | + | // едет вверх, если вниз, то на нижней позиции эскалатора) | |
− | + | 0x24 | DWORD direction // Направление движения (0 - Вниз, 1 - Вверх) | |
− | + | ||
− | + | ||
− | + | ||
== Ссылки == | == Ссылки == | ||
[http://gtamaps.net/forum/index.php?showtopic=13978 Статья о том, как создать эскалатор + скрипт] | [http://gtamaps.net/forum/index.php?showtopic=13978 Статья о том, как создать эскалатор + скрипт] | ||
+ | |||
+ | [http://gtaforums.com/topic/576214-tutsa-creating-2dfx-for-your-models/ Создание 2dfx с помощью 2dfx tool] | ||
[[Категория:GTA SA]] | [[Категория:GTA SA]] |
Текущая версия на 23:16, 18 июля 2014
Секция RenderWare |
2dfx |
0x0253F2F8 |
2dfx - одна из секции в RW. В GTA SA используется для расположения света, эффектов частиц и прочего. Предыдущие игры серии (а также GTA 4) использует 2dfx в IDE файлах.
Содержание |
Заголовок
Секция 2dfx начинается с 4рёх байта DWORD, в котором указана информация о количестве используемых записей в данной секции.
Записи
Заголовок состоит из 20 байтов.
0x00 | float[3] offset // Координаты вектора (xyz) 0x0C | DWORD type // Тип 2DFX 0x10 | DWORD size // Размер данных
Тип 0 - Источник света
Этот тип используется, чтобы создать источник света. Размер может составлять 76 или 80 байт.
- При размере 76 байт
0x00 | BYTE[4] color // Цвет. Значение alpha обычно равно 200 0x04 | float coronaFarClip // Дистанция видимости короны 0x08 | float pointlightRange // Радиус точечного источника света (повершиноое освещение моделей, у которых отсутсвует прелит) 0x0C | float coronaSize // Размер короны (высота = ширина) 0x10 | float shadowSize // Размер тени (высота = ширина) 0x14 | BYTE coronaShowMode // Тип отображения короны (1-13) 0x15 | BYTE coronaEnableReflection // Включить отражение короны на мокром асфальте 0x16 | BYTE coronaFlareType // Тип бликов для короны (0-1-2) 0x17 | BYTE shadowColorMultiplier // Интенсивность тени 0x18 | BYTE flags1 // Набор флагов 1 0x19 | char coronaTexName[24] // Название текстуры короны в particle.txd 0x31 | char shadowTexName[24] // Название текстуры тени в particle.txd 0x49 | BYTE shadowZDistance // Максимальное расстояние для отрисовки тени 0x4A | BYTE flags2 // Набор флагов 2 0x4B | BYTE padding
- При размере 80 байт
0x00 | BYTE[4] color // Цвет. Значение alpha обычно равно 200 0x04 | float coronaFarClip // Дистанция видимости короны 0x08 | float pointlightRange // Радиус точечного источника света (повершиноое освещение моделей, у которых отсутсвует прелит) 0x0C | float coronaSize // Размер короны (высота = ширина) 0x10 | float shadowSize // Размер тени (высота = ширина) 0x14 | BYTE showMode // Тип отображения (1-13) 0x15 | BYTE coronaEnableReflection // Включить отражение короны на мокром асфальте 0x16 | BYTE coronaFlareType // Тип бликов для короны (0-1-2) 0x17 | BYTE shadowColorMultiplier // Интенсивность тени 0x18 | BYTE flags1 // Набор флагов 1 0x19 | char coronaTexName[24] // Название текстуры короны в particle.txd 0x31 | char shadowTexName[24] // Название текстуры тени в particle.txd 0x49 | BYTE shadowZDistance // Максимальное расстояние для отрисовки тени 0x4A | BYTE flags2 // Набор флагов 2 0x4B | BYTE[3] viewVector // Вектор (xyz) определяет, из какой стороны видно источник света (xyz). Используется игрой только при включенном флаге CHECK_VIEW_VECTOR 0x4E | BYTE[2] padding
Набор флагов 1 (flags1)
1 CORONA_CHECK_OBSTACLES // Если между короной и камерой есть какие-либо обьекты, корона отрисована не будет 2 FOG_TYPE // Определяет тип тумана для точечного источника света 4 FOG_TYPE // Определяет тип тумана для точечного источника света 8 WITHOUT_CORONA // Не создавать корону 16 CORONA_ONLY_AT_LONG_DISTANCE // Корону видно только издалека 32 AT_DAY // Работает днём 64 AT_NIGHT // Работает ночью 128 BLINKING1 // Мигает (почти незаметно)
Набор флагов 2 (flags2)
1 CORONA_ONLY_FROM_BELOW // Корону видно только снизу (когда высота позиции камеры меньше высоты источника света) 2 BLINKING2 // Мигает (очень быстро) 4 UDPDATE_HEIGHT_ABOVE_GROUND // Обновлять значение дистанции от короны до земли (используется для создания отражения короны) 8 CHECK_VIEW_VECTOR // Работает только если камера занимает определённую позицию (вектор lookDirection) 16 BLINKING3 // Мигает (рандомно)
Типы отображения (showMode)
0 DEFAULT 1 RANDOM_FLASHING 2 RANDOM_FLASHIN_ALWAYS_AT_WET_WEATHER 3 LIGHTS_ANIM_SPEED_4X // Используется на модели 10 green bottles. Огни поочередно включаются-выключаются. 4 LIGHTS_ANIM_SPEED_2X // Используется на небоскребах в San Fierro 5 LIGHTS_ANIM_SPEED_1X 6 7 TRAFFICLIGHT 8 TRAINCROSSLIGHT 9 // Не работает (источник света постоянно выключен) 10 AT_RAIN_ONLY // Включается только в дождливую погоду 11 // 5с - вкл., 5с - выкл. 12 // 6с - вкл., 4с - выкл. 13 // 6с - вкл., 4с - выкл.
Тип 1 - Партикл-эффект
Этот тип используется для эффекта частиц. Состоит из 24 байтов.
0x00 | char particleName[24] // Имя эффекта частиц
Имена эффектов частиц присутствуют в файле effect.fxp.
Тип 3 - Аттрактор пешеходов
PED секция состоит из 56 байтов. Используется для появления пешеходов (Например на стульях, в магазинах, на скамейках и др..)
0x00 | BYTE eventType // Тип поведения 0x01 | BYTE[3] padding 0x04 | float[3][3] rotation // Вращение (right, top, at) 0x28 | char[8] scriptName // Имя внешнего скрипта 0x30 | BYTE existingProbability // Вероятность появления пешехода 0x31 | BYTE[3] padding 0x34 | BYTE unknown1 0x35 | BYTE padding 0x36 | BYTE unknown2 0x37 | BYTE padding
Тип поведения(eventType)
0 PED_ATM_ATTRACTOR // Пед использует банкомат в дневное время 1 PED_SEAT_ATTRACTOR // Пед сидит на лавке в дневное время 2 PED_STOP_ATTRACTOR // Пед стоит в дневное время 3 PED_PIZZA_ATTRACTOR // Пед стоит и уходит 4 PED_SHELTER_ATTRACTOR // Пед стоит, если идёт дождь, и уходит, если дождя нет 5 PED_TRIGGER_SCRIPT_ATTRACTOR // Использование скриптового сценария: COPSIT, COPLOOK, BROWSE, DANCER, BARGUY, PEDROUL, PEDCARD, PEDSLOT, STRIPW, STRIPM 6 PED_LOOK_AT_ATTRACTOR // Пед стоит и уходит 7 PED_SCRIPTED_ATTRACTOR // Приводит к вылету игры 8 PED_PARK_ATTRACTOR // Пед лежит и уходит после 6и часов 9 PED_STEP_ATTRACTOR // Пед сидит на ступеньках у дома
Тип 4 - Солнечный блик
Этот тип используется для создания бликов солнца на обьекте (в виде корон). Данный тип использует только данные из заголовка (позиция).
Тип 6 - Система "Вход-выход"
Тип может вызвать вылеты в игре! Используется например в модели barrio3b_lae.dff'.
4b - FLOAT - Угол поворота enter-маркера (относительно обьекта) (всегда 0 ?) 4b - FLOAT - Радиус приближения к маркеру, X 4b - FLOAT - Радиус приближения к маркеру, Y 12b - FLOAT[3]- Позиция расположения exit-маркера (офсет относительно обьекта) (всегда 0 ?) 4b - FLOAT - Угол поворота exit-маркера (относительно обьекта) (всегда 0 ?) 4b - INT32 - Номер интерьера 4b - INT32 - Флаги? 8b - CHAR[8] - Название интерьера 4b - INT32 - Цвет неба
Тип 7 - Дорожный указатель
Этот тип создаёт текст в 3d-мире. Размер составляет 88 байтов.
0x00 | RwV2d size // Масштаб (xy) 0x08 | RwV3d rotation // Поворот (xyz) 0x14 | WORD flags // Флаги 0x16 | RwChar text[16][4] // Текст (4 строки)
Флаги (flags)
Биты 0-1 - Количество используемых строк
0 - 4 строки 1 - 1 строка 2 - 2 строки 3 - 3 строки
Биты 2-3 - Количество символов в строке
0 - 16 символов 1 - 2 символа 2 - 4 символа 3 - 8 символов
Биты 4-5 - Цвет текста
0 - 0xFFFFFFFF (белый) 1 - 0xFF000000 (чёрный) 2 - 0xFF808080 (серый) 3 - 0xFF0000FF (красный)
Строки могут начинаться с таких символов, как <
, ^
и >
; также символ _
используется вместо пробела.
Тип 8 - Колесо игрового автомата
Это игровые автоматы.
4b - Int32 - Индекс колеса
Каждое колесо в игровом автомате использует индекс 1. Положение индекса это положение колеса игрового автомата. Может быть, позицией можно управлять через SCM.
Тип 9 - Укрытие
Этот тип определяет места на карте, в которых можно спрятаться (может использоваться педами при перестрелке). Стурктура:
4b - FLOAT - Позиция X 4b - FLOAT - Позиция Y 4b - INT32 - Тип укрытия
Тип 10 - Эскалатор
Этот тип относится к эскалаторам. Размер равен 40 байтам.
0x00 | RwV3d bottom // Нижняя часть эскалатора (xyz) 0x0С | RwV3d top // Верхняя часть эскалатора (xyz) 0x18 | RwV3d end // Конечная точка эскалатора (точка Z должна быть наверху, если эскалатор // едет вверх, если вниз, то на нижней позиции эскалатора) 0x24 | DWORD direction // Направление движения (0 - Вниз, 1 - Вверх)