BlackStar Localizations Studio

Объявление

Прежде чем начать работу с форумом, прочитайте правила: ПРАВИЛА ФОРУМА

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » BlackStar Localizations Studio » Общий форум » Не могу найти диалоги игры


Не могу найти диалоги игры

Сообщений 1 страница 30 из 36

1

Доброго времени суток!
Хочется самому русифицировать игру Nancy Drew: Tomb of the Lost Queen.
Установил, открыл все файлы, которые появились в папке при помощи редактора ресурсов Resource Tuner и luaedit и не нашел ничего похожего на текстовые диалоги или диалоги в виде картинок.
Прилагаю скрины. ГДЕ именно могут быть диалоги?
И еще: у меня игра установилась в Program Files (x86), значит, мне нужен другой компьютер, чтобы сделать русификатор универсальным, а не только для x86?
Заранее спасибо.
http://savepic.ru/3817573.png

0

2

equitatus написал(а):

Установил, открыл все файлы, которые появились в папке при помощи редактора ресурсов Resource Tuner и luaedit и не нашел ничего похожего на текстовые диалоги или диалоги в виде картинок.Прилагаю скрины. ГДЕ именно могут быть диалоги?

Здравствуйте. Все диалоги и строки игры, это картинки PNG, которые находятся в контейнере Ciftree.dat из папки Ciftree. Извлечь картинки из архива можно программой Ravioli Game Tools. Всего в контейнере 741 картинка и 742 неизвестных файлов .DAT. В файлах DAT нет ничего интересного, вся нужная информация в картинках. Программа также позволяет собрать контейнер обратно с уже исзмененными файлами. Принцип русификации такой:
1. С помощью Ravioli Game Tools извлечь картинки.
2. С помощью графического редактора перерисовать нужные нам картинки.
3. С помощью Ravioli Game Tools пересобрать контейнер с уже измененными картинками.
Условие одно - чтобы измененные картинки по размеру были либо такими же, как оригинальные, либо меньше.
Работоспособность проверена - скриншот игры с измененным файлом Ciftree.dat (изменены первые два пункта меню):
http://s3.uploads.ru/t/fBbvs.png

equitatus написал(а):

И еще: у меня игра установилась в Program Files (x86), значит, мне нужен другой компьютер, чтобы сделать русификатор универсальным, а не только для x86?

Неважно какой у вас компьютер. Игра автоматически выбирает папку, так как использует переменные инсталлятора. Откройте например справку программы Smart Install Maker и почитайте про переменные. Вам надо использовать переменную %ProgramFiles%. Используя такую переменную, ваш созданный инсталлятор при запуске будет сам определять, где находится папка Program Files в 32-битных системах и папка Program Files (x86) в 64-битных системах, вне зависимости на каком диске у вас установлена система (C, D, E, F и т.д.).

+2

3

Всем привет!

Solenij написал(а):

В файлах DAT нет ничего интересного, вся нужная информация в картинках.

Дело в том, что там не DAT-файлы, а бинарные LUA и XSHEET файлы. Вот файлы XSHEET не представляют интереса, а вот в файлах LUA находятся тексты диалогов персонажей, тексты подсказок и советов. Например файл AUTOTEXT_SC.lua содержит диалоги (примерно 2530 строк). Поэтому перевод картинок - это только 30% перевода игрушки, все остальное текст. Причем для текста созданы изображения с картами символов, в которых отсутствуют символы кириллицы. Если просто перевести текст, то в игре он будет отображаться кракозябрами. Чтобы этого не было, требуется создание изображений с символами кириллицы, а потом коррекция координат каждого символа в соответствующем файле LUA. Например, файл с изображением символов шрифта Tahoma (размер 22) - TAHOMA_22_REGULAR_OVL.png. Ему соответствует LUA-файл TAHOMA_22_SC.lua, в котором находится таблица с координатами и размерами символов. У разработчиков имеются специальные утилиты, которые позволяют сгенерировать необходимые файлы с данными. Вам же придется делать все вручную под каждый стиль (нормальный, курсив, полужирный и полужирный-курсив) и размер шрифта.

Тут еще один подводный камень: файлы LUA в бинарном формате. Их нужно декомпилировать, выполнить соответствующие правки, а затем компилировать обратно тем же компилятором, которым были собраны оригинальные файлы, иначе они могут не работать (там идет жесткая привязка при вызове функций из библиотеки lua). Плюс еще экспериментально придется подбирать параметры компиляции. Представьте, что потом отредактированные файлы нужно засунуть обратно в контейнер Ciftree.dat.

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

Осилить все это в одиночку, тем более если никогда этим не занимались, будет о-о-очень сложно.

equitatus, попробуйте поискать и инете единомышленников (форумы, сайты), которые переводят игрушки. Возможно уже этой игрой (вышла в мае 2012) кто-то занимается.

Отредактировано Horna (2013-01-13 04:40:19)

+4

4

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

0

5

