Jump to content

Моддинг звуков


Recommended Posts

  • ED Team
Posted (edited)

Определения:

$INSTALL_DIR = каталог установки игры

$WRITE_DIR = C:\Users\<LOGIN>\Saved Games\DCS

 

DCS ищет звуки (.sdef-файлы и wav/ogg сэмплы) в следующем порядке:

 

1) $WRITE_DIR\Sounds\

2) в каталоге Sounds каждого мода из $WRITE_DIR\Mods\

3) в каталоге Sounds каждого мода из $INSTALL_DIR\Mods

моды просматриваются в обратном, относительно регистрации, порядке

4) sdef ищутся в $INSTALL_DIR\Sounds\sdef, сэмплы - в $INSTALL_DIR\Sounds

 

 

Для того чтобы подменить звуковый файлы в своей копии игры есть два варианта:

1) положить новые файлы в $WRITE_DIR\Sounds\ в нужный подкаталог под нужным именем.

2) создать свой мод в $WRITE_DIR\Mods

Edited by c0ff

Dmitry S. Baikov @ Eagle Dynamics

LockOn FC2 Soundtrack Remastered out NOW everywhere - https://band.link/LockOnFC2.

Posted
Опредения:

$INSTALL_DIR = каталог установки игры

$WRITE_DIR = C:\Users\<LOGIN>\Saved Games\DCS

 

DCS ищет звуки (.sdef-файлы и wav/ogg сэмплы) в следующем порядке:

 

1) $WRITE_DIR\Sounds\

2) в каталоге Sounds каждого мода из $WRITE_DIR\Mods\

3) в каталоге Sounds каждого мода из$INSTALL_DIR\Mods

моды просматриваются в обратном, относительно регистрации, порядке

4) sdef ищутся в $INSTALL_DIR\Sounds\sdef, сэмплы - в $INSTALL_DIR\Sounds

 

 

Для того чтобы подменить звуковый файлы в своей копии игры есть два варианта:

1) положить новые файлы в $WRITE_DIR\Sounds\ в нужный подкаталог под нужным именем.

2) создать свой мод в $WRITE_DIR\Mods

 

Спасибо. :thumbup:

 

 

 

Posted

От любителя менять звуки в игре!) Тоже большое спасибо за эту суперовую подсказку по звукам! И за ответ в теме (Игровой сервер =RF=) :thumbup:

Не говорите что мне надо делать и я не скажу куда вам надо идти…

| Asus Z390 | Core i5 9600K | HyperX Fury 32Gb | RTX 2070 | 1TB HDD + Intel Optane memory 32Gb | Thrustmaster F-16C Viper Add-on Grip+TWCS Throttle | Dell WMR | Oculus Quest 2 |

Posted (edited)

В связи с появившейся новой темой "Моддинг звуков" И подсказками как изменить стандартный игровой звук на свой, без утраты его после обновлений а вернее переноса его в папку _backup.000.

Появился следующий (очень волнующий меня) вопрос! :)

 

Со стандартными звуками все ясно! А как быть с ново-созданными звуками к примеру для наземной техники (за пример возьмем Т-90)

Сейчас чтобы Т-90 имел свой отдельный звук (движка и гусениц) В файле T-90.lua нужно дописать две строки:

GT.snd.engine = "GndTech/T90Engine";

GT.snd.move = "GndTech/T90Move";

И соответственно добавить новые звуковые и sdef файлы по нужным папкам.

При обновлении файл T-90.lua проверку не проходит и сносится в папку _backup.000

 

Попробовал я пойти чуть иным путем и создал по системе добавления отдельного модуля (звуковой мод) как отдельный модуль. Со своей иконкой, entry.lua файлом и моими папками со звуками и т.д...

 

Так вот теперь самое главное: Ув. ED Team, c0ff и т.д...) Не могли бы вы мне подсказать что нужно дописать, подправить в файле entry.lua ? Чтобы игра считывала дописанный, переделанный файл T-90.lua из папки "звуковой мода" которая находится в Mods.

Edited by Keshman

Не говорите что мне надо делать и я не скажу куда вам надо идти…

| Asus Z390 | Core i5 9600K | HyperX Fury 32Gb | RTX 2070 | 1TB HDD + Intel Optane memory 32Gb | Thrustmaster F-16C Viper Add-on Grip+TWCS Throttle | Dell WMR | Oculus Quest 2 |

  • 5 months later...
Posted

Дам небольшие разъяснения по новому механизму озвучки техники:

И так, теперь в файлах техники появилась такая секция:

 

Привожу на примере танка Челленджер 2:

 

-- Sound
GT.sound = {};

