Список форумов Kage Project Kage Project
 
  РегистрацияРегистрация  ВходВход
  Архив субтитровАрхив субтитров  ПоискПоиск  ЧаВоЧаВо  ПользователиПользователи
 Войти и проверить личные сообщенияВойти и проверить личные сообщения

Скрипты для Aegisub + RETS by Zabr [21.01.24]
На страницу 1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След.
 
Начать новую тему   Ответить на тему    Список форумов Kage Project -> Техническая поддержка
Предыдущая тема :: Следующая тема 
Автор Сообщение
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Вт Июл 17, 2018 4:03 am   Заголовок сообщения: Скрипты для Aegisub + RETS by Zabr [21.01.24] Ответить с цитатой

Всем здравствуйте.

Изначально тема создавалась только для скрипта очистки сабов, так что по нему тут больше всего информации. Но в итоге решил переделать тему под все свои скрипты с описаниями их функций и возможностей + наконец-то выложить свой JS скрипт, который очень сильно помогает мне с релизами - RETS.

Скрипты можно скачать тут: https://yadi.sk/d/c-hiZ9MEWW4C_A и обновляться будут там же по мере фикса багов (если они найдутся) и новых фич. В названия файлов включены дата и версия для удобства отслеживания (можно удалить из названия, для удобства бинда хот кеев, поскольку в самом скрипте эта информация также прописана).

Также в качестве приятного бонуса в папке «Hotkeys» лежит файл с моими актуальными хот кеями (на все скрипты, что использую). Его нужно положить в папку C:\Users\<User>\AppData\Roaming\Aegisub\hotkey.json, чтобы хот кеи подгружались (не забудьте удалить версию и дату из названий файлов).

Для тех, кто не знает как использовать скрипты: кидать в папку «Aegisub\automation\autoload», после этого перезапустить Aegisubs (или перезагрузить скрипты через менеджер автоматизации) и в меню «Автоматизация» они у вас появятся.

Все баги и предложения можно писать в эту тему или в ЛС или в телеграм: https://t.me/Zabrr

Так же хотелось бы выразить благодарности:
  • в первую очередь unanimated'у, который сподвиг меня на правильное оформление и написание скриптов. А так же за огромный пак его скриптов, которые до сих пор использую и которые очень экономят время. Ну и, конечно же, за идеи некоторых его скриптов, которые были использованы за основу в моих;
  • Endill'у, с которым много общались на тему оформления и автоматизации в Aegisubs;
  • Ну и многим русскоязычным оформителям: Surokune, Sa4ko, LiaNdrY, Усатый Ня, chainsaw и тд, которые мне в далекие времени показали, что такое «оформленное аниме».
Приятного использования!

RETS

Что такое RETS? Это аббревиатура: release, encode, typeset stuff. Как понятно из названия, там есть разные вещи, которые помогают в этих направлениях. Работает в любом современном браузере. К каждому полю и кнопке написаны комментарии что она делает и зачем она нужна, показывается при наведении.

В интерфейсе следующие разделы:
  • «Chapters» - содержит разные скрипты по работе с главами, а именно:
    • «Load Files» и «Make Chapters» делают из исходных xml файлов глав готовые, именованные, по серийные файлы глав (в том числе, режут суммарные xml файлы (в которых главы на несколько серий)). Отличаются они способом ввода данных - при «Load Files» вы загружаете исходные xml файлы, при «Make Chapters» исходные данные вставляются в поле для ввода. Выходные данные будут или скачены и именованы по настройкам, при установленной галочки «Download» или будут выведены каждая серия в своё отдельное поле. Почти вся левая часть (кроме поля ввода под «Subtract time») - настройка этих методов;
    • «Change UIDs» - меняет идентификаторы у данного файла глав (нужно, чтобы сделать уникальными все идентификаторы, так как если у 2 глав совпадет идентификатор, вторая из них НЕ покажется в плеере, а иногда приходится делать главы вручную, то есть копировать блоки глав);
    • «Subtract time» - отнимает от всех тайм кодов в данном файле глав время, указанное в поле ввода ниже (бывает нужно, когда у серий разная длительность и исходные главы криво порезались).
  • «Subtitles» - содержит разные скрипты по работе с субтитрами, а именно:
    • «Fonts» - делает один суммарный ass файл со всеми глифами, шрифтами и их начертаниями из всех данных ass файлов, чтобы не нужно было каждый файл добавлять в Aegisubs и собирать ему шрифты, а сделать это 1 раз с суммарным файлом. Результат можно сказу скачать, установив галочку «Download»;
    • «Inscriptions» - делает надписи из данных ass файлов. Во-первых, анализирует стили на то, каким типом они являются (текстом, песнями, заметками, надписями и так далее). Во-вторых, не просто удаляет все текстовые стили, а анализирует каждую строку по наличию в ней тегов или актёру на то, может ли она является надписью. Корректно работает с блоком надписи ({n}), не удаляет строки с ним. Может попытаться найти надписи в ass субтитрах, которые были получены из srt, где надписи были внутри строки с текстом при установки галочки «Find in text»;
    • «Clear subtitles header» - заменяет шапку с информацией о скрипте на данную в поле ввода (или просто очищает её от мусорных ключей, если поле ввода пустое) + удаляет секцию «[Aegisub Project Garbage]» в данных ass файлах;
    • «Validate subtitles» - валидирует шапку с информацией о скрипте и стили данных ass файлов. Проверяет их на полное совпадение. Выдаст информацию, если что-то отличается в какой-либо серии. Также проверяет наличие секции «[Aegisub Project Garbage]». Если шапка и все стили совпадают и отсутствует «[Aegisub Project Garbage]» во всех сериях, выдаст, что всё отлично;
    • «Episode list» - делает список эпизодов из данных ass файлов. В поле ввода нужно указать целую строку субтитров (то есть, начиная с «Dialogue: » и до конца) с названием из первого эпизода. Во всех сериях у строк названий должен быть одинаковый стиль. Максимально корректно работает, если в субтитрах названия текущего и следующего эпизода в одном стиле и совпадают или в каждом файле только одна строка у стиля эпизодов - название. Если скрипт будет не уверен, он допишет это в скобочках;
    • «Subtitles from chapters» - делает из xml файлов ass файлы, где каждая строка субтитров - это бывшая глава. Бывает полезно, когда нужно проверить корректность тайминга глав.
  • «Interface» - содержит поля для настройки цветов интерфейса (меняется при вводе, должно быть 3 или 6 корректных для цвета символов (0-F)) и пару кнопок с предустановленными наборами. Также есть кнопки для сохранения/загрузки/сброса по умолчанию настроек (которые чаще всего не нужны, поскольку все настройки сохраняются в локальное хранилище браузера при закрытие скрипта и загружаются при открытии) и очистки полей вывода.
