2DFX (Секция RW) — различия между версиями

Материал из GTAModding.ru
Перейти к: навигация, поиск
м (Записи)
(Ссылки)
 
(не показаны 11 промежуточных версий 1 участника)
Строка 16: Строка 16:
 
  0x10 | DWORD    size  // Размер данных
 
  0x10 | DWORD    size  // Размер данных
  
===Type 0 - Light===
+
===Тип 0 - Источник света===
  
 
Этот тип используется, чтобы создать источник света. Размер может составлять 76 или 80 байт.
 
Этот тип используется, чтобы создать источник света. Размер может составлять 76 или 80 байт.
Строка 60: Строка 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 CHECK_VIEW_VECTOR                  // Работает только если камера занимает определённую позицию (вектор lookDirection)
 
   8 CHECK_VIEW_VECTOR                  // Работает только если камера занимает определённую позицию (вектор lookDirection)
  16 BLINKING3                          // Мигает
+
  16 BLINKING3                          // Мигает (рандомно)
 
Типы отображения (showMode)
 
Типы отображения (showMode)
 
   0 DEFAULT
 
   0 DEFAULT
   2 ALWAYS_AT_WET_WEATHER
+
  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
 
   7 TRAFFICLIGHT
   8 TRAINCROSSLIGHT",
+
   8 TRAINCROSSLIGHT
  10 AT_RAIN_ONLY
+
  9                                    // Не работает (источник света постоянно выключен)
 +
  10 AT_RAIN_ONLY                       // Включается только в дождливую погоду
 +
11                                    // 5с - вкл., 5с - выкл.
 +
12                                    // 6с - вкл., 4с - выкл.
 +
13                                    // 6с - вкл., 4с - выкл.
  
===Type 1 - Particle Effects===
+
===Тип 1 - Партикл-эффект===
 
Этот тип используется для эффекта частиц. Состоит из 24 байтов.
 
Этот тип используется для эффекта частиц. Состоит из 24 байтов.
 
  0x00 | char particleName[24] // Имя эффекта частиц
 
  0x00 | char particleName[24] // Имя эффекта частиц
 
Имена эффектов частиц присутствуют в файле effect.fxp.
 
Имена эффектов частиц присутствуют в файле effect.fxp.
  
===Type 3 - PEDs===
+
===Тип 3 - Аттрактор пешеходов===
 
PED секция состоит из 56 байтов. Используется для появления пешеходов (Например на стульях, в магазинах, на скамейках и др..)
 
PED секция состоит из 56 байтов. Используется для появления пешеходов (Например на стульях, в магазинах, на скамейках и др..)
  4b - INT32      - Тип поведения (1 - сидит ; 5 - стоит)
+
0x00 | BYTE        eventType          // Тип поведения
  36b - VECTOR3[3]  - Вращение (right, top, at)
+
  0x01 | BYTE[3]     padding
  8b - CHAR[8]    - Имя внешнего скрипта
+
  0x04 | float[3][3] rotation            // Вращение (right, top, at)
  4b - INT32      - Вероятность появления пешехода
+
0x28 | char[8]    scriptName          // Имя внешнего скрипта
  1b - BYTE        - Неизвестно
+
0x30 | BYTE        existingProbability // Вероятность появления пешехода
  1b - BYTE        - Не используется
+
0x31 | BYTE[3]    padding
  1b - BYTE        - Неизвестно
+
0x34 | BYTE        unknown1
  1b - BYTE        - Не используется
+
0x35 | BYTE        padding
 +
0x36 | BYTE        unknown2
 +
0x37 | BYTE        padding
  
===Type 4 - Sun Flare===
+
Тип поведения(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 - Солнечный блик===
  
 
Этот тип используется для создания бликов солнца на обьекте (в виде корон). Данный тип использует только данные из заголовка (позиция).
 
Этот тип используется для создания бликов солнца на обьекте (в виде корон). Данный тип использует только данные из заголовка (позиция).
  
===Type 6 - EnEx маркеры===
+
===Тип 6 - Система "Вход-выход"===
  
 
Тип может вызвать вылеты в игре! Используется например в модели ''barrio3b_lae.dff'.
 
Тип может вызвать вылеты в игре! Используется например в модели ''barrio3b_lae.dff'.
Строка 107: Строка 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 Цвет неба]
  
===Type 7 - Road Signs===
+
===Тип 7 - Дорожный указатель===
 
Этот тип создаёт текст в 3d-мире. Размер составляет 88 байтов.
 
Этот тип создаёт текст в 3d-мире. Размер составляет 88 байтов.
 
  0x00 | RwV2d  size        // Масштаб (xy)
 
  0x00 | RwV2d  size        // Масштаб (xy)
Строка 132: Строка 155:
 
Строки могут начинаться с таких символов, как <code><</code>, <code>^</code> и <code>></code>; также символ <code>_</code> используется вместо пробела.
 
Строки могут начинаться с таких символов, как <code><</code>, <code>^</code> и <code>></code>; также символ <code>_</code> используется вместо пробела.
  
===Type 8 - Slotmachine-wheels===
+
===Тип 8 - Колесо игрового автомата===
  
 
Это игровые автоматы.
 
Это игровые автоматы.
Строка 141: Строка 164:
 
Положение индекса это положение колеса игрового автомата. Может быть, позицией можно управлять через SCM.
 
Положение индекса это положение колеса игрового автомата. Может быть, позицией можно управлять через SCM.
  
===Type 9===
+
===Тип 9 - Укрытие===
  
Размер равен 12 байтам. Чаще всего используется в 2DFX секциях большого размера. Возможно является каким-то разделителем.
+
Этот тип определяет места на карте, в которых можно спрятаться (может использоваться педами при перестрелке).
 
Стурктура:
 
Стурктура:
  
  4b - FLOAT - X
+
  4b - FLOAT - Позиция X
  4b - FLOAT - Y
+
  4b - FLOAT - Позиция Y
  4b - INT32 -
+
  4b - INT32 - Тип укрытия
  
===Type 10 - Escalators===
+
===Тип 10 - Эскалатор===
 
Этот тип относится к эскалаторам. Размер равен 40 байтам.
 
Этот тип относится к эскалаторам. Размер равен 40 байтам.
 
  0x00 | RwV3d  bottom    // Нижняя часть эскалатора (xyz)
 
  0x00 | RwV3d  bottom    // Нижняя часть эскалатора (xyz)
Строка 160: Строка 183:
 
== Ссылки ==
 
== Ссылки ==
 
[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 - Вверх)

Ссылки

Статья о том, как создать эскалатор + скрипт

Создание 2dfx с помощью 2dfx tool