Подброшу вам несколько ссылок на инструменты:
1) Декомпилятор бинарных LUA-файлов "luadec": здесь.
Работать придется в командной строке. Синтаксис: luadec bin_file.out > source_file.lua
где luadec - программа декомпиляции;
bin_file.out - бинарный LUA-файл (расширение может быть любое);
source_file.lua - файл, в который необходимо сохранить декомпилированный файл.

2) Генератор шрифтов "Bitmap Font Generator": здесь.
Необходимо будет декомпилировать LUA-файлы, в которых заданы параметры глифов. Посмотреть какие из параметров требуются, а потом генерировать соответствующие шрифты с символами кириллицы. Затем полученную таблицу с параметрами глифов занести в LUA-файл и скомпилировать его обратно в бинарный формат.

3) Компилятор сценариев LUA. Сейчас тяжело сказать что-то определенное, необходимо экспериментировать. Например, скачать компилятор с официального сайта LUA: (здесь). Возможно придется подбирать версию компилятора. Вот еще сторонняя разработка LuaBinaries: здесь. Или вот еще LUACGUI (Lua Compiler): здесь (рабочую ссылку смотрите далее по форуму).

Может у кого-то здесь будет другая информация. Это пока то, что мне удалось найти.

P.S. Компания "Новый Диск" анонсировала русскую версию этой игры. Дата выхода пока неизвестна. Но знаете, как бы не получилось так, что вы будете трудиться напрасно. С другой стороны, вы можете получить необходимые знания и опыт, которые вам помогут при последующей работе над переводами игр с подобными ресурсами.

+2

6

возможно, я сяду переводить другую их новую игру Nancy Drew: The Deadly Device, не думаю, что алгоритм перевода будет отличаться. я попытаюсь разобраться в самой программе.

0

7

equitatus написал(а):

сяду переводить другую их новую игру Nancy Drew: The Deadly Device, не думаю, что алгоритм перевода будет отличаться

Структура ресурсов у серии 26 и 27 одинакова. Полагаю, что и в новой серии 28, выход которой ожидается в ближайшее время, тоже будет аналогичная картина. Поэтому можно смело переводить.

А озвучивать на русском тоже будете?  :)

Немножко тут поэкспериментировал - сценарии LUA можно компилировать официальной версией программы. Игра запускается и работает. Перевел пару предложений для пробы - полет нормальный (правда для полноты картины, требуется более тщательное тестирование, я только установил сам факт возможности локализации). Кстати обратил внимание, что в тексте не отображается строчная буква "я". Прописная "Я" отображается, а маленькая нет, хотя и присутствует в изображении шрифтов. Непонятная ситуация. В принципе это не страшно, можно сделать подмену символа на неиспользуемый в кириллице, заменив по всему тексту после перевода букву "я" подменным, например символом "џ" (Alt+0159). Тогда все ОК.

+1

8

Здравствуйте! У меня есть несколько вопросов.

Solenij написал(а):

3. С помощью Ravioli Game Tools пересобрать контейнер с уже измененными картинками.

А как запаковать? Я не нашел такой возможности.

Horna написал(а):

3) Компилятор сценариев LUA. Сейчас тяжело сказать что-то определенное, необходимо экспериментировать. Например, скачать компилятор с официального сайта LUA: (здесь). Возможно придется подбирать версию компилятора. Вот еще сторонняя разработка LuaBinaries: здесь. Или вот еще LUACGUI (Lua Compiler): здесь (рабочую ссылку смотрите далее по форуму).

Вот насчет этого поподробней. Я ранее этим компилятором не пользовался, только декомпилировал, а обратно ни разу не пробовал и не знаю как. Скачал с оф сайта компилятор по Вашей ссылке и теперь не знаю как компилировать. Пожалуйста, помогите! Спасибо заранее.

0

9

Неужели никто не знает?

0

10

Скорее всего Вам надо обратиться на форум по LUA ;)

+1

11

Tekton написал(а):

Скорее всего Вам надо обратиться на форум по LUA ;)

Спасибо, а как насчет Ravioli Game Tools?

0

12

Хатико написал(а):

Спасибо, а как насчет Ravioli Game Tools?

Хотя не надо сам разобрался. но все таки  хотелось бы помощи по lua

0

13

Лучше поискать носителей этого скриптового языка на игровых форумах.  :)
Особенно где делают модификации.  :yep:
например несколько ссылок:

http://ru.wikipedia.org/wiki/Lua
http://www.amk-team.ru/forum/index.php?showtopic=11584&hl=скриптовый язык
http://rghost.ru/9364471
http://gamecoding.moy.su/publ/1-1-0-8

+1

14

Tekton
Спасибо большое, посмотрим.

0

15

Хатико , да не за что.
Но надо учитывать, что скрипты от разных игр, имеют свои особенности.
Если сильно утрировать, то эти скрипты похожи на *Ini файлы с настройками для некоторых программ.
К движку игры просто подключают Lua, поэтому многое зависит и от самого движка.  ;)
Короче сложно это всё  :D

0

16

Tekton написал(а):

