Jump to content

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


c0ff

Recommended Posts

  • ED Team

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

$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.

Link to comment
Share on other sites

Опредения:

$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:

 

 

 

Link to comment
Share on other sites

От любителя менять звуки в игре!) Тоже большое спасибо за эту суперовую подсказку по звукам! И за ответ в теме (Игровой сервер =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 |

Link to comment
Share on other sites

В связи с появившейся новой темой "Моддинг звуков" И подсказками как изменить стандартный игровой звук на свой, без утраты его после обновлений а вернее переноса его в папку _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 |

Link to comment
Share on other sites

  • 5 months later...

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

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

 

Привожу на примере танка Челленджер 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

Link to comment
Share on other sites

В 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 |

Link to comment
Share on other sites

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

 

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

Welcome to the Rock

Link to comment
Share on other sites

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

 

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

 

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

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

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

Link to comment
Share on other sites

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

 

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

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

Link to comment
Share on other sites

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


Edited by Kachubey
Link to comment
Share on other sites

на почти такие же, только тише. Мне не нравится свист турбины Тв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 |

Link to comment
Share on other sites

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

inner_radius

outer_radius

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

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

.

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

Link to comment
Share on other sites

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

Чтобы не было 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 |

Link to comment
Share on other sites

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

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

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

 

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

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

Link to comment
Share on other sites

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

Спасибо.

 

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

  • Like 1

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

Link to comment
Share on other sites

  • 3 weeks later...

В помощь тем, кто "крутит" 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
Link to comment
Share on other sites

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

inner_radius

outer_radius

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

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

.

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

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

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

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

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


Edited by Anaglob
Link to comment
Share on other sites

  • Recently Browsing   0 members

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