Пользователь
0,0
рейтинг
3 декабря 2012 в 11:33

Дизайн → Правильный перевод или как делалась локализация сериала «Сцена» tutorial

image
Года 1.5-2 назад в разговоре с ID_Daemon он спросил у меня, как можно было бы сделать локализацию сериала, который очень хочет перевести. Если делать как обычно- srt субтитры, то это будет не читаемое нагромождение текста, если делать в видео редакторах таких как AE, то это будет слишком долго и времязатратно, по крайней мере для нас. Поэтому мой выбор пал на текстовые ass субтитры- что получилось, все кто хотел уже увидели, а теперь как это делалось:

Чаще всего ass субтитры используют для позиционирования текста и перевода надписей. Вот как, например, можно использовать ass субтитры:
Скрытый текст





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


В нашем случае мы решили пойти немного дальше и перевести ими почти весь видео ряд.
Отмечу, что моя цель не пересказать faq по ass тегам или программе aegisub -«родной» программе для ass субтитров.
Если вам что-то будет не понятно, то сами faq можно найти тут: subs.com.ru/page.php?al=ssa_description (ass формат) и тут: docs.aegisub.org (aegisub)
Пока существенный минус этих факов в том, что в них очень мало примеров, а то и вовсе нет. С одной стороны понятно, что тег {b} выделит текст жирным, с другой стороны, что сделает эта строчка субтитров:
Dialogue: 0,0:04:31.75,0:04:32.25,white,,0000,0000,0000,,{\p1\pos(0,0)\clip(173,440,426,461)}m 0 0 l 800 0 l 800 600 l 0 600{\p0}
можно понять не сразу.

Итак.
Теперь переходим непосредственно к нашей работе, оригинальный кадр, который нам надо перевести выглядит так:


Для начала были созданы несколько стилей, текст в которых визуально примерно соответствовал тексту в соответствующих мессенджерах:

стиль white использовался для «закрашивания» оригинального текста.

Попробуем подставить русский текст, так чтобы он соответствовал оригинальному, для этого можно подвигать его «руками», т.е. соответствующим элементом аегисаба, но проще набрать позиции на клавиатуре используя тег \pos, т.к. нужна пиксельная точность:


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

так же, для того, чтобы точки двигались попиксельно, стоит увеличить размер кадра до 200% или того максимума, который виден на вашем разрешении экрана.

Теперь уберём оригинальный текст в месенджерах:


Делается это в несколько этапов, разными способами, мы делали так: рисовали прямоугольник размером с весь кадр (чтобы можно было использовать везде где потребуется что-то «закрасить»):
Dialogue: 0,0:03:48.64,0:03:48.71,white,,0000,0000,0000,,{\p1}m 0 0 l 800 0 l 800 600 l 0 600{\p0}
потом этот прямоугольник обрезали.

Вроде всё, соберём все куски мозаики вместе и… ура! Мы смогли локализовать данный набор кадров:


Итоговый субтитр выглядит так:
Скрытый текст
Dialogue: 0,0:03:48.64,0:03:48.71,white,,0000,0000,0000,,{\p1\pos(0,0)\clip(m 297 358 l 540 358 540 339 779 339 778 543 297 543)}m 0 0 l 800 0 l 800 600 l 0 600{\p0}
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,351)\clip(m 297 358 l 540 358 540 339 779 339 778 543 297 543)}<coda> ну да, в общем всё правильно
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,367)}<gryffin> слушай, если хочешь чтобы они тебя приняли,
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(315,383)}  придется дать мне что-то большее для начала
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,399)}<coda> да правда, особо нечего рассказывать
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,415)}<coda> в dust произошло много всякой хрени
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,431)}<gryffin> и ты обвинил в этом дро?
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,447)}<coda> в некоторых вещах, да
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,463)}<gryffin> судя по тому, что я знаю, я тебя не виню
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,479)}<gryffin> но мне нужны какие-нибудь детали, чтобы я мог
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(315,495)}  его уговорить
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,511)}<coda> подожди секунду
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,527)}<gryffin> канеш
Dialogue: 0,0:03:48.64,0:03:48.71,mirc,,0000,0000,0000,,{\pos(297,543)}<coda> brb
Dialogue: 0,0:03:48.64,0:03:48.71,white,,0000,0000,0000,,{\p1\pos(0,0)\clip(282,120,510,201)}m 0 0 l 800 0 l 800 600 l 0 600{\p0}
Dialogue: 0,0:03:48.64,0:03:48.71,agent,,0000,0000,0000,,{\pos(164,134)\clip(282,119,513,201)}{\b1\c&HA00000&}alanmeans06: {\b0\c&H000404&}да
Dialogue: 0,0:03:48.64,0:03:48.71,agent,,0000,0000,0000,,{\pos(164,154)\clip(282,119,513,201)}{\b1\c&H0000A0&}brenner2604: {\b0\c&H000404&}этот засранец продолжает
Dialogue: 0,0:03:48.64,0:03:48.71,agent,,0000,0000,0000,,{\pos(164,174)\clip(282,119,513,201)}допытываться, что было между кодой и дро
Dialogue: 0,0:03:48.64,0:03:48.71,agent,,0000,0000,0000,,{\pos(164,194)\clip(282,119,513,201)}{\b1\c&HA00000&}alanmeans06: {\b0\c&H000404&}хмм



