Правила форума

Вернуться   Mafia-Game Forum > Mafia II: Empire Bay > Модификации
Расширенный поиск
Имя
Пароль

Модификации Обсуждение разных модификаций и программ для игры.

Объявления
  • Добро пожаловать!
  • Популярные темы
  • Скачать Mafia и Mafia II
  • Контакты
Ответ
 
Опции темы
По умолчанию Как я понизил громкость автомобилей в игре Mafia 2
Старый 27.04.2014, 06:01   (ссылка) #1
hipot
 
Аватар для hipot
Группа: Беглец
Регистрация: 31.03.2009
Сообщений: 6
Сказал(а) спасибо: 7
Поблагодарили 3 раз(а) в 1 сообщении
hipot стоит на развилке
hipot вне форума  
Ответить с цитированием


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

Этого не скажешь про вторую часть – тут за много эффектов отвечает один ползунок, включая и транспорт. Субъективно, мне нравится, чтобы город звучал громко (эффект присутствия в городе), но при этом транспорт и рев мотора был слышен, но не заглушал всего остального. Это желание и заставило меня провозиться с громкостью, т.к. в игре моторы звучат очень громко.

Суть моего метода – это понижение громкости аудио-файлов со звуком мотора автомобилей.

Описываю подход к решению подробно - думаю это будет полезно всем, кому интересно модить игру.

Осталось найти софт для реализации данной задумки. Проблема была именно в поиске консольных утилит соответствующих версий.

Нам потребуются:
Код:
SDSTool – распаковщик/упаковщик SDS-архивов
Fsbext – распаковщик .fsb аудио в mp3
mp3gain – работа с громкостью mp3
fsbankexcl – запаковщик mp3-аудио обратно в .fsb
Все их можно скачать тут: http://yadi.sk/d/DPH4iqQnNLtbh

Как оказалось, звуки авто расположены по каждой марке автомобиля в папке Mafia2\pc\sds\cars\.

Алгоритм понижения громкости машин я составил следующий:
----------------------------------

1/ распаковываем все sds из папки Mafia2\pc\sds\cars\ в одноименные папки, напр. архив ascot_baileys200_pha.sds в папку ascot_baileys200_pha

Консольная команда распаковки:

Код:
d:\temp\SDSTool\SDSTool e -o d:\temp\cars\ascot_baileys200_pha d:\temp\cars\ascot_baileys200_pha.sds
2/ В папке SDS d:\temp\cars\ascot_baileys200_pha выбираем все файлы *.fsb
и извлекаем их в .wav.pm3 при помощи fsbext

Консольная команда распаковки:

Код:
d:\temp\fsbext\fsbext -d d:\temp\cars\ascot_baileys200_pha\ d:\temp\cars\ascot_baileys200_pha\V4_sport1_2.fsb
3/ Уменьшаем громкость до 80% у полученных .wav.mp3 файлов

Консольная команда понижения уровня громкости:
Код:
d:\temp\mp3gain\mp3gain /g -8 d:\temp\cars\ascot_baileys200_pha\V4_sport1_2.wav.mp3
Тут я методом подбора определил, что оптимальный вариант понижения – это 8.

4/ Преобразуем все аудио .wav.mp3 обратно в .fsb при помощи fsbankexcl

Код:
d:/temp/fsbankex/tools/fsbankexcl -rebuild -format adpcm -o d:\temp\cars\cars_universal\A_autosklo1.fsb d:\temp\cars\cars_universal\A_autosklo1.wav.mp3
5/ Превращаем папку d:\temp\cars\ascot_baileys200_pha обратно в sds файл:

Код:
d:\temp\SDSTool\SDSTool c -o d:\temp\cars\ascot_baileys200_pha.sds d:\temp\cars\ascot_baileys200_pha\Stream.xml

Вручную такие вещи выполнять не очень то приятно, хочется автоматизации. На языке PHP я достаточно быстро набросал скрипт «уменьшитель громкости авто», файл converter.php:


PHP код:
// распаковываем и понижаем громкость
$dirCars 'd:/temp/cars';

foreach (
glob($dirCars '/*.sds') as $carFile) {

    
// распаковываем архив
    
$carFolder $dirCars '/' basename($carFile'.sds');
    
exec('d:/temp/SDSTool/SDSTool e -o ' $carFolder .  ' ' $carFile);
    
unlink($carFile);

    foreach (
glob($carFolder '/*.fsb') as $audioFile) {

        
$newAudioFile $carFolder '/' basename($audioFile'.fsb') . '.wav.mp3';
        
exec('d:/temp/fsbext/fsbext -d ' $carFolder ' ' $audioFile);
        
exec('d:/temp/mp3gain/mp3gain /g -8 ' $newAudioFile);
        
unlink($audioFile);
        
        
exec('d:/temp/fsbankex/tools/fsbankexcl.exe -rebuild -format adpcm -o ' $audioFile ' ' $newAudioFile);
        
unlink($newAudioFile);
    }

    echo 
$carFolder " [1]\n";
}


// запаковываем SDS обратно
if ($handle opendir($dirCars)) {
    while (
false !== ($entry readdir($handle))) {
        if (
$entry == "." || $entry == ".." || !is_dir($dirCars '/' $entry)) {
            continue;
        }

        
$sDsDirPath $dirCars '/' $entry;

        
chdir($sDsDirPath);
        
exec('d:/temp/SDSTool/SDSTool c -o ' $sDsDirPath '.sds     ' $sDsDirPath '/Stream.xml');

        echo 
$sDsDirPath " [2]\n";
    }
    
closedir($handle);


Кто знаком с PHP запросто смогут его запустить из консоли:
Код:
php converter.php
На выходе мы получаем состав директории Mafia2\pc\sds\cars\ уже с файлами с пониженной громкостью. Таким образом мы понизили громкость двигателя у всех машин и обновленные файлы sds «скормили» игре.

Для скачивания я выложил архив с файлами авто, в которых уменьшена громкость моторов. Скопировав с заменой в игру можно получить пониженную громкость авто (сперва сделать бекап папки!):

http://yadi.sk/d/nUQa_hGPNLtRs

При этом гемплей для меня стал более приятным. Возможно, пройду игру еще раз .
__________________
Никогда не сердись, никогда не угрожай и заставь человека рассуждать здраво. Главное искусство состоит в том, чтобы не замечать ни оскорблений, ни угроз и подставлять левую щеку, когда тебя ударят по правой.
 
Посмотреть профиль Отправить личное сообщение для hipot Отправить письмо по электронной почте для hipot Найти ещё сообщения от hipot
Последний раз редактировалось hipot; 27.04.2014 в 06:10..
3 пользователя(ей) сказали cпасибо:
Alekskan (27.04.2014), Bobafett (27.04.2014), Knight Rider (28.04.2014)
По умолчанию
Старый 27.04.2014, 16:36   (ссылка) #2
Alekskan
 
Аватар для Alekskan
Группа: 아렉ㅅ강
Регистрация: 22.02.2006
Адрес: респ. Татарстан
Сообщений: 1,667
Сказал(а) спасибо: 1,964
Поблагодарили 1,526 раз(а) в 814 сообщениях
Alekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнутьAlekskan . Такую репутацию нельзя пошатнуть
Alekskan вне форума  
Ответить с цитированием


Молодец, заморочился
 
Посмотреть профиль Отправить личное сообщение для Alekskan Отправить письмо по электронной почте для Alekskan Найти ещё сообщения от Alekskan
Ответ

Метки
fsb, sds, громкость, музыка, распаковка


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход




Powered by vBulletin® Version 3.x.x
Copyright ©2000 - 2018, vBulletin Solutions, Inc. Перевод: zCarot
All rights reserved. Copyright © Mafia-Game.Ru 2002-2018