Difference between revisions of "Судьба/Ночь схватки:Импорт текста"

From Baka-Tsuki
Jump to navigation Jump to search
(New page: =Структура= Все диалоги игры содержаться в файлах с расширением *.ks. и имеют примерно такую структуру: <pr...)
 
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Структура=
+
=Структура диалоговых файлов=
Все диалоги игры содержаться в файлах с расширением *.ks. и имеют примерно такую структуру:
+
Все тексты диалогов, используемые в игре, хранятся в файлах с расширением *.ks, имеющих следующую структуру:
  +
@скрипт
<pre>
 
@скрипт
+
@скрипт
  +
@texton
@скрипт
 
  +
текст [l][r]
@texton
 
текст [l][r]
+
текст [l][r]
  +
...
текст [l][r]
 
  +
текст
...
 
  +
@pg
текст
 
  +
*page n|
@pg
 
  +
@textoff
*page n|
 
@textoff
 
</pre>
 
Все что находится между @texton и @textoff подлежит переводу, за исключением @pg, [l][r] и *pagen|, которые надо оставлять на своих местах.
 
   
  +
Собственно текст, подлежащий переводу, находится между метками @texton и @textoff. Служебные метки @pg, [l][r] и *page n| при переводе изменять не следует.
=Word warp=
 
  +
  +
=Перенос слов=
 
==Теория==
 
==Теория==
К сожалению все игры написанные на движке kirikiri2 (к ним остносится и Fate) имеют одну плохую черту как разрыв слов, то есть текст: "Выпад, словно молния. Остриё копья разящее в сердце. Увернуться было бы невозможно. Молнию не увидеть человеческим глазом."; при вставке в игру будет иметь примерно такой вид: <pre>
+
Одним из популярных "движков", используемых при создании визуальных новелл, является kirikiri. Автоматическую расстановку переносов он не поддерживает, поскольку был написан японским программистом для использования только с японским языком (в котором переносы не применяются). Поэтому текст в играх, использующих kirikiri различных версий (в частности, kirikiri2 в ''Fate/stay night''), например: "''Выпад, словно молния. Остриё копья разящее в сердце. Увернуться было бы невозможно. Молнию не увидеть человеческим глазом.''" выглядит примерно так:
Выпад, словно молния. Остриё копья разящее в серд
+
Выпад, словно молния. Остриё копья разящее в серд
це. Увернуться было бы невозможно. Молнию не увид
+
це. Увернуться было бы невозможно. Молнию не увид
еть человеческим глазом.
+
еть человеческим глазом.
  +
Для использования переносов в игре их нужно явно задавать. Например, такая разметка:
</pre>
 
  +
[wrap text="Выпад,"]Выпад, [wrap text="словно"]словно [wrap text="молния."]молния.
Чтобы избежать этого надо текст проварпить, то есть в скриптах он должен иметь такой вид: <pre>[wrap text="Выпад,"]Выпад, [wrap text="словно"]словно [wrap text="молния."]молния. [wrap text="Остриё"]Остриё [wrap text="копья"]копья [wrap text="разящее"]разящее [wrap text="в"]в [wrap text="сердце."]сердце. [wrap text="Увернуться"]Увернуться [wrap text="было"]было [wrap text="бы"]бы [wrap text="невозможно."]невозможно. [wrap text="Молнию"]Молнию [wrap text="не"]не [wrap text="увидеть"]увидеть [wrap text="человеческим"]человеческим [wrap text="глазом."]глазом. [wrap text=""] [wrap text="------But"][line3]But</pre>
 
  +
[wrap text="Остриё"]Остриё [wrap text="копья"]копья [wrap text="разящее"]разящее
Тогда в игре он будет отображаться нормально: <pre>
 
  +
[wrap text="в"]в [wrap text="сердце."]сердце. [wrap text="Увернуться"]Увернуться
Выпад, словно молния. Остриё копья разящее в
 
сердце. Увернуться было бы невозможно. Молнию
+
[wrap text="было"]было [wrap text="бы"]бы [wrap text="невозможно."]невозможно.
  +
[wrap text="Молнию"]Молнию [wrap text="не"]не [wrap text="увидеть"]увидеть
не увидеть человеческим глазом.
 
  +
[wrap text="человеческим"]человеческим [wrap text="глазом."]глазом.
</pre>
 
  +
...приведет к отображению текста в следующем виде (перенос по словам):
  +
Выпад, словно молния. Остриё копья разящее в
  +
сердце. Увернуться было бы невозможно. Молнию
  +
не увидеть человеческим глазом.
  +
Конец строки (если необходим перенос по строкам) обозначается символами [l][r]:
  +
[wrap text="Выпад,"]Выпад, [wrap text="словно"]словно [wrap text="молния."]молния.[l][r]
  +
[wrap text="Остриё"]Остриё [wrap text="копья"]копья [wrap text="разящее"]разящее [wrap text="в"]в [wrap text="сердце."]сердце.[l][r]
  +