Скрипт со всеми необходимыми функциями для моих скриптов («Functions», файл «z_functions.lua»)

В скрипте содержаться функции, необходимые для большей части моих скриптов. Лучше скачать, чтобы не думать: «а нужен ли он мне?»

Скрипт работы с \clip'ом («Clip», файл «z_clip.lua». Для работы необходимы «z_functions.lua» и «ks_utf8.lua» (можно скачать по ссылке выше в папке «Another required scripts»))

Божественнейший скрипт, который экономит мне массу времени. Содержит следующие функции по работе с \clip:
  • «Clip <-> iclip»: преобразование \clip в \iclip и наоборот (скрипт для бинда на хот кей);
  • «Clip copy»: копирование \clip из первой строки в остальные в выделенных строках. Для запуска должен быть \clip в первой выделенной строке. Пример/логика использования: допустим у вас покадровое изменение \clip, а надпись занимает 2 и более строк. Для каждого кадра в первой строке рисуете свой \clip, сортируете по времени, выделяете все строки этой надписи и запускаете скрипт. В итоге, у вас во все строки одного кадра скопирован \clip из первой строки этого кадра. !!!Важно!!! В остальных строках не должно быть \clip, а то скрипт подумает, что это новый \clip, который нужно вставить дальше;
  • «Clip gradient»: теперь можно определенно сказать, что это улучшенный «Gradient Everything». Скрипт полноценно работает со всеми тегами, которые можно градиентить и всеми видами \clip + имеет всякие полезные фичи + не создает мусора (например, дубликатов строк с отличающимся только \clip). В отличии от первой версии «Clip gradient» в v4.0 убрано GUI обработки за ненадобностью, но добавлено GUI настроек. В этом GUI настраиваются следующие вещи:
    • «Pixel width»: ширина области в пикселях. Последняя область может быть меньше (если ширина не делится на ровное число областей);
    • «Width multiplier»: коэффициент расширения области. Нужен для того, чтобы области немного накладывались друг на друга, если потребуется (например, когда сильный угол у области, из-за не полностью точного рендеринга между областями получается тонкая линия, которая не попадает ни в одну из соседних областей \clip). Минимальное значение «1» - крайние точки соседних областей будут совпадать (математически области будут ровно рядом друг с другом). При значении хотя бы «1.01» уже будет наложение областей друг на друга. Рекомендуется использовать не больше «1.05». Эта настройка не влияет на начальные координаты - они не изменятся;
    • «Width type»: указывает к какой ширине будет применяться деление по «Pixel width» - большей или меньшей. Эта настройка исключительно для векторного \clip, где расстояние между двумя парами точек может быть разное (в прямоугольном оно всегда одинаковое). Количество областей считается отношением большей или минимальной ширины (в зависимости от этой настройки) к указанному «Pixel width»;
    • «Rectangle»: как преобразовывать прямоугольный \clip в векторный. Лирическое отступление: на самом деле скрипт работает только с векторным \clip, в котором должно быть указано 4 или 8 точек. При указанных 4 точках, области строятся от 1 ко 2 и 4 к 3. При указанных 8 точках области строятся от 2 к 3 и 7 к 6 (1 и 8 добавляются к первой области, а 4 и 5 к последней, это нужно, чтобы можно было закрасить одним цветом начальные/конечные области и минимизировать количество строк). Поэтому в векторном \clip можно сделать совершенно любое направление генерации областей - просто поменяв порядок координат, градиент будет уже другой. Как было сказано ранее, скрипт работает только с векторным \clip, но нам никто не мешает преобразовать прямоугольный \clip в векторный и потом сделать обратное преобразование (для уменьшения веса файла). Преобразовать прямоугольный \clip можно 4 разными вариантами, и вот выбрать каким из вариантов нужно это сделать позволяет эта настройка;
    • «Original lines»: последняя настройка, которая указывает что делать с оригинальными строками - удалять или комментировать (лично мне после генерации градиента они не нужны, а если что-то пойдёт не так, то есть Ctrl + Z, но многие другие скрипты генерации почему-то не удаляют, а комментируют исходные строки, так что оставил такую возможность.
    После настройки можно наконец-то что-то поградиентить и тут всё предельно просто:
    • делаем несколько строк, у которых совпадает текст, если удалить все теги;
    • в 1 строке делаем нужный \clip (он возьмётся именно из неё);
    • в последовательных строках указываем теги, которые нужно заградиентить (причем не обязательно делать одинаковые блоки тегов, скрипт сам все построит и посчитает все значения на основе стиля и тегов из предыдущих блоков. То есть, например, вам нужно сделать градиент последней буквы от \frz90 до \frz0. Больше в строках нет \frz, и в стиле angle = 0. Вы просто ставите в первой строке перед последней буквой {\frz90}, а во второй ничего. Скрипт сам посчитает на основе стиля, что во второй строке перед последней буквой должно быть {\frz0}, так как это значение получено из стиля). Строк может быть сколько угодно, градиент равномерно разделится между ними. Если количество областей не делится ровно по строкам, то приоритет имеют первые строки пока не кончится остаток. Именно благодаря этому, если в строках значения какого-то тега будут изменяться не линейно, то можно будет сделать ускорение/замедление градиента тега (например, в первой исходной строке \fs100, во второй \fs90, в третьей \fs10, а градиент получается на 6 строк. Тогда получится 6 строк со значениям \fs100 \fs96.666 \fs93.333 \fs90 \fs50 \fs10);
    • нажать «Process».
    И на основе настроек и указанных тегов скрипт сам заградиентит всё, как было вами указано))) В общем, получился очень мощный инструмент, который позволяет делать любые последовательные градиенты;
  • «Clip split»: разбивает \clip по четырёхугольникам используя 2 первые и 2 последние координаты. Должно быть кратное 4 количество координат. Используется когда вам нужно рисование от \clip разбить на какие то области (например, сделать плитку). Например, из строки:
    Код:
    Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,{\clip(m 308 420 l 574 330 650 306 994 204 1066 354 778 440 684 490 458 618)}

    получатся строки:
    Код:
    Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,{\clip(m 308 420 l 574 330 684 490 458 618)}
    Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,{\clip(m 650 306 l 994 204 1066 354 778 440)}

  • «Clip transform»: делает появление в любом направлении (из предложенных Smile) для прямоугольного \clip. Например, если нужно, чтобы надпись появлялась слева, то этот скрипт то, что вам нужно;
  • «Clip mirror»: отзеркаливает \clip по заданным (через GUI) или высчитанным (при запуске авто режима) координатам. Может отразить \clip по «x», «y» или одновременно по обоим измерениям. При указании значения «0», отражение по этому измерению не происходит. Пара слов об авто режиме: высчитывает координаты для отражения на основе первой и последней координате \clip. При совпадении только значения «x» у начальной и конечной координат, отразит только по нему, аналогично при совпадении только значения «y». При полном совпадении начальной и конечной координат или наоборот, при полном их различии, отражает по обоим измерениям. Также логика зависит от того, в какой четверти экрана находится \clip;
  • «Clip expand»: увеличивает или уменьшает \clip, относительно его центра. Полезная штука, когда вы сделали \clip вокруг текста, потом добавили ему \blur и размытие перестало помещаться в \clip. Настроить коэффициент сжатия можно в начале скрипта (по умолчанию «0.01»).