-- Engine params
GT.sound.engine = {};
GT.sound.engine.idle = "GndTech/DieselEngineIdle";
GT.sound.engine.max = "GndTech/DieselEngineMax";

GT.sound.engine.idle_formula_gain = "0.2 x * 1 +";
GT.sound.engine.idle_formula_pitch = "1.2436 x * 0.7564 +";

GT.sound.engine.max_formula_gain = "x 5.0 ^";
GT.sound.engine.max_formula_pitch = "0.4363 x * 0.5637 +";
-- Engine params

-- Move params
GT.sound.move = {};
GT.sound.move.sound = "GndTech/TankMove";

GT.sound.move.pitch = {{0.0, 0.6}, {10.0, 1.2}};
GT.sound.move.gain = {{0.0, 0.01}, {0.5, 0.5}, {12.0, 1.0}};
-- Move params

-- Turbine param
GT.sound.turbine = {};
GT.sound.turbine.loop = "GndTech/TurbineLoop";

GT.sound.turbine.loop_formula_gain = "x 3 ^ -1.4725 * x 2 ^ 2.3676 * + x 0.1952 * - 0.0061 +";
GT.sound.turbine.loop_formula_pitch = "x 2 ^ -1.0 * x 2.3 * + 0.7 +";
-- Turbine param

-- Sound

 

Изменений не много, но они важные.

1. На звук двигателя теперь можно "вешать" два разных звука. По умолчанию это звук холостого хода и звук двигателя на максимальных оборотах.

2. Динамика звучания каждого звука вычисляется по формулам для pitch и gain. Формулы записаны в обратной польской нотации. Например (1 + 2) * 3 будут записаны как 1 2 + 3 *. Поддерживаются операции: +, -, *, /, ^ - возведение в степень, exp - экспонента, x - переменная задающая текущие обороты двигателя. Изменяется от 0..5100, где 1000 - холостой ход, а 5100 - максимальные обороты.

3. Звук лязга гусениц или другой звук движения. pitch и gain задается в виде полинома: {0.0, 0.6}, {10.0, 1.2} - от скорости 0 м/с до 10 м/с параметр равен 0.6, где 0.0 - и есть ноль, 1.0 - как есть в звуковом файле.

4. Отдельный звук турбины двигателя. Задается точно так же, как и у двигателя.

Welcome to the Rock

Posted (edited)

В sdef файлах внутри пишем так? (чета не фурычит пока, вроде не тупой я по добавлению звуков к танкам...) Звуки положил правильно, sdef тоже.. И того: Challenger2 звук Engine выдает (простой TankEngine, TankMove) Звука турбины вообще теперь нет.

 

DieselEngineIdle.sdef

wave = "Effects/GndTech/DieselEngineIdle"

inner_radius = 10

outer_radius = 200

 

gain = 0.7 ???? надо или нет?

DieselEngineMax.sdef

wave = "Effects/GndTech/DieselEngineMax"

inner_radius = 10

outer_radius = 200

 

Challenger2.lua

 

-- Challenger2

 

GT = {};

GT_t.ws = 0;

set_recursive_metatable(GT, GT_t.generic_tank);

set_recursive_metatable(GT.chassis, GT_t.CH_t.LEOPARD2);

GT.chassis.life = 32;

 

GT.visual.shape = "CHALLENGER-2";

GT.visual.shape_dstr = "CHALLENGER-2_P_1";

 

-- Sound

GT.sound = {};

 

-- Engine params

GT.sound.engine = {};

GT.sound.engine.idle = "GndTech/DieselEngineIdle";

GT.sound.engine.max = "GndTech/DieselEngineMax";

 

GT.sound.engine.idle_formula_gain = "0.2 x * 1 +";

GT.sound.engine.idle_formula_pitch = "1.2436 x * 0.7564 +";

 

GT.sound.engine.max_formula_gain = "x 5.0 ^";

GT.sound.engine.max_formula_pitch = "0.4363 x * 0.5637 +";

-- Engine params

 

-- Move params

GT.sound.move = {};

GT.sound.move.sound = "GndTech/TankMove";

 

GT.sound.move.pitch = {{0.0, 0.6}, {10.0, 1.2}};

GT.sound.move.gain = {{0.0, 0.01}, {0.5, 0.5}, {12.0, 1.0}};

-- Move params

 

-- Turbine param

GT.sound.turbine = {};

GT.sound.turbine.loop = "GndTech/TurbineLoop";

 

GT.sound.turbine.loop_formula_gain = "x 3 ^ -1.4725 * x 2 ^ 2.3676 * + x 0.1952 * - 0.0061 +";