Короче сложно это всё

та не очень, я ранее другие игры вскрывал, ток там все по другому. Я вообще ранее с играми, созданными с использованием Bink Video, Rad Game Tools не сталкивался.

0

17

Добрый день! У меня тоже есть вопросы.
Как пользоваться Ravioli Game Tools и запаковывать файлы? Буду рада если кто-нибудь ответит на мой вопрос.

0

18

Лабунка написал(а):

Как пользоваться Ravioli Game Tools и запаковывать файлы?

Для этого запускаете инструмент RScanner.exe из набора RavioliGameTools.

http://savepic.ru/4699222m.png

Замену изображений можно также выполнить с помощью программы MultiExtractor:

http://savepic.ru/4693078m.png

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

0

19

Нет нужды лопатить в файле Ciftree.dat все шрифты. Если при помощи инструмента "Ravioli Game Tools" вы выполнили полное извлечение всех данных из этого файла в отдельную папку, то найдете там файл под именем "FONTSINIT_DOC". Это бинарный сценарий LUA, в котором описана инициализация шрифтов.

Декомпилируйте его при помощи инструмента "luadec". Программа консольная, поэтому работать придется в командной строке. Например, я скопировал файл "FONTSINIT_DOC" в каталог

C:\Program Files\Новый Диск\28\FONTS

Там же разместил файлы инструмента "luadec", тогда команда для декомпиляции будет следующая

C:\Program Files\Новый Диск\28\FONTS>luadec.exe FONTSINIT_DOC > FONTSINIT_DOC.lua

После её завершения в том же каталоге вы получите новый файл с именем FONTSINIT_DOC.lua. Откройте его в текстовом редакторе, например блокнот. Вы увидите шрифты, которые использует игра:

http://savepic.ru/4702119m.png

Необходимые шрифты выделены рамкой синего цвета. Там же указано, какие файлы отвечают за тот или иной шрифт. Например, шрифт "Arial20" - его свойства описаны в файле "Arial_20_SC" и так далее соответственно.

Файл "Arial_20_SC" - это бинарный сценарий LUA, в котором описаны стиль и свойства каждого символа, а также указана ссылка на изображение с картой символов. Декомпилируем этот файл и посмотрим, какие исходные данные нам необходимы, чтобы сделать шрифт с поддержкой кириллицы.

Инструмент используем тот же - "luadec". Например, я поместил файл "Arial_20_SC" в каталог

C:\Program Files\Новый Диск\28\FONTS\ARIAL\EN\20

В этом случае даем такую команду:

C:\Program Files\Новый Диск\28\FONTS>luadec.exe "c:\Program Files\Новый Диск\28\FONTS\ARIAL\EN\20\ARIAL_20_SC" > "C:\Program Files\Новый Диск\28\FONTS\ARIAL\EN\20\ARIAL_20_SC.lua"

Пути к файлам заключены в двойные кавычки, т.к. они содержат пробелы. После завершения работы инструмента получим в указанном каталоге файл "ARIAL_20_SC.lua". Откройте его в текстовом редакторе:

http://savepic.ru/4660134m.png

Здесь указан блок данных с описанием символов для обычного (regular) начертания шрифта. Для него используется файл изображения "Arial_20_Regular_OVL". Обратите внимание, что размер шрифта 23, но разработчики дали ему размер 20. Если вы пролистаете сценарий далее, то увидите следующий блок данных с описанием жирного (bold) начертания шрифта:

http://savepic.ru/4671417m.png

Здесь все по аналогии с предыдущим примером, но размер шрифта уже 24 и файл с изображением "Arial_20_Bold_OVL".

Теперь посмотрите на формат описания свойств каждого символа. Программа "Bitmap Font Generator" создает список немного в другом формате. Ваша задача привести полученные данные в этому виду. Это не сложно. Посмотрите на следующий пример. Верхняя строка создана программой "Bitmap Font Generator", а нижняя является строкой оригинального сценария LUA "Arial_20_SC".

http://savepic.ru/4679610m.png

Я думаю, что вам понятно, как надо отформатировать полученный список свойств для нового шрифта. Можно поступить иначе. В шаблонном редакторе Radialix + IDA изменить в файле bmfont.exe соответствующим образом шаблон для вывода свойств символов, тогда вы сразу будете получать файл в необходимом формате для сценария LUA. При создании сценария будьте внимательны с синтаксисом LUA.

Аналогично поступаете для остальных, необходимых для игры шрифтов. Далее для каждого шрифта, полученные свойства символов сводите в единый файл, по аналогии с оригинальным. Например, для шрифта "Arial20" по каждому стилю (обычный, жирный, курсив, жирный курсив) вы получите соответствующие файлы со свойствами символов. Создайте новый документ и скопируйте в него содержимое всех этих файлов. Затем отформатируйте документ согласно сценарию LUA так, как это сделано в оригинальном документе "ARIAL_20_SC.lua", который мы получили при декомпиляции файла "Arial_20_SC".

