Опрос на сайте
Какая серия GTA вам больше всего нравиться?

Популярные новости

Magic - TXD Builder 0.9.1

Magic - TXD Builder 0.9.1
Полезная программа для сборки TXD файлов, которая важные параметры, такие как mip map, DXT сжатие... Кроме того, программа

Vertex Alpha в Vice City

Vertex Alpha в Vice City
То, что некогда было доступно лишь в GTA: San Andreas и выше: Vertex Alpha, а потенциально - и физический бленд текстур в

Компактное меню

Компактное меню
Компактное меню для глобальных модов. Исключено все лишнее.

Main Menu Scene

Main Menu Scene
"Main Menu Scene" дает вам возможность создавать собственные сцены в "Главном Меню" игры с кастомными картой и скриптом, при

Rollerskates Mod

Rollerskates Mod
Модификация позволяет кататься на роликах, прямо как пляжные девушки.

31 январь 2025

Добавление нового оружия в GTA 4


English version (link)

Введение
В этой статье я покажу, как добавлять новое оружие и звуки для него в стандартную GTA IV (не эпизоды) без использования плагинов. Я буду добавлять только одно оружие, используя имя "w_revolver" и "revolver". Предположим, что вы уже имеете необходимые ассеты в игровом формате.

Что вам понадобится
- Модель, текстуры и коллизия оружия
- Звуки оружия
- Программа для открытия IMG-архивов и создания RPF-архивов
- Текстовый редактор
- Генератор игровых хэшей
- RAGEAT + IVAudioConv
- GTAAudioMetadataTool
Ссылка для скачивания GTAAudioMetadataTool:
GTAAudioMetadataTool.zip [1,78 Mb] (cкачиваний: 1)

Какие файлы добавляются и используются
- w_revolver.wdr (модель)
- w_revlover.wtd (текстуры)
- w_revolver.wbd (коллизия)
- common/data/default.ide
- common/data/WeaponInfo.xml
- pc/audio/sfx/revolver.rpf (звуки оружия)
- pc/audio/config/game.dat16
- pc/audio/config/sounds.dat15
- pc/audio/config/rpf.xml
- pc/audio/config/waveslots.xml
- gun@revolver.wad (анимации для игрока)
- common/data/animgrp.dat

Модель оружия, текстуры оружия и коллизия оружия
Вам необходимо добавить модель оружия (wdr), текстуры оружия (wtd) и коллизию оружия (wbd) в img-архив, который будет загружен игрой.

Определение оружия
Откройте следующий файл: common/data/default.ide
Найдите в этом файле секцию "weap" и добавьте в нее следующую строку:
w_revolver,	w_revolver,	gun@revolver,	1,	30,	0

Секция "weap" отвечает за определение оружия.
w_revolver, w_revolver - имя wdr и wtd соответственно
gun@revolver - имя анимационного файла

Затем, найдите секцию "amat" и добавьте туда следующую строку:
w_revolver,	0,	CM_WEAPONS_PISTOL

Секция "amat" отвечает за звуковые столкновения оружия.
CM_WEAPONS_PISTOL - имя метаданных из game.dat16


Настройка параметров оружия
Откройте следующий файл: common/data/WeaponInfo.xml
Следуя структуре файла, нам необходимо добавить туда информацию о новом оружии. Обратите внимание на этот пример:
	<weapon type="EPISODIC_1">
		<data slot="HANDGUN" firetype="INSTANT_HIT" damagetype="BULLET" group="PISTOL_LARGE" targetrange="45.0" weaponrange="50.0" clipsize="6" ammomax="1500" timebetweenshots="333">
			<damage base="40" networkplayermod="4.0" networkpedmod="1.0"/>
			<physics force="75.0"/>
			<reload time="2000" fasttime="2000" crouchtime="2000"/>

			<aiming accuracy="0.5">
				<offset         x="0.15" y="1.0" z="0.55"/>
				<crouchedoffset x="0.2"  y="1.0" z="0.05"/>
				<reticule standing="0.6" ducked="0.5" scale="0.3"/>
			</aiming>

			<pickup regentime="240000" ammoonstreet="30"/>

			<controller>
				<rumble duration="150" intensity="0.1"/>
			</controller>

			<flags>
				<flag>GUN</flag>
				<flag>CAN_AIM</flag>
				<flag>CAN_FREE_AIM</flag>
				<flag>ANIM_RELOAD</flag>
				<flag>ANIM_CROUCH_FIRE</flag>
			</flags>
		</data>

		<assets model="w_revolver">
			<anim group="gun@revolver" meleegroup1="firearm_core"/>

			<effects>
				<muzzle fx="muz_pistol_large"/>
				<shell fx="weap_ejected_pistol"/>
			</effects>
		</assets>
	</weapon>