По первости на это уходило до часа, основная проблема в том, что через долю секунды весь кадр мог измениться и почти всё приходилось делать по новой, например вот что произойдёт всего через 90 миллисекунд, если не делать новые субтитры:


т.е. в данном случае просто сдвинулось окошко аськи. А если добавляется новое сообщение в мирк, то все позиции старых сообщений надо переделывать. Правда тут мы сделали маленькую хитрость, как многие могли уже заметить, часто приходится делать ту работу, которую можно автоматизировать. Писать скрипт в lua, который понимает аегисаб, мы не стали по личным причинам :), но вот что получилось на си:


Простенькая программка, которая формирует «покадрово» чат, сдвигая строки вверх и добавляя новые, остаётся только сделать тайминг к ее выводу:
Скрытый текст
Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,{\p1\pos(0,0)\clip(297,340,778,543)}m 0 0 l 800 0 l 800 600 l 0 600{\p0}
Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,{\p1\pos(0,0)}m 297 340 l 778 340 l 778 543 l 297 543{\p0}
Dialogue: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,{\pos(297,543)}<tefl0n> мне кажется NFO в порядке

Dialogue: 0,0:00:00.01,0:00:00.01,Default,,0000,0000,0000,,{\pos(297,527)}<tefl0n> мне кажется NFO в порядке
Dialogue: 0,0:00:00.01,0:00:00.01,Default,,0000,0000,0000,,{\pos(297,543)}<pyr0> мне тоже

Dialogue: 0,0:00:00.02,0:00:00.02,Default,,0000,0000,0000,,{\pos(297,511)}<tefl0n> мне кажется NFO в порядке
Dialogue: 0,0:00:00.02,0:00:00.02,Default,,0000,0000,0000,,{\pos(297,527)}<pyr0> мне тоже
Dialogue: 0,0:00:00.02,0:00:00.02,Default,,0000,0000,0000,,{\pos(297,543)}<slipknot> coda ты взял его?

Dialogue: 0,0:00:00.03,0:00:00.03,Default,,0000,0000,0000,,{\pos(297,495)}<tefl0n> мне кажется NFO в порядке
Dialogue: 0,0:00:00.03,0:00:00.03,Default,,0000,0000,0000,,{\pos(297,511)}<pyr0> мне тоже
Dialogue: 0,0:00:00.03,0:00:00.03,Default,,0000,0000,0000,,{\pos(297,527)}<slipknot> coda ты взял его?
Dialogue: 0,0:00:00.03,0:00:00.03,Default,,0000,0000,0000,,{\pos(297,543)}<c0da> взял
....



Набор текста в мессенджерах делали с помощью очень подходящего тега караоке- \kо, выглядело это примерно так:

набираемый текст в начале опускали ниже, чтобы видеть нет ли проблем в синхронности набора, потом ставили на место. Субтитр набора получился таким:
Dialogue: 0,0:21:02.27,0:21:07.41,mirc,,0000,0000,0000,,{\pos(298,593)}{\ko10}и{\ko7} {\ko7}я{\ko8} {\ko7}с{\ko10}о{\ko10}б{\ko8}и{\ko10}р{\ko8}а{\ko10}ю{\ko8}с{\ko10}ь{\ko10} {\ko10}п{\ko7}р{\ko10}о{\ko10}в{\ko10}о{\ko10}д{\ko10}и{\ko10}т{\ko7}ь{\ko10} {\ko10}м{\ko7}н{\ko10}о{\ko10}г{\ko10}о{\ko7} {\ko10}в{\ko10}р{\ko10}е{\ko10}м{\ko9}е{\ko9}н{\ko9}и{\ko9} {\ko9}с{\ko9} {\ko9}н{\ko9}и{\ko9}м{\ko9} {\ko9}э{\ko9}т{\ko9}и{\ko9}м{\ko9} {\ko9}л{\ko9}е{\ko9}т{\ko9}о{\ko9}м

В начале и конце серии текст либо появляется, либо исчезает. Эту часть мы делали так: перелив фона с чёрного на белый (но чаще всего это были другие градации цвета)
Dialogue: 0,0:00:52.76,0:02:02.43,white2,,0000,0000,0000,,{\t(0,1900,\c&FFFFFF&)\p1\clip(365,264,685,517)}m 0 0 l 800 0 l 800 600 l 0 600{\p0}
а сам текст «размывали» тегом fad.
Скрытый текст


Итого много-много часов работы, 460-ти килобайтный саб и серия переведена! :) С одной стороны делать это очень муторно, с другой, в итоге получаем отличный субтитр, который приятно читать. Дальше остаётся дело за малым- «вшить» субтитры в видео, дабы у всех они выглядели так, как задумано.
@AR1S
карма
21,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Дизайн

Комментарии (19)

  • +36
    Всегда поражали люди, которые занимаются такой рутиной ради других.
    Восхищаюсь!
    • –28
      Всегда поражали люди которые занимаются всякой ерундой.

      Посмотрел оригинал и всё.
    • +2
      Почему ради других? Разве не приятно осознавать, что сделал что-то хорошо и на совесть?
    • 0
      Данный опыт может быть полезен позднее. Ребята-молодцы!
  • +4
    Мне это напоминает отладку перфокарт для программируемого ткацкого станка 18 века. Просто поражен!
    • 0
      В 19 веке.
  • +2
    Спасибо за труд. Как раз недавно досмотрел первый сезон :) Жду второй :)
    • +1
      Второй, к сожалению, по сути другой сериал не про it-тематику. Пока не планируем его переводить.
  • 0
    На прошлой неделе посмотрел, хотя скачал ещё летом :) Ностальгия взяла после просмотра…
    Постоянно думал, каким образом делался перевод, ведь диалогов там немало, а если вручную всё это делать, то совсем застрелиться можно.
  • 0
    Огромное спасибо за перевод! И хотя оригинал довольно легко воспринимался, но на родном языке разговоры красочнее.
    А уж ругательства… cl.ly/LJgy
  • +1
    А где можно скачать эти самые субтитры? :)
  • +2
    Как сделать по-настоящему зловонное блюдо из тряпок?
  • +2
    mIRC использовал шрифт Fixedsys, у него же есть русская версия. Но вы все равно молодцы.
    • +1
      Программы, которые рисуют субтитры и внедряют их в видео, к сожалению работают только с truetype шрифтами.
  • 0
    Я когда смотрел перевод порой думал что это монтаж. Просто реально запустили мирку, аську и генерили считай новую картинку, вставив видео героя в углу, а тут у вас все так серьезно.
  • 0
    Работа, конечно, проделана огромная. Посмотрел сериал на одном дыхании — довольно занятный. А не рассматривали вариант тупо установить аську с мирком и потом уже туда вмонтировать видео с камеры? Мне кажется, было бы на порядок проще. Правда, проблема достать мирк с аськой тех лет, но как раз использовали бы софт похакерскей, а то аська с рекламой — это да :)
    • +1
      Да, такой вариант рассматривали, но на самом деле он не быстрее- синхронизировать набор/переключение, сама вставка видео в нужные места… вообщем тоже вылезло бы много нюансов.
  • 0
    А где-то можно найти раздачу с оригинальным видеорядом и сабами, без озвучки и полос?
    • 0
      На оф. сайте сериала.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.