Потом настает черед компиляции. Новые файлы сценариев LUA желательно компилировать в папке, которая является корневой на диске, например С:\FONT_LUA. За счет этого можно выиграть в размере бинарного файла, т.к. в него записывается полный путь к файлу сценария. Например, если вы откроете бинарный файл сценария LUA "Arial_20_SC" в НЕХ-редакторе, то в заголовке увидите длиннющую строку пути:

http://savepic.ru/4665276m.png

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

В отличии от изображений, которые можно заменить с помощью описанных выше инструментов, файлы сценариев нужно менять только в НЕХ-редакторе. Открываете файл Ciftree.dat, находите к примеру размещение оригинального файла "ARIAL_20_SC". Затем по этому адресу перезаписываете их данными нового файла. Еще раз напоминаю, что размер нового файла не должен превышать оригинальный.

+1

20

Horna написал(а):

Horna

Здравствуйте. Вопрос по этой же игре.
Мы вскрыли диалоги игры, но при переводе столкнулись с тем, что надо подгонять символы.
Тоесть фраза "Найти письмо" содержит 12 символов считая с пробелом, а в оригинале эта фраза состоит из 9 букв. Если напишеш на одну букву больше то игра не запустится, а если меньше то тоже самое. Игра запускается только если мы напишем 9 символов как и в оригинале. Можно как нибудь избавится от этого. Просто считать буквы и пробелы а потом еще думать как подогнать под них русское слово очень сложно. Жду вашего ответа.

0

21

Нэнси Дрю 2013 написал(а):

Мы вскрыли диалоги игры, но при переводе столкнулись с тем, что надо подгонять символы.
То есть фраза "Найти письмо" содержит 12 символов считая с пробелом, а в оригинале эта фраза состоит из 9 букв. Если напишешь на одну букву больше то игра не запустится, а если меньше то тоже самое. Игра запускается только если мы напишем 9 символов как и в оригинале. Можно как нибудь избавится от этого. Просто считать буквы и пробелы а потом еще думать как подогнать под них русское слово очень сложно. Жду вашего ответа.

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

Например:
Ghost hunting expert, Savannah Woodham, has hired me to help find Jessalyn Thornton, who has gone missing from her family's abandoned property. В строке 143 символа.

Варианты перевода на русский:
1) Исследователь паранормальных явлений, Саванна Вудэм, попросила меня помочь в поиске Джессалин Торнтон, которая пропала из фамильного поместья. (142 символа, экономия 1 символ)
2) Охотница за привидениями, Саванна Вудэм, попросила меня найти Джессалин Торнтон, которая пропала из фамильного поместья. (120 символов, экономия 23 символа)
3) Охотница за привидениями, Саванна Вудэм, наняла меня для поиска Джессалин Торнтон, бесследно исчезнувшей из фамильного поместья. (128 символов, экономия 15 символов)
4) Ваш вариант... и т.д.

Как видите в каждом конкретном случае получается экономия определенного количества символов, которые можно использовать в других строках.
;)

+1

22

Horna написал(а):

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

Например:
Ghost hunting expert, Savannah Woodham, has hired me to help find Jessalyn Thornton, who has gone missing from her family's abandoned property. В строке 143 символа.

Варианты перевода на русский:
1) Исследователь паранормальных явлений, Саванна Вудэм, попросила меня помочь в поиске Джессалин Торнтон, которая пропала из фамильного поместья. (142 символа, экономия 1 символ)
2) Охотница за привидениями, Саванна Вудэм, попросила меня найти Джессалин Торнтон, которая пропала из фамильного поместья. (120 символов, экономия 23 символа)
3) Охотница за привидениями, Саванна Вудэм, наняла меня для поиска Джессалин Торнтон, бесследно исчезнувшей из фамильного поместья. (128 символов, экономия 15 символов)
4) Ваш вариант... и т.д.

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


Спасибо Большое. Надеюсь у нас все получится.

0

23

Horna написал(а):

В отличии от изображений, которые можно заменить с помощью описанных выше инструментов, файлы сценариев нужно менять только в НЕХ-редакторе. Открываете файл Ciftree.dat, находите к примеру размещение оригинального файла "ARIAL_20_SC". Затем по этому адресу перезаписываете их данными нового файла. Еще раз напоминаю, что размер нового файла не должен превышать оригинальный.
!

Вот тут Немного не понятно. Все запаковывается Railvoil Scanner, А им,как я Понимаю,Шрифты запаковать в Ciftree.dat нельзя. .lua Файлы с Шрифтами уже готовы, Но как их залить до сих пор не понятно. Я уже пробовал залить их через HEX-Редактор напрямую в Ciftree.dat в замен Оригинального, но это было очень сложно-нужно было выделить, а затем вырезать огромный код старого файла(Tahoma_12_SC.lua) из Ciftree.dat. Потом я Открыл свой .lua файл шрифта тоже HEX-Редактором, Выделил из него все,кроме пути в начале кода(старый путь я оставил и в Ciftree.dat от Старого(Tahoma_12_SC.lua) файла), и прямо под него Вставил код Нового Шрифта. Новый Шрифт был размером меньше аж на 5 Килобайт, но сделан по Вашей Инструкции. В Результате всего этого Игра не запускалась. Правильно-ли я зашивал,ничего не пропустил?

