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

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

Запаковал один озвученный PAL ролик обратно в .iso образ игры для теста: https://disk.yandex.ru/i/sjQYfwGfWFwgUg

 

[ОПРОС] Просмотрев видео, нужно выбрать самый подходящий голос для каждого из 8 персонажей:

Тэмплар
Люгер
Рико
Хакка
Солдат
Генерал Вотон
Генерал-лейтенант Адамс
Генерал Ленте




 https://disk.yandex.ru/i/WyJ4_upVC8o1bA


 https://disk.yandex.ru/i/jnuq8wBD9SP7BA


 https://disk.yandex.ru/i/UPHVUJqiM0EPAw

Если:

Хакка - голос из ②
Тэмплар - голос из ②
Рико - голос из ②
Люгер - голос из ③
Солдат - голос из ①
Адамс - голос из ①
Вотон - голос из ③
Ленте - голос из ③


то видео получается таким:


 https://disk.yandex.ru/i/QL0hwbo8deeMhA (У лохматого появляется акцент, реально , как француз.)

Вот ещё 11 вариантов голоса для Люгер:

 https://disk.yandex.ru/i/z3whXFXEUQPX7A

 https://disk.yandex.ru/i/FVKDMsMAheA2Ow

 https://disk.yandex.ru/i/kU6sXWqCwKYZag

 https://disk.yandex.ru/i/oMkyH60qr7e3_Q

 https://disk.yandex.ru/i/YeFWpd9um9l0WA

 https://disk.yandex.ru/i/CqewjFYdKB12eg

 https://disk.yandex.ru/i/TXKC40fd6vt_dQ

 https://disk.yandex.ru/i/hTBpMTrwaNXS_w

 https://disk.yandex.ru/i/00J5SJ74Ur60pQ

 https://disk.yandex.ru/i/d8-MsX1q4lHUPA

 https://disk.yandex.ru/i/KGjkYbMbl2hm-Q

Лучше оценивать её голос по последней фразе Люгер, там в полной мере раскрывается особенность голоса.


P.S. Нет там никаких генералов-Батоновdeclare.gif, не нужно троллить хотя бы на этом форуме. Тайминги подбирались под голоса первого видео, поэтому из-за скорости произношения слов голосами из ② и ③ видео , могут быть не так же точны. Скорее всего слова , которые все голоса так и норовят произнести с акцентом, типа "отвали" "готово", придёться заменить на синонимы... И Helghast ... нейросеть произносит с неправильным ударением.

Изменено пользователем Kesovord
  • Лайк (+1) 2

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


Ссылка на сообщение
В 8/3/2024 в 03:39, Kesovord сказал:

Запаковал один озвученный PAL ролик обратно в .iso образ игры для теста: https://disk.yandex.ru/i/sjQYfwGfWFwgUg

Здравствуйте. На оригинальном диске с официальной русификацией от Софтклаба в меню “Другое” часть пунктов не переведена, а у вас все переведено. Что за iso у вас русифицированный?

Чем вы запаковываете файлы обратно в FILES.DAT?

Я нашел только скрипт quickbms для распаковки killzone FILES.DAT, но запаковка обратно будет работать только если обновленные файлы имеют не больше размер чем изначальный, может у вас есть скрипт обратной запаковки?

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

# Killzone (script 0.2.2)
# script for QuickBMS http://quickbms.aluigi.org

get ARCHIVE_NAME basename

get INFO_SIZE long
get DUMMY long
get DUMMY long
get DUMMY long
get ZERO long
get ZERO long

get NAMES_SIZE long
savepos OFFSET
log MEMORY_FILE OFFSET NAMES_SIZE

math OFFSET + NAMES_SIZE
goto OFFSET

get INFO_SIZE long
savepos OFFSET
log MEMORY_FILE2 OFFSET INFO_SIZE

get ENTRIES long MEMORY_FILE2
savepos OFFSET MEMORY_FILE2
set PATH string ""
set NAME string ""
putarray 0 0 0  # nested function
callfunction EXTRACT