GT.sound.turbine.loop_formula_pitch = "x 2 ^ -1.0 * x 2.3 * + 0.7 +";

-- Turbine param

 

-- Sound

 

--chassis

GT.swing_on_run = false;

 

GT.sensor = {};

set_recursive_metatable(GT.sensor, GT_t.SN_visual);

GT.sensor.height = 2.738;

GT.airWeaponDist = 3500

--Burning after hit

GT.visual.fire_size = 1.0; --relative burning size

GT.visual.fire_pos[1] = 0; -- center of burn at long axis shift(meters)

GT.visual.fire_pos[2] = 0; -- center of burn shift at vertical shift(meters)

GT.visual.fire_pos[3] = 0; -- center of burn at transverse axis shift(meters)

GT.visual.fire_time = 1200; --burning time (seconds)

 

-- weapon systems

 

GT.WS = {};

GT.WS.maxTargetDetectionRange = 6000;

GT.WS.smoke = {"SMOKE_02", "SMOKE_06", "SMOKE_01", "SMOKE_07", "SMOKE_05", "SMOKE_08", "SMOKE_04", "SMOKE_09", "SMOKE_03", "SMOKE_10"};

 

local ws = GT_t.inc_ws();

GT.WS[ws] = {};

GT.WS[ws].center = 'CENTER_TOWER';

GT.WS[ws].angles = {

{math.rad(142), math.rad(115), math.rad(-2), math.rad(15)},

{math.rad(115), math.rad(-115), math.rad(-8), math.rad(15)},

{math.rad(-115), math.rad(-142), math.rad(-2), math.rad(15)},

{math.rad(-142), math.rad(142), math.rad(3.6), math.rad(15)},

};

GT.WS[ws].drawArgument1 = 0;

GT.WS[ws].drawArgument2 = 1;

GT.WS[ws].omegaY = math.rad(35);

GT.WS[ws].omegaZ = math.rad(15);

GT.WS[ws].stabilizer = true;

GT.WS[ws].laser = true;

 

--GT.WS[1].LN[1]

__LN = add_launcher(GT.WS[ws], GT_t.LN_t.tank_gun_120mm); -- temporarily assigned as M256, until we have L30A1

__LN.beamWidth = math.rad(1);

__LN.PL[1].ammo_capacity = 10; -- AP rounds

__LN.PL[2].ammo_capacity = 24; -- AP rounds

__LN.BR[1].connector_name = 'POINT_GUN';

__LN.customViewPoint = { "genericTankblue", {-3.5, 0.3, 0 }, };

 

__LN = add_launcher(GT.WS[ws], __LN); -- HE gun

__LN.type = 6;

__LN.distanceMin = 300;

__LN.distanceMax = 8000;

__LN.beamWidth = math.rad(1);

__LN.PL[1].shell_name = {"M256_120_HE"};

__LN.PL[1].ammo_capacity = 5;

__LN.PL[2].shell_name = {"M256_120_HE"};

__LN.PL[2].ammo_capacity = 10;

__LN.customViewPoint = { "genericTankblueHE", {-3.5, 0.3, 0 }, };

 

-- GT.WS[ws].LN[2]

__LN = add_launcher(GT.WS[ws], GT_t.LN_t.L94A1);

__LN.beamWidth = math.rad(1);

__LN.fireAnimationArgument = 45

__LN.BR[1].connector_name = 'POINT_MGUN_01'

__LN.customViewPoint = { "genericAAA", {-0.3, 0.1, -0.15 }, };

__LN = nil;

 

GT.Name = "Challenger2";

GT.DisplayName = _("MBT Challenger II");

GT.Rate = 20;

 

GT.Sensors = { OPTIC = {"Challenger2 sight day", "TOGS2 night",

"VS580-10 day",

},

};

 

GT.DetectionRange = 0;

GT.ThreatRange = GT.WS[1].LN[1].distanceMax;

GT.mapclasskey = "P0091000001";

GT.attribute = {wsType_Ground,wsType_Tank,wsType_Gun,wsType_GenericTank,

"Tanks",

"Modern Tanks",

};

GT.category = "Armor";

 

 

 

Кто слепил данную модификацию, у кого получилось сделать правильно по этой системе! Отпишитесь! Отзовитесь! :)
Edited by Keshman

Не говорите что мне надо делать и я не скажу куда вам надо идти…

| Asus Z390 | Core i5 9600K | HyperX Fury 32Gb | RTX 2070 | 1TB HDD + Intel Optane memory 32Gb | Thrustmaster F-16C Viper Add-on Grip+TWCS Throttle | Dell WMR | Oculus Quest 2 |

Posted

