K-FX: Exemplo

KFX – EXEMPLO: Saenai Heroine no Sodatekata / Abertura

Escolhi a abertura de Saenai Heroine no Sodatekata. Aqui está um link para o episódio 00, que será o que vou usar, e um link para o arquivo de vídeo. Só é necessário usar o arquivo timeado, pois você pode usar o dummy para gerar um vídeo fictíceo, mas sempre é bom ver o resultado final. Agradeço a altazure e xMythcycle pela tradução/k-timing. Vale lembrar que como esse tutorial foi feito pelo Jocko ele não será traduzido para o PT-BR ao menos até eu arrumar coragem e traduzir. Video e Arquivo Timeado.

Para este efeito, tentei algo que eu normalmente não o faria, usei uma sombra, e tirei a borda. A ideia básica vai ser uma transição simples, e em seguida, fazer a syl saltar ligeiramente e então mudar de cor. Eu tenho a cor laranja e a cor-de-rosa; o romaji será laranja e mudará para rosa, enquanto o kanji será o oposto. Para o tradução, eu vou colocar uma transição rotativa, e vou deixar o texto rosa com alguns tons em laranja.

Vamos começar com a primeira linha:

lin,lout,soff,enoff = 150,150,25,10

Você notará o “code once” no campo ‘ator’. Code é um template modifier, que executará o código, tendo três diferentes modos disponíveis: once, line e syl.

Usamos ‘code once‘ para colocar algumas variáveis em uso futuro. Estas são algumas variáveis que eu uso em quase todos os meus templates. ‘lin‘ e ‘lout‘ serve para lead-in e lead-out, respectivamente, e eles tem duração em ms. ‘soff‘ e ‘enoff‘ é usado para o syl offset e english offset. Eu uso essas variáveis para as minhas transições iniciarem a partir da primeira syl e terminarem na última, gerando um efeito suave. Por padrão, eu vou começar com 150,150,15,10, ; mas vc deve tentar outros valores para poder achar aquele que você quer.

Na segunda linha, no outro code once do template, ele vai armazena as cores. Sempre esqueço sobre como configurar as cores em variáveis, mas isso ajuda a manter as coisas mais organizadas, o que deixa mais fácil ir lá e arrumar a cor. Não há muito para explicar, ‘c1’ é a cor principal, ‘c2’ é a cor secundária.

Primeiro, nós vamos ter o template OP-Romaji. Já vi várias pessoas dividindo os templates em três linhas: entrada – highlightsaída, mas sou acostumado a fazer tudo de uma vez.

!retime(“preline”,-lin,$ldur+lout)!

Primeiro vamos falar do ! ! , ele faz com que o Karaoke Templater interprete-o como um código Lua de agrupamento. (saiba mais em code blocks  e retime). Neste caso estamos usando a função retime, que vem com o Karaoke Templater, e é provavelmente o núcleo de qualquer tipo de Kfx. Neste caso, eu usei o modo “preline“, que define o início e o fim, no começo da linha. Em seguida, adicionamos o tempo de início ‘ –lin‘ e o fim, é adicionado ‘$ldur+lout‘, fazendo a linha ir de -150ms do início original, à +150ms do final original.

\an5\pos($center,$middle)\1c!c1!\blur0.4

Posicionamento básico. Se o estilo for \an8, mude-o para \an5 , assim o anchor point será centralizado, é importante para as tags de rotação e o \fscx \fscy. Por essa razão, eu tenho que usar $center e $middle ao invés de $x e $y, fazendo o texto aparecer na mesma posição do estilo original. O \1c tem outro !! code block, desta vez é apenas para recuperar o valor da variável \c1 e colocar um leve desfoque.

\fry270\t(!($si-1)*soff!,!($si-1)*soff+350!,\fry0)