startfunction EXTRACT
    savepos BCK_OFF MEMORY_FILE2
    goto OFFSET MEMORY_FILE2
    string PATH + NAME
    string PATH + /
    for CUR_ENTRIES = ENTRIES > 0
        get NAME_OFF long MEMORY_FILE2
        math FLAGS = NAME_OFF
        xmath NAME_OFF "NAME_OFF & ((1 << 23) - 1)"
        goto NAME_OFF MEMORY_FILE
        get NAME string MEMORY_FILE
        get OFFSET long MEMORY_FILE2
        if FLAGS & 0x80000000
            get ENTRIES long MEMORY_FILE2
            callfunction EXTRACT
        else
            callfunction HANDLE_PACK_NUM 1
            get SIZE long MEMORY_FILE2
            string NAME p "%s%s" PATH NAME
            set EXT extension NAME
            if EXT == "core" && ARCHIVE_NAME == "psp"
                goto OFFSET
                get ZERO long   # probably XSIZE64
                get XSIZE long
                reverselong XSIZE
                math OFFSET + 8
                math SIZE   - 8
                clog NAME OFFSET SIZE XSIZE
            else
                log NAME OFFSET SIZE
            endif
        endif
    prev CUR_ENTRIES
    goto BCK_OFF MEMORY_FILE2
endfunction

startfunction HANDLE_PACK_NUM
    xmath PACK_NUM "(FLAGS >> 23) & 0x1f"
    getarray LAST_PACK_NUM 0 0
    if PACK_NUM != LAST_PACK_NUM
        putarray 0 0 PACK_NUM
        get EXT extension
        if PACK_NUM == 0
            string TMP p "%s.%s" ARCHIVE_NAME EXT
        else
            string TMP p "%s%02d.%s" ARCHIVE_NAME PACK_NUM EXT
        endif
        open FDSE TMP
    endif
endfunction

 

Есть еще аудио .mss файлы с озвучкой Хелгастов и Землян, не планируете их перевести? Не знаю правда пока как распаковать-запаковать

Изменено пользователем metalor
добавил скрипт

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


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