gain = 0.7 в sdef не обязателен. Он просто задает начальный gain, который для движка будет считаться как 1.0 и от него уже пойдет отсчет.

 

Старые звуки используются только тогда, когда по каким то причинам не возможно прочитать из конфига секцию GT.sound.

Welcome to the Rock

  • 2 months later...
Posted

Уважаемые )) есть ли в патче 1.2.5 что нить вкусненькое для пользователей 7.1 (5.1) девайсов?

  • 1 month later...
Posted
вопрос-если заменить сами сэмплы звуков на свои, то в сеть пустят, или это уже будет изменение данных игры?

 

Это смотря на какие заменишь :)

 

Вообще эта папка редко отслеживается скорее всего да.

Будьте осторожнее в своих желаниях.

Прошу все мои сообщения считать случайным набором букв , цифр , и прочих знаков орфографии, не несущих смысловой нагрузки.

Posted
Это смотря на какие заменишь :)

 

Вообще эта папка редко отслеживается скорее всего да.

на почти такие же, только тише. Мне не нравится свист турбины Тв3-117, в реале он едва слышен за грохотом винтов, а у нас наоборот (речь про Ка50)

Posted
на почти такие же, только тише. Мне не нравится свист турбины Тв3-117, в реале он едва слышен за грохотом винтов, а у нас наоборот (речь про Ка50)

Там в sdef файле (EngineTV3117.sdef) нет уровня громкости как у всех

inner_radius

outer_radius

По этому тебе надо уменьшать уровень громкости в самом файле EngineTV3117.wav То есть через программу работающую со звуками.

При ремонте или обновлениях звук закачается снова оригинальный.

 

хм, а можно ли к примеру изменить музыку у обоев? я вот к хьюи хочу вместо обычной музыки добавить роллинг стоунс. Добавить для ка-50, такую же эпичную как у мишки)

 

Можно.

Берешь понравившуюся тебе песню Rolling Stone перегоняешь её в формат "ogg" , меняешь название на MainMenuLoop.ogg и кидаешь в Eagle Dynamics\DCS World\Mods\aircrafts\Uh-1H\Sounds\EditorMusic. Ставим заставку Хью и слушаем.

Файл MainMenuIn.ogg это короткий кусок из семпла MainMenuLoop.ogg

Можешь попробовать формат wav или mp3. Но я не тестировал с другими форматами.

Не говорите что мне надо делать и я не скажу куда вам надо идти…

| Asus Z390 | Core i5 9600K | HyperX Fury 32Gb | RTX 2070 | 1TB HDD + Intel Optane memory 32Gb | Thrustmaster F-16C Viper Add-on Grip+TWCS Throttle | Dell WMR | Oculus Quest 2 |

Posted
Там в sdef файле (EngineTV3117.sdef) нет уровня громкости как у всех

inner_radius

outer_radius

По этому тебе надо уменьшать уровень громкости в самом файле EngineTV3117.wav То есть через программу работающую со звуками.

При ремонте или обновлениях звук закачается снова оригинальный.

.

это я как раз сделал, получилось отлично. Главное чтобы с сетевой игрой проблем не возникло

Posted
это я как раз сделал, получилось отлично. Главное чтобы с сетевой игрой проблем не возникло

Чтобы не было 100% проблем с сетевой игрой.... Лучше сделать звуковую папку в сохраненных играх и я так делаю и многие....

C:\Users\......\Saved Games\DCS\Sounds\Effects\Aircrafts\Engines

Подробно или здесь в теме или в DCS World FAQ

Не говорите что мне надо делать и я не скажу куда вам надо идти…

| Asus Z390 | Core i5 9600K | HyperX Fury 32Gb | RTX 2070 | 1TB HDD + Intel Optane memory 32Gb | Thrustmaster F-16C Viper Add-on Grip+TWCS Throttle | Dell WMR | Oculus Quest 2 |

  • 1 year later...
Posted
Чтобы не было 100% проблем с сетевой игрой.... Лучше сделать звуковую папку в сохраненных играх и я так делаю и многие....

C:\Users\......\Saved Games\DCS\Sounds\Effects\Aircrafts\Engines

Подробно или здесь в теме или в DCS World FAQ

 

У меня Стим-версия, и такой папки нет. Создал вручную, как описано в первом посте - никаких результатов. Ковыряния только в самой DCS\Sounds\Effects\Aircrafts\Engines дают результат.

В связи с этим вопрос: сильно ли отличаются ED и Steam-версии DCS World? Спасибо.

Posted
. Как-то совсем не хочется переустанавливать (Стим-версия) МИР и все модули, со всеми вытекающими.

Спасибо.

 

