Перейти к содержимому
Zone of Games Forum
xoixa

Pacific Drive (утилиты для озвучки)

Рекомендованные сообщения

набор скриптов и инструментов для экспорта/импорта звука (для версии игры 1.1.4)

Pacific_Drive_VO_tools_1.2.zip

Для сжатия в формат wem необходимо предварительно установить audiokinetic wwise 2021.1.* (не включён в архив. скачать автономный установщик можно, например здесь (нужна регистрация) )

  1. Распаковать архив в папку PenDriverPro\Content\Paks\
  2. Запустить export.bat чтобы получить ogg файлы озвучки
  3. Переозвучить и сохранить в папку wav (озвученные файлы должны быть с теми же характеристиками что и оригиналы (имя, длительность, дискретизация, количество дорожек) в формате wav PCM s16)
  4. Запустить import.bat чтобы сжать wav и импортировать обратно в пак

 

Скрытый текст

@echo off
REM Export wems
@echo It takes time to export all files. Be patient
@pause
quickbms pak2wem_meta.bms pakchunk0-WindowsNoEditor.pak

REM Rename wems to friendly name using filetable.txt
::%%1 size	%%2 mediaID	%%3 name	%%4 sha1	%%5 offset 1.1.1	%%6 offset 1.1.3	%%7 offset 1.1.4
for /f "tokens=1,2,3,4,5,6,7 delims=," %%1 in (filetable.txt) do IF exist wem\%%7.wem ren wem\%%7.wem %%3.%%7.wem 

REM Convert vo wems to ogg
mkdir ogg
for /f "tokens=1,2,3,4,5,6,7 delims=," %%1 in (filetable.txt) do IF exist wem\%%3.%%7.wem ww2ogg.exe —pcb packed_codebooks_aoTuV_603.bin wem\%%3.%%7.wem -o ogg\%%3.%%7.ogg

@echo Delete wem files? Close window now if you need them
@pause
del wem\*.wem
@pause

 

Скрытый текст

@echo off
REM Create ExternalSourcesList list.txt for WwiseCLI tool
echo ^<^?xml version=^"1.0^" encoding=^"UTF-8^"^?^> > list.txt
echo ^<ExternalSourcesList SchemaVersion=^"1^" Root=^"^"^> >> list.txt
for %%s in (wav\*.wav) do echo 	^<Source Path=^"%%~fs^" Conversion=^"Vorbis Quality High^" /^> >> list.txt
echo ^</ExternalSourcesList^> >> list.txt

REM Convert wavs to wem
"%WWISEROOT%\Authoring\x64\Release\bin\WwiseCLI.exe" dummy.wproj -ConvertExternalSources list.txt -ExternalSourcesOutput wem
RMDIR /S /Q .cache, Originals
del /A:h wem\Wwise.dat
del list.txt

REM Rename wems for importing using filetable.txt
::%%1 size	%%2 mediaID	%%3 name	%%4 sha1	%%5 offset 1.1.1	%%6 offset 1.1.3	%%7 offset 1.1.4
for /f "tokens=1,2,3,4,5,6,7 delims=," %%1 in (filetable.txt) do IF exist wem\%%3.%%7.wem ren wem\%%3.%%7.wem %%7.wem

REM inject metadata 
for %%a in (wem\*.wem) do IF exist wem\%%~na.meta quickbms -Y meta_inj.bms %%a

@echo Time to import
@pause
REM Import to pakchunk0-WindowsNoEditor.pak
quickbms -r -w pak2wem.bms pakchunk0-WindowsNoEditor.pak
@echo Delete wem folder?
RMDIR /S wem
@pause

 

Скрытый текст

//QuickBMS script for export/import wwise wem sound of Pcific Drive game
//to import use quickbms -r -w pak2wem.bms pakchunk0-WindowsNoEditor.pak

for 
findloc OFFSET binary "RIFF" 0 ""
if OFFSET == ""
	cleanexit
endif
goto OFFSET
idstring "RIFF"
get Size long

getDString check 4
if check != "WAVE"
	continue
endif

getDString fmt 4
get fmt long

math Size + 8
string Name P "wem/%OFFSET%.wem"
if fmt != 0x42
	//string Name P "fmt_%fmt%/%OFFSET%.wem"
	continue
endif
log Name OFFSET Size
math OFFSET + 4
goto OFFSET
next

 

Скрытый текст

//QuickBMS script for export wwise wem sound of Pacific Drive game