Скрипт для побуквенных градиентов («Gradient by char», файл «z_gradient_by_char.lua». Для работы необходимы «z_functions.lua» и «ks_utf8.lua» (можно скачать по ссылке выше в папке «Another required scripts»))

Ещё один переписанный скрипт, который переписывался для того, чтобы просто корректно работал. Теперь генерируются верные полные градиенты всех возможных значений. То есть из начальной строки (в стиле \fs60\c&HFFFFFF&)
Код:
12{\fs150}34{\c&HFF0000&}5

будет получена
Код:
1{*\c&HFFBFBF&\fs105}2{*\c&HFF8080&}{\fs150}3{*\c&HFF4040&}4{\c&HFF0000&}5

а не (косяки: лишний пустой старт тег, градиент цвета начался только от второго блока, причем со значением от первого)
Код:
{}1{*\fs105}2{\fs150}3{*\c&HFF8080&}4{\c&HFF0000&}5

которая получается в другом аналогичном скрипте.
Обратите внимание на то, что для новых тегов генерируется отдельный тег блок со «*» в начале. Это нужно для того, чтобы при удалении градиента через Remove, строка вернулась в изначальное состояние.

Скрипт помощник для тайминга с нуля («Timing helper», файл «z_timing_helper.lua». Для работы необходимы «z_functions.lua» и «ks_utf8.lua» (можно скачать по ссылке выше в папке «Another required scripts»))

