View Single Post
Old 2006-11-09, 11:27   Link #301
Sylf
翻訳家わなびぃ
*Fansubber
 
 
Join Date: Nov 2003
Age: 50
Send a message via MSN to Sylf Send a message via Yahoo to Sylf
You can start with a karaoke looking like
Code:
{\k40}wa{\k20}ta{\k20}shi {\k40}wa
Which you might transform to
Code:
{\t(0,100,\fscx130\fscy130)\t(100,400,\fscx100\fscy100)}wa
{\t(400,450,\fscx130\fscy130)\t(450,600,\fscx100\fscy100)}ta
{\t(600,650,\fscx130\fscy130)\t(650,800,\fscx100\fscy100)}shi
{\t(800,900,\fscx130\fscy130)\t(900,1200,\fscx100\fscy100)}wa
The problem with that code is that as one syllable grow in size, it pushes the rest of the line the the side to make room for it to grow, making the whole line dance around. If that's the effect you want, that's fine (AnimeONE once did this with one of Ah My Goddess karaoke). But if not, we need some remedy for it.

The way it once was done was to duplicate the line as many times as the syllables in the line - 4 times in this example.
watashi wa
watashi wa
watashi wa
watashi wa
The red letters would be the syllables that are shown on the screen. The rest of the line on each lines will be hidden using \alpha&Hff&.
Code:
{\t(0,100,\fscx130\fscy130)\t(100,400,\fscx100\fscy100)}wa{\r\alpha&Hff&}tashi wa
{\alpha&Hff&}wa{\alpha&H00&\t(400,450,\fscx130\fscy130)\t(450,600,\fscx100\fscy100)}ta{\r\alpha&Hff&}shi wa
{\alpha&Hff&}wata{\alpha&H00&\t(600,650,\fscx130\fscy130)\t(650,800,\fscx100\fscy100)}shi{\r\alpha&Hff&} wa
{\alpha&Hff&}watashi{\alpha&H00&\t(800,900,\fscx130\fscy130)\t(900,1200,\fscx100\fscy100)} wa
There's an alternative way of accomplishing the same thing, but only using 2 lines for any number of syllables. One line shows the syllables that's not going through the transition. The syllables in question will be made invisible dynamically. The second line does the exact opposite - it'll only be showing while the syllable in question is going through the transition.
Code:
{\t(0,100,\fscx130\fscy130)\t(100,400,\fscx100\fscy100)\t(400,400,\alpha&Hff&)}wa{\r\alpha&Hff&\t(400,400,\alpha&H00&)\t(400,450,\fscx130\fscy130)\t(450,600,\fscx100\fscy100)\t(600,600,\alpha&Hff&)}ta{\r\alpha&Hff&\t(600,600,\alpha&H00&)\t(600,650,\fscx130\fscy130)\t(650,800,\fscx100\fscy100)\t(800,800,\alpha&Hff&)}shi {\r\alpha&Hff&)\t(800,800,\alpha&H00&)\t(800,900,\fscx130\fscy130)\t(900,1200,\fscx100\fscy100)}wa
{\alpha&Hff&\t(400,400,\alpha&H00&)}wa{\r\alpha&H00&\t(400,400,\alpha&Hff&)\t(600,600,\alpha&H00&)}ta{\r\alpha&H\t(600,600,\alpha&Hff&)\t(800,800,\alpha&H00&)}shi {\r\alpha&H00&\t(800,800,\alpha&Hff&)}wa
Since the public release of Aegisub and introduction of its automation system with the included line-per-syllable.lua script that Uchikatsu mentioned, more people have started using this instead of those mentioned methodes. What this script does is that it figures out the exact (x,y) coordinate of each syllable, and \pos(x,y) each of them for you. Because each syllables are positioned statically, growth of each syllable won't shove other syllables out of its way.

Just a small side note: while the first and third method will produce pretty much exact same result, the second method doesn't. How?

The top example was made with the first method. "ta" is placed in front of "wa" but behind "shi". The next two example was made with the second method, just different layer orders. You can make the syllables grow behind or in front of the rest of the line - you have the control.
Sylf is offline   Reply With Quote