Как да извлека звук от игра? Разопаковач на архиви - UniExtractor. Музикални формати в игрите

Защо да извличате звук от игра? Какви музикални сайтове има?

Да, работата е там, че ще се уморите да търсите мелодии от игри. И тогава имаше игри, които лежаха наоколо на компютър с добро електронна музика. Точно по това време имах спешна нужда да го направя и озвуча звукови ефекти. Така че се чудех дали да премахна звука от играта. Играта беше във формат Java мобилен телефони тя просто не можеше да отвори директорията си, не и чрез никаква програма.

Сега извличането на звук от игри не ми е проблем. Един ми помогна с това мощна програма UniExtractor(изтегляне) Предназначен е за извличане на повредени архиви като 7zip, WinRAR и други компресирани файлове. Е, самите инсталатори на програмата разопаковат без проблеми. И Java играта е точно инсталатора. След като разопаковах проста игра, се опитах да извлека звук от по-сложна. Програмата UniExtractor също се справи с игри за операционната зала Android системи. Разопаковането отнема много малко време. Около една минута. През това време е малко вероятно да намерите подходящ звук в интернет. Да се ​​залавяме за работа.

Извличане на звук от играта

За разархивиране, както споменах по-горе, ще използваме специален инструмент за разархивиране на архиви - Униекстрактор. Програмата не трябва да се стартира отделно, просто щракнете десен ключмишката с помощта на инсталатора на играта. IN контекстно менюИзбери предмет- Екстракт със Униекстрактор.

Процес на разопаковане.

Сега можем да видим два файла с едно и също име. Първият е самият инсталатор на играта, а вторият е разопакованият инсталатор под формата на папка с файлове. Отворете папката и потърсете друга в нея, с името ап .

В тази папка има още две, с аудио файлове. Те могат да се наричат ​​по различен начин. Но обикновено е така МузикаИ Звук.Като цяло, ако ги няма, тогава ще трябва да прегледате всички папки.

Искам да те направя щастлив. Не всички игри имат този проблем. Някои неопаковани игри съдържат формата аудио, което може веднага да се слуша на плейъра.

Това е полезно да знаете:


Ще говорим за софтуерна библиотека за работа със звук, известна като FMOD. Разработчикът на това софтуерен продукте Firelight Technologies Pty, Ltd. Към момента на писане най-новата версияВерсията на FMOD беше 3.74. СЪС сегашно състояниеслучаи и нови версии, ако се появят, можете да намерите на уебсайта www.FMOD.org. На същия сайт можете да получите FMOD версии за различни операционна система. Намерени са директни връзки към разпространението на FMOD

Функционалната библиотека FMOD е реализация на API Най-високо ниво, който включва широк набор от функции за работа с аудио файлове различни формати, обработка на аудио данни и възпроизвеждане на аудио чрез компютърна аудио система или игрови конзоли. За да се говори за всички възможности на този API, ще са необходими повече от дузина уеб страници. Освен това основната ни тема е разработването на звукови игри, за които основният интерес са функциите за работа със съраунд (3D) звук. Ще се ограничим до въвеждането на тези функции. Трябва да се има предвид, че тази публикацияне е пълно ръководствоспоред FMOD, следователно, когато анализирате примерите по-долу, не трябва да пренебрегвате официалната документация. Всички примери в статията са написани на езика за програмиране C.

За създаване на 3D звукови източници и изчисляване на триизмерна звукова картина, FMOD (версия за Windows) използва някоя от следните звукови системи като основа: WMM (Windows Multimedia), DirectSound3D (Microsoft DirectX звукова подсистема) и A3D. FMOD се свързва с тези звукови системи по такъв начин, че преминаването от една към друга изисква минимални промени в програмния код (а често и никакви промени). Когато работите с основната звукова система DirectSound3D, функциите FMOD правят много по-лесно управлението на източниците на съраунд звук, опростявайки тяхното инициализиране, възпроизвеждане и позициониране. Лесното програмиране на FMOD (в сравнение с програмирането на основни звукови системи) е важно предимство на този API (можете да прочетете за програмирането на DirectSound3D директно в статията Програмиране на съраунд звук в DirectSound3D).

Друго предимство на FMOD е лесната инсталация - просто го поставете системна папкаили в папката, от която се стартира приложението, dll библиотеказа да направи FMOD функциите достъпни. Във версия 3.74, в допълнение към обичайната 32-битова dll за Windows, се доставя 64-битова FMOD библиотека.

FMOD съдържа подробна документация и примери (заедно със заглавни и други помощни файлове) за VisualC, BorlandC, Watcom C, Borland Delphi и VisualBasic. За нетърговски приложения библиотеката FMOD се предоставя безплатно.

Недостатъците на FMOD включват липсата на такива функции (които са реализирани в DirectSound3D) като създаване на насочени звукови източници и създаване на зависими звукови източници (от поне, наборът от функции FMOD не включва функции, които задават тези параметри за обработка на пространствено аудио).

Космически модел в FMOD

Пространственият модел (координатна система), използван за поставяне на 3D източници на звук, е подобен на пространствения модел в DirectSound3D. Тук се използва лява декартова координатна система, състояща се от три ортогонални координатни оси. Оста X (x) е насочена надясно; Оста Y (Y) е насочена нагоре; Оста Z (zet) е насочена напред (т.е. в монитора, ако седите с лице към него). Разстоянието се измерва в метри, но можете да зададете различна единица за дължина, като зададете съотношението между метъра и новата мерна единица. Всяка точка в пространството се определя от своите координати, които са записани в последователността X, Y, Z. Координатите могат да приемат както положителни, така и отрицателни стойности. Координатната триада XYZ, която характеризира позицията на точка в пространството, може да се разглежда като вектор, чийто произход е в началото, тоест в точка с координати (0, 0, 0), и крайна точка с координати (X, Y, Z). В допълнение към векторите на позицията, FMOD използва вектори на скоростта, за да изчисли доплеровото изместване в звуковия спектър на движещи се източници. Векторът на скоростта се определя от три координати на неговата крайна точка (за начална точка на вектора на скоростта се счита точката (0, 0, 0)). Трябва да се отбележи, че FMOD (като DirectSound3D) не изчислява координатите на движещ се обект. Тази задача трябва да бъде решена от програмиста, предавайки на функциите на FMOD данните, необходими за симулиране изключително на звуковата картина в определена точка от пространството и в определен момент. Тоест по същество FMOD (подобно на DirectSound3D) изчислява статична звукова картина, която програмистът може да направи динамична за слушателя (играча), като често променя позицията на източниците на звук.

В онези функции на FMOD, за които трябва да бъде предаден вектор като параметър, се използва указател към структура, състояща се от три реални (float) числа, или към масив, състоящ се от три реални (float) числа. Това са две следните дизайнище се третират еднакво от функциите на FMOD:

/* масив */ float pos = (10.0f, 2.0f, 4.2f); /* структура */ struct VECTOR ( float X; float Y; float Z; ); ВЕКТОР поз = (10.0f, 2.0f, 4.2f);

Космическият модел в FMOD включва някои други параметри на околната среда, които влияят върху разпространението на звуковите вълни. С помощта на функциите FMOD можете да зададете степента на затихване на звука и тежестта на Доплеровия ефект.

Обекти на звуков пейзаж във FMOD

В FMOD има два типа обекти в триизмерното звуково пространство: източници на звук и слушатели. За разлика от DirectSound3D, FMOD поддържа модел с множество слушатели. Във всички останали отношения и двете системи са сходни.