EPISODIC_1 - тип оружия, который указан в первой строке. Вы можете использовать другой тип, например, EPISODIC_2 или EPISODIC_3. Самый последний свободный такой тип - EPISODIC_24. Таким образом, используя "EPISODIC_", вы можете добавить 24 типа нового оружия в стандартную игру.

Новые звуки для оружия
В папке с игрой, откройте следующую папку: pc/audio/sfx. Создайте в ней архив в формате rpf (например, с помощью OpenIV). В этом архиве создайте папку с таким же названием, как и архив (но без расширения). В этой статье я буду использовать название MYWEAPONS.
После этого, перейдите в папку с утилитой RAGEAT. В этой папке создайте текстовый файл со следующим названием и расширением: MYWEAPONS_REVOLVER.oaf. После этого, создайте папку под названием MYWEAPONS_files.
Поместите в папку MYWEAPONS_files ваши звуки для оружия. Учтите, что каждый звук выстрела в игре разделен на два аудиофайла, которые относятся к левому и правому каналу. Я буду использовать следующие названия аудиофайлов для звука выстрела: REVOLVER_SHOT1_L.wav и REVOLVER_SHOT1_R.wav.
Теперь откройте файл MYWEAPONS_REVOLVER.oaf в текстовом редакторе и добавьте туда следующие строки:
{
    "isStream": false,
    "audioCount": 2,
    "animCount": 0,
    "entries": [
		{
            "name": "PISTOL_SHOT1_L",
            "file": "MYWEAPONS_files\\REVOLVER_SHOT1_L.wav",
            "compression": "PCM",
            "headroom": -191
        },
		{
            "name": "PISTOL_SHOT1_R",
            "file": "MYWEAPONS_files\\REVOLVER_SHOT1_R.wav",
            "compression": "PCM",
            "headroom": -191
        },
    ]
}

Обратите внимание, что путь к файлу звука указан в значении "file", а в значении "name" указано игровое имя звука, которое будет использоваться игрой в виде хэша. Если вы будете добавлять больше звуков, то не забудьте изменить значение "audioCount".
Сохраняем этот файл и закрываем его.
Перетащите файл MYWEAPONS_REVOLVER.oaf на файл IVAudioConv.exe. Если все пройдет успешно, то будет создан файл под названием MYWEAPONS_REVOLVER, без расширения. Это звуковой банк (sound bank). Поместите его в архив .rpf, а именно в ту папку, которую мы создали там ранее. Должен получится следующий путь: MYWEAPONS.rpf/MYWEAPONS/MYWEAPONS_REVOLVER
Мы закончили с архивом.

Теперь нам нужно сделать так, чтобы игра загрузила созданный архив и звуки в нем. В папке с игрой, откройте следующую папку: pc/audio/config.
Откройте в этой папке файл rpf.xml
Следуя структуре файла, добавьте туда следующие строки:
  <Rpf>
    <Name>MYWEAPONS</Name>
    <Type>rpf</Type>
    <Alias>MYWEAPONS</Alias>
  </Rpf>

Обратите внимание, что название архива указано в значениях "Name" и "Alias".
Сохраните файл и закройте его.

Теперь откройте в этой же папке файл waveslots.xml (не waveslot_.xml!)
Следуя структуре файла, добавьте туда следующие строки:
  <Slot>
    <Name content="ascii">MYWEAPONS_REVOLVER</Name>
    <MaxHeaderSize value="1024" />
    <LoadType content="ascii">BANK</LoadType>
    <StaticBank content="ascii">MYWEAPONS\MYWEAPONS_REVOLVER</StaticBank>
    <Size value="238592" />
  </Slot>

Обратите внимание, что здесь нам нужно указать размер звукового банка MYWEAPONS в байтах в значении "Size value". Чтобы узнать размер этого звукового банка в байтах, вернитесь в папку с RAGEAT, нажмите правой кнопкой мыши по файлу MYWEAPONS и зайдите в свойства файла. Скопируйте значение размера, НЕ используемого на диске. В моем случае это значение будет равно 238,592 байтам. Вам необходимо убрать запятые и добавить свое значение в waveslots.xml, в значение "Size value".