for 
	findloc OFFSET binary "RIFF" 0 ""
	if OFFSET == ""
		cleanexit
	endif
	goto OFFSET
	idstring "RIFF"
	get Size long

	getDString check 4
	if check != "WAVE"
		continue END
	endif

	getDString fmt 4
	get fmt long

	math Size + 8
	string Name P "wem/%OFFSET%.wem"
	if fmt != 0x42
		//string Name P "fmt_%fmt%/%OFFSET%.wem"
		continue END
	endif

	//Save metadata start
	log MEMORY_FILE 0 0
	log MEMORY_FILE OFFSET Size // write wem to memory file

	set MetaSize long 0
	set MetaOffset long 0x56 //skip RIFF and WAVE chunks(0x56)
	goto MetaOffset MEMORY_FILE

	for  
	get ChunkID long MEMORY_FILE
		if ChunkID = 0x61746164 // "data"
			string MetaName P "wem\%OFFSET%.meta"
				if MetaSize > 0
					//print "%OFFSET%.meta"
					log MetaName 0x56 MetaSize MEMORY_FILE //write meta to file
				endif
			break //end of metadata. exit cycle
		elif ChunkID = 0x4b4e554a // "JUNK"
			getdstring Unk 10 MEMORY_FILE
			get ChunkSize long MEMORY_FILE
			xmath MetaSize "MetaSize + 8 + 10 + ChunkSize"
			xmath Pos "MetaOffset + MetaSize"
			goto Pos MEMORY_FILE
		else
			get ChunkSize long MEMORY_FILE
			xmath MetaSize "MetaSize + 8 + ChunkSize"
			xmath Pos "MetaOffset + MetaSize"
			goto Pos MEMORY_FILE
		endif
	next
	//save metadata end

	log Name OFFSET Size //write wem to file
	label END
	math OFFSET + 4
	goto OFFSET
next

 

Скрытый текст

get Name basename 
open FDDE "meta" 1
get MetaSize asize 1

log MEMORY_FILE 0 0
get RIFF long
get WSize long
get WAVE long
get fmt long
get fmtSize long
xmath HeaderSize "20 + fmtSize"
goto HeaderSize
get Data long
if Data != 0x61746164 // "data"
string Name + ".error"
log Name 0 0
cleanexit
endif
xmath DataSize "WSize - fmtSize - 12"
log MEMORY_FILE 0 HeaderSize 
append
log MEMORY_FILE 0 MetaSize 1
log MEMORY_FILE HeaderSize DataSize
append 
math WSize + MetaSize
putVarChr MEMORY_FILE 4 WSize long
get Size asize MEMORY_FILE
string Name P "wem\%Name%.wem"
log Name 0 Size MEMORY_FILE

 

Для экспорта файлов с понятными именами, понадобится файл filetable.txt(включён в архив) с описанием файлов “размер,медиаID,название,sha1 hash,адрес в патче 1.1.1,адрес в патче 1.1.3,адрес в патче 1.1.4”, разделённым запятыми. Вот такое:

17071,998451977,vo_q08_061_francis_TobiasTobias_int,0024a30aeb823d9abc006053afb0c2c851e4b87d,4657524654,4656476078,4656476078
122866,551825624,vo_q08_nudge_batterylow_003_tobias_DontWorryDriver_int,002e9ba74497e553037b537e17ebf2e5faf8d4e3,4346843982,4345795406,4345795406
...
172425,459377820,S07C_ToCheckpoint05A_052_054_int,003631d3d91e7c97f55c5fb30097ae4adbd9ef14,4289459786,4288411210,4288411210

как сгенерировать такой файл - отдельная история…

Инструменты:

QuickBMS универсальный инструмент для распаковки/запаковки по скрипту

ww2ogg утилита для конвертации wem файлов в ogg

audiokinetic wwise софт для работы со звуком для видео игр

UPD: утилиты обновлены до версии 1.2

  • Исправлены субтитры
  • Исправлен экспорт файлов vo_q01_retry_antennaparts_001_oppy_StillNeedThose_Alt_1_ext и vo_q01_retry_antennaparts_001_oppy_StillNeedThose_Alt_1_int
  • Оптимизирована конвертация wem в ogg при экспорте
  • Обновлён файл filetable.txt адресами из патча 1.1.4
Изменено пользователем xoixa
обновление для версии 1.1.4
  • Лайк (+1) 2
  • Спасибо (+1) 2

Поделиться сообщением


Ссылка на сообщение

@CRYM0RY я постараюсь сделать до 22 мая, будут несколько исправленных реплик и уже в дальнейшем если что то будет не так то тоже поправлю! Про публикацию на ZoG не знаю, если это возможно то почему бы и нет 

Поделиться сообщением


Ссылка на сообщение

@moodshimon Подскажите ещё, а есть ли возможность получить от вас ликбез по замене радио в игре. Сейчас штудирую информацию на нексусе. Но чёрт его пойми, как правильно это всё сделать. От той что в игре порой в сон клонит. А с ру озвучкой. Хочется и русского постпанка в машину.

Поделиться сообщением


Ссылка на сообщение

@CRYM0RY В теме выше уже спрашивали про радио, технически сам не знаю как но вроде ответ нашли  как заменить радио 

Поделиться сообщением


Ссылка на сообщение

@moodshimon Скажите, а игра озвучена уже от и до? До конца? Я так понимаю далее будут только правки в озвучке и полировка. Я правильно понял?

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас



Zone of Games © 2003–2024 | Реклама на сайте.

×