Скрипт помогает делать тайминг с нуля. Есть функции генерации N пронумерованных строк и правки нумерации в таких строках при путанице.
Отдельно стоит рассказать, что такое Timing mode: в скрипте 2 функции Start и End при выключенном Timing mode работают аналогично стандартным функциям Aegisubs «Установить начало/конец строки на текущий видео кадр». Это сделано специально, чтобы не перебиндивать постоянно хот кеи. При включенном Timing mode, эти 2 функции делают ровно тоже самое, но вдобавок они модифицируют тайминг всех следующих строк сохраняя их длительность, но чтобы тайминг был непрерывным, начиная от текущей строки. Это решает очень много проблем, например, что у строки на самом деле тайминг длиннее, чем было, и след строка на неё налезает или что нужно самому соединять тайминг строк, чтобы не было одно кадровых пропусков и так далее. С этим скриптом делать тайминг с 0 стало эффективнее раза в 1.5-2. Даже задумывался о том, что делать с ним нормальный тайминг с 0 быстрее, чем править чужой тайминг, но проверить пока не удалось.

В общем, очень полезная штука.

Так же есть проверка на включенный Timing mode, если скрипт давно не использовался, чтобы не сломать тайминг в готовых сабах)

Скрипт для выравнивания длинного текста по ширине («Split and justify», файл «z_split_and_justify.lua». Для работы необходимы «z_functions.lua» и «ks_utf8.lua» (можно скачать по ссылке выше в папке «Another required scripts»))

Мощный скрипт, который очень выручает, когда нужно сделать длинный текст, выровненным по ширине. Последние версии научились работать со строчными тегами. Жаль не часто приходится его использовать. В GUI 2 настройки:
  • Величина красной строки - количество пробелов;
  • Ширина необходимого текста - в пикселях.
После этого скрипта рекомендую обязательно использовать Subs cleanup, поскольку этот скрипт генерирует массу тегов, для того, чтобы все верно отображалось. Но они, скорее всего, будут очищены за ненадобностью.

Скрипт, который делает левое выравнивание строк («Fix mass speech lines», файл «z_fix_mass_speech.lua». Для работы необходим «z_functions.lua»)

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

Скрипт делающий эффект сломанного ТВ («TV effect», файл «z_tv_effect.lua». Для работы необходим «z_functions.lua»)

Ещё один мощный скрипт, который был написан буквально для одной надписи. Позволяет сделать на текст, рисование, да что угодно эффект помех сломанного ТВ. При генерации ТВ эффекта помех с жесткими и не оптимальными настройками, субтитры могут вообще зависать на этом моменте. Но при тонкой настройке и подборе параметров, а так же немножко удачи (90% данных от скрипта генерируется случайно, даааа, немножко))), выглядит просто потрясающе)

Скрипт для правки трекинга, полученного с помощью mocha («Fix motion», файл «z_fix_motion.lua». Для работы необходим «z_functions.lua»)

Отличный скрипт, который позволяет генерировать меньше строк при применении трекинга к надписи. Не все знают, но при совпадении координат, размеров и градуса (далее буду писать просто координат) у последовательных кадров, при отсутствии изменений в строке (например, при наличии \t), Aegisubs motion схлопывает все эти кадры в одну строку, а не делает по строке на кадр. Основная проблема в том, что mocha не умеет в статичные сцены и всегда сдвигает координаты на минимальные значения. Чтобы преобразовать трекинг на выходе mocha в нормальный и появился этот скрипт. В аниме очень часто при движении статичная сцена длится 3 кадра. Скрипт проверяет, не превышает ли разница между последовательными координатами трекинга указанную погрешность (чаще всего подходит «0.2») и если она меньше, то у всех таких строк устанавливает координату, равную среднему арифметическому первоначальных. !!!Важно!!! Не используйте, когда движение идёт каждый кадр.
Наконец-то портировал его в aegisub. Хотел напрямую встроить в Aegisubs motion, чтобы не открывать лишнее окно для фикса, но не получилось. Возможно когда-нибудь к этому вернусь.

Скрипт очистки субтитров от мусора («Subs cleanup», файл «z_subs_cleanup.lua». Для работы необходимы «z_text_layer.lua», «z_functions.lua» и «ks_utf8.lua» (можно скачать по ссылке выше в папке «Another required scripts»))