Снова перейдите в папку с RAGEAT. Откройте следующий файл: data/iv_eflc.ini
Здесь находятся строки и хэши к ним, которые используются в звуковых конфигах. Все строки имеют следующий вид: [игровой хэш]=[имя]. Вы можете сгенерировать игровые хэши с помощью генератора игровых хэшей на основе имени (с помощью OpenIV или через другие генераторы в интернете).
Я буду использовать следующую строку в этой статье:
3184660097=XFADE_GUN_TEST_REVOLVER

После того, как вы добавили нужные строки, запустите RAGEAT. Во вкладке Metadata, в списке рабочих файлов, выберите файл game.dat16.
Найдите в загруженном списке "W_GLOCK" с помощью поиска. Пролистав чуть ниже, вы увидите остальные метаданные, связанные со звуками оружия.
Выберите один из этих метаданных, затем нажмите правую кнопку мыши и выберите Duplicate. Будет создан дубликат этих метаданных. Выберите этот дубликат.
Перейдем к правому окну программы. Переименуйте название этих метаданных в соответствии с названием модели вашего оружия. Здесь это будет W_REVOLVER
Затем, перейдем к Hex view. Наведите курсор на розовые ячейки, затем найдите те ячейки, которые имеют следующий префикс: XFADE_GUN_TEST_
Один раз нажмите на самую первую ячейку, которая относится к этому названию. После этого, в самом внизу программы, вы увидите поле "Hash", которое будет иметь префикс XFADE_GUN_TEST_. Замените его тем названием, которое вы поместили в iv_eflc.ini.
Помимо вышеупомянутых ячеек, здесь есть другие полезные ячейки, но в этой статье мы разберем только эту.
Нажмите кнопку Save в правом-нижнем углу программы, чтобы сохранить эти метаданные. Затем, в левом-верхнем углу программы, нажмите File->Save, чтобы сохранить изменения в game.dat16.
Мы закончили с RAGEAT.

Скачайте GTAAudioMetadataTool по этой ссылке, если вы этого еще не сделали:
GTAAudioMetadataTool.zip [1,78 Mb] (cкачиваний: 1)

Перейдите в папку с утилитой GTAAudioMetadataTool. Переместите в эту папку следующий файл из папки с игрой: pc/audio/config/SOUNDS.DAT15
Запустите to_json.bat в папке GTAAudioMetadataTool. Будет создан текстовый файл с именем SOUNDS.DAT15.json. Откройте его с помощью текстового редактора.
Теперь, следуя структуре файла, нам необходимо добавить необходимые метаданные. Вы можете использовать метаданные из этой статьи как шаблон при добавлении звуков для оружия.
Добавим метаданные, которые относятся к game.dat16:
    "XFADE_GUN_TEST_REVOLVER": {
        "Type": "audCrossfadeSound",
        "Flags": 174762,
        "__unk09": 0,
        "Header": {
            " __field16": 0
        },
        "Metadata": {
            "NearSound": "REVOLVER_FIRE",
            "FarSound": "DISTANT_DESERT_EAGLE",
            "__field08": 0,
            "__field09": 1106247680,
            "__field0d": 1119092736,
            "__field11": 0,
            "VariableHash1": "0x00000000",
            "VariableHash2": "0x00000000",
            "__field1d": 0,
            "VariableHash3": "0x00000000",
            "UnkCurvesHash": "0x94ae4add"
        }
    },

Таким образом, мы указали строку XFADE_GUN_TEST_REVOLVER в game.dat16, и инициализировали метаданные с ее именем в sounds.dat15.

Теперь нам нужно добавить метаданные для значения "NearSound" - REVOLVER_FIRE.
    "REVOLVER_FIRE": {
        "Type": "audMultitrackSound",
        "Flags": 174762,
        "__unk09": 0,
        "Header": {
            "__field0": 65436,
            "__field12": 0,
            "CategoryHash": "0x49d789a4",
            " __field16": 0
        },
        "Metadata": {
            "Tracks": [
                {
                    "TrackHash": "GENERAL_GUNS_EAGLE_DRY",
                    "__field04": 0
                },
                {
                    "TrackHash": "GENERAL_GUNS_EAGLE_LOWS",
                    "__field04": 0
                },
                {
                    "TrackHash": "REVOLVER_SHOT_1",
                    "__field04": 0
                },
                {
                    "TrackHash": "GENERAL_GUNS_EAGLE_SHOT2",
                    "__field04": 0
                },
                {
                    "TrackHash": "EAGLE_TAIL",
                    "__field04": 0
                },
                {
                    "TrackHash": "GUN_SWEETNERS_SINES_EAGLE",
                    "__field04": 0
                },
                {
                    "TrackHash": "EAGLE_SMACK_SOUND",
                    "__field04": 0
                }
            ]
        }
    },