O primeiro fry praticamente deixará a linha invisível, já que é perpendicular ao plano da tela, e que vai começar a fazer as suas transições. Depois disso, temos o \t , para deixar de volta em \fry0. Ambos os argumentos do \t são code block: $si é o índice de syl. Já que o Aegisub inicia a contagem a partir do 1, eu estou subtraindo 1, então o primeiro syl vai começará junto a linha. ‘soff‘ é o deslocamento da syl, e isso fará com que cada syl comece a transição um pouco mais tarde do que as anteriores. O segundo argumento é o mesmo deslocamento +350, que é a duração que decidi colocar.

\t(!$sstart+lin-100!,!$sstart+lin!,\fscx110\fscy110)

Aqui começamos o efeito da highlight. $sstart porque é o começo da syl. Nós temos que adicionar +lin porque fizemos a linha começar mais cedo, então não vamos compensar \k. Neste caso, estou fazendo o efeito iniciar 100ms antes da syl, para compensar um pouco a ‘charge up‘ antes do salto.

\t(!$sstart+lin!,!$sstart+lin!,\fscx125\fscy125\frz!(math.fmod($si,2)==1) and 3 or -3!\1c!c2!)

$sstart +lin  significa que isso irá acontecer instantaneamente quando a syl começar. \fscx125\fscy125 , você já deve saber o que é;  e então temos um code block perto do frz. Não é possível usar statements dentro deles (Leia mais sobre isso, no artigo dos code block). Esta é uma solução que funciona assim: !(condition) and true_value or false_value!. Neste caso, a condition é o math.fmod($si,2)==1, ou seja, se o índice da syl é par, ele retorna ao false, então uma syl terá \frz para 3, e o próximo terá -3 e assim por diante. E então temos \1c!c2!, apenas uma mudança para a cor secundária.

\t(!$sstart+lin!,!$sstart+$sdur+lin!,\fscx100\fscy100\frz0)

Tudo vai voltar ao normal durante a duração da syl, ao usar o $sdur no segundo argumento.

\t(!$sstart+$sdur+lin!,!$sstart+$sdur+lin+400!,\1c!c1!)

Isso é tipo um efeito de ‘cooldown’ sobre a cor, o faz voltar à cor primária, 400ms após o término da syl.

\t(!$ldur+lin+lout-$syln*soff+($si-1)*soff-350!,!$ldur+lin+lout-$syln*soff+($si-1)*soff!,\fry270)

Efeito de saída, gira o texto à \fry270. A ideia por trás disso é o mesmo que a entrada, ou seja, a entrada começa pela esquerda e a saída começa pela direita, mas temos que subtrair valores para isto funcionar. Primeiro, $ldur+lin+lout nos coloca no final da linha. –$syln*soff é a quantidade máxima de tempo que a syl vai demorar para começar, se a $syln é igual a quantidade de syls que estão em uma linha, já o ($si-1)*soff o move no final. O primeiro argumento tem -350, porque eu achei que isso ficaria bom.

O Template do kanji é igual, mas vai do !c2! a !c1! antes de voltarmos ao !c2!.

A tradução sempre terá de ser diferente, já que não temos sílabas ou duração nelas. Ainda assim, eu estou usando um template de syl. A maioria das pessoas que vi só aplica um \fad ou algo simples para a tradução, mas eu gosto de deixar as transições da mesma maneira que o romaji/kanji , e por esse motivo eu adicionei uma tag {\k1} em cada letra. Existem outras maneiras de se fazer isso, mas está é a mais fácil. Se quiser aplicar os \k1 mas rapidamente basta utilizar esse script.

Nos templates da tradução estaremos usando ‘enoff‘ em vez de ‘soff‘, já que existem mais caracteres do que syls na linha, se usar um valor muito alto, é capaz das transições demorarem demais. As transições são as mesmos, e os caracteres não terão umhighlight. A única diferença está aqui:

\1c!(syl.inline_fx==”d”) and c1 or c2!

Isso é o mesma coisa que usamos antes, mas neste caso basta comparar o inline-fx com o ‘d‘. Eu usei isso para me certificar  de que as letras na frase terão uma cor diferente. A tag  ‘\-d’ deixa a cor diferente, e depois muda-a para ‘\-n’ a cor normal.

Anúncios