0

24

Небольшой ликбез для фанатов игрушки Нэнси Дрю.
:writing:

ШРИФТ
В этом нам поможет программа "Bitmap Font Generator". Я её немного модифицировал так, чтобы сразу получать список с атрибутами символов в необходимом для игры формате. Продолжу пример со шрифтом "Arial20", о котором я говорил  предыдущих сообщениях. Для него в ресурсах игры файла Ciftree.dat используется 4 файла:
1) 4 изображения в формате PNG с картами символов ARIAL_20_REGULAR_OVL.png, ARIAL_20_BOLD_OVL.png, ARIAL_20_ITALIC_OVL.png и ARIAL_20_BOLDITALIC_OVL.png, соответственно для каждого стиля. Размеры каждого изображения 128х512 пикселей (вы можете это выяснить в любом графическом редакторе или вьювере);
2) бинарный файл сценария LUA c атрибутами каждого символа - Arial_20_SC - размер файла 137 120 байт (для игры "Nancy Drew 28 - Ghost of Thornton Hall").

Скопируйте эти файлы в отдельную папку, например "Arial20_EN". Это будут оригинальные файлы, под размер которых мы будем подгонять новые файлы с поддержкой кириллицы.

После декомпиляции файла Arial_20_SC, в нем хорошо видно, какой размер шрифта используется для каждого стиля (обычный - 23, для остальных стилей 24).

Итак, у нас есть исходные данные для программы "Bitmap Font Generator" по данному шрифту:
- имя шрифта Arial;
- размеры изображения 128х512;
- формат изображения PNG;
- размер шрифта 23 (для стиля обычный (regular)).

Запускаем "Bitmap Font Generator" и идем сначала в параметры экспорта. Для этого в меню "Options" выберите пункт "Export options", или нажмите клавишу [T]. В открывшемся диалоге настроек необходимо указать следующие параметры:
-> размеры текстуры (Texture), соответственно ширина (Width) и высота (Height). В нашем случае ширина - 128 пикс., высота 512 пикс.;
-> глубина цвета (Bit depth) - 32 бит;
-> каналы изображения: альфа канал (А) - glyph, RGB - outline;
-> Формат вывода: список атрибутов (Font descriptor) - XML (!), текстуры (Textures) - PNG, сжатие (Compression) - Deflate.

http://savepic.ru/4674262m.png

Остальные параметры оставляем без изменений. Нажимаем ОК и диалог настроек закроется.
(!) Обращаю внимание, что формат вывода я использовал XML, т.к. именно его в модифицировал на формат LUA в файле программы. Вам же необходимо выбрать формат "Text". Но в этом случае вам придется вручную приводить документ в требуемый формат.

Теперь займемся параметрами шрифта. Для этого в меню "Options" выберите пункт "Font settings", или нажмите клавишу [F]. В открывшемся диалоге настроек необходимо указать следующие параметры:
-> шрифт Arial;
-> набор символов (Charset) - OEM и выберите в списке русскую раскладку (RUSSIAN);
-> размер (Size) - 23 пикс.;
-> сглаживание (Font smoothing) (вообще настройки раздела растеризации (Rasterization) подбираются экспериментальным путем для наилучшего отображения символов на экране во время работы игры);
-> толщина контура (Outline thickness) - 1.

http://savepic.ru/4712171m.png

Нажимаем ОК и диалог настроек закроется. Перед нами в главном окне программы буду показаны символы, которые будут включены в карту. Скажу сразу, что если выводить все символы, то после компиляции нового файла сценария LUA с нашими символами, его размер получится больше оригинального и его никак не удастся заменить в ресурсах. Поэтому необходимо исключить те символы, которые заведомо не будут использоваться. Включение или отключение определенного символа выполняется нажатием по нему левой кнопкой мышки в окне программы. Когда символ исключен из карты, то он отображается серым цветом. Например, я сделал вот так:

http://savepic.ru/4717295m.png

В любом случае вам придется экспериментировать, так как при малейшем изменении параметров шрифта размер списка атрибутов получается различным. Я привел пример исключенных символов при указанных выше параметрах шрифта.

Теперь выполним генерацию карты с нашими параметрами. Для этого в меню "Options" выберите пункт "Save bitmap font as...", или нажмите клавишуи [Ctrl+S]. Откроется диалог сохранения файла. Здесь необходимо указать имя файла и место сохранения. Рекомендую для каждого нового шрифта создать отдельный каталог, например "Arial20_RU", а имена файлам давать соответственно оригинальным. Например, сейчас мы сохраняем шрифт с обычным стилем (regular), поэтому имя даем ARIAL_20_REGULAR_OVL. В указанном нами каталоге будет создано два файла: файл изображения ARIAL_20_REGULAR_OVL.png и текстовый документ ARIAL_20_REGULAR_OVL.fnt. Дальше, меняем в параметрах шрифта стиль на жирный (bold) и размер устанавливаем 24 (как в оригинале):