[wrap text="Увернуться"]Увернуться [wrap text="было"]было [wrap text="бы"]бы [wrap text="невозможно."]невозможно.[l][r]
  +
[wrap text="Молнию"]Молнию [wrap text="не"]не [wrap text="увидеть"]увидеть [wrap text="человеческим"]человеческим [wrap text="глазом."]глазом.[l][r]
  +
Такая разметка приведет к отображению текста на отдельных строках:
  +
Выпад, словно молния.
  +
Остриё копья разящее в сердце.
  +
Увернуться было бы невозможно.
  +
Молнию не увидеть человеческим глазом.
  +
 
==Практика==
 
==Практика==
  +
Обработка переносов в ks-файлах для kirikiri может быть автоматизирована, например, с помощью утилиты xp3-wordwrap.exe, входящей в пакет [[xp3tool]] для работы с xp3-архивами.
Вбивать все вручную нереально и занимет множество времени, поэтому чтобы преобразить нужный текст в пакет [[xp3tool]] входит программа для преобразования текста, называется она xp3-wordwrap.exe. Опишу алгоритм работы с программой:
 
  +
Для этого необходимо:
* Создаем текстовой файл в кодировке 1251 (ANSI)
 
  +
*Создать текстовый файл и вставить в него текст, подлежащий обработке
* Копируем туда нужный нам текст и сохраняем его с расширением .ks
 
  +
*Сохранить его в кодировке Win-1251 (ANSI) с расширением *.ks
* Создаем батник в директории с xp3-wordwrap.exe содержащий такой код <pre>xp3-wordwrap.exe "H:/work.ks" "C:/Fate_src/complete.ks"</pre>.
 
  +
*Создать командный файл (*.bat) с указанием входного и выходного файлов, например:
* Открываем complete.ks в кодировке 1251 (автоматом открывается в юникоде).
 
  +
