|
shedevr.org.ru Группа перевода приставочных игр "ШЕДЕВР"
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Пт Сен 09, 2005 12:24 am Заголовок сообщения: |
|
|
Virtual_Killer писал(а): | А кто тут говорит про слоги? Тут же слова. |
В контексте обсуждения MTE "слоги" и "слова" - это одно и то же, обдумай ещё раз, если не понимаешь.
Virtual_Killer писал(а): | А то, что ты советуешь, в нашем случае не катит. Так как процесс перевода и вставки скрипта должен проходить одновременно. |
Понятно. Удобство в ущерб качеству - знакомая тактика. |
|
Вернуться к началу |
|
|
Virtual_Killer
Зарегистрирован: 25.03.2004 Сообщения: 610 Откуда: Чекагинск
|
Добавлено: Пт Сен 09, 2005 8:27 pm Заголовок сообщения: |
|
|
АнС писал(а): | В контексте обсуждения MTE "слоги" и "слова" - это одно и то же, обдумай ещё раз, если не понимаешь. |
Слоги - это DTE.
АнС писал(а): | Понятно. Удобство в ущерб качеству - знакомая тактика. |
Нет, тут как раз совсем другая ситуация.
Когда перевод и вставка проходят одновременно, можно увидеть, как текст будет отображаться в игре. Я вот, например, не люблю, когда часть предложения находится на одной "странице", а часть - на другой.
К тому же, во многих играх текст не переносится автоматически и если вставлять текст вслепую, то часть текста может пропасть.
В случае с FF6 была ещё одна проблема: при некотором сочетании символов, строка, в которой они (символы) находятся, должна быть меньше, чем обычноя, иначе вылезают партки.
Вообще, в ней было много таких "приколов". _________________ Не поймите меня правильно |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Пт Сен 09, 2005 10:30 pm Заголовок сообщения: |
|
|
Virtual_Killer писал(а): | Слоги - это DTE. |
Не позорься. DTE кодирует сочетание из двух букв, а MTE - сочетание из нескольких букв, вот и всё. Слог может состоять больше чем из 2 букв, поэтому DTE не охватывает все возможные значения (только слоги из 2 букв). А в MTE в качестве слога может быть любая последовательность символов (в том числе управляющих), которые вовсе не обязательно несут смысловую нагрузку. Чаще наоборот - программа (которую, ты говоришь, уже написал) находит в тексте некие последовательности букв, которые вовсе не обязаны являться словом. Слово - это звуковое выражение отдельного предмета мысли, и если у тебя в словаре будут только слова (сами по себе несущие смысловую нагрузку), то перевод явно будет хуже, чем если бы вместо слов были самые частые последовательности из символов. Эти последовательности далеко не всегда можно назвать словами. Я думал, как "программист" ты понимаешь, что для математических алгоритмов лучше работать не с осмысленными объектами, а с абстрактными последовательностями байтов.
Virtual_Killer писал(а): | Нет, тут как раз совсем другая ситуация. |
Да нет, именно та, я смотрю, вы именно в угоду тому, чтобы не очень долго тестить игру (не придётся проходить игру для выявления случаев перехода предложения на другую страницу), решили создать некий универсальный набор последовательностей (да ещё и осмысленных! это вообще крайне неэффективно с точки зрения оптимизационной схемы, но маджиктиму закон энтропии не писан) - в итоге чем дальше к концу перевода, тем хуже текст будет сжиматься (слоги-то подобраны неэффективно - не программно, а на глаз), а так как расширять РОМ вы не умеете, то все предложения будут состоять из парочки слов, причём многие слова будут слишком часто повторяться (те слова, которые вы внесли в свой словарь MTE) - настолько часто, что будет трудно не заметить такой шаблонности в тексте. Переводчику это не заметно, это только со стороны можно увидеть.
Virtual_Killer писал(а): | Когда перевод и вставка проходят одновременно, можно увидеть, как текст будет отображаться в игре. Я вот, например, не люблю, когда часть предложения находится на одной "странице", а часть - на другой. |
Это настолько мелочная "проблема", что упоминать её просто смешно. ВСЕ переводчики после вставки скрипта проходят игру и проверяют форматирование строк, это необходимость. Метод простотра одновременно с переводом даёт минимум удобств, но максимум ограничений. А ограничения ведут к "птичьему языку" (это когда нужно передать как можно больше информации в паре слов, например в чатах) - что мы и видим в троечном переводе FF3US.
Virtual_Killer писал(а): | В случае с FF6 была ещё одна проблема: при некотором сочетании символов, строка, в которой они (символы) находятся, должна быть меньше, чем обычноя, иначе вылезают партки.
Вообще, в ней было много таких "приколов". |
Примитив, а не проблема. Попобовал бы сделать моноширный шрифт названий шрифтом с изменяемой шириной - вот это могло бы вызывать уважение (даже при сухом переводе), а все эти "приколы" - это самый-самый базовый ромхакинг. |
|
Вернуться к началу |
|
|
Virtual_Killer
Зарегистрирован: 25.03.2004 Сообщения: 610 Откуда: Чекагинск
|
Добавлено: Сб Сен 10, 2005 8:51 pm Заголовок сообщения: |
|
|
АнС писал(а): | DTE кодирует сочетание из двух букв, а MTE - сочетание из нескольких букв, вот и всё. |
Под "Слогом" обычно подразумевают сочетание из двух символов.
А под "Словом" - любое сочетание символов, большее 2-х. Хотя, в принципе, слово может состоять и из 1-го, 2-х или даже 0 букв (разумеется, хранение таких слов - не эффективно).
То бишь:
Слог = DTE
Слово = MTE
Причём слово может быть частью "обычного" слова или набором спецсимволов.
Похоже у нас возникло недопонимание: то, что ты называешь слогами я называю словами.
АнС писал(а): | а так как расширять РОМ вы не умеете. |
Угу, а ещё мы не умеем менять поинтеры, находить шрифты, а о программировании даже не слышали.
АнС писал(а): | Метод простотра одновременно с переводом даёт минимум удобств, но максимум ограничений. |
Это верно только в том случе, когда ты переводишь примитивной программой, например Hex-редактором.
В полноценных же редакторах, втавка скрипта и изменение поинтеров происходят автоматически. Не надо беспокоиться о свободном месте, программа всё сама найдёт.
Так что никакими ограничениями здесь и не пахнет. _________________ Не поймите меня правильно |
|
Вернуться к началу |
|
|
SergeyK
Зарегистрирован: 02.12.2003 Сообщения: 1278
|
Добавлено: Сб Сен 10, 2005 9:01 pm Заголовок сообщения: |
|
|
Virtual_Killer писал(а): | Под "Слогом" обычно подразумевают сочетание из двух символов. |
Не пойму... К чему так позориться?
СЛОГ 1, –а, мн. –и, –ов, м. звук или сочетание звуков, произносимые одним толчком выдыхаемого воздуха.
Это из словаря Ожегова. _________________ Всю ночь не ешь, весь день не спишь. Конечно, устаешь... |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Вс Сен 11, 2005 2:36 am Заголовок сообщения: |
|
|
Ужас, и он ещё умудрился написать более-менее правдоподобную доку по MTE...
Может быть, ты ещё назовёшь "словом" заодно и DTE, так как там в один контейнер кодируются 2 байта, а известно, что 1 word = 2 bytes? Это я к тому, что ты своими вымышленными терминами только путаешь людей, вот это тебе подсказка, как запутать их ещё больше - используй одноимённые понятия из посторонних сфер, и все запутаются окончательно. :)
Virtual_Killer писал(а): | Похоже у нас возникло недопонимание: то, что ты называешь слогами я называю словами. |
Похоже, у тебя возникло недопонимание давно устоявшихся терминов. Эти термины постарше тебя будут. Не, я тебе не навязываю - в своих доках и на своём форуме можешь выдумывать что угодно, хоть заново построить теорию базового ромхакинга, но здесь будь любезен оперировать общепринятыми понятиями, чтобы не вводить в замешательство читателей.
Virtual_Killer писал(а): | АнС писал(а): | а так как расширять РОМ вы не умеете. |
Угу, а ещё мы не умеем менять поинтеры, находить шрифты, а о программировании даже не слышали. |
Не отмазывайся. Находить поинтеры и шрифты - это базовый ромхакинг, а расширение SNES-РОМа с переносом банков текста и изменением кода чтения текста - это то, что ты даже не смог себе сейчас представить, раз не понял мою фразу.
Virtual_Killer писал(а): | АнС писал(а): | Метод простотра одновременно с переводом даёт минимум удобств, но максимум ограничений. |
Это верно только в том случе, когда ты переводишь примитивной программой, например Hex-редактором. |
Разве я хоть слово про Hex-редакторы написал? Нет. Прочитай тот пост ещё раз. Я подробно описал процесс, причиной которого является метод составления словаря "на лету", а результатом является ухудшение качества (птичий язык). Описал подробно и когерентно. Прочитай тот пост ещё раз.
Virtual_Killer писал(а): | В полноценных же редакторах, втавка скрипта и изменение поинтеров происходят автоматически. Не надо беспокоиться о свободном месте, программа всё сама найдёт.
Так что никакими ограничениями здесь и не пахнет. |
Кстати, это сильно зависит от игры, точнее - от платформы. Но, стоп, это дела не касается, не увиливай! Ограничения, о которых я говорил, не зависят от того, чем пересчитывается словарь. Главное - когда он пересчитывается - если в конце перевода - то он будет оптимальным, а если прямо в процессе перевода, то он будет неэффективным, что в условиях ограниченности места (на СНЕС) резко понизит качество.
Ну да, иногда переводчик умудряется даже в сильно ограниченном промежутке (20 байт на предложение) написать такую фразу, что читать её приятно. Но для этого переводчик как минимум должен знать русский и литературу на отлично, с чем у вас огромные проблемы. Так что я бы вам советовал всё-таки прислушаться и не создавать себе дополнительные ограничения. Малограмотный переводчик, которого к тому же заставляют перевести фразу в 20 букв, - весьма жалкое зрелище.
Ты, прежде чем писать, перечитай мессаги ещё раз, а то выходит оччень некрасиво. |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Вс Сен 11, 2005 3:18 pm Заголовок сообщения: |
|
|
Virtual_Killer писал(а): | АнС писал(а): | DTE кодирует сочетание из двух букв, а MTE - сочетание из нескольких букв, вот и всё. |
Под "Слогом" обычно подразумевают сочетание из двух символов.
А под "Словом" - любое сочетание символов, большее 2-х. Хотя, в принципе, слово может состоять и из 1-го, 2-х или даже 0 букв (разумеется, хранение таких слов - не эффективно).
То бишь:
Слог = DTE
Слово = MTE
Причём слово может быть частью "обычного" слова или набором спецсимволов. |
...вам стоит еще договориться, что такое БУКВА ;)
хочу напомнить как расшифровываются DTE и MTE -
DTE - Double Tile Encoding
MTE - Multiple Tile Encoding
обычно, произнося слово DTE имеют ввиду, что один код кодирует два тайла (буквы),
а говоря MTE, подразумевают, что один код может обозначать от одного до нескольких тайлов (букв)...
(я намеренно написал слово код, потому как, что такое КОД
и как он выглядит в игре, тоже нужно договориться...)
...а "словом" называют 2 байта :lol:
*edit*
тут в частной беседе с АнСом, мы выяснили, что есть еще термины "похожие" на вышеуказанные (мной)...
DTE = Dual Text Encoding
MTE = Multiple Text Encoding
они относятся к тому КАК выглядит "код"... и в общем-то
относятся к терминам "сжатие"...
(или на худой конец, к "кодировкам")
с другой стороны, возможно не все читатели этой темы
об этом догадались... (по крайней мере я) _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
Virtual_Killer
Зарегистрирован: 25.03.2004 Сообщения: 610 Откуда: Чекагинск
|
Добавлено: Вс Сен 11, 2005 8:17 pm Заголовок сообщения: |
|
|
АнС писал(а): | будь любезен оперировать общепринятыми понятиями, чтобы не вводить в замешательство читателей. |
На этом форуме таблицу DTE кодов частенько называли "таблицей слогов". Причём никто не возражал против такого обозачения. Вот я и решил применить к MTE слово "слово". Как раз для того, чтобы людям понятней было (слог меньше слова ).
АнС писал(а): | ...а расширение SNES-РОМа с переносом банков текста и изменением кода чтения текста... |
Во, во. Одно дело расширение, другое - перенос банков данных (не обязательно текстовых).
Но в нашем случае это не поможет, так как в Terranigma очень сложная структура данных.
Есть несколько "глобальных блоков" (около 2-х десятков), в которых хранятся диалоги, настройки и параметры для определённых локаций/групп локаций. В каждом таком блоке есть несколько десятков "мелких блоков", в которых хранятся поинтеры, текст и параметры конкретных сцен: положение персонажей, действия персонажей, параметры вывода текста и пр. А в самом тексте содержатся дополнительные параметры вывода текста и 2 вида поинтеров: одни работают исключительно внутри "глобального блока", другие - работают во всех блоках.
Поэтому, было принято решение написать специфическую программу. Так что наш спор сейчас даже не актуален. Всё будет делать одна большая программа.
АнС писал(а): | Главное - когда он пересчитывается - если в конце перевода - то он будет оптимальным, а если прямо в процессе перевода, то он будет неэффективным... |
Втом то и дело, что скрипт вставляется каждый раз полностью.
То есть при каждой вставке старый текст полностью удаляется, а на его место встаёт полный обновлённый скрипт.
Теперь понял или тебе по-подробнее объяснить? _________________ Не поймите меня правильно |
|
Вернуться к началу |
|
|
Delex
Зарегистрирован: 05.01.2004 Сообщения: 284 Откуда: Челябинск
|
Добавлено: Пн Сен 12, 2005 10:55 am Заголовок сообщения: |
|
|
Axel, дипломат _________________ ...пусть даже через сто веков в страну не дураков, а гениев... |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Пн Сен 12, 2005 7:14 pm Заголовок сообщения: |
|
|
Axel - чемодан. С терминами действительно полно неясностей.
VK, если у тебя выйдет то, о чём говоришь - то проблема снимается (снимаются ограничния, тем не менее - всё зависит от переводчика: хороший сможет и при сильном ограничении создать шедевр, а плохой при любом инструментарии выдаст полумашинный перевод). |
|
Вернуться к началу |
|
|
CaHbl4
Зарегистрирован: 28.02.2006 Сообщения: 16 Откуда: Омск
|
Добавлено: Сб Мар 11, 2006 3:43 pm Заголовок сообщения: |
|
|
Peter Abel пишет:
Цитата: | Процессор в PC и в совместимых моделях использует 16-битовую
архитектуру, поэтому он имеет доступ к 16-битовым значениям как в памяти,
так и в регистрах. 16-битовое (двухбайтовое) поле называется словом. |
_________________ One, Two, Freddy's coming for you... |
|
Вернуться к началу |
|
|
Jim_Di
Зарегистрирован: 27.10.2005 Сообщения: 18
|
Добавлено: Чт Фев 14, 2008 11:12 pm Заголовок сообщения: |
|
|
прочитав всё вышесказанное я подумал, что будет гораздо оптимальнее сначала перевести скрипт, чтобы составить словарь, перевести его, закинутьв ром, сделать таблицу с русскими буквами и русским словарём и только тогда начинать вставлять скрипт обратно, так?
итак, допустим, имеется переведённый скрипт, нудно проанализировать скрипт на самые часто используемые слова - т.е. лучше создать массив, который будет заполняться самыми повторяемыми словами п мере анализирования текста?
помогите с алгоритмом действий разобраться, чото вобще застой в работе мозга =\ просто алгоритм действий составить |
|
Вернуться к началу |
|
|
Virtual_Killer
Зарегистрирован: 25.03.2004 Сообщения: 610 Откуда: Чекагинск
|
Добавлено: Пт Фев 15, 2008 11:35 am Заголовок сообщения: |
|
|
Jim_Di писал(а): | прочитав всё вышесказанное я подумал, что будет гораздо оптимальнее сначала перевести скрипт, чтобы составить словарь, перевести его, закинутьв ром, сделать таблицу с русскими буквами и русским словарём и только тогда начинать вставлять скрипт обратно, так? |
Взглянув на игру ещё раз, я тоже пришёл к этому выводу. Похоже, это единственный вариант
Место под текст очень фрагментировано, используется словарь, есть внутритекстовые поинтеры, расположение текста по большей части ограничено двухбайтовыми поинтерами. НО... английский словарь составлен очень неэффективно, поэтому при программном составлении словаря у нас есть все шансы запихнуть переведённый скрипт обратно. :)
Плохо только, что нельзя будет в реальном времени просматривать, как текст будет выглядеть в игре. Если тебя это устраивает, я могу выдрать тебе скрипт. Как вариант, можно написать вьюер, который будет имитировать игровое окно с текстом. _________________ Не поймите меня правильно |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Пт Фев 15, 2008 4:36 pm Заголовок сообщения: |
|
|
Virtual_Killer писал(а): | Плохо только, что нельзя будет в реальном времени просматривать, как текст будет выглядеть в игре. Если тебя это устраивает, я могу выдрать тебе скрипт. Как вариант, можно написать вьюер, который будет имитировать игровое окно с текстом. |
У меня есть с довольно гибкими настройками. Старый, примитивный, но рабочий. Как-нибудь перепишу его по-человечески. _________________ Работаю за деньги
KILL ALL HUMANS!!!!!111 |
|
Вернуться к началу |
|
|
Jim_Di
Зарегистрирован: 27.10.2005 Сообщения: 18
|
Добавлено: Сб Фев 16, 2008 2:05 am Заголовок сообщения: |
|
|
отлично, буду очtym рад любой помощи. конечно на готовом работать проще, но буду особенно рад помощи в теории. хочу сам до всего "допереть" =)
ВК комментируй подробнеее пожалуйста =) я пытался искать указатели на сам текст, но так ничего не смог найти. думаю, там что-то не очень примитивное, так?
весь текст из игры я уже нашол на просторах интернета =) перевожу понемногу, когда есть время - начальство стало сильно гонять =) т.к. я один увольняюсь весной и за одного из сержантов на должности остался, т.к. он в отпуск уехал =\
вьювер это да. удобно. было бы неплохо... хотябы для редактирования любого текста, чтобы уложиться в диалоговое окно и расставить всё как надо |
|
Вернуться к началу |
|
|
Virtual_Killer
Зарегистрирован: 25.03.2004 Сообщения: 610 Откуда: Чекагинск
|
Добавлено: Сб Фев 16, 2008 9:31 am Заголовок сообщения: |
|
|
Jim_Di писал(а): | я пытался искать указатели на сам текст, но так ничего не смог найти. думаю, там что-то не очень примитивное, так? |
Так. Искать поинтеры диалогов вручную - безумие, поэтому я научил программу их искать.
Jim_Di писал(а): | ВК комментируй подробнеее пожалуйста =) |
Хорошо, буду всё расписывать, заодно сам всё вспомню. Всё равно без аццкой программы эти данные будут мало кому полезны, то бишь воровать нет смысла
Начну с простого - словарей.
1. Словарь имён
12C7CF-12C7E6: первый блок двухбайтовых поинтеров (имена 2-13)
12C7E9-12C7FE: второй блок двухбайтовых поинтеров (имена 14-24)
12C7FF-12C992: блока текста, всего в блоке 24 имени, на первое имя поинтера нет.
D4 - знак конца текста
Таблица имён:
Код: | D200=Arc
D201=<Elder: >
D202=<Elle: >
D203=<Yomi: >
D204=<Kumari: >
D205=<Meiho: >
D206=<Meilin: >
D207=<Arc: >
D208=<Fyda: >
D209=<Royd: >
D20A=<Perel: >
D20B=<Princess: >
D20C=<Gull: >
D20E=<Beruga: >
D20F=<Leim: >
D210=<Mt. goat: >
D211=<Mud Doll: >
D212=<Guardian: >
D213=<Voice: >
D214=<Girl1: >
D215=<Girl2: >
D216=<Mermaid: >
D217=<Turbo: >
D218=<Columbus: >
Несмотря на то, что имена D214 и D215 - идентичны, они относятся к разным персонажам, поэтому в таблицу их лучше записывать с различием, как у меня: <Girl1: > и <Girl2: >. |
Треугольные скобки я использовал для выделения в скрипте этих слов.
Во всех именах, кроме первого, вначале идут 8 информационных байтов (цвет текста и т.д.). Восьмое имя вызывает кодом словаря (D200) первое имя, то есть словарь использует свой собственный элемент.
2. Словарь MTE
12С993-12CB92 - первый блок двухбайтовых поинтеров
12CB93-12D4BA - первый текстовый блок
12D4BB-12D6BA - второй блок двухбайтовых поинтеров
12D6BB-12E00F - второй текстовый блок
D4 - знак конца текста
E500-E6FF - коды слов. У тебя в таблице они есть, так что выкладывать список не буду.
В каждом блоке слова записаны в алфавитном порядке. Очевидно, что словарь создавался человеком, а не машиной, в нём находится 510 (два слова - пустышки вида "xxxxxx ") часто встречающихся слов различной длины с пробелами на конце.
В русском языке есть множество приставок, суффиксов и окончаний, поэтому нам такой способ не подходит. Но, если проанализировать переведённый текст на часто встречающиеся последовательности символов (даже не слова), и составить из наиболее выгодных по
Код: | <количество "попаданий">/<длина последовательности> |
новый словарь, то можно получить даже более эффективное сжатие текста, которое позволит нам вернуть переведённый текст в ром без особых проблем.
3. Диалоги.
80200 - начало первого блока
10000 - размер блока
Всего есть 10 блоков с диалогами.
В них вперемежку находятся текст, поинтеры, позиции и действия персонажей во время разговоров и ещё куча всего. Чтобы упорядочить всё это, нужно, практически, полностью перекомпилировать игру, что нас, конечно, не устраивает. Придётся вставлять переведённый скрипт на старые места. Так как место под текст сильно фрагментировано, для его вставки понадобится бОльшая степень сжатия, чем была ранее, тут то и поможет программно составленный словарь.
Основные поинтеры обычно находятся вперемежку со служебными данными, чуть выше текстовых элементов, на которые они ссылаются. Определить поинтеры можно по окружающим их байтам: 021BXXXX02, где XXXX - значение поинтера. По этим признакам моя программа ищет поинтеры и выдирает по ним текст.
Пока она это делает без учёта двух других видов поинтеров: поинтеры на концах текстовых элементов и внутритекстовые межблоковые поинтеры. О них я напишу позже, когда сам вспомню, как по ним текст выдирать
Текстовые элементы диалогов представляют из себя, по большей части, строки, вначале которых стоит инструкция для вывода текста (обычно 3 байта) и заканчивающиеся обычным концом строки (D3) или поинтером на часть другого текстового элемента или на независимый текстовый элемент, не имеющий стандартного поинтера.
Сейчас нужно определиться, как мы будем выдирать текст по нестандартным поинтерам.
- Выдрать вместо них соответствующий текст, а перевод вставлять уже без поинтеров. Тогда можно будет более гибко переводить текст, но увеличится размер скрипта. Можно понадеяться, что составленный программно словарь позволит нам это сделать.
- Поставить в скрипте на место поинтеров соответствующие теги. Тогда текст не станет увеличиваться, но резко упадёт читаемость скрипта, и переводить придётся с оглядкой на другие текстовые элементы, использующие один и тот же кусок текста.
Кроме этого есть ещё текст: предметы и их описание, возможно, ещё что-то, но до этого текста у меня ещё руки не доходили. _________________ Не поймите меня правильно |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|