http://savepic.ru/4716256m.png

Нажимаем ОК и выполняем сохранение файла, но теперь это будет шрифт со стилем жирный (bold), поэтому даем ему имя ARIAL_20_BOLD_OVL. В папке "Arial20_RU" у нас появится еще два файла: ARIAL_20_BOLD_OVL.png и ARIAL_20_BOLD_OVL.fnt. Аналогино описанным выше действиям, создаем шрифт со стилем жирный-курсив (boldItalic) и курсив (italic).

В итоге, в нашей папке "Arial20_RU", по аналогии с папкой исходного шрифта "Arial20_EN", у нас будут следующие файлы:
ARIAL_20_BOLD_OVL.fnt
ARIAL_20_BOLDITALIC_OVL.fnt
ARIAL_20_ITALIC_OVL.fnt
ARIAL_20_REGULAR_OVL.fnt

ARIAL_20_BOLD_OVL.png
ARIAL_20_BOLDITALIC_OVL.png
ARIAL_20_ITALIC_OVL.png
ARIAL_20_REGULAR_OVL.png

Я опустил момент оптимального подбора параметров генерируемых шрифтов. В каждом конкретном случае необходимо экспериментировать и стараться сделать так, чтобы текст на экране хорошо читался. Например, вот параметры шрифта TAHOMA_14_SC (стиль обычный), который отображает диалоги разговоров мобильника и субтитры видеовставок:

http://savepic.net/3848140m.png

А это параметры шрифта TAHOMA_16_SC (стиль обычный), который отображает текст заданий и дневника:

http://savepic.net/3831756m.png

Вы можете подобрать другие параметры шрифта, которые посчитаете нужными.

Проверьте размеры файлов полученных изображений - они должны быть меньше оригинальных. Например, оригинальный размер файла ARIAL_20_REGULAR_OVL.png равен 26157 байт, а у меня получился 14207 байт, что конечно же меньше исходного, а значит дает возможность заменить его в ресурсах игры. Если размеры новых изображений превышают исходных, то для оптимизации и сжатия графики воспользуйтесь соответствующими утилитами, например, Radical Image Optimization Tool, PNGGauntlet, PNGOUTWin и другие.

Идем дальше. В полученных файлах *.fnt необходимо сделать подмену строчного символа "я". Как вы помните, маленькая буква "я" в игрушке не отображается. Компания "Новый диск" при локализации игр этой серии использует символ "ï". Но для нас он не годится, т.к. "Новый диск" применила собственные карты шрифтов, в которых поле для всех символов имеет одинаковую ширину. В нашем случае символы имеют разную ширину (буква "ï" тоньше буквы "я"). Поэтому рекомендую делать подмену на символ "є" (это литера из украинской раскладки). Как сделать подмену? Очень просто. Нужно скопировать атрибуты символа "я" (номер символа [255]) на место атрибутов символа "є" (номер символа [186]). Откройте все четыре файла (ARIAL_20_BOLD_OVL.fnt, ARIAL_20_BOLDITALIC_OVL.fnt, ARIAL_20_ITALIC_OVL.fnt, ARIAL_20_REGULAR_OVL.fnt) в текстовом редакторе, например Notepad++, скопируйте свойства символа [255] (я) и замените ими соответствующую часть строки для символа [186] (є).

http://savepic.ru/4666104m.png

Эту операцию выполните в каждом из документов. Сохраните изменения. Теперь в игре, при обращении к символу [186] из карты символов будет считываться символ [255]. При переводе текстовой части ресурсов вместо символа "я" печатайте символ "є" (например, якорь -> єкорь) ;)  .

Сделали. Идем дальше. Из папки "Arial20_EN" с исходными файлами шрифта "Arial20", скопируйте в папку "Arial20_RU" декомпилированный файл сценария LUA - ARIAL_20_SC.lua, и откройте его в текстовом редакторе. Выполните в нем поблочную замену свойств символов из наших новых файлов ARIAL_20_BOLD_OVL.fnt, ARIAL_20_BOLDITALIC_OVL.fnt, ARIAL_20_ITALIC_OVL.fnt и ARIAL_20_REGULAR_OVL.fnt, соответственно для каждого стиля. Т.е. из файла ARIAL_20_REGULAR_OVL.fnt скопируйте все атрибуты от символа [32] до последней строки с атрибутом интервала (kerning) и вставьте в файл ARIAL_20_SC.lua вместо данных для шрифта стиля обычный.

http://savepic.ru/4664051m.png

Особое внимание обращайте на синтаксис сценариев LUA. Число открытых скобок должно быть равно числу закрытых. После сделанных замен в документе, сохраните его.