Хочу вам представить мой скрипт по очистки сабов от мусора. Долгое время пользовался скриптом unanimated'a, но в конечном счёте он перестал меня удовлетворять + чаще всего приходилось использовать связку из 3 вещей (сам скрипт очистки, сортировка тегов в Hydra, округление значений в Relocator), что начало изрядно напрягать, поэтому наконец-то появился этот скрипт. Идея его написать родилась уже давно, поскольку было множество дополнительных вещей, которые бы хотел в нём видеть. Ну и основные функции также были тут реализованы.
  • Для кого он предназначен?
    В первую очередь для оформителей. Использовав его несколько дней, уже не могу без него жить, настолько все стало прекрасно и быстрее xD
    Но, тем не менее, рекомендую прогонять через него (конкретно через «Subs cleanup -> Release») абсолютно любые ass субтитры перед релизом, ибо за всё время какого только говна я в них не видел (можно начать с банального дублирования названия стилей или вот на днях видел скрипт с 250+ стилями, из которых использовались 10-15...), и вообще удивлялся, как там что-то работает и не виснет...
  • Чем он лучше?
    В первую очередь, намного более глубокой очисткой тегов от мусора. Кому интереснее узнать на этот счёт подробнее, могут прочесть массу комментариев в самом скрипте.
    Вдобавок, очистка информации скрипта (самый верхний блок), стилей, а также экстра данных (например, от mocha) от дубликатов и мусора.
    Далее, что просто очень важно для меня, можно вынести на хот кей тайп и релиз очистки (настроить, что туда входит, можно в начале скрипта), которые включают в себя определенные функции (ну и есть GUI для запуска конкретных функций по отдельности/вместе и очистка конкретных/всех тегов).
    Так же тут исправлены некоторые баги/недоработки (например, очистка работающих тегов перед \r, не очистка дубликатов тегов, если они без значения, убрана очистка двойных пробелов в тайпе, которая очень бесила и так далее)
  • Чем он хуже?
    Отсутствуют некоторые функции из того скрипта, которые я никогда не использовал
  • Какие есть известные баги?
    Никаких Smile
  • Будет ли новый функционал?
    Вряд ли. Всё, что было нужно мне, тут написано. Да и не представляю, что нового может быть, не касающееся очистки тегов. Одну вещь (очистку дублей между тег блоками) не планировал делать сейчас, но в итоге написал. Разве что кто-то подкинет идейку того, что ещё можно очищать в тегах, что генерируется массово при работе других скриптов или кривыми руками)))
GUI почти ничем не отличается (от скрипта unanimated'a), разве что он стал меньше, поскольку были убраны некоторые функции. Для некоторых строчек в GUI, у которых написано «(?)», можно прочитать комментарии при наведении. Все функции запускаются кнопкой «Clear script». По умолчанию, запуск функций из GUI применяется ко всем строкам, если не стоит галочка «Only seleted». Кнопки «Delete all tags» и «Delete inline tags» работают сами по себе и применяются только к выделенным строкам. Для удаления выбранных тегов, нужно их отметить и нажать «^^ Delete checked tags ^^» (применяется только к выделенным строкам). По умолчанию, все подобные теги удаляются везде в строке. Можно запретить удалять теги в старт теге / строчных тегах / в \t, поставив соответствующие галочки «S (?)» / «I (?)» / «T (?)».

При запуске из меню «Subs cleanup -> Type/Custom» применяется к выделенным строкам, «Subs cleanup -> Release» - ко всем строкам.

Отдельно бы хотелось рассказать о функции «Delete cliped lines». Как понятно из описания, она удаляет строки, области \clip в которых находятся полностью вне экрана. Но в 99.99% случаев у вас не получится такая строка, поскольку кто что-то клипает вне экрана?) У этой функции есть другой сокровенный смысл (и хорошие идеи всегда приходят слишком поздно): представьте, что у вас есть надпись, которая состоит из 18 отдельных элементов (то есть строк). И эта надпись движется, то есть к ней будет применен трекинг от mocha, вдобавок ещё из-за экрана. Большинство людей после применение трекинга так и оставит все эти тысячи сгенерированных строк. Малая часть почистит кадры с начала и с конца, которые не видны в экране. Я же предлагаю пойти дальше (и поберечь ПК зрителей), благодаря этой функции. В чём суть:
  • у такой надписи очень вряд ли будет \clip;
  • поэтому для каждого элемента надписи делаем грубый \clip, в котором полностью помещается текущая строка со всеми свечениями, размытиями и так далее. Если у вас среди строк есть рисование, то тут очень поможет скрипт «Clip expand» - вы просто делаете из рисования обратно \clip, копируете его и немного увеличиваете, чтобы поместился весь \blur;
  • когда применяете трекинг от mocha ставите галочки «Rectangle clip»/«Vector clip», в зависимости от того, что вы использовали;
  • применяете эту функцию;
  • удаляете \clip в этих строках.
В итоге, у вас удалятся все строчки, которые остались за экраном. То есть, например, если у вас надпись выезжает из-за экрана, то в первых кадрах будут не все строки, так как мы видим только часть надписи, а та часть, что не видна, удалится скриптом. Чистить такие строки руками просто ад, но с этим скриптом все становится предельно просто. Для справки: в фильме Hirune Hime последняя надпись (да и не только она) именно такой случай. Она появляется слева экрана и уезжает вправо. Причём двигается так, что её левая часть не видна существенную часть времени. И возвращаясь к тому, что хорошие идеи приходят слишком поздно: в релизной версии у неё всего лишь почищены кадры с начала и конца, и осталось примерно ~7000 строк, часть из которых не видно по причинам, описанным выше. А если бы она была сделана через этот приём, то количество строк бы было ~5650, что почти на 1/5 облегчило бы её рендеринг.