Скрипты quickbms для распаковки-запаковки killzone файлов локализации simpletext.dat по пути localized/russian/*

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

# скрипт QuickBMS распаковки simpletext.dat локализации killzone ps2

set NL binary "\x0a"        # Перенос строки (Line Feed)
# MEMORY_FILE - кодированый входной бинарный файл
# MEMORY_FILE1 - UTF-8 итоговый декодированый файл decoded_output.txt
# MEMORY_FILE2 - UTF-16LE кодированое значение одного элемента
# MEMORY_FILE3 - UTF-8 декодированное значение одного элемента
log MEMORY_FILE1 0 0

get TOTAL_SIZE asize

for
    savepos CURRENT_OFF
    if CURRENT_OFF >= TOTAL_SIZE
        break
    endif

    # 1. ID (4 байт)
    get ID_NUM long

    # 2. Длина ID Name (4 байт)
    get NAME_SIZE long
    
    # 3. Чтение ID Name
    getdstring ID_NAME NAME_SIZE

    # 4. Длина Строки (4 байт)
    get STR_SIZE long
    
    # 5. Чтение самой Строки
    getdstring RES_STR STR_SIZE

    Log MEMORY_FILE2 0 0           # Создаем чистый буфер для чтения
    PutDstring RES_STR STR_SIZE MEMORY_FILE2

    # Убедимся, что мы в начале
    Goto 0 MEMORY_FILE2
    Get STR_SIZE asize MEMORY_FILE2

    Goto 0 MEMORY_FILE2
    Get STRING_SIZE asize MEMORY_FILE2

    # --- ВНУТРЕННИЙ ЦИКЛ РАСШИФРОВКИ ---
    Log MEMORY_FILE3 0 0 # ОБЯЗАТЕЛЬНО: Очищаем буфер перед каждой новой строкой

    For 
        SavePos CurrentPos MEMORY_FILE2
        if CurrentPos >= STRING_SIZE
            break
        endif

        Get CHECK_BYTE byte MEMORY_FILE2

        if CHECK_BYTE == 0x20
            # --- ПРОБЕЛ ---
            Put 0x20 byte MEMORY_FILE3
            # Указатель уже сдвинулся на +1 командой Get CHECK_BYTE
        
        elif CHECK_BYTE == 0x01
            # --- КИРИЛЛИЦА (01 XX YY) ---
            # Возвращаемся, чтобы прочитать блок целиком
            Goto CurrentPos MEMORY_FILE2
            Get RAW_VAL ThreeByte MEMORY_FILE2 
            # Теперь указатель сдвинулся на +3 от CurrentPos

            # Математика (B_HI/B_LO)
            Math B_HI = RAW_VAL
            Math B_HI >>= 16
            Math B_HI &= 0xFF
            Math B_LO = RAW_VAL
            Math B_LO >>= 8
            Math B_LO &= 0xFF
            
            Math CharCode = B_HI
            Math CharCode <<= 8
            Math CharCode |= B_LO
            
            # UTF-8 конвертация
            Math B1 = CharCode
            Math B1 >>= 6
            Math B1 &= 0x1F
            Math B1 |= 0xC0
            Math B2 = CharCode
            Math B2 &= 0x3F
            Math B2 |= 0x80
            
            Put B1 byte MEMORY_FILE3
            Put B2 byte MEMORY_FILE3
            
        else
            # --- ЛЮБОЙ ДРУГОЙ СИМВОЛ (ASCII) ---
            Put CHECK_BYTE byte MEMORY_FILE3
            # Указатель уже сдвинулся на +1
        endif
        
        # Для отладки (чтобы видеть прогресс в консоли)
        SavePos NewPos MEMORY_FILE2
        # print "Pos: %CurrentPos% -> %NewPos% / %STRING_SIZE%"
    Next



     # 1. Узнаем размер данных
    Get UTF8_SIZE asize MEMORY_FILE3

    # 2. Переходим в начало
    Goto 0 MEMORY_FILE3

    # 3. Считываем данные как строку (DString читает до конца или до нулевого байта)
    GetDString MY_TEXT_OUTPUT UTF8_SIZE MEMORY_FILE3

    # Форматируем строку: ID(hex) X Name Y String + Перенос
    # %04X — это 16-ричный формат, минимум 4 символа
    string LINE p "%04X %d %s %d %s" ID_NUM NAME_SIZE ID_NAME STR_SIZE MY_TEXT_OUTPUT
    print "%LINE%"

    # Записываем строку в память
    string LINE + NL # Убеждаемся, что это строка
    strlen LINE_LEN LINE
    
    # 1. Узнаем текущий размер MEMORY_FILE1, чтобы прыгнуть в конец
    get OFFSET_TO_WRITE asize MEMORY_FILE1
    goto OFFSET_TO_WRITE MEMORY_FILE1

    # 2. Записываем строку
    putdstring LINE LINE_LEN MEMORY_FILE1
next

# Сохраняем всё, что накопили в памяти, в итоговый файл
get FINAL_SIZE asize MEMORY_FILE1
log "decoded_output.txt" 0 FINAL_SIZE MEMORY_FILE1
Скрытый текст

# скрипт QuickBMS заспаковки в simpletext.dat локализации killzone ps2
# Инициализируем файл в памяти для записи результата
log MEMORY_FILE 0 0

# Узнаем общий размер входного текстового файла
get FSIZE asize

do
    # 1. Читаем ID до пробела (4 символа, например "04FA")
    getCT ID_HEX_TEXT string 0x20

    # ИСПРАВЛЕНО: Правильный синтаксис оператора 'p'
    string ID_HEX_TEXT p "0x%s" ID_HEX_TEXT 
    set ID_NUM ID_HEX_TEXT       # Теперь ID_NUM содержит числовое значение
    
    # 2. Читаем размер имени X (до пробела)
    getCT X_STR string 0x20
    set X_SIZE X_STR
    
    # 3. Читаем само имя длиной X
    getdstring ID_NAME X_SIZE
    get DUMMY byte               # Пропускаем пробел после ID_NAME
    
    # 4. Читаем размер строки Y (до пробела)
    getCT Y_STR string 0x20
    
    # 5. Читаем саму строку до символа перевода (LF / 0x0A)
    getCT RES_LINE string 0x0a
    strlen STR_SIZE RES_LINE

    print "%ID_HEX_TEXT% %ID_NUM% %X_STR% %X_SIZE% %ID_NAME% %Y_STR% %STR_SIZE% %RES_LINE% 777777"

    Log MEMORY_FILE2 0 0           # Создаем чистый буфер для чтения
    PutDstring RES_LINE STR_SIZE MEMORY_FILE2

    # Убедимся, что мы в начале
    Goto 0 MEMORY_FILE2
    Get STR_SIZE asize MEMORY_FILE2

    # --- ВНУТРЕННИЙ ЦИКЛ ШИФРОВКИ ---
    Log MEMORY_FILE3 0 0 # ОБЯЗАТЕЛЬНО: Очищаем буфер перед каждой новой строкой

    For 
        SavePos CurrentPos MEMORY_FILE2
        if CurrentPos >= STR_SIZE
            break
        endif

        Get B1 byte MEMORY_FILE2


        # ОБРАБОТКА КИРИЛЛИЦЫ (UTF-8 последовательности D0/D1)
        if B1 >= 0xD0 && B1 <= 0xD1
            Get B2 byte MEMORY_FILE2
            string B1_HEX p "%02X" B1
            string B2_HEX p "%02X" B2
            print "%B1_HEX%%B2_HEX%"
            
            # Восстанавливаем Unicode CharCode
            Math T1 = B1
            Math T1 &= 0x1F
            Math T1 <<= 6
            Math T2 = B2
            Math T2 &= 0x3F
            Math CharCode = T1
            Math CharCode |= T2
            
            # Разбиваем на HI/LO (как в исходном скрипте)
            Math B_HI = CharCode
            Math B_HI >>= 8
            Math B_HI &= 0xFF
            Math B_LO = CharCode
            Math B_LO &= 0xFF
            
            # Записываем структуру: 01 + LO + HI 
            # (Проверьте порядок LO/HI, если в игре буквы поменяются местами)
            Put 0x01 byte MEMORY_FILE3
            Put B_LO byte MEMORY_FILE3
            Put B_HI byte MEMORY_FILE3
            string B_LO_HEX p "%04X" B_LO
            string B_HI_HEX p "%04X" B_HI
            print "01 %B_LO_HEX% %B_HI_HEX%"
            
        # ОБЫЧНЫЕ ASCII СИМВОЛЫ (Латиница, цифры)
        else
            Put B1 byte MEMORY_FILE3
            string B1_HEX p "%02X" B1
            print "%B1_HEX%"
        endif
        
        # Для отладки (чтобы видеть прогресс в консоли)
        SavePos NewPos MEMORY_FILE2
    Next



     # 1. Узнаем размер данных
    Get UTF16_SIZE asize MEMORY_FILE3

    # 2. Переходим в начало
    Goto 0 MEMORY_FILE3

    # 3. Считываем данные как строку (DString читает до конца или до нулевого байта)
    GetDString MY_TEXT_OUTPUT UTF16_SIZE MEMORY_FILE3

    # Записываем строку в память
    string LINE + NL # Убеждаемся, что это строка
    strlen LINE_LEN LINE

    # --- ЗАПИСЬ В БИНАРНЫЙ ФОРМАТ (в MEMORY_FILE) ---
    
    # Записываем ID (4 байт)
    put ID_NUM long MEMORY_FILE
    
    # Записываем размер ID имени строки (4 байт)
    put X_SIZE long MEMORY_FILE
    
    # Записываем само ID имя строки (X байт)
    putdstring ID_NAME X_SIZE MEMORY_FILE
    
    # Записываем Y размер строки в байт
    put UTF16_SIZE long MEMORY_FILE
    
    # Записываем строку (Y байт)
    putdstring MY_TEXT_OUTPUT UTF16_SIZE MEMORY_FILE
    
    savepos CUR_POS
while CUR_POS < FSIZE

# Сохраняем результат
get BIN_SIZE asize MEMORY_FILE
log "decoded_output.bin" 0 BIN_SIZE MEMORY_FILE

 

 

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


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

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

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

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

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

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

Войти

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

Войти сейчас


  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • @DjGiza игрушка до сих пор обновляется, а там перевод модом, как только расхождение со словарём случается — так сразу и ломается) Ну и понятно, что перевод не 100% ручной, а правленная нейронка.
    • Получается не ручной перевод? Раз непереведенные тексты появляется 
    • @Onzi релиз будет лет через 10  Это донатодоилка, тут пока автору не надоест он будет пилить контент. И такие проекты не всегда доживают до релиза, многие из них забрасываются на стадии… 0.4.5 какой-нибудь версии, но контента там может быть довольно много на игро-часов.
    • Так я про то как сделать футбол конкурентным.   А не про древесно -столярные работы . Поправил  Все так.
    • ну вот) я и говорю смысла нет, если только на релизе сделать и не факт что там дальше обновлять не будут 
    • @Onzi там обычно новые патчи минорные, т.е. к каждому патчу смысла перевод делать нет. Достаточно раз в год обновлять, как контента достаточно добавится. К  примеру в последней версии 2021 года русика(0.1.2 версия игры) в автопереводчике 19к строк текста))) Так что к 0.2.5 может текста уже в 2 раза больше)
    • могу сделать, но смысла нет, у разработчиков и так в планах русский язык 
    • Так кто бы её прикрыл? Был один губер, который хотел раскрыть этот клубок агентской мафии и так далее. Но как-то быстро это дело за тихло, видимо по башке получил от людей выше, и на этом всё закончилось. В коррупции футбола замешаны люди из больших кабинетов нашей страны, поэтому им не выгодно это всё прикрывать.  Потому, что всю эту коррупцию курируют люди высших уровней. У нас у Газпрома серьёзные убытки, сокращают штат, но Зенит не только не пострадал, а даже улучшил своё финансовое положение. Это как же так, в такое сложное для страны время? А они даже никак финансово не пострадали, хотя людей приходится бесплатными билетами на матчи загонять.  Самое забавное, что строили стадионы под ЧМ 2018, в тех городах, где даже нет своего профессионального клуба. После ЧМ, эти стадионы стали никому не нужными и тупо висят на балансе области. Напрашивается нафига строили их там? Зато куча клубов, где хоть какие-то болельщики есть, сидят на полу разваленных стадионах.  В этом не заинтересованы определённые люди, ведь частные инвесторы и частные клубы, их владельцы умеют считать деньги, а значит попил бабла не будет. Поэтому у нас когда появляется частный инвестор у какого-нибудь клуба, его выживают и не дают нормально работать. Пример “Черноморец” в том году, имел частного инвестора, который полностью финансировал клуб. “Черноморец” должен был выйти в высшую лигу РПЛ по спортивному принципу, но его не пропустили по долбанутым правилам. Типа стадион не соответствует стандарту для выступления в РПЛ, типа мест мало, надо минимум 10к. А то, что у нас эти стадионы даже на 10к никогда людьми не набиваются на матчах, на это всем плевать. Вот есть тупое правило, надо его соблюдать. Выход один, строй новый стадион, но на просьбу выделить клубу землю под новый стадион и частный инвестор был готов построить новый, ему дали отказом. Снять стадионы в аренду для матчей в РПЛ, которые подходят под правила РПЛ? Ему все отказали. Итог какой? Он посмотрел на всё это безобразие и ушёл из клуба, клуб обратно вернулся на баланс города. Не дают частным инвесторам тут нормально работать и управлять клубом. Выживают их ссаными тряпками, так как с ними бабло “бюджетное” так не попилишь.  Наш футбол пронизан сквозь и полностью коррупцией. Иначе как это всё можно понять? И самое стрёмное, что это творится годами и всем на это плевать, так как тут люди высоких уровней замешены. Иначе как понять, что самый богатый клуб страны может покупать игроков за 50 тысяч рублей? В обход всех правил и регламентов? Или по просьбе одного человека, выдают паспорта бразилам, чтобы обходить лимит на легионеров, которые даже по русскому говорить не умеют.
    • @piton4 нашёл крутецкий плащ    
    • Я пробовал тот перевод, но там часто попадаются непереведенные диалоги, а с моим знанием английского это достаточно критично.   
  • Изменения статусов

    • fox222  »  Siberian GRemlin

      Здравствуйте, хочу купить персональный доступ к переводам, сколько стоит?
      · 1 ответ
    • vitkach  »  eaZy

      Извините за беспокойство. Хотел спросить, а русификатор ещё когда-нибудь будет обновляться? Дело в том, что после его выхода выходили ещё обновления, в частности обновление 1.1, вышедшее летом 2023 года, где была добавлена целая сюжетная глава в конце если проходишь на лучшую концовку золотого пути, это где-то ещё полчаса диалогов. Также в игре присутсвуют иногда кракозябры вместо русского языка, это в основном связано с тем, что кое-где текст был изменён, в основном в обучающих сообщениях.
      · 0 ответов
    • TerryBogard  »  Siberian GRemlin

      C&C: RA: Retaliation (ПК) не работает.
      · 0 ответов
    • Алекс Лев  »  SerGEAnt

      Привет, Сержант. Прошу разрулить ситуэйшн и урезонить некоторых людей, оскорбивших мою личность. Пожалуйста, для этого прочтите нашу переписку с Ленивым. Примите меры, будьте добры, мною составлена бумага, ждущая вашей электронной подписи, для подачи её в суд. Если не желаете судебных разборок (а я пойду дальше, если меры не будут приняты), оскорбившие меня люди должны понести необходимое по вашему же Договору наказание. Спасибо.
      · 1 ответ
    • Antony1203  »  SerGEAnt

      Добрый вечер! С Новым Годом. Нашел на просторах сети русскую озвучку Halo Infinite, которая отсутствует на моем любимом сайте  Протестил. Все работает. Подскажите, как можно передать? Спасибо.
      · 2 ответа
  • Лучшие авторы


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

×