Източниците на звук при FMOD могат да бъдат само точкови и ненасочени, което означава, че източникът няма собствени размери и разпространението на звука от този източник е всепосочно. Позицията на слушане, напротив, е ориентирана. За да направите това, се определя посоката на два ортогонални вектора с единичен размер. Първият вектор ориентира посоката на лицето, т.е. показва къде гледа слушателят. Вторият вектор винаги е насочен от върха на главата, тоест показва посоката вертикална осслушател. Модулът на всеки от тези вектори равно на едноизмервания на дължината, поради което се наричат ​​единица (модулът на вектора се изчислява като квадратен корен от сумата от квадратите на дължините на неговите проекции върху координатните оси).

Функции за работа с 3D звук

За простота на представянето, по-долу са не само функциите на FMOD, които са пряко отговорни за създаването на съраунд звук, но и всички онези функции, които програмистът трябва да използва, за да работи с библиотеката FMOD. Освен това в списъка функциите са разположени в приблизителната последователност, в която трябва да бъдат извикани в програмата, взаимодействаща с FMOD. В документацията, която се доставя с FMOD, всички функции, изброени по-долу, са поставени в раздела „FSOUND API Reference“.

  • FSOUND_GetVersion() - връща версията на FMOD библиотеката, инсталирана на компютъра. Върнатата стойност трябва да се сравни с константата FMOD_VERSION, която съхранява номера на версията на FMOD, за която програмата е компилирана.
  • FSOUND_SetOutput () / FSOUND_GetOutput () - изберете/вземете основната звукова система (Windows Multimedia, DirectSound, A3D и др.). Избор основна систематрябва да се направи преди извикването на функцията FSOUND_Init().
  • FSOUND_SetDriver () / FSOUND_GetDriver () - изберете/вземете номера на изходното устройство (звукова карта). Изборът на устройство трябва да бъде направен преди извикване на функцията FSOUND_Init().
  • FSOUND_SetMixer() /FSOUND_GetMixer() - изберете/получете типа цифров миксер. Изборът на миксер трябва да бъде направен преди извикването на функцията FSOUND_Init(). Определянето на типа миксер не е необходимо, тъй като FMOD автоматично ще определи най-добрата налична опция.
  • FSOUND_Init() - инициализира звуковата система FMOD.
  • FSOUND_Sample_Load() - зарежда в паметта и декодира звуков файл(поддържат се .wav, .mp2, .mp3, .ogg, .raw и др.).
  • FSOUND_3D_SetDistanceFactor() - позволява ви да зададете единици за дължина, различни от метри.
  • FSOUND_3D_SetDopplerFactor() - позволява ви да зададете отместването на Доплер. Базовата стойност (1.0) съответства на скоростта на звука 340 m/s.
  • FSOUND_3D_SetRolloffFactor () - ви позволява да зададете нивото на загуба на енергия на звуковата вълна (затихване). Базовата стойност (1,0) съответства на нормални условия.
  • FSOUND_PlaySoundEx() - възпроизвежда звуковия файл, зареден в паметта през звуковия канал.
  • FSOUND_3D_SetAttributes() / FSOUND_3D_GetAttributes() - задава/получава вектора на позицията и вектора на скоростта на източника на звук.
  • FSOUND_3D_SetMinMaxDistance() / FSOUND_3D_GetMinMaxDistance() задава/получава минималното и максималното разстояние за чуване на източника на звук. Минималното разстояние е такова разстояние от източника на звук до слушателя, при намаляване на силата на звука вече не се увеличава, а остава на стойността, която е достигнала на минималното разстояние. Като зададете различни минимални разстояния, например за самолет и земна пчела, можете да ги направите еднакво забележими за ухото, въпреки факта, че бръмченето на двигателя ще се възприема като повече мощен звук. Максималното разстояние от източника на звук до слушателя е разстоянието, от което силата на звука вече не намалява, а остава на достигнатото ниво при максимално разстояние. Това означава, че независимо колко далеч е източникът на звук, той ще бъде чут.
  • FSOUND_SetPaused() - Поставя на пауза/възобновява аудио възпроизвеждането в канал.
  • FSOUND_3D_Listener_SetAttributes () / FSOUND_3D_Listener_GetAttributes () - задайте/получете вектора на позицията, вектора на скоростта и векторите за ориентация на слушателя.
  • FSOUND_Update () - актуализирайте състоянието на звуковия миксер, т.е. актуализирайте състоянието на звуковата панорама, след което всички промени в позицията на слушателя или източниците на звук влизат в сила.
  • FSOUND_Sample_Free() - Освобождава памет от аудио данни, заредени от функцията FSOUND_Sample_Load().
  • FSOUND_Close() - Разтоварва FMOD звуковата система.

Този списък е минимално необходимият и не включва редица функции, които ви позволяват да получавате Допълнителна информацияотносно звуковата карта, поддържаните алгоритми за обработка на звук и т.н., както и управление на някои параметри за възпроизвеждане на звук.

Алгоритъм за използване на FMOD в игрови програми

Нашият фокус ще бъде върху игри, които използват съраунд звук (3D). По правило в игрите има основен цикъл на игра, в рамките на който обектите на играта се движат в пространството. Такова движение може да бъде причинено от действия на играча (например в симулатор на кола може да бъде завъртане на волана надясно или наляво) или промяна в ситуацията на играта (например в екшън игра може да се приближи чудовище) . След като се изчислят новите координати на обектите, позицията на източниците на звук също трябва да се промени, така че да съответстват на новата позиция на обектите в игровото пространство.

Цикълът на играта, като правило, се предхожда от онази част от програмата, в която променливите се инициализират, зареждат необходимите библиотекии ресурси. Когато използвате FMOD, тази част трябва да съдържа следните функции: FSOUND_SetOutput, FSOUND_SetDriver и FSOUND_SetMixer. Като параметър за автоматично откриванеосновната звукова система може да предаде -1 (0FFFFFFFFh) на функцията FSOUND_SetOutput.

След успешна инициализация на FMOD е необходимо да поставите звукови данни в паметта в съответствие със скрипта на играта. Функцията FSOUND_Sample_Load, отговорна за този процес, поддържа няколко звукови форматии зареждането, да речем, на .mp3 файл от гледна точка на програмист не се различава от зареждането на файл във формат wav. Това е мястото, където предимствата на FMOD библиотеката влизат в пълна сила, позволявайки ви да опростите досадната процедура по създаване на звукови буфери и зареждане на данни в тях, характерна за DirectSound. Резултатът от FSOUND_Sample_Load ще бъде указател към звукова проба, намираща се в паметта. Ако се обърнем към терминологията на DirectSound, това ще бъде аналог на вторичен звуков буфер. Посочената аудио проба може да се използва за създаване на множество 3D аудио източници, без да е необходимо да се създават допълнителни копия на тази проба.

Сега, след като необходимите данни са заредени, можете да започнете да създавате триизмерна звукова картина. Трябва да се помни, че промяната на вектора на позицията и вектора на скоростта, както и много други характеристики на източника на звук, е възможна само директно по време на възпроизвеждане на звук чрез функциите FSOUND_PlaySound и FSOUND_PlaySoundEx, следователно, преди да поставите източника на звук във всяка точка на пространството , трябва да започнете да възпроизвеждате този звук. При обаждане обаче определени функциизвукът ще се възпроизведе в точката, където се намира слушателят, което може да наруши сцената на играта (например чудовище, което трябва да се приближава от най-отдалечения ъгъл, внезапно изръмжа под ухото на играча). За да се избегне подобен инцидент, функцията FSOUND_PlaySoundEx() предоставя специален параметър, който незабавно спира възпроизвеждането на звука. Може да се постави безшумен източник Правилно мястои възобновете аудио възпроизвеждането. За да влязат в сила промените в звуковата картина, трябва да извикате функцията FSOUND_Update.