Кто будет пользоваться, рекомендую на первых порах делать резервные копии и проверять всё на предмет поломки)

Скрипт преобразования \clip в рисование и обратно («Clip <-> Draw», файл «z_clip_draw.lua». Для работы необходим «z_functions.lua»)

Ещё одна вещь, без которой невозможно жить. Чтобы что-то нарисовать, не нужно лезть а убогий ASS Draw или чтобы поправить рисование достаточно преобразовать её в \clip, изменить нужную координату и вернуть обратно. У unanimated'a есть подобная вещь в Hydra, но она:
  • Не работает с прямоугольным \clip
  • Не учитывает \fscx \fscy при преобразовании Draw <-> Clip
  • Не сохраняет \clip при преобразовании Draw <-> Clip, если у вас рисование + \clip
  • Не сохраняет текст при преобразовании Clip <-> Draw
  • Нельзя повесить на хот кей (Хотя в последней версии unanimated это исправил)))
Тут нет этих недостатков) Причём, если можно сократить рисование в прямоугольный \clip, то при преобразовании Draw <-> Clip скрипт это сделает) Эх, ещё бы в Aegisubs можно было перемещать видео, когда оно в экран не помещается, сказка бы была... (и не нужно мне писать, про отсоединение видео - это не фига не помогает, оно липнет к концам экрана и в итоге нельзя замасштабировать правый нижний угол...)

Скрипт перемещения по строкам субтитров («Jump», файл «z_jump.lua». Для работы необходимы «z_functions.lua» и «ks_utf8.lua» (можно скачать по ссылке выше в папке «Another required scripts»))

Ещё один скрипт, который пришлось переписывать и дописывать. Сохранён весь функционал (50% которого не нужно, имхо, но он добавлялся двумя строчками...), который был у unanimated'a, кроме GUI, оно тут не нужно.
Ну и добавлена новая возможность «Jump to next/prev sign». Собственно название говорит само за себя: от первой выделенной строки анализируются все соседние на предмет того, что принадлежит этому кадру и на основе этого перемещает к предыдущей или следующей надписи. У unanimated'a это реализовано в «Jump to next/prev text», если выделить все строки одного кадра, что принадлежат к этой надписи, но мне это дико не удобно, поэтому и появился этот скрипт)

Скрипт для изменения значений тегов \pos \move \org \clip \iclip и draw («Position shifter», файл «z_position_shifter.lua». Для работы необходим «z_functions.lua»)

Очередной переработанный скрипт. Оригинал был изящно написан, но умел лишь изменять значение в уже имеющихся тегах (то есть, если вам нужно сдвинуть надпись на 10 вправо, но она без тега \pos или \move, то ничего бы не вышло).
Этот же скрипт может двигать что угодно при наличие любого набора тегов в строке: например, если у вас есть \pos, а вам нужно из него сделать \move на 100 вправо, просто напишите 100 в соответствующую ячейку, скрипт сам преобразует теги в нужные. Для \pos и \move ячейки объединены: скрипт сам поймет на основе имеющихся тегов и введенных значений, что нужно двигать. Приятный бонус: если у вас \move не двигается (\move(x, y, x, y,...)), то скрипт преобразует его в \pos. Подытожив, если у вас отсутствует любой из тегов \pos \move \org, но вы хотите сдвинуть любую из их координат, скрипт сделает эти теги на основе свойств скрипта, стиля и стартовых тегов.
\clip и draw, естественно, сами по себе генерироваться не из чего не будут, но для них, а также для \pos \move есть приятные опции:
  • для \clip можно поставить галочку, чтобы сдвигать его вместе с \pos;
  • для рисования можно фиксить первую координату, чтобы она была 0 0;
  • можно в 1 клик преобразовать начальный или конечный \move выделенных строк в \pos;
  • можно в 1 клик установить значение \pos(0,0) при этом если в строке draw, оно останется на месте (пере рассчитаются координаты). Этот пункт немного обратен пункту 2.
Скрипт для генерации сбутитров по youtube json («Youtube Subs», файл «z_youtube_subs.lua». Для работы необходимы «z_functions.lua» и «json.lua» с папкой «json» (можно скачать по ссылке выше в папке «Another required scripts»)))

Скрипт для генерации стилей и нужных строк по исходному JSON, который приходит к видео на youtube при включении субтитров.
Поддерживается всё, что показано в этом видео https://www.youtube.com/watch?v=r77cas76FUQ, кроме 1 строки с экспериментальными функциями (поворот текста на 90 градусов и вывод строк в обратном порядке).
После этого скрипта рекомендую обязательно использовать Subs cleanup, поскольку этот скрипт генерирует массу тегов, для того, чтобы все отображалось, как и было. Но они, скорее всего, будут очищены за ненадобностью.