Добавляем метаданные для "REVOLVER_SHOT_1":
    "REVOLVER_SHOT_1": {
        "Type": "audCollapsingStereoSound",
        "Flags": 170662,
        "__unk09": 0,
        "Header": {
            "CategoryHash": "0xb9948cea",
            " __field16": 0
        },
        "Metadata": {
            "SoundHash1": "GENERAL_GUNS_REVOLVER_SHOT1_L",
            "SoundHash2": "GENERAL_GUNS_REVOLVER_SHOT1_R",
            "__field08": 3.0,
            "__field0c": 5.0,
            "VariableHash1": "0x00000000",
            "VariableHash2": "0x00000000",
            "VariableHash3": "0x00000000",
            "VariableHash4": "0x00000000",
            "VariableHash5": "0x00000000",
            "__field24": 0
        }
    },


И, наконец, добавляем метаданные для значения "SoundHash1" и "SoundHash2":
    "GENERAL_GUNS_REVOLVER_SHOT1_L": {
        "Type": "audSimpleSound",
        "Flags": 174762,
        "__unk09": 0,
        "Header": {
            " __field16": 0
        },
        "Metadata": {
            "__field00": 0,
            "ArchiveHash": "MYWEAPONS.SFX/MYWEAPONS_REVOLVER",
            "SoundHash": "0x5f830a0a"
        }
    },
    "GENERAL_GUNS_REVOLVER_SHOT1_R": {
        "Type": "audSimpleSound",
        "Flags": 174762,
        "__unk09": 0,
        "Header": {
            " __field16": 0
        },
        "Metadata": {
            "__field00": 0,
            "ArchiveHash": "MYWEAPONS.SFX/MYWEAPONS_REVOLVER",
            "SoundHash": "0x7fc24a88"
        }
    },

Здесь же, в значениях "SoundHash", нам нужно указать звуковые хэши для левого канала и правого канала аудио. Напомню, что каждый звук выстрела в игре разделен на два аудиофайла, которые относятся к левому и правому каналу.
В данном примере, я использую следующие звуковые хэши для левого и правого канала соответственно:
0x5f830a0a - PISTOL_SHOT1_L
0x7fc24a88 - PISTOL_SHOT1_R
Эти хэши уже существуют в игре и используются для пистолета W_GLOCK. К сожалению, по какой-то причине, в моей игре не работали кастомные хэши, поэтому я использовал существующие для всех новых звуков. Однако, с этим не возникнет проблем, если вы будете использовать эти звуки в разных звуковых банках для каждого оружия.
Мы закончили с SOUNDS.DAT15.json, сохраните изменения.

В этой же папке, запустите to_binary.bat. Будет создан бинарный файл с именем SOUNDS.DAT15.GEN. Переименуйте файл, убрав в конце ".GEN". Файл готов, переместите его обратно в папку с игрой.
Мы закончили с GTAAudioMetadataTool.

Анимации для игрока
Если вы используете уже существующую группу анимаций для игрока, то пропустите этот шаг.

Вам необходимо добавить группу анимаций в формате wad в img-архив, который будет загружен игрой. Я буду использовать следующее название: gun@revolver.wad

Теперь нам необходимо указать игре, что gun@revolver - это группа анимаций оружия.
Откройте следующий файл: common/data/animgrp.dat
Найдите в этом файле раздел "WeaponGroups", где добавлены группы анимаций для существующего оружия.
Добавьте там же следующую строку:
WeaponGroup( Streaming, gun@revolver )

Сохраните файл и закройте его.

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Добавить свой комментарий

Полужирный Наклонный текст Подчёркнутый текст Зачёркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос: Введите первые 3 (Русские) буквы сайта (заглавные).
Ответ:*
Другие материалы

Добавление нового интерьера в GTA 4

Добавление нового интерьера в GTA 4
[RU] В этой статье мы попробуем разобраться с тем, как был добавлен интерьер первого сейвхауса игрока. Это поможет вам

Добавляем имена улиц для игровой карты в GTA 4

Добавляем имена улиц для игровой карты в GTA 4
[RU] В GTA IV были добавлены имена улиц, названия которых отображаются на экране. В этой статье мы разберемся с тем, как

Нативные функции в GTA 5

Нативные функции в GTA 5
В данной статье мы расскажем, как вызывать нативные функции из C++ напрямую в вашем скрипте, применять их в качестве

GTA 3 Audio Editor v1.0

GTA 3 Audio Editor v1.0
Неплохой редактор для замены звуковых эффектов и также годится для прослушивания. Интерфейс очень простой без всяких
Ads

Группа GTA Builder