Трябва да се каже, че в термините на FMOD възпроизвеждането на аудио се осъществява през канал, така че всичко, което програмистът иска да направи с 3D аудио източник, трябва да бъде направено с помощта на функции, които работят с канала. Първият параметър в такива функции е номерът на канала.

Синтаксисът за извикване на функцията FSOUND_PlaySoundEx е както следва:

Int F_API FSOUND_PlaySoundEx(int ​​​​канал, FSOUND_SAMPLE *sptr, FSOUND_DSPUNIT *dspunit, подписано char startpaused);

Като параметри тази функция получава номера на канала, през който ще се възпроизвежда звукът; указател (дескриптор sptr) към звуков образец, намиращ се в паметта; указател (манипулатор dspunit) към каналния блок, който трябва да се присъедини отново създаден канал(този параметър може да има NULL стойност); флаг за пауза, който трябва да е TRUE за незабавно спиране на възпроизвеждането на аудио.

Ако трябва да създадете нов канал, тогава константата FSOUND_FREE се предава в параметъра на канала. Ако е необходимо звукът да се възпроизвежда във всички съществуващи канали, тогава константата FSOUND_ALL се предава на канала.

Функцията връща номера (дескриптора) на канала, през който се възпроизвежда звукът. Ако възникне грешка, функцията връща -1 (0FFFFFFFFH). Номерът на канала (дескриптор) е необходим за работа с функции свързващ слой, например FSOUND_3D_SetAttributes.

По този начин създаването и позиционирането на източник на звук може да се реализира програмно по следния начин:

FSOUND_SAMPLE *samp1 = NULL; int канал1 = -1; /* проверка на версията на FMOD */ if (FSOUND_GetVersion()

Не забравяйте, че функциите FSOUND_PlaySound и FSOUND_PlaySoundEx поставят източника на звук в текущата позицияслушател, следователно, ако параметърът на канала на тези функции указва число (дескриптор) съществуващ канал, тогава въпреки факта, че позиция, различна от позицията на слушател, е зададена за този канал от функцията FSOUND_3D_SetAttributes, източникът на звук пак ще се премести в позицията на слушател. За да избегнете изкривяване на звуковата картина, преди да извикате FSOUND_PlaySoundEx, е необходимо да запазите позицията и скоростта на източника на звук в специални променливи, като получите тези стойности с помощта на функцията FSOUND_3D_GetAttributes. След това извикайте FSOUND_PlaySoundEx, за да поставите възпроизвеждането на пауза; след това преместете източника на желана точка, използвайки запаметените стойности и едва след това продължете възпроизвеждането. Посочената последователност от действия, наред с други неща, се отнася директно за веднъж възпроизведени звуци (т.е. за такива източници, които не излъчват звук непрекъснато, а звучат само когато се случи определено събитие в играта).

За да промените позицията, скоростта и ориентацията на слушателя в пространството, използвайте функцията FSOUND_3D_Listener_SetAttributes. Ето неговия синтаксис:

Void F_API FSOUND_3D_Listener_SetAttributes(const F_FLOAT_API *pos, const F_FLOAT_API *vel, F_FLOAT_API fx, F_FLOAT_API fy, F_FLOAT_API fz, F_FLOAT_API tx, F_FLOAT_API ty, F_FLOAT_API tz);

Като параметри тази функция получава указател към триада от координати на позиция (pos), указател към вектора на скоростта (vel), X, Y и Z компоненти на единичен вектор, определящ фронталната ориентация на главата на слушателя (fx, fy , fz); X, Y и Z компоненти на единичния вектор, който определя вертикалната ориентация на главата на слушателя (tx, ty, tz). Въпреки тип void, функция, съгл официална документация, връща TRUE, ако е било успешно и FALSE, ако е било неуспешно.

За разлика от DirectSound3D, FMOD може да има повече от един слушател. Това е направено за игрови конзоли, където едно устройство за игри може да се използва от няколко играча едновременно. Текущият слушател се избира с помощта на функцията FSOUND_3D_Listener_SetCurrent.

Когато играта приключи и ресурсите се освободят в последния сегмент на програмния код, зает с програмата, трябва да използвате функциите FSOUND_Sample_Free, на която като параметър се предава указател (дескриптор) към фрагмент от аудио данни в паметта, и FSOUND_Close, която се извиква без параметри и разтоварва звуковата система FMOD.

FSOUND_Sample_Free(samp1); FSOUND_Close();

Обработка на грешка

Повечето FMOD функции, освен ако не е указано друго в документацията, връщат TRUE при успех. Ако възникне грешка във функцията, се връща FALSE. За да получите допълнителна информация за грешката, използвайте функциите FSOUND_GetError и FMOD_ErrorString. Последна функцияе макрос, така че трябва да включите заглавния файл FMOD_errors.h.

Функцията FSOUND_GetError не изисква параметри и връща кода на грешката, възникнал при изпълнение на функцията FMOD. Макросът FMOD_ErrorString приема този код като параметър и връща текстово описание на грешката. Ето пример за извикване на тези функции:

/* отпечатване на съобщение за грешка в конзолен режим */ printf("Грешка: %s\n", FMOD_ErrorString(FSOUND_GetError()));

Управление на ресурсите и звукови карти от нисък клас

Днес има звукови карти с различна производителност и възможности. Някои от тях могат да поддържат до 100 хардуерни канала за възпроизвеждане на 3D звук, други - не повече от четири. Би било недалновидно да се фокусираме върху „слаби“ звукови карти, когато разработваме игри. Въпреки това, грешка, която може да възникне, когато липсват хардуерни канали в игра с голяма сумазвукови източници могат да направят играта напълно неработеща на определената група звукови карти. Като изход от тази ситуация FMOD предлага използването на функцията FSOUND_SetMinHardwareChannels.

Тази функция се извиква веднъж преди извикване на FSOUND_Init и задава минималния брой хардуерни канали, които трябва да се поддържат звукова карта. След това или целият брой канали, посочени при извикването на FSOUND_SetMinHardwareChannels, ще се възпроизвежда чрез хардуерни канали, или хардуерната поддръжка няма да се използва и ще се получи смесване на канали програмно. С други думи, например, ако имате 16 звука и картата има същото или по-голям бройхардуерни канали, тогава възпроизвеждането ще премине през тези канали. Ако се окаже, че картата има само 4 канала, тогава смесването на всички звуци ще се извърши софтуерно.

Приоритетна поддръжка

FMOD прилага система за приоритет. Ако много аудио източници трябва да се възпроизвеждат на ограничен брой канали, тогава някои може да са по-важни от други. Ако, например, главният герой в играта е стрелец, тогава възпроизвеждането на звука от изстрел вероятно би било най-важно. Така че този източник на звук (изстрелът) трябва да бъде настроен на най-висок приоритет с помощта на FSOUND_SetPriority. По-малко важните звуци няма да се възпроизвеждат, ако всички налични канали вече са заети.

Заключение

Представеният по-горе материал е необходим, за да се запознаете с възможностите на FMOD в областта на работата с съраунд звуки започнете да използвате тази библиотека във вашите програми. Но само тази статия не е достатъчна, за да научите за всички възможности на библиотеката FMOD. Следващата стъпка може да бъде проучване на примерите, включени в пакета за разпространение на FMOD.

Много хора имат подобен въпрос, когато определена песен или тема от игра привлече вниманието им. Може би искате да го имате на вашия плейър или може би искате да го поставите на разговор. TrackID, Shazam или Sound Hound ще ви помогнат да разпознаете песента. Но имаме нужда от неговото материално съществуване.

Ако неразгадаемите пътища на Google не доведоха до резултати, и онлайн платформа Soundcloud отказа необходима заявка, ще се опитаме да ви насочим.

Обикновено имаме два проблема. Как да извличате музика и как да конвертирате определени формати на игри. , например, има рецепти за конкретни игри, въпреки че сайтът отдавна е остарял, но изведнъж ще ви бъде полезен (наблюдавахме Elder Scrolls, GTA, Half-Life, World of Tanks, Нужда отскорост и др.)

Специални - комунални услуги.

По принцип музиката се съхранява в основните папки на играта и понякога не е скрита никъде. Търсят. Не го намерихте? След това, за да извлечете музика от една конкретна игра, препоръчително е да използвате специална полезност, особено след като от игра на игра (от серия на серия) разработчиците могат да променят звуковия формат и тук универсалните програми не винаги ще помогнат. Така че нека потърсим в Google необходими комунални услуги. Например, това е удобно за Saints Row 3.

Можете да го конвертирате в необходимия формат с безплатна многофункционална програма Фабрика за форматиране, Например. Той също така поддържа iPOd/iPhone/PSP/BlackBerry формати.

Универсални програми.

Но горе-долу универсални програмине толкова. Разработката на Game Audio Player (в описанието има списък с поддържани игри) и WinRipper приключи, но те имат своите предимства.

Всичко, което е музикално ГАПще намери, изведе, възпроизведе и може да конвертира в WAV. Въпреки това си струва да се спомене, че музиката от игрите може да бъде или компресирано поточно аудио - WMA, OGG (всъщност „жив“ звук), в Midi или тракер формати - MOD, S3M, XM и IT (така наречената модулна музика). В този последен случай плейърът GAP ще ви предостави само отделни инструменти, тъй като модулната музика не е непрекъснато записан саундтрак. И изобщо не поддържа midi.

Слава Богу, че решава тези проблеми WinRipper, но това е програма за извличане, а не плейър. Той е способен да изрязва музика в следните формати от архиви на ресурсни игри:
WAV, VOC, AUD, AIFF, AU/SMD, 8SVX, RMI, HMP, HMI, XMI, MUS, CMF, MOD, S3M, IT, XM. Има конвертиране, неспецифично - към WAV и MID. Но винаги има едно „но“. И ГАП, И WinRipperработа с познат формат.

Често се случва форматът на музиката да е предварително неизвестен. Не играйте на игри за отгатване, изтеглете Тотален рекордер Pro или Total Видео рекордерПрофесионалист и се радвайте - той улавя и дигитализира звук от почти всяко място във формат WAV или MP3. Разбира се, има неудобство - записът е в ходв реално време, но програмата е огън. Тук единственият преглед, какво успяхме да намерим (стар топ)<3 .

Тези, които искат да изтрият носталгична сълза за старите времена и да слушат музика от Sega Mega Drive касети... Отдавна има група във VK

Музикални формати в игрите
Shiru (A.Semenov) mailto:shiru at mail dot ru

В процеса на разработване на игра рано или късно възниква въпросът - какви формати да използвате за съхраняване на данни за играта. Целта на този преглед е да разгледа характеристиките, предимствата и недостатъците на популярните формати за музика в игрите, така че въз основа на получената информация да можете да направите интелигентен избор в рамките на вашия проект. Техническите нюанси на възпроизвеждане (как, с какво) на форматите, споменати тук, са извън обхвата на статията и следователно не се обсъждат тук.

Условно можем да разделим форматите, използвани за съхраняване на музика, на две групи: поточно аудио, което съдържа окончателния аудио запис (т.е. само звук), евентуално компресиран, за да се намали неговият размер; и самите музикални формати, където се съхранява набор от инструкции кога и каква нота да се изсвири, плюс звуци (семпли), с които тези ноти трябва да бъдат изсвирени. Първо, нека да разгледаме характеристиките на тези две групи.

Поточно аудио

Това всъщност не е музикален формат - това е звукът такъв, какъвто е, записан във файл. Но този звук може много да е музика, така че за целите на тази статия поточно аудио също е музикален формат. Нарича се стрийминг, защото не е необходимо файлът да присъства изцяло в паметта - достатъчно е да се прочетат малки части от носителя, да се декодира (ако е необходимо) и да се изпрати за възпроизвеждане. Поточното аудио се предлага със или без компресия.

Некомпресираните стрийминг аудио формати обикновено не се използват за съхраняване на музика в игри поради огромния им размер: една секунда стерео аудио с CD качество (44100 Hz, 16 бита) заема 172 килобайта. Предишното изключение беше CD-DA, аудио CD форматът. Но игри с музика в този формат не се срещат през последните години - винаги има с какво да се запълнят малкото според съвременните стандарти мегабайта CD/DVD дискове.

Компресираните аудио формати са по-подходящи за приложения за игри. Има алгоритми за аудио компресия без загуба на качество (т.нар. алгоритми без загуби), но печалбата в обема е изключително незначителна, така че най-често срещаните формати за компресия със загуба на качество (алгоритми със загуба). Популярните алгоритми за компресиране, които осигуряват голяма печалба в обема на крайния файл, използват идеята за „психоакустично кодиране“ - динамичното изключване на честоти от сигнала, които са слабо възприемани от човешкия слух. Обикновено се избира ниво на загуба, което е едва забележимо за ухото. Алгоритмите за аудио компресия обикновено работят с фиксирано съотношение на компресия, за игри това обикновено е около 11:1...7:1 (поток от данни 128...192kb/s). Има огромен брой аудио формати за компресия, но най-известните и използвани от тях са MP3, WMA, OGG.

MP3 е най-старият, много разпространен формат. Първоначално се появи като формат за компресиране на аудио записи за видео филми във формат VideoCD (пълното име е MP3 - MPEG Audio Layer III), но доста бързо започна да се използва самостоятелно. MP3 вече е индустриален стандарт. Използването на MP3-компресирани аудио файлове в проекти за търговски игри с тираж над 5000 копия струва пари - $2500 на продукт (лиценз за игра, за повече информация относно лицензирането вижте връзките в края на статията). Днес MP3 не осигурява най-доброто представяне по отношение на съотношението размер/качество. Подобрените версии на формата MP3 - MP3pro, например - с индикатори, подобни на WMA/OGG, не са придобили голяма популярност.

WMA - Windows Media Audio, формат, популяризиран от самия Microsoft като по-усъвършенствана алтернатива на MP3, е приблизително подобен по възможности на OGG формата. Използването му в софтуерни продукти за съхранение на аудио съдържание не изисква лицензиране.

OGG е сравнително нов формат за аудио компресия, който представлява най-голям интерес за разработчиците на игри. Не изисква никакво лицензиране и е напълно законно да се използва безплатно; в същото време осигурява по-високо качество на звука със същия размер като MP3 или по-малък размер със същото качество на звука. Вярно е, че декодирането на OGG изисква малко повече компютърни ресурси от MP3/WMA. Софтуерните енкодери и декодери от създателя на формата (Vorbis) се разпространяват като отворен код.

Плюсове от използването на поточно аудио за съхраняване на музика:

  • Можете да съхранявате музика от абсолютно всяко техническо ниво. В това отношение този формат е универсален и потенциално (особено с компресия с ниски загуби) може да осигури най-доброто качество на звука
  • Вашите музиканти не са ограничени от възможностите на формата и могат да използват инструментите за създаване на музика, които са удобни за тях (т.е. ще бъде лесно да се намери подходящ музикант)
  • Не изисква голямо количество RAM при възпроизвеждане (потокът от данни се чете от носителя на малки порции)
минуси:
  • За някои приложения размерът дори на компресирано аудио може да е твърде голям - композиция със средна дължина с прилично качество отнема 3-5 мегабайта (когато се използват компресирани формати)
  • Намаляването на размера може да стане само чрез значително намаляване на качеството (увеличаване на загубите при компресия) и намаляване на дължината на композициите
  • Продължителността на една песен директно зависи от размера на нейния файл
  • Декодирането на компресирано аудио изисква относително големи ресурси на процесора и може да не е възможно на платформи с ниска мощност без хардуерен декодер (в реално време)

Музикални формати

Самите музикални формати са формати, които не съдържат крайния звук, а само информация как да го получите. Тоест, информация за това кога и кои ноти да се свирят с какви звуци (и - по избор - самите тези звуци). Благодарение на това е възможно да се постигне значителна печалба в количеството съхранявана информация (размер на файла). Крайният звук (който играчът ще чуе) се получава директно по време на процеса на възпроизвеждане на музика. Това отнема някои компютърни ресурси, но като цяло натоварването не е по-голямо, отколкото при декодиране на компресирано поточно аудио, а обикновено дори по-малко (възпроизвеждането на музикални формати може да бъде хардуерно ускорено; на компютър, например, необходимата хардуерна поддръжка е много по-често срещана отколкото необходимата хардуерна поддръжка за компресирано аудио декодиране).

Музикалните формати налагат някои ограничения върху свободата на творчество на музиканта - не може да се вмъкне например дълга вокална или инструментална част, записана на живо - по-точно ще бъде нерентабилно, т.к. ще доведе до увеличаване на размера на файла и ще бъде по-удобно да се използва поточно аудио. За „жива“ музика (симфоничен оркестър, рок група и т.н.) определено трябва да използвате поточно аудио. Музикалните формати са подходящи само за имитациямузика на живо (за случаите, когато звукът на имитацията става приемлив поради значително увеличаване на размера на файла), или за електронна музика. Почти невъзможно е да се постигне абсолютно сходство в звученето на дадена композиция в музикален формат с музика на живо, възможни са само различни степени на приближение. Както показва практиката, това ограничение не е сериозен недостатък.

Музикалните формати, използвани в игрите, могат да бъдат разделени на две подгрупи: MIDI и семейството на тракер формати (така наречените тракер модули, понякога наричани просто модули). Основната разлика между тези две подгрупи е, че стандартните MIDI файлове съдържат само ноти, докато модулите за проследяване, в допълнение към нотите, съхраняват семпли, които се използват за озвучаване на тези ноти. Останалите различия се отнасят главно до някои ограничения, които налагат своите специфики при писане на музика.

Важен момент: форматите MIDI и тракер не изискват лицензиране, за да бъдат използвани в търговски продукт.

Музикални формати: MIDI

MIDI (цифров интерфейс за музикални инструменти) е хардуерен интерфейс, както и стандарт, който описва процеса на обмен на музикални данни между електронни музикални инструменти. Музикалните данни не са звукови, а най-просто казано са само информация за натиснатите/отпуснатите клавиши на синтезатора. MIDI също са стандарти за съхраняване на тази информация във файлове (най-известните опции са .mid, .midi). MIDI може, до известна степен, да се нарече „стрийминг музикален формат“, защото... за да го възпроизведете, не е необходимо да имате целия файл в паметта - можете да го прочетете част по част, както е в случая с поточно аудио. Но това е единственото сходство между тези формати.

Много потребители на компютри, чувайки думата „midi“, презрително казват нещо като „о, това са толкова малки файлове с ужасно звучаща музика“ (особено тези, които все още имат редки звукови карти без висококачествени синтезатори WaveTable). Важно е да разберете, че звукът на композиция, записан в MIDI файл, е звукът на синтезатора във вашия компютър, чрез който се възпроизвежда съдържанието на файла; качеството на звука зависи пряко от качеството на синтезатора. Малко хора знаят, че MIDI се използва широко в създаването на професионална електронна музика (включително за създаване на музика за игри, за последващ запис в аудио формат).

За момента единственият принцип на работа на MIDI синтезаторите на PC е т.нар. Синтез на WaveTable. Тоест има набор (банка) от звуци на различни инструменти (описани от стандарта, най-малко 128 инструмента и 64 барабанни звука), синтезаторът възпроизвежда ноти с тези звуци. Звуците на инструментите не се съхраняват в MIDI файла и банките от инструменти от различни производители на звукови карти може да се различават (не в състава на инструментите, а в характеристиките на техния звук). Следователно, с различни банки от инструменти, звукът на един и същ MIDI файл се променя донякъде, което понякога създава известен проблем. Композиция, написана за една банка, може да звучи зле с друга (например поради различен баланс на обемите на инструментите). Това налага и ограничение на творческата свобода на музиканта - той е ограничен само от онези тембри (инструменти), които стандартът описва. От друга страна, липсата на инструментални проби в MIDI файл значително намалява неговия размер - огромна композиция може да тежи само 50-100 килобайта и в същото време да бъде перфектно компресирана няколко пъти с обикновен ZIP.

Има няколко обратно съвместими MIDI стандарта - основният, General Midi (GM); разширение от Roland (GS); по-модерно разширение от Yamaha (XG). Разширените формати имат голям брой инструменти в стандарта (минимум 226 за GS, минимум 480 за XG - без да се броят барабаните) и допълнителни възможности за управление на звуковия синтез, чрез които можете да разнообразите и подобрите качеството на звука.

За да възпроизвеждате MIDI, имате нужда от MIDI синтезатор в системата - на компютър това може да бъде звукова карта с хардуерен WaveTable синтезатор (GM/GS/XG, със собствена банка от звуци) или обикновена звукова карта (като напр. AC"97) със софтуерен синтезатор (който изяжда част от производителността на системата; софтуерен GS синтезатор със стандартна звукова банка е включен в DirectX). На устройства като мобилни телефони това може да бъде обикновен хардуерен синтезатор (няма опции за захранване за софтуерен синтез все още), а не WaveTable, а един от алтернативните методи за синтез (обикновено това е FM синтез), много грубо симулиращ звука на инструментите.

Ако в системата няма хардуерен синтезатор и няма достатъчно процесор/памет за софтуерен синтез, е невъзможно да се възпроизвежда MIDI на такова устройство.

Професионалисти:

  • Много малък размер на файла
  • Когато използвате добър синтезатор с добра банка семпли, високо качество на звука
  • Ако имате хардуерен синтезатор, има много малко натоварване на процесора (плейърът изпраща команди само към синтезатора)
  • Няма да е трудно да намерите музикант, който знае как да работи с MIDI
минуси:
  • Зависимост на качеството на звука от използвания синтезатор
  • Различни звуци на инструменти на различни синтезатори (музика, която звучи добре на един синтезатор, може да звучи ужасно на друг, дори ако тези синтезатори са с еднакво високо качество)
  • Известна монотонност в звука на всяка музика на един и същ синтезатор (поради факта, че банката за проби за различни композиции обикновено не се променя)

Музикални формати: тракер музика

Музиката в този формат се нарича още "модули". Както в MIDI, файлът съхранява данни за нотите, но освен тях, той също така съхранява семпли, които ще бъдат използвани за озвучаване на нотите при възпроизвеждане. Това е мястото, където приликите свършват - технически има повече разлики, отколкото прилики между MIDI и тракер музиката. Въпреки общата идея (за съхраняване на ноти, а не на окончателния звук), реализациите на тази идея се различават значително.

Тракерът е музикален редактор с определен тип интерфейс (вертикални колони от цифри и букви вместо музикалния състав, познат на музикантите). Тракерите се появиха отдавна, на първите домашни компютри, които имаха най-простите устройства за синтез на звук. Бележките бяха озвучени от системния хардуер (например чрез SID чипа на C64, чрез AY чипа на ZX128). Тракерите, които използват семпли за озвучаване на ноти, се появяват в края на 80-те години на платформата AMIGA и по-късно се разпространяват във всички други платформи, които имат средства за възпроизвеждане на цифров звук.

Самият принцип на работа на тракерите налага определени ограничения върху възможностите на музиканта, от друга страна, предоставя необичайни възможности за контрол на звука. За разлика от професионалния MIDI стандарт, това е аматьорски стандарт, разработен от ентусиасти на компютърна музика, а не производители на музикално оборудване. Писането на музика в тракери е различно от работата с професионални софтуерни MIDI секвенсери. Основни характеристики на тракерите:

Строго квантуване на времето - бележките не могат да започват и спират да звучат по всяко време, а само на определени позиции (това затруднява изпълнението на някои ефекти, например плавно свирене на акорд на китара);
- Липса на полифония на един канал (писта), точно толкова ноти могат да звучат едновременно, колкото канали има в песента;
- Наличието на „ефекти“ - команди, които влияят върху процеса на възпроизвеждане на всяка отделна нота. Ефектите могат да бъдат съвсем обикновени (от музикална гледна точка) - вибрато, контрол на звука, портаменто; и не съвсем обикновени - изместване на началото на семпла, управление на филтри и т.н.

Въпреки някои ограничения (в сравнение с MIDI), съхраняването на семпли във файл с композиция предоставя очевидни предимства - възможността да използвате всякакви необходими тембри, фрагменти от живи части (китарни рифове, барабанни цикли) - това ви позволява да подобрите качеството на звука и направете го по-близо до "живия звук".

Има голям брой формати за проследяване - като правило всеки нов редактор, освен че поддържаше няколко от най-популярните формати, имаше и свой собствен формат. Форматите се различават по възможности и организация на данните във файла, но общата идея остава същата. Най-популярните са четири формата, които са станали стандартни (поддържани от почти всички редактори): прост MOD (Sound Tracker/Pro Tracker) и S3M (Scream Tracker) и по-усъвършенствани XM (Fast Tracker) и IT (Impulse Tracker).

Първият формат за проследяване - MOD (от думата модул, поради което музиката за проследяване се нарича модули) - имаше скромни възможности: 4 канала, максимум 15 инструмента (само 8-битови проби, плюс възможност за обикновен цикъл в проба), оскъден набор от ефекти. По-късно се появи модификация на MOD с възможност за използване на 31 инструмента и 8 канала.

S3M донякъде разширява възможностите на MOD - по-специално можете да използвате до 32 канала и увеличен брой ефекти. Но примерният формат все още е ограничен до 8 бита.

XM и IT предоставят много по-големи възможности за творчество и забележимо по-високо качество на звука. Голям брой канали (в зависимост от редактора и поддръжката от плейъра), голям брой ефекти, 16-битови семпли (те могат да бъдат зациклени директно или в двупосочен цикъл), 64 инструмента. Инструментите в XM/IT не са синоними на семпли - те са описание на това кои семпли да се използват за определени диапазони от инструментални ноти (така наречените слоеве, това е необходимо за подобряване на качеството на имитация на живи инструменти), обем и панорама плик и някои други параметри.

Възпроизвеждането на MOD/S3M изисква малко по-малко ресурси на процесора, отколкото по-сложното възпроизвеждане на XM/IT. Натоварването на процесора също зависи от броя на каналите в модула и от алгоритъма за интерполация, използван по време на смесването (качеството на звука зависи до голяма степен от качеството на интерполацията).

Музикалните файлове за проследяване могат да варират от стотици байтове до няколко мегабайта. Размерът на файла зависи пряко от броя и качеството на използваните проби. Средно повече или по-малко приличен звучащ модул (с всякаква продължителност) отнема 200-500 килобайта.

За да намалите силата на звука, зает от музиката в играта, можете да съхранявате няколко песни в един файл, като използвате едни и същи инструменти в тях. Възможностите на тракерите ви позволяват да организирате няколко циклични фрагмента в рамките на композиция; в играта можете да играете такава песен, като започнете от различни позиции в нея.

Съществуват модификации на стандартни формати за проследяване, използващи компресиране на проби с помощта на OGG/MP3. Това са форматите MO3 (комбинира форматите IT/XM/S3M/MTM/MOD) и OXM (стандартен XM, но използващ OGG за опаковане на проби). И двата формата използват компресия само за онези семпли, за които предоставя предимство за размера. Компресирането на семпли води до значително намаляване на пространството, заето на диска, с почти незабележимо понижаване на качеството. Семплите се съхраняват компресирани само във файл, когато модулът е зареден, те се разширяват в паметта, така че самото възпроизвеждане на такива модули не увеличава натоварването на процесора, но при възпроизвеждане на модула той ще заема същото количество RAM. като неразопакован. Използването на компресия на семпла може или просто да намали размера на файла, или да подобри качеството на звука, без да променя размера (поради използването на семпли с по-високо качество). Тази технология може да не е подходяща за използване на платформи с ниска мощност - декодирането (зареждането) на пробите може да отнеме твърде много време.

Професионалисти:

  • Потенциално може да осигури по-добро съотношение размер/качество, когато размерът на музикалния файл е много ограничен (100-500kb)
  • Увеличаването на продължителността на композицията увеличава много малко размера на файла
минуси:
  • Форматите на тракерите не са толкова гъвкави, колкото поточно аудио
  • Възпроизвежданият модул заема RAM (подходящо за системи с ограничено количество RAM, например някои PDA)
  • Доста нестандартен подход към писането на музика, различен от конвенционалната музикална нотация, това усложнява разработването на тракери за „обикновени“ музиканти

Какво да избера?

След като се запознахме със спецификата на различните музикални формати, най-накрая можем да преминем към същинския проблем за избора на най-подходящия в рамките на конкретен проект. Първо, трябва да определите критериите за избор: какви възможности има платформата, на която работи вашата игра, какви технически ограничения има. По-специално, критичен ли е обемът на музиката, зает на носителя и, когато възпроизвеждате, RAM? Критично ли е натоварването на процесора? Има ли хардуерни възможности за възпроизвеждане на музика (MP3 декодер, MIDI синтезатор).

Разумно е да се използва поточно аудио, когато няма строги ограничения за заеманото пространство на носителя и има достатъчно мощност на процесора за декодиране (или има хардуерен декодер). Освен това, ако трябва да създадете много висококачествена музика (примери: радиостанции в поредицата от игри GTA; записана музика на живо), просто не остават други опции освен поточно аудио. Голямото предимство на този формат е, че няма проблеми с уменията (или липсата на такива) за използване на различно оборудване и програми на вашите музиканти - те могат свободно да използват тези инструменти, които са най-удобни за тях, т.к. резултатът винаги може да бъде записан в аудио файл.

Ако има строги ограничения за обема на заетата памет, по-добре е да помислите за музикални формати - MIDI или тракер музика. Трябва да избирате между тези две посоки въз основа на способността да възпроизвеждате формати на целевата платформа (MIDI на Palm или GBA, да речем, не можете да възпроизвеждате много) и ограниченията за размера на файла. Възможностите на вашите музиканти също играят важна роля (тъй като създаването на висококачествена музика в тези формати изисква определени умения).

В днешно време е популярно да се използват, при условия на силно ограничение на обема на паметта на носителя (обикновено споделящи игри на компютър), разпределен за музика, едно-две минутни откъси от поточно аудио (обикновено OGG) с много ниско качество (от 56 kbps и по-ниски, при 22050hz моно - това е около 500-600 килобайта). В такива случаи си струва да помислите за възможността за използване на формати за проследяване - в този случай мощността на процесора е достатъчна за възпроизвеждане, но със същия или по-малък размер на файла можете да получите значително по-високо качество, по-чист звук (вероятно по-малко жив - но тук всичко зависи от квалификацията на музиканта).

Ако проектът е на компютър и пространството за музика е много ограничено (да речем 500 килобайта за цялата музикална композиция), можете да помислите за използване на MIDI файлове вместо поточно аудио и модули за проследяване. Проблемът с различните звуци при използване на различни звукови банки може да бъде решен с помощта на софтуерния MIDI синтезатор на DirectX - Microsoft Software GS MIDI Synthezer. Той използва тримегабайтовата GS-банка, която идва с DirectX, и ако напишете MIDI песен специално за този синтезатор, можете да получите много приличен звук с минимална консумация на памет за музикален дизайн (500 килобайта могат лесно да поберат дузина неопаковани 5 -10 минути MIDI -файлове). Можете също така да използвате собствен софтуерен MIDI синтезатор или собствена DLS банка - в този случай ще получите всички предимства на работата с музика чрез MIDI и възможността да използвате свои собствени тембри, характерни за тракер форматите.

На PDA устройства и преносими игрови конзоли най-подходящият формат сега е тракер музика (специфичният формат се избира в зависимост от мощността на процесора) - обемът на медиите, за разлика от мощността на процесорите, все още не е нараснал до възможността за свободно използване на стрийминг аудио в игрите.

В заключение искам да кажа, че изборът на музикален формат не трябва да се ограничава от вашите възможности за софтуерна реализация на плейъра. Има огромен брой готови библиотеки (както платени, така и безплатни) за възпроизвеждане на всички изброени формати за всички платформи, където това може да се реализира хардуерно.

Музиката стана невероятно интегрирана в други форми на изкуство и човешка дейност. Днес нито един филм или игра не е завършен без саундтрак, радиопрограма без джингъл и нов сингъл от любимата ви (и най-малко любимата) група без пускането на придружаващо видео. Също така се случва слушателят да харесва „интегрираната“ музика повече от работата, в която е интегрирана. В този случай възниква логичен въпрос: наистина ли е необходимо всеки път да отваряте филм или да стартирате игра, която го съдържа, за да чуете закачлива песен? Е, не, по-добре просто да изтеглим тази песен.

Извличането на звук от видео файл е тривиална задача и може да се реализира по няколко начина. За да направят това, повечето потребители, опитвайки се да се справят с наличните средства, извличат аудиозаписа на файла, като използват цяла верига от програми: VirtualDub > mp3DirectCut > Lame/Wav2Mp3. Други, напротив, използват професионалния редактор на Adobe Audition за този случай, използвайки единствената му функция - извличане на звук от видеото. Е, и подрязване от време на време. Първият метод може да се сравни с наливането на питейна вода от бутилка в чаша с помощта на филтър, дестилатор и фуния, а вторият – с учебникарското забиване на пирони с микроскоп. Затова ще използваме най-удобната и правилна опция - програмата Easy Video To Audio Converter (виж CG № 33). Инсталирайте го и отворете файла, от който се нуждаете. С помощта на лентата за търсене, прозореца за визуализация и бутоните Начален час и Краен час изберете частта от видеоклипа, от която искате да извлечете звук (например песен от филм). Щракнете върху Настройки и посочете директорията, където ще бъде записан окончателният аудио файл и качеството на експортиране. Можете да попълните id3 таговете, но името на композицията (ако има само една) пак ще трябва да бъде въведено по-късно. Добре, всичко свърши. Кликнете върху Конвертиране и изчакайте резултата. Трябва да се каже, че ако използвате нерегистрирана версия на програмата, тогава този резултат едва ли ще ви хареса: програмата преобразува само половината от посочения от вас сегмент.

За да извлечете аудиозаписа от DVD, най-добре е да използвате специално разработената програма #1 DVD Audio Ripper (www.dvdtox.com/dvdaudioripper.htm, $29, 1,96 MB), която в много отношения наподобява Video To описан по-горе аудио конвертор. И така, инсталирайте и стартирайте програмата, поставете диска в устройството и щракнете върху Open Folder IFO Files Stored, за да отворите цялата аудио и видео информация, съдържаща се на диска, или Open IFO File, за да изберете конкретен IFO файл (или ако е точно копие на DVD се намира на вашия твърд диск). Сега, използвайки визуализацията, избираме и маркираме песните, от които се нуждаем. Ако една група съдържа няколко песни и имате нужда само от някои от тях, трябва да премахнете отметката от квадратчето до самата група - в противен случай програмата първо ще я вземе цялата, в един файл и едва след това ще започне да работи върху песните, които имате избрани. С помощта на бутона Редактиране на начален и краен час можете да изберете фрагмента от песента, който ви интересува. Посочете формата за експортиране (wav, mp3, ogg или wma), попълнете таговете, ако желаете, и конфигурирайте качеството на изходния файл в прозореца Настройки. Сега можете спокойно да кликнете върху Start Ripping и да изчакате резултата. Нерегистрираната версия №1 на DVD Audio Ripper има ограничение за максималната дължина на записания аудио фрагмент - не повече от пет минути.

Флаш филми

Най-ефективният инструмент за извличане на любима мелодия (или друг ресурс) от Flash видео може да се счита за програмата Sothink SWF Decompiler (www.sothink.com, $80, 3,2 MB). Веднъж инсталиран, просто изберете желания видеоклип в Explorer и изберете Sothink SWF Decomplier от изскачащото меню. Същият резултат може да се постигне чрез незабавно стартиране на програмата и намиране на видеоклипа в панела на Explorer. Панелът с ресурси вече показва всички ресурси, които могат да бъдат изтеглени от клип. Ако се интересувате само от музика, отворете раздела Звук, слушайте елементите му и поставете отметки в квадратчетата до тези, които искате да извлечете. Ако искате да премахнете някои елементи от видеото, различни от звуци, просто проучете съдържанието на другите раздели. Когато приключите, щракнете върху Експортиране, посочете пътя за запазване и се насладете на резултата. Друга полезна функция на SWF Decomplier е експортирането на SWF филм в „родния“ FLA формат.

игри

Извличането на звуци, както и други ресурси, от компютърни игри е процес, който обикновено изисква търпение. Различните разработчици решават проблема със съхранението на данни по различни начини и следователно няма универсален начин за работа с игри и не може да съществува: всеки продукт трябва да намери свой собствен подход. Какви могат да бъдат тези подходи? Е, например, ако говорим за наистина популярна игра, например GTA: San Andreas или NFS: Underground, тогава вероятно е създадена специална помощна програма за нея, която разопакова музикални файлове. Разгледайте фенсайта на играта и най-вероятно ще намерите всичко необходимо и малко повече. Например, на gta.gameguru.ru/f_gta_sa_tools.htm можете да изтеглите програмата за разопаковане на GTA SA Music Extractor, която с размер от 50 KB ще замени вашия оригинален саундтрак от осем диска, като просто дешифрира аудио файловете на играта. Така че бъдете търпеливи, отворете Google - и знамето ще бъде във вашите ръце.

Не намерихте програма за разопаковане на играта, която ви интересува? Тук влизат в действие програмите с общо предназначение. Първо, опитайте да използвате помощната програма Gap (по име и отчество - Game Audio Player, www.ag.ru/files/software/9, 1,09 MB, безплатна) - тъй като, както вече разбирате, тя е специално предназначена за извличане на музика. Gap няма инсталатор (руското му потекло показва), така че просто изберете удобна папка и разопаковайте програмата там. Както можете да разберете, като стартирате Game Audio Player, той всъщност е музикален плейър, макар и не много функционален: опитът за включване на еквалайзера ни изпраща в хронологично неопределено, но очевидно светло бъдеще и настоящия крал на всички музикални формати - mp3 - не се поддържа от плеър. Но се поддържа огромно разнообразие от други формати, за съществуването на които повечето играчи дори не знаят. Щракваме върху иконата Playlist и виждаме, че въпреки примитивността на вградения плейър, Gap е доста гъвкава програма.

Ако експерименталните файлове с данни за играта са в ясна форма, но не се четат от вашия плейър, опитайте да ги отворите тук: Файл > Добавяне на файл(ове) или Файл > Добавяне на директория, ако искате да добавите всички файлове, разбираеми от програмата в даден папка към плейлиста. Ако звуците, които търсите, са пакетирани в един или повече големи архиви, използвайте командата Файл > Сканиране на файл(ове). Ако не знаете в кой файл се съхранява музиката, проверете цялата папка на играта, като използвате елемента Scan Directory. Опцията Recurse Subdirectories влияе върху това дали подпапките ще бъдат сканирани при сканиране на избраната директория. Най-вероятно ще трябва да го активирате. Така че, ако имате късмет, след като сканирането приключи, Gap ще ви предложи списък с намерени обекти. За да прослушате файл, щракнете двукратно върху него. Сега изберете файловете, които искате да запазите, и използвайте командата File > Save File(s). Ако аудио форматът на играта се окаже екзотичен за вашия плейър, ще откриете, че вградената възможност на програмата за конвертиране на всеки аудио файл в WAV е полезна: Файл > Конвертиране на файл(ове). Като WAV формат можете да изберете или PCM (за да го компресирате по-късно в mp3), или вече компресирани кодеци като OggVorbis и Windows Media Audio.

Е, ако Game Audio Player не ви помогна, преминете към следващата точка от плана. Програмата Magic Extractor (magicteam.ag.ru/files.html, 943 KB, безплатна) не е насочена само към извличане на аудио, а е предназначена за разопаковане на цели файлове на играта. Magic Extractor поддържа доста формати и общо може да се използва успешно в почти 200 игри. От лявата страна на прозореца на програмата можете да зададете пътя до папката с играта и да изберете файловете, които ви интересуват (ако отворите папката, но не видите никакви файлове за избор, това означава, че сте отново нямате късмет и вашата игра не е сред поддържаните). Ако всичко е минало добре, от дясната страна на прозореца ще се появи списък с опаковани обекти с изглед на категория. Като щракнете върху желания файл, извикайте елемента „Извличане на избран обект“ от изскачащото меню. Вярно е, че когато разопаковате някои видове архиви - например MPQ на Blizzard - няма да видите нито категориите, нито дори разширенията на файловете, които съдържат. Ще трябва да извадите всичко и да търсите игла в купа сено. От друга страна, гореописаният Gap се справя перфектно със същия MPQ - просто трябва да му дадете списък с архивни файлове и тези списъци за повечето добре познати игри, които съхраняват данни в MPQ, са включени в дистрибуцията.

В никакъв случай не се отчайвайте, ако и тук ви сполети провал. Можете да опитате да използвате „универсален“, тоест не предназначен за конкретна игра или игри, разопаковчик, който е например FMV Extractor (уебсайт, 537 KB, безплатен). Програмата поддържа 12 от най-разпространените медийни формати за игри - като Bink и Smacker Video, JPEG, WAV и др. Изберете изходния файл (Select Source File) и започнете сканиране (Start Analysis). Прегледайте получения списък, маркирайте нужните обекти и щракнете върху Запазване на избраните клипове. Внимание: търсенето на mp3 файлове във FMV Extractor е на етап тестване, главно защото сегашният алгоритъм за разпознаването им изисква, меко казано, много време. Режимът за търсене на mp3 се включва по следния начин: BETA > MP3 Mode. Файлове с други формати няма да бъдат разпознати в този режим. За търсене на ресурси в стари игри може да бъде полезна помощната програма Ripper, написана преди много време от немски любител на интерактивните забавления: уебсайт (56 KB). Програмата познава около 60 различни файлови формата, много от които не се използват в съвременните игри и не се разпознават от подобни разработки, пуснати по-късно. Вярно е, че както при всички универсални програми за разопаковане, криптираните файлове се превръщат в препъникамък за Ripper, а „патиците“, тоест фрагменти, взети погрешно за файлове, също не са необичайни, когато го използвате. Още две добри универсални програми за разопаковане могат да бъдат намерени тук: multiex.xentax.com и www.geocities.com/TimesSquare/8271. Използването на двете програми е доста прозрачно, така че няма да се спираме на това.

Дори ако всички тези средства не са ви довели до желания резултат, не се разстройвайте. Посетете уебсайта www.extractor.ru, който е изцяло посветен на извличане на данни от игри. Има огромно разнообразие от универсални и специални помощни програми, които най-вероятно ще могат да разрешат проблема ви. Е, тези, които нямат нищо против трафика, времето или парите, не трябва сами да се опитват да премахнат музиката от играта. OST (оригинален саундтрак) за много игри вече може да бъде поръчан на официалния уебсайт на разработчиците или в популярни музикални магазини, изтеглен чрез peer-to-peer или, например, тук: www.game-ost.ru.

Директен запис

Ако методите, описани по-горе, не са ви помогнали да постигнете целта си или конкретната ви задача просто е била оставена без надзор (да речем, искате да запишете стрийминг на интернет радио шоу), тогава има един последен метод, който можете да използвате. Състои се в запис в движение, докато се възпроизвежда. Този метод може да се счита за екстремен, защото, първо, звукът се компресира два пъти (ако изходното аудио вече е компресирано и вие отново го запазвате в mp3 или ogg) и следователно губи в качеството си, и второ, Вие сами разбирате, че ако ако запишете половинчасова програма по този начин, ще ви трябва половин час време, за да го направите. За директен запис можете да използвате FairStars Recorder (www.fairstars.com, $25, 1,8 MB) или Total Recorder (www.highcriteria.com, $18, 2,3 MB). Първо подгответе звука за запис (пуснете радиото; отворете DVD-то с единствената програма, която може да чете екзотичния му саундтрак; изключете ефектите в играта, настройте музиката на максимум и натиснете пауза). Изберете AUX на вашата звукова карта като източник на запис и започнете да записвате.

Съвет
1. Най-лесният начин да компресирате WAV файл в mp3 е да изтеглите (ако го нямате, проверете) безплатния енкодер Lame от www.free-codecs.com/Lame_Encoder_download.htm (600 KB) и да го използвате. Ако сте доволни от качеството на mp3 по подразбиране (128 Kbps 44,100 Hz), просто плъзнете и пуснете WAV записа върху изпълнимия файл lame.exe. В противен случай извикайте енкодера от командния ред с необходимите параметри (списъкът може да бъде получен така: lame - help).
2. Ако играта, която ви интересува, съхранява файловете си в чист текст, но използва някакъв екзотичен формат, който дори Winamp не разпознава, опитайте скъпата професионална програма Awave Studio (www.fmjsoft.com/awmain.shtml, $140, 1,6 MB) е мощен инструмент, който може да конвертира почти всички аудио формати.

Късмет!

Михаил Федотов, известен още като $ky$pe@R, [имейл защитен], Минск, 2006 г