КОМПИЛЯЦИЯ
Компиляцию полученного сценария ARIAL_20_SC.lua можно выполнить или официальной версией программы LUA версия v5.1.4, или альтернативной LuaBinaries 5.1.4 - Release 2. Я воспользовался второй программой, для удобства работы все файлы из архива были скопированы в системный каталог (С:\WINDOWS\system32\ - ОС Windows XP SP3). Компиляция выполняется в командной строке. Например, для нашего файла ARIAL_20_SC.lua, находясь в каталоге С:\FONT_LUA\, в командной строке вводим:

luac5.1 -o ARIAL_20_SC.bin ARIAL_20_SC.lua

http://savepic.net/3848236m.png

luac5.1 - это компилятор LUA;
-o ARIAL_20_SC.bin - параметром [-o] мы указали имя нового файла ARIAL_20_SC.bin, в который будет сохранен скомпилированный сценарий;
ARIAL_20_SC.lua - сценарий LUA, который нам необходимо скомпилировать.

Нажимаем клавишу [Enter] и если в сценарии нет ошибок, то в папке "FONT_LUA" появится новый файл ARIAL_20_SC.bin. Размер нашего файла равен 134036 байт, в то время как размер оригинального составляет - 137120 байт. Отлично! Наш файл меньше оригинального, что позволит выполнить им замену в ресурсах игры.

Внимание! Если в сценарии будут ошибки, то компиляция сценариев LUA будет неудачной (или компилятор сообщит об ошибке, или конечный файл создан не будет). Вам нужно проверить синтаксис документов на соответствие его формату LUA. Самая распространенная ошибка - это несоответствие количества открытых и закрытых скобок. Поэтому будьте внимательны при выделении, копировании и вставке блоков текста. Проверить синтаксис можно с помощью утилиты, которая поставляется совместно с программами компании "Indigo Rose" (Setup Factory, Visual Patch, AutoPlay Media Studio). Это редактор сценариев LUA - IR Script Editor. Откройте документ в редакторе и выполните проверку синтаксиса:

http://savepic.net/3806144m.png

ЗАМЕНА
Теперь осталась самая сложная часть - замена ресурсов. И если изображения можно заменить при помощи программ "RavioliGameTools" или "MultiExtractor", то бинарные файлы сценариев придется менять в НЕХ-редакторе. А для этого необходимо знать адреса их размещения. Поиск необходимых данных можно выполнить по ключевым словам, например для приведенного в данном описании шрифта - ARIAL_20_SC, Arial_20_SC.lua. А можно поступить по другому. В конце файла Ciftree.dat записан перечень ресурсов с адресами смещений, по которым они находятся в массиве файла (наподобие содержания в книге или журнале: название главы такой-то, страница такая-то). На примере рассматриваемого ресурса ARIAL_20_SC, посмотрите на следующий рисунок:

http://savepic.net/3818535m.png

@0AE0A025 - начальный адрес с названием ресурса ARIAL_20_SC
@0AE0A065 - начальный адрес со смещением ресурса в файле (1B 5B 60 0A)

Обратите внимание, что байты с адресом смещения записаны в обратном порядке. В нормальном виде он записывается так: 0A 60 5B 1B (просто переверните байты задом наперед). Перейдем на этот адрес в НЕХ-редакторе. Что мы здесь видим?

http://savepic.net/3808295m.png

По адресу @0A605B1B находится начало ресурса ARIAL_20_SC (показано пурпурным цветом). По адресу @0A605B4B начинаются бинарные данные сценария Arial_20_SC.lua (это хорошо видно по строке полного пути к данному файлу). Если помните, в начале нашего повествования именно эти данные мы декомпилировали и получили обычный файл сценария LUA. В НЕХ-редакторе я специально полностью выделил блок скомпилированного сценария (показано синим цветом), чтобы показать его размер. В правом нижнем углу окна НЕХ-редактора WinHEX отображается шестнадцатеричное значение выделенных данных, которое в данном случае равно 217А0h. В десятичном формате ему соответствует значение - 137 120. А это, как нам известно, размер файла ARIAL_20_SC. Вы можете узнать десятичное значение выделенных данных, если кликните правой кнопкой мышки по числу с размером:

http://savepic.net/3855323m.png

Обратите внимание, значение этого размера записывается перед блоком с бинарными данными сценария (показано красным цветом), только порядок байт обратный, т.е. А0 17 02.

Для чего все это нам нужно? Мы собираемся заменить оригинальные данные сценария своими. Эта операция возможна только в том случае, если размер новых данных равен или меньше исходных. Ранее мы уже выяснили, что наш новый файл ARIAL_20_SC.bin меньше исходного (134 036 байт). Но, если просто заменить выделенный блок данных новыми, то игра работать не будет. Почему? Размер данного блока, который записан по адресу @0A605B47 остался старый, а именно 217А0h. При запуске игры произойдет ошибка из-за невозможности распаковать данный ресурс, т.к. игрушка будет считать, что они повреждены. Чтобы этого не произошло, нужно скорректировать размер бинарных данных на новый. В шестнадцатеричном формате значению 134 036 (это размер нового файла) будет соответствовать число 20B94h. Вы это легко узнаете, когда выделите в НЕХ-редакторе все данные файла ARIAL_20_SC.bin:

http://savepic.net/3832796m.png

Изменим порядок байт в значении размера на обратный - 94 0B 02. Вот эти байты и введем с адреса @0A605B47.

Но сначала запишем данные файла ARIAL_20_SC.bin по адресу @0A605B4B в файле Ciftree.dat. Для этого выделите содержимое файла ARIAL_20_SC.bin, нажав клавиши [Ctrl+A] или воспользуйтесь командой меню "Edit -> Select All". После этого скопируем выделенные шестнадцатеричные данные в буфер обмена, нажав клавиши [Ctrl+Shift+C] или выбрав команду в меню "Edit -> Copy All -> Hex Values".

Теперь перейдем на вкладку с файлом Ciftree.dat. Установите курсор по адресу @0A605B4B. С этого адреса нужно перезаписать оригинальные данные содержимым буфера обмена. Для этого нажмите клавиши [Ctrl+B] или выберите в меню команду "Edit -> Clipboard Data -> Write". Подтверждаем наши действия на запросы HEX-редактора. Наконец корректируем размер перезаписаных данных по адресу @0A605B47.

http://savepic.net/3849183m.png

Сохраните сделанные изменения. Если вы нигде не допустили ошибок, то игрушка будет работать.

Аналогичные действия необходимо выполнить соответственно для каждого ресурса в файле Ciftree.dat, которые подвергнулись модификации, например текстовая часть игры.
%-)  Ух... На самом деле это все не сложно.
----
Текстовую часть ресурсов, например файлы AUTOTEXT_SC, UI_TEXT_SC,  после их декомпиляции, удобно переводить в шаблонном редакторе Radialix. Все строки на виду и упорядочены по игровым меткам (после применения соответствующего шаблона):

http://savepic.org/4379618m.png

После создания локализованного файла, компилируем его и вставляем в файл Ciftree.dat на место оригинального. Не забываем корректировать размер.

Некоторые изображения находятся в файлах *.BIK (папка Video), например, помощь в файле UI_Help_BG.bik. Извлекаете изображение с помощью утилиты RAD Video Tools. Затем редактируете его в вашем любимом редакторе графики. И наконец запаковываете его обратно в формат *.BIK все той же утилитой RAD Video Tools.
Например, переведенное изображение помощи:

http://savepic.org/4381669m.png

* * *

Теперь дело за вами.

Желаю удачи!

0

25

Нэнси Дрю 2013 написал(а):

Я уже пробовал залить их через HEX-Редактор напрямую в Ciftree.dat в замен Оригинального, но это было очень сложно-нужно было выделить, а затем вырезать огромный код старого файла(Tahoma_12_SC.lua) из Ciftree.dat. Потом я Открыл свой .lua файл шрифта тоже HEX-Редактором, Выделил из него все,кроме пути в начале кода(старый путь я оставил и в Ciftree.dat от Старого(Tahoma_12_SC.lua) файла), и прямо под него Вставил код Нового Шрифта. Новый Шрифт был размером меньше аж на 5 Килобайт, но сделан по Вашей Инструкции. В Результате всего этого Игра не запускалась. Правильно-ли я зашивал,ничего не пропустил?


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

Новыми данными необходимо перезаписать оригинальные, соответственно для каждого измененного ресурса, и скорректировать их  размеры! Только в этом случае гарантируется работоспособность игрушки. :yep:

0

26

Horna, не подскажите, как вы преобразовали вид отображения файла .fnt с такого вида http://savepic.ru/4666104.png

в вид, как в .lua файле (на этом скриншоте) http://savepic.ru/4664051.png

Спасибо!

0

27

NancyDrew, я об этом написал в 19 сообщении данной темы.  :glasses:

+1

28

Horna написал(а):

Небольшой ликбез для фанатов игрушки Нэнси Дрю.
ШРИФТ
В этом нам поможет программа "Bitmap Font Generator". Я её немного модифицировал так, чтобы сразу получать список с атрибутами символов в необходимом для игры формате.


Расскажите, пожалуйста, поподробнее, как модифицировать.

0

29

Horna
Здравствуйте! Спасибо вам за помощь, которую вы нам оказали. Можно вопрос не по теме перевода?
Как вскрыть старые игры Нэнси Дрю?
Такие как:
Платье для первой леди
Проклятье поместья Блекмур
Чудовище пещеры Капу.

0

30

Нэнси Дрю 2013 написал(а):

Как вскрыть старые игры Нэнси Дрю?
Такие как:
Платье для первой леди
Проклятье поместья Блекмур
Чудовище пещеры Капу.

Зачем? Насколько мне известно, эти части были локализованы и изданы Новым диском. Во-вторых, у меня нет этих игр, и нет возможности их качать. :whistle:

0


Вы здесь » BlackStar Localizations Studio » Общий форум » Не могу найти диалоги игры