Возможно, будет дорабатываться, если потребуется, тк реализован далеко не весь функционал (например, не было примеров использования etEdgeType 1 и 2, поэтому сейчас они в принципе не обрабатываются).

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

Скрипт для исправления частых ошибок OCR («OCR helper», файл «z_ocr.lua». Для работы необходим «z_functions.lua»)

Исправляет самые частые ошибки OCR: удаляет невидимый символ, меняет «..» на «...», «1» на «!» и «7» на «?» там где нужно.

Скрипт для разных проверок («Checks», файл «z_check.lua». Для работы необходим «z_functions.lua»)

Скрипт, в котором будут собраны необходимые проверки для корректности тайпа. На данный момент реализованы следующие проверки:
  • Colors - собирает все цвета с выделенных строк и указывает в какие актёрах они используются (все строки одного актёра должны иметь один цвет).
Скрипт для работы со слоями («Text layer», файл «z_text_layer.lua». Для работы необходимы «z_functions.lua» и «ks_utf8.lua» (можно скачать по ссылке выше в папке «Another required scripts»))

В принципе в названии уже все сказано - скрипт для работы со слоями строк. Это или одно кнопочное решение для установки 9 слоя тексту (и песням), которое обрабатывает все популярные названия стилей, или одно кнопочное решение чтобы крутить слои вверх или вниз, или увеличивать их по одному. Чаще всего, 9 слоя для текста хватает выше головы.

Скрипт работы с комментариями («Comments», файл «z_comments.lua»)

Опять же все ясно из названия: скрипт переключает состояние комментария у строки или выключает его.

Скрипт для изменения FPS субтитров («Change FPS», файл «z_fps.lua»)

И ещё раз всё ясно из названия: перерасчёт тайминга строк с одного из предложенных FPS на другой с высокой точностью) Миниатюрный, интуитивно понятный, удобный GUI в комплекте)

Скрипт для добавления символов (кавычек ёлочками, тире, многоточия) в конец строки («Special chars», файл «z_special.lua»)

И напоследок, маленький скрипт, который добавляет конкретный спец символ в конец строки. Чтобы всегда было под рукой ©


Последний раз редактировалось: Вс Янв 21, 2024 20:07 pm
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Вт Июл 17, 2018 19:14 pm   Ответить с цитатой

v1.1 z_subs_cleanup
Добавлена сортировка нескольких \t внутри блока тегов по времени
Изменена величина округления для рисования до 1 знака после точки
Поправлены маски с кириллицей
Поправлена работа с \t при удалении тегов между между блоками
Поправлено схлопывание \bord \shad \alpha


Последний раз редактировалось: Пн Окт 01, 2018 3:34 am
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Вт Июл 17, 2018 19:56 pm   Ответить с цитатой

v1.2 z_subs_cleanup
Поправлена сортировка нескольких \t внутри блока тегов по времени


Последний раз редактировалось: Пн Окт 01, 2018 3:39 am
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Пн Июл 30, 2018 14:00 pm   Ответить с цитатой

v1.4 z_subs_cleanup
Добавлены другие популярные названия стилей в условия
Добавлен ещё один настраиваемый набор очисток
Добавлено сохранение работающих стартовых тегов в \t, которые туда попали
Поправлены очистка тегов связанная с \bord и \shad


Последний раз редактировалось: Пн Окт 01, 2018 3:40 am
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Вс Авг 12, 2018 13:45 pm   Ответить с цитатой

v1.5 z_subs_cleanup
Добавлена проверка шрифтов на @ (в Print checks)
Изменён порядок сортировка шапки скрипта
Поправлена очистка лишних букв в тегах
v1.1 z_clip_draw
Поправлена обработка сохранённого текста
v2.1 z_clip
Поправлено добавление \clip в каждый блок тегов


Последний раз редактировалось: Вс Окт 28, 2018 21:35 pm
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Вс Авг 26, 2018 20:52 pm   Ответить с цитатой

v1.6 z_subs_cleanup
Снова поправлена очистка лишних букв в тегах


Последний раз редактировалось: Пн Окт 01, 2018 3:35 am
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Сб Сен 15, 2018 17:02 pm   Ответить с цитатой

v1.7 z_subs_cleanup
поправлено удаление \t при удалении выбранных тегов


Последний раз редактировалось: Пн Окт 01, 2018 3:35 am
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Пн Окт 01, 2018 3:30 am   Ответить с цитатой

v1.2 z_jump
новый скрипт для перемещения по строкам сабов
v1.2 z_functions
новый скрипт, содержащий все типовые функции для других скриптов
v1.2 z_clip_draw
v1.2 z_text_layer
v2.2 z_split_and_justify
v2.2 z_fix_mass_speech

вынес скрипты в отдельные файлы (из z_subs_cleanup и z_lines), поскольку сделал файл с функциями
v1.2 z_comments
v1.2 z_fps
v2.2 z_clip
v2.2 z_timing_helper
v2.2 z_tv_effect

небольшие изменения связанные с вынесением общих функций в отдельные файлы
v1.8 z_subs_cleanup
Изменена величина округления для значений в скобках до 1 знака после точки

также во всех скриптах поправил форматирование кода
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Sa4ko aka Kiyoso

Переводы



Зарегистрирован: 16.12.2012
Сообщения: 6973
Откуда: Минск
СообщениеДобавлено: Пн Окт 01, 2018 3:57 am   Ответить с цитатой

Zabr
А tv_effect что даёт? А то у меня в К0литке ЭЛТ-монитор с полосами по всему экрану, и там нужно делать маски... со всеми вытекающими.
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Пн Окт 01, 2018 4:00 am   Ответить с цитатой

Sa4ko aka Kiyoso, он помехи пилит с нужной частотой, заполненостью, размером и тд

Можешь просто скачать, сгенерить пример и посмотреть)
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Sa4ko aka Kiyoso

Переводы



Зарегистрирован: 16.12.2012
Сообщения: 6973
Откуда: Минск
СообщениеДобавлено: Пн Окт 01, 2018 4:02 am   Ответить с цитатой

А скрипта для вышеописанной фигни у тебя нет? Или мне опять палочки ресайзить в полэкрана?
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Пн Окт 01, 2018 4:04 am   Ответить с цитатой

Sa4ko aka Kiyoso, не особо представляю, что ты хочешь, но всё что кодил, есть тут)
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Ср Окт 03, 2018 22:32 pm   Ответить с цитатой

v1.0 z_position_shifter
новый скрипт для изменения значений тегов \pos \move \org \clip \iclip и рисования
v1.3 z_functions
v2.3 z_split_and_justify

забыл перенести одну функцию из z_split_and_justify в z_functions
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Sa4ko aka Kiyoso

Переводы



Зарегистрирован: 16.12.2012
Сообщения: 6973
Откуда: Минск
СообщениеДобавлено: Ср Окт 03, 2018 22:51 pm   Ответить с цитатой

Zabr
Так проще будет понять, о чём я.
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Zabr

Переводы



Зарегистрирован: 18.08.2015
Сообщения: 1738

СообщениеДобавлено: Ср Окт 03, 2018 23:10 pm   Ответить с цитатой

После всех релизов случаются хотфиксы xD
v1.4 z_functions
поправил маски в функции изменения стиля (и как я наткнулся на это только щас?)
v1.1 z_position_shifter
добавил дефолтный стиль, который необходим для функции изменения стиля
К началу
Посмотреть профиль Отправить личное сообщение Добавить в игнор-лист Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Kage Project -> Техническая поддержка Часовой пояс: GMT + 3
На страницу 1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След. ‹xЪ­UЛnЫF]K_q3@уj‘ґќшEІ@ РE /ѓ ’C‰-_ GVЬ6яV]Z {JFGнД(ФВ’’m’Ъ"СBуа№ЏsfоќЂ,PC­—cPЋЕP“©Ш¶љ®‚lbRєg‡>жЛ-¤КЕ t‡Ў‚\|„ФЯт,J“Иљ*Й‚¦Bт¶њ‹ЕB u1яЗљMш¤ЎcґҐ I?гС€]„У-·© Mљ$Pђ€жYйДҐ$@‹П|l.Ћf@кщ\Ї`џ'[ЋhЃ·ёпjЎ kеєКх¶ ЃХlСхn9У pmy†‚љ„ёШ! ъ®ншљчЉGЦ©еqы#‹t8ён4ь–яEhЉaв=sG7ҐЭ],н€dSД»в“=ј­Kдс¦ё‹АsЫљcQYжCГУЫЎ1sЭ0<·6EЃ йСЏЎнАЫ!9xН­’yAY±RЪЗ†1_Я(]Т/”-UёKuб4‰:Ш¶‘ъ&ОвwyІ?У3$6СйLі` ·°Ы$%ЪІВ†зz„/КE'ЖsЧ Ї^ОшЬ«ш@!mшвБЊоѓ—Ќ°гб#(ШU~ 4QР†„Ф“i7О’<† –ќЏdЎB,CО’]ѓx“±xђOaМ`МцXя||гОoц1Їv‘Oўо*„ґЌФ?ў¬їВЅьҐ§$А«ђuяю8®ї°nЖiІіhИzQюЧЅOБt“kИNYЏeЙКЈШBууW®gHэ=~џ&—сd]с¤ъэ8;DЗрѕ‡CЛ џ‚ЩRuЈlХч=юЅ?JТdВ{д‡дк'T$UЩrэ6zмsxЛ2 вОЫп hоиЯыѓ0з~ЫaU%Ч^fЉжҐk[”T ц ќє¶ШЁeЎЁ@µ^_Qъ'Уўг§1ЊШYњЗе+ђF—IКпдсhZuЧe0–чвЛ–F0a¬ыgњrЎVВіё т$+Ї'Lz,щ/Vзэhxх?р§lИ&U€°qЖ&СыХиq– Іx\Fё€Ю §0ё 2єmwЛ€_кЛ¤ЊPљ|~н%NУiјДГъ—ґ.ЦСЭrбґtП?®2хЋCn©.і_bYяЪлђЂ Г>ИZ1щНҐФЯ„N§S