xp3-wordwrap.exe "H:\work.ks" "C:\Fate_src\complete.ks"
* Дальше для тех у кого есть Akelpad (входит в комплект с тотал командером): Правка->Заменить->Что: <pre>. [wrap text="</pre>->Чем:<pre>.[l][r] \n[wrap text="</pre>->Esc-последовательность(галочка)->Заменить все.
 
  +
*Поместить командный файл в каталог с xp3-wordwrap.exe и запустить его
* Теперь просто редактируем нужный нам скрипт, заменяя блоки текста.
 
  +
*Для работы с полученным complete.ks нужно открыть его в кодировке 1251 (автоматом открывается в Unicode)
  +
*Для облегчения работы полученный файл можно дополнительно обработать. На примере Akelpad (входит в состав комплекта с Total Commander):
  +
Правка -> Заменить -> Что:
  +
. [wrap text="
  +
-> Чем:
  +
.[l][r] \n[wrap text="
  +
-> Esc-последовательность (галочка) -> Заменить все.
  +
*Это позволит редактировать скрипт, заменяя блоки текста.
  +
 
=Импорт=
 
=Импорт=
  +
Для создания xp3-архивов можно воспользоваться утилитой xp3-repack.exe, также входящей в состав пакета [[xp3tool]]. Эта программа работает в командной строке, но при частой работе с архивами удобнее воспользоваться разработанными специально для неё оболочками (GUI, см.ниже).
Знаю только одну программу для создания xp3 архивов, входит в пакет [[xp3tool]]: xp3-repack.exe.
 
  +
  +
==Консоль==
  +
* Создайте в катологе вместе с программой текстовик 123.bat.
  +
* Впишите в него слейдущий код:
  +
xp3-repack.exe directory archive.xp3 fate_full
  +
где вместо archive.xp3 и directory задаете. ваше имя архива и папку для распаковки.
  +
* Теперь запустите 123.bat через applocale.
  +
 
==Gui==
 
==Gui==
* После распаковки закиньте в папку c [[xp3tool]] [http://narod.ru/disk/233124000/GUI.rar программы-интрейсы].
+
* После распаковки закиньте в папку c [[xp3tool]] [http://narod.ru/disk/233124000/GUI.rar программы-интерфейсы].
 
* Запускаем файл repacker.exe, в нем указываем имя соханяемого файла и католог со скриптами, нажимаем Go
 
* Запускаем файл repacker.exe, в нем указываем имя соханяемого файла и католог со скриптами, нажимаем Go
 
* Архив готов.
 
* Архив готов.
==Консоль==
 
* Создайте в катологе вместе с программой текстовик 123.bat.
 
* Впишите в него слейдущий код: <pre>xp3-repack.exe directory archive.xp3 fate_full</pre>, где вместо archive.xp3 и directory задаете. ваше имя архива и папку для распаковки.
 
* Теперь запустите 123.bat через applocale.
 

Latest revision as of 15:25, 15 January 2010

Структура диалоговых файлов[edit]

Все тексты диалогов, используемые в игре, хранятся в файлах с расширением *.ks, имеющих следующую структуру:

@скрипт
@скрипт
@texton
текст [l][r]
текст [l][r]
...
текст
@pg
*page n|
@textoff

Собственно текст, подлежащий переводу, находится между метками @texton и @textoff. Служебные метки @pg, [l][r] и *page n| при переводе изменять не следует.

Перенос слов[edit]

Теория[edit]

Одним из популярных "движков", используемых при создании визуальных новелл, является kirikiri. Автоматическую расстановку переносов он не поддерживает, поскольку был написан японским программистом для использования только с японским языком (в котором переносы не применяются). Поэтому текст в играх, использующих kirikiri различных версий (в частности, kirikiri2 в Fate/stay night), например: "Выпад, словно молния. Остриё копья разящее в сердце. Увернуться было бы невозможно. Молнию не увидеть человеческим глазом." выглядит примерно так:

Выпад, словно молния. Остриё копья разящее в серд
це. Увернуться было бы невозможно. Молнию не увид
еть человеческим глазом.

Для использования переносов в игре их нужно явно задавать. Например, такая разметка:

[wrap text="Выпад,"]Выпад, [wrap text="словно"]словно [wrap text="молния."]молния.
[wrap text="Остриё"]Остриё [wrap text="копья"]копья [wrap text="разящее"]разящее 
[wrap text="в"]в [wrap text="сердце."]сердце. [wrap text="Увернуться"]Увернуться 
[wrap text="было"]было [wrap text="бы"]бы [wrap text="невозможно."]невозможно. 
[wrap text="Молнию"]Молнию [wrap text="не"]не [wrap text="увидеть"]увидеть 
[wrap text="человеческим"]человеческим [wrap text="глазом."]глазом. 

...приведет к отображению текста в следующем виде (перенос по словам):

Выпад, словно молния. Остриё копья разящее в 
сердце. Увернуться было бы невозможно. Молнию
не увидеть человеческим глазом.

Конец строки (если необходим перенос по строкам) обозначается символами [l][r]:

[wrap text="Выпад,"]Выпад, [wrap text="словно"]словно [wrap text="молния."]молния.[l][r]
[wrap text="Остриё"]Остриё [wrap text="копья"]копья [wrap text="разящее"]разящее [wrap text="в"]в [wrap text="сердце."]сердце.[l][r]
[wrap text="Увернуться"]Увернуться [wrap text="было"]было [wrap text="бы"]бы [wrap text="невозможно."]невозможно.[l][r]
[wrap text="Молнию"]Молнию [wrap text="не"]не [wrap text="увидеть"]увидеть [wrap text="человеческим"]человеческим [wrap text="глазом."]глазом.[l][r]

Такая разметка приведет к отображению текста на отдельных строках:

Выпад, словно молния.
Остриё копья разящее в сердце.
Увернуться было бы невозможно.
Молнию не увидеть человеческим глазом.

Практика[edit]

Обработка переносов в ks-файлах для kirikiri может быть автоматизирована, например, с помощью утилиты xp3-wordwrap.exe, входящей в пакет xp3tool для работы с xp3-архивами. Для этого необходимо:

  • Создать текстовый файл и вставить в него текст, подлежащий обработке
  • Сохранить его в кодировке Win-1251 (ANSI) с расширением *.ks
  • Создать командный файл (*.bat) с указанием входного и выходного файлов, например:
xp3-wordwrap.exe "H:\work.ks" "C:\Fate_src\complete.ks"
  • Поместить командный файл в каталог с xp3-wordwrap.exe и запустить его
  • Для работы с полученным complete.ks нужно открыть его в кодировке 1251 (автоматом открывается в Unicode)
  • Для облегчения работы полученный файл можно дополнительно обработать. На примере Akelpad (входит в состав комплекта с Total Commander):

Правка -> Заменить -> Что:

. [wrap text="

-> Чем:

.[l][r] \n[wrap text="

-> Esc-последовательность (галочка) -> Заменить все.

  • Это позволит редактировать скрипт, заменяя блоки текста.

Импорт[edit]

Для создания xp3-архивов можно воспользоваться утилитой xp3-repack.exe, также входящей в состав пакета xp3tool. Эта программа работает в командной строке, но при частой работе с архивами удобнее воспользоваться разработанными специально для неё оболочками (GUI, см.ниже).

Консоль[edit]

  • Создайте в катологе вместе с программой текстовик 123.bat.
  • Впишите в него слейдущий код:
xp3-repack.exe directory archive.xp3 fate_full

где вместо archive.xp3 и directory задаете. ваше имя архива и папку для распаковки.

  • Теперь запустите 123.bat через applocale.

Gui[edit]

  • После распаковки закиньте в папку c xp3tool программы-интерфейсы.
  • Запускаем файл repacker.exe, в нем указываем имя соханяемого файла и католог со скриптами, нажимаем Go
  • Архив готов.