В Стиме запусти "Проверка целостности кэша".

  • Like 1

НЕТ ФAШИЗМУ и НЕОНAЦИЗМУ! / NO TO FASCISM and NEO-NAZISM!

  • 3 weeks later...
Posted (edited)

В помощь тем, кто "крутит" SDEF" файлы.

 

пример исходного файла определения

-- INCLUDE:

inherit = ""

-- имя .sdef, чтобы получить параметры из

 

-- Пример:

wave = "по умолчанию"

-- звук sample-файл, чтобы использовать

-- относительно $ROOT/Sounds/ каталог

-- если нет .ext учитывая, .wav и .ogg судят

-- 1/2 каналы, либо в формате pcm (загружено 16-bit)

--

-- СЛУЧАЙНОЙ ВЫБОРКИ:

-- Если вы предоставляете список образцов, таким образом:

wave = {"sample0", "sample1", "sample2"}

-- на каждом воспроизведения случайной выборки из списка будет использоваться.

 

-- VOLUME:

gain = 1.0

-- получить множитель (линейная громкость)

 

-- Частота:

pitch = 1.0

-- источник умножителя частоты

 

-- Фильтрация:

lowpass = 24000.0

-- источник частоты среза фильтра нижних частот

 

-- Положение:

position = {0, 0, 0}

-- положение относительно узла в м {вперед, вверх, вправо}

 

-- Радиус (дистанция)слышимости:

inner_radius = 1

-- внутри этого радиуса усиление максимально (как дано в gain области)

-- еще называют " контрольным расстояние, т.е. расстояние, на котором источник имеет номинальную прибыль

outer_radius = 256

-- за пределами этого радиуса источник не слышен

- если только один из радиусов, другой рассчитывается автоматически

-- outer_radius = inner_radius / silence_threshold

-- silence_threshold установлено 1/256 (-48dB)

 

-- Конусы:

direction = {0, 0, 0}

... направлении относительно узла {вперед, вверх, вправо}

cone_inner_angle = 0

-- внутри этого конуса (учитывая как halfangle в 0-180 градусов) усиление максимально (как указано в gain области)

cone_outer_angle = 0

-- вне этого конуса (учитывая как halfangle в 0-180 градусов) усиление cone_outer_gain

-- установить обратный конус (симметричный относительно плоскости направлении, как обычного)

-- set cone_inner_angle > cone_outer_angle и <= 90

- полезен для роторов

-- пример:

-- cone_inner_angle = 80

-- cone_outer_angle = 60

-- будет и обратного конуса с +-10 степень внутренний угол а +-30 градусов внешний угол

cone_outer_gain = 1

-- усиление за пределами cone_outer_angle

cone_outer_lowpass = 24000

- частота среза вне cone_outer_angle

 

-- PLAYMODE:

trigger = false

-- значение true, если звук должен всегда играть всей выборки (взрывы, выстрелы и т.д.)

streaming = false

- если установлено значение true, то образцы будут передаваться с диска

-- false (по умолчанию) значение означает, что образцы хранятся в памяти (без сжатия!)

-- подразумевает trigger=false

listmode = RANDOM

-- играть одной случайной выборке из плейлиста

-- другие значения:

-- Последовательность - sequantially играть все образцы из плейлиста

-- ASR - (атака, SustainRelease) - играет первый образец на старт только, петли и все остальное

-- ВРЕМЯ АТАКИ:

атака = 0.0

-- время, необходимое для первоначального запуска объема от нуля до пика, когда началась образец

-- ВРЕМЯ ОТПУСКАНИЯ:

релиз = 0.0

-- время, затраченное на объем разлагаться до нуля, когда образец остановился

Edited by Anaglob
Posted (edited)
Там в sdef файле (EngineTV3117.sdef) нет уровня громкости как у всех

inner_radius

outer_radius

По этому тебе надо уменьшать уровень громкости в самом файле EngineTV3117.wav То есть через программу работающую со звуками.

При ремонте или обновлениях звук закачается снова оригинальный.

.

Если не хватает каких-то параметров в SDEF, их можно самому прописать и всё заработает. Другое дело - если сам звук нужно кардинально изменить.

Если заменить исходник вот этим, то заметьте, как изменится звук пролетающего самолёта:).

Распаковать и пихнуть в ....\DCSWorld\Sounds\sdef\Aircrafts\Engines, сохранив прежде исходник.

Здесь прописан "приход" звука уже после пролёта самолёта, вполне реалистично. Единственный минус - это когда самолёт на земле, то его тоже будет слышно далеко (с задней полусферы), что не соответствует истине.

Просто эксперимент, не более.

Edited by Anaglob
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...