Создание и редактирование 2dfx для .dff моделей
Инструменты
Справка
2dfx это секция файла модели .dff в GTA:SA. Эта секция позволяет крепить специальные эффекты к модели. В San Andreas существует 10 типов 2dfx эффектов. Один из них можно добавить только через .ide файлы (это тип 2dfx - мебель(futnitur)), так что добавлять её в dff нет смысла - она просто не будет работать.
2dfx секция в RwAnalyze
Мы можем найти эту секцию (если она существует) в секции Clump->Geometry List->Geometry->Extension.
Можно извлечь/вставить эту секцию, нажав ПКМ и выбрав нужное действие.
После извлечения секции, у созданного файла не будет расширения. Добавьте расширение ".2dfx" к имени файла, чтобы позже использовать его в 2dfx tool.
2dfx tool
Эта программа очень проста. Она создаёт текстовый файл (.txt) на основе файла .2dfx, и файл .2dfx - на основе текстового файла.
Итак, если нам нужно изменить оригинальную 2dfx секцию, нам нужно выполнить следующие шаги:
1) извлечь оригинальную секцию в файл, добавить расширение ".2dfx" к имени файла;
2) поместить файл .2dfx в папку "2dfx";
3) запустить программу SA2dfx.exe;
4) открыть созданный текстовый файл (.txt)(он будет создан в этой же папке ("2dfx")) и изменить его;
5) поместить изменённый текстовый файл (.txt) в папку "txt";
6) запустить программу SA2dfx.exe;
7) Полученный файл .2dfx из папки "txt" добавить в dff с помощью RwAnalyze.
Структура файла
Заголовок текстового файла содержит кол-во 2dfx эффектов в секции.
После этого следует описание эффектов.
Описание каждого типа эффектов имеет свой формат, но все они начинаются с этого:
Где "LIGHT" это тип эффекта.
Доступны следующие типы эффектов:
PARTICLE (партикл-эффект)
PED (действие пешехода)
SUNFLARE (блик солнца)
ENEX (система "вход-выход")
ROADSIGN (дорожный указатель)
SLOTMACHINEWHEEL (колесо игрового автомата)
NAVIPOINT (точка навигации)
ESCALATOR (эскалатор)
После того, как программа узнает тип эффекта, она выберет нужный формат для чтения информации об эффекте.
Тип LIGHT
Этот тип используется для создания источника света. Такой свет состоит из:
1) короны (2d спрайт);
2) тени (проекция на земле);
3) динамического света (базируется на стандартном освещении графического движка, вершинное освещение для динамических объектов - автомобилей, пешеходов, объектов).
Формат этой секции:
Position 2.468750 3.131592 4.541241 (позиция)
Color 191 206 132 200 (цвет, значение альфа игнорируется)
CoronaFarClip 100.000000 (радиус видимости короны)
PointlightRange 18.000000 (радиус динамического света)
CoronaSize 1.000000 (размер короны)
ShadowSize 8.000000 (размер тени)
CoronaShowMode DEFAULT (дополнительный тип)
CoronaReflection 0 (включение отражения на земле для короны (0/1))
CoronaFlareType 0 (тип бликов для короны (1/2, 0 - без бликов))
ShadowColorMP 40 (интенсивность тени)
ShadowZDistance 0 (максимальное расстояние до поверхности, на которой может быть отрисована тень)
CoronaTexName coronastar (название текстуры короны в particle.txd)
ShadowTexName shad_exp (название текстуры тени в particle.txd)
Flags1 AT_NIGHT (флаги №1)
Flags2 - (флаги №2)
ViewVector 0 0 100 (направление, из которого видно корону. Используется, если включен флаг CHECK_DIRECTION)
CoronaShowMode
Этот параметр устанавливает дополнительный тип для источника света.
ALWAYS_AT_WET_WEATHER (включается при влажной погоде)
TRAFFICLIGHT (используется как светофор)
TRAINCROSSLIGHT (используется как светофор на ж/д)
AT_RAIN_ONLY (работает только в дождь)
Это известные, именованные типы. Также существуют неименованные типы, назначение которых пока что неизвестно (используйте номера 1,3,4,5,6,9,11,12,13 вместо названия типа).
Флаги №1
FOG_TYPE1 (определяет тип эффекта рассеянного света)
FOG_TYPE2 (определяет тип эффекта рассеянного света)
WITHOUT_CORONA (отключить корону)
CORONA_ONLY_AT_LONG_DISTANCE (корону видно только издалека)
AT_DAY (работает днём)
AT_NIGHT (работает ночью)
BLINKING1 (мигание №1)
Флаги №2
BLINKING2 (мигание №2)
UDPDATE_HEIGHT_ABOVE_GROUND (нужно ли обновить информацию о высоте короны над землей)
CHECK_DIRECTION (корону видно только из определённой позиции (параметр ViewVector))
BLINKING3 (мигание №3)
Использование флагов
Если нужно использовать несколько флагов, их надо разделить запятой (","). Если не нужно использовать ни одного из флагов, ставится знак "-".
Например, такая запись
обеспечит круглосуточную работу источника света.
PARTICLE
Крепит партикл-эффект.
Position 0.000000 0.000000 0.000000 (позиция)
Name simplefx (название партикл-эффекта из effects.fxp)
PED
Привлекает пешехода и заставляет его выполнять определённые действия.
Position -0.572941 0.661896 0.030715 (позиция)
Type SIT_ON_BENCH_DAY_ONLY (тип действия)
Rotation -0.993852 0.006778 -0.110507 -0.993852 0.006778 -0.110507 0.995570 -0.009073 0.093582 (вращение (направление по 3 осям))
ExternalScript - (имя внешнего скрипта (если используется тип действия "SCRIPTED"))
ExistingProb 75 (вероятность выполнения)
Unknown1 0 (неизвестно)
Unknown2 0 (неизвестно)
Доступные типы поведения:
SIT_ON_BENCH_DAY_ONLY (сидит (только днём))
STANDSTILL_DAY_ONLY (стоит (только днём))
STANDSTILL_THEN_GO_AWAY (стоит и уходит)
GO_AWAY_BUT_STAY_IF_RAINY (уходит, но если идёт дождь - остается. У R* данный тип назывался "Shelter", т.е. "Укрытие")
SCRIPTED (используется внешний скрипт)
STANDSTILL_GO_AWAY_2 (стоит и уходит)
LIE_DAY_ONLY_GO_AWAY_AFTER_6PM (загорает, уходит после 6-ти вечера)
SIT_AT_HOUSE (сидит на ступеньках возле дома)
SUNFLARE
Создаёт блик солнца на модели (в виде короны).
Position 0.000000 0.000000 0.000000 (позиция)
ROADSIGN
Дорожный указатель.
Position 1637.679321 -2063.918701 28.069563 (позиция)
Size 5.000000 2.500000 (размер (высота и ширина))
Rotation 48.999981 -90.000008 -90.000015 (вращение (по 3 осям))
NumLines 4 (кол-во используемых строк)
SymbolsInLine 16 (максимальное кол-во символов в строке)
Color WHITE (цвет)
Text1 Bluffs_^_______ (содержимое строки 1. Вместо пробелов используется "_")
Text2 Downtown_^_____ (содержимое строки 2)
Text3 Mulholland^____ (содержимое строки 3)
Text4 Vinewood_^_____ (содержимое строки 4)
Цвета
BLACK (чёрный)
GREEN (серый (ошибка в программе))
RED (красный)
SLOTMACHINEWHEEL
Колесо игрового автомата
Position 0.074211 0.510475 0.921751 (позиция)
WheelIndex 0 (индекс (используется в SCM))
NAVIPOINT
Назначение этой секции полностью не раскрыто. Предполагается, что это точки навигации для пешеходов.
Position -0.637695 -12.929321 -4.864481
XY -0.000001 -1.000000
Type 1
ESCALATOR
Тип создаёт эскалатор (движущиеся ступеньки).
BasePosition -0.957153 6.627189 -3.237147 (стартовая точка)
BottomPosition -0.947021 4.526084 -3.237147 (точка начала подъёма)
TopPosition -0.980835 -4.370117 3.380810 (точка конца подъёма)
EndPosition -0.985107 -6.449219 3.380810 (конечная точка)
Direction UP (направление движения)
Направление движения
DOWN (вниз)