Register Forum Rules FAQ Members List Social Groups Search Today's Posts Mark Forums Read

 2005-12-19, 15:29 Link #81 ThunderEmperor Junior Member   Join Date: Dec 2005 thx for ur help i knew that it would be easy but i didn't know how to do it next Q Dialogue: Marked=0,0:00:00.00,0:03:00.00,*Default,,0000,0000 ,0000,,{\alpha&HC0&\t(0,240,1,\alpha&H00&)\t(240,4 80,1,\alpha&HC0&)}Ko {\alpha&HC0&\t(480,720,1,\alpha&H00&)\t(720,960,1, \alpha&HC0&)}ko what does dialouge means and when do i have to put it in why don't i just do it like this {\alpha&HC0&\t(0,240,1,\alpha&H00&)\t(240,480,1,\a lpha&HC0&)}{\k480}Ko Itachikun i didn't understand u very well but i think u mean like bleachs DB opening u can use a trick like putting \1a&HFF&\3a&HFF& it'll look just like it's fading and the \fscy just do it normally
 2005-12-19, 15:44 Link #82 Sylf 翻訳家わなびぃ Fansubber     Join Date: Nov 2003 Age: 42 ThunderEmperor : I don't quite understand your question. What are you trying to do, or what are you trying to clrify? Exactly which tag do you have question on? One thing for sure - I don't think you want \k480. \t's time codes are in miliseconds, while \k's time code is in centiseconds. So, at the beginning of the line, \k48 translates to \t(0,480,).
 2005-12-20, 08:42 Link #83 ThunderEmperor Junior Member   Join Date: Dec 2005 sry i didn't make it clear but i get it now "Sylf" what u said is nowhere near what i meant >>> my bad thx anyway
 2005-12-20, 20:17 Link #84 shinjipierre Computer graphist     Join Date: Dec 2005 Location: Paris, France Age: 33 Well, I've released my ssa to after effects script. I still haven't created a tutorial for that but *real* after effects users might find a real use of it. I'll create one later and, maybe, hand projects exemples. It's not complete either since there are missing functions in the after effects scripting. It's on my website, www.shinjipierre.be Just keep in mind that it's just a tool, you need to know how to use after effects in order to do something and that's it's not just "adding a filter". There's also the paul tursley's script if you want to try it (I never tried it, it might be better, i don't know) : http://aenhancers.com/viewtopic.php?t=247 __________________ http://www.remipierre.fr - Some of my computer graphics work
 2005-12-20, 21:33 Link #85 Itachikun Animesuki's Janitor     Join Date: Dec 2005 Location: Somewhere in Shigeru Miyamoto's head Age: 30 SP: Thats some really nice stuff you did on that site. Specially the Beck Nice work Im sure I saw you on a staff list for a certain group, but cant remember. ________ Marijuana Seed Last edited by Itachikun; 2011-02-15 at 07:39.
phib
Junior Member

Join Date: Oct 2004
Quote:
 Originally Posted by shinjipierre Well, I've released my ssa to after effects script.
I'm still looking at the source, but there are things that can be done more elegant using regexps.

For example:

Code:
	//Function which transforms the line into an after effects text by removing the { } things
function transLigne (ligne) {
var new_ligne = "";

for($i=0;$i < (ligne.length);$i++) { if(ligne[$i] != '{') {															//if it's not a {, I copy it.
new_ligne += ligne[$i]; } else { if($i != 0 && new_ligne[$i-1] != ' ') { //if it's a {, I add a space new_ligne += ' '; }//if while(ligne[$i] != '}') {													//I remove the things in {...}
\$i++;
}//while
}//else
}//for

return(new_ligne);																		// I return the result
}//function
Using regexp's (just pay attention to the 2 lines in the function, ignore the rest ):

Code:
CAssEvent.prototype.getPlainText = function getPlainText()
{
var sTmp = new String(this.Text);
return sTmp.replace(/\{[^\{]*\}/g, ""); //looking at your source here should be " " instead of ""
}

Code:
options_ligne[9] = ligne.substring(num_option,100000000);
Instead of putting a large number as end, u can just put the start, because if the end is undefined, it will take the text till the end (as specified in the ecma-262).

 2005-12-21, 05:34 Link #87 shinjipierre Computer graphist     Join Date: Dec 2005 Location: Paris, France Age: 33 Well, I'm not a coder, I'm a computer graphist... As long as it works, I don't really care. If you want to change the code, go on. __________________ http://www.remipierre.fr - Some of my computer graphics work
 2005-12-21, 14:46 Link #88 phib Junior Member   Join Date: Oct 2004 It was just a suggestion, but well, the important thing is that the code works But regexps help a lot with text parsing, you should give them a try next time. I also have my own ass->ae script, it's even object oriented, but the gui is a bit ugly
 2005-12-21, 18:17 Link #89 SCR512 Ayu/Eclipse Semi-Slave   Join Date: Nov 2003 Age: 34 Thanks for the contribution SP, I have used Paul’s script for a couple of unreleased karaokes with pretty good success. I'll give yours a whirl tonight. It's nice to have other subbers share their knowledge of scripting/graphics design with the rest of the community.
 2005-12-22, 11:38 Link #90 Itachikun Animesuki's Janitor     Join Date: Dec 2005 Location: Somewhere in Shigeru Miyamoto's head Age: 30 Shinjipierre, Im curious. How did you do the logo?. You know removing it and changing it to english without changing the surroundings.. ________ Volcano vaporizer review Last edited by Itachikun; 2011-02-15 at 07:44.
 2005-12-23, 08:17 Link #91 shinjipierre Computer graphist     Join Date: Dec 2005 Location: Paris, France Age: 33 If you're willing to pay... I can teach you... ^^. It involves restoration's skills (something used on old movies, for exemple). __________________ http://www.remipierre.fr - Some of my computer graphics work
 2005-12-23, 10:05 Link #92 Sylf 翻訳家わなびぃ Fansubber     Join Date: Nov 2003 Age: 42 Basically, you're deleting the part of image, and replace that part with new text. And if that doesn't fell the entirety of the deleted section, you have to make that portion up using the information surrounding it, and make the best effort on doing that. All that is mostly a manual process, frame by frame, with some help from custom scripts and filters. Is that what I just heard?
 2005-12-23, 10:56 Link #93 kooc Junior Member   Join Date: Dec 2005 hi, how to do this? http://img439.imageshack.us/img439/4153/gsdkar0dw.jpg in motion, syllables move along path; blur is probably just multiple layers w/ different alpha-- problem is path motion, so smooth
jfs
Aegisub dev

Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 32
Quote:
 Originally Posted by kooc hi, how to do this? http://img439.imageshack.us/img439/4153/gsdkar0dw.jpg in motion, syllables move along path; blur is probably just multiple layers w/ different alpha-- problem is path motion, so smooth
Here's a snippet of Lua code for Aegisub Automation, that moves something along a path, drawing a trail after it.
I wrote it for a remake of the KAA Full Moon o Sagashite OP effect. (Which will be used fom ep 8 on.)
It's basically about first defining the path, then simulating movement along it.

Code:
stars = {
-- most of the "stars" have been left out here
["circle-y"] = {
shape = "m 0 0 s 100 0 100 100 0 100 c",
starstyle = "\\1c&HC0FFFF&\\3c&H449337&",
textstyle = "\\bord1\\1c&HEDE6D1&\\3c&H996600&",
hlstyle = "\\1c&HEDE6D1&"
}
}

function do_star(meta, styles, config, line)
if line.karaoke.n < 3 then
return {n=0}
end
-- prepare the syllable data
local syls = {n=0}
for i = 1, line.karaoke.n-1 do
local syl = line.karaoke[i]
if syl.duration > 0 and del_spaces(syl.text_stripped) ~= "" then
table.insert(syls, syl)
end
end

local style = stars[(string.gsub(line.karaoke[0].text, "{\\%-(.-)}", "%1"))]

-- calculate the path to take
local movement = {n=2, [1]={x=0, y=0, t=0, r=0, s=0}, [2]={x=0, y=0, t=0, r=120, s=75}}
local dir, rot = 1, 120
for i = 1, syls.n do
local syl = syls[i]
if del_spaces(syl.text_stripped) ~= "" and syl.duration > 0 then
local timing = {}
timing.x = line.centerleft + syl.center
timing.y = line.styleref.margin_v+line.height
local dist = math.sqrt((timing.x-movement[movement.n].x)^2 + (timing.y-movement[movement.n].y)^2)
timing.r = rot + math.floor(dist/3)
rot = timing.r
timing.t = line.start_time*10 + syl.start_time - 10
timing.s = utf_len(syl.text_stripped)*300 - math.log(utf_len(syl.text_stripped))*200 + math.log(syl.duration)*15
table.insert(movement, timing)

timing = {x=timing.x, y=timing.y, s=timing.s, r=timing.r}
if (i < syls.n and syl.end_time ~= syls[i+1].start_time) or i == syls.n then
timing.t = line.start_time*10 + syl.end_time
else
timing.t = line.start_time*10 + syl.start_time + syl.duration*5
end
table.insert(movement, timing)

if i < syls.n and (syl.duration > 5 or syl.end_time ~= syls[i+1].start_time) then
timing = {}
timing.x = line.centerleft + syls[i+1].center/2 + syl.center/2
timing.y = line.styleref.margin_v + line.height + line.height*dir/3
dist = math.sqrt((timing.x-movement[movement.n].x)^2 + (timing.y-movement[movement.n].y)^2)
timing.r = rot + math.floor(dist/3)
timing.s = movement[movement.n].s
rot = timing.r
if syl.end_time ~= syls[i+1].start_time then
timing.t = line.start_time*10 + syl.end_time/2 + syls[i+1].start_time/2
else
timing.t = line.start_time*10 + syl.end_time - 25
end
table.insert(movement, timing)
end
dir = dir * -1
end
end
table.insert(movement, {
x=movement[movement.n].x+syls[syls.n].width*2,
y=movement[movement.n].y,
r=rot+360,
s=125,
t=movement[movement.n].t + config.starleavetime*5
})
table.insert(movement, {
x=meta.res_x,
y=0,
r=rot+720,
s=0,
t=movement[movement.n].t + config.starleavetime*5
})

-- fix entry stuff
movement[2].x = movement[3].x/2
movement[2].y = movement[3].y - line.height/3
movement[2].t = movement[3].t - config.starentrytime*5
movement[1].t = movement[2].t - config.starentrytime*5

-- generate star
local result, last = {n=0}, movement[1]
for i = 2, movement.n do
-- make a moving star between the points
local star, move = copy_line(line), movement[i]
star.layer = 50
star.start_time = last.t/10
star.end_time = move.t/10
star.text = string.format("{\\an5\\be1\\move(%d,%d,%d,%d)\\frz%.1f\\fscx%d\\fscy%d\\t(\\frz%.1f\\fscx%d\\fscy%d)}{%s}{\\p3}%s", last.x, last.y, move.x, move.y, last.r, last.s, last.s, move.r, move.s, move.s, style.starstyle, style.shape)
table.insert(result, star)

-- make some static fading out ghosts between points
local dist, dur = math.sqrt((move.x-last.x)^2 + (move.y-last.y)^2), (move.t-last.t)/10
local vel = dist / dur -- pixels per centisecond
local numghosts = math.ceil(dist / config.ghostdist)
local vect = {x=(move.x-last.x)/dur, y=(move.y-last.y)/dur} -- direction vector for the movement
for j = 1, numghosts do
local totaldist = j * config.ghostdist
local ctime = totaldist / vel
local x, y = vect.x*ctime+last.x, vect.y*ctime+last.y
local ghost = copy_line(star)
local rot = (move.r - last.r) * j / numghosts + last.r
local size = (move.s - last.s) * j / numghosts + last.s
ghost.text = string.format("{\\an5\\be1\\bord0\\pos(%d,%d)\\1a&HE0&\\3a&HE0&\\t(\\1a&HFF&\\3a&HFF&)\\frz%.2f\\fscx%d\\fscy%d}{%s}{\\p3}%s", x, y, rot, size, size, style.starstyle, style.shape)
ghost.start_time = last.t/10 + ctime
ghost.end_time = ghost.start_time + config.ghosttime
ghost.layer = 25
table.insert(result, ghost)
end

last = move

star.text = "{\\bord1}" .. star.text
end

return result
end
(Note that the code IIRC depends on changes in the yet-unreleased 1.07 of Aegisub.)
__________________

Aegisub developer [ Forum | Manual | Feature requests | Bug reports | IRC ]
Don't ask for: More VSFilter changes (I won't), karaoke effects, help in PM's

Last edited by jfs; 2005-12-25 at 11:50.

 2005-12-25, 14:48 Link #95 ThunderEmperor Junior Member   Join Date: Dec 2005 i have something in my mind that i want to create plz help me the idea is to make the word round or whirl around itself without moving from its position like using "\fry" but when i use "\fry" it should move around i just want it to whirl in its position >>> hope u understand
 2005-12-25, 19:42 Link #96 jfs Aegisub dev     Join Date: Sep 2004 Location: Stockholm, Sweden Age: 32 ThunderEmperor: Though the effect is rather simple, and it doesn't take much code either, you need a program to generate the effect, because it requires one line per syllable, with the syllables being positioned to match each other. Here's a little script that makes the effect I think you're after. It transforms this line: Code: Dialogue: 0,0:00:00.00,0:00:10.00,Default,,0000,0000,0000,,{\k100}foo {\k100}bar into this: Code: Dialogue: 0,0:00:00.00,0:00:10.00,Default,,0000,0000,0000,,{\pos(284,50)\t(0,0,\fry360)} Dialogue: 0,0:00:00.00,0:00:10.00,Default,,0000,0000,0000,,{\pos(303,50)\t(0,1000,\fry360)}foo Dialogue: 0,0:00:00.00,0:00:10.00,Default,,0000,0000,0000,,{\pos(339,50)\t(1000,2000,\fry360)}bar The script looks like this, and should be easy to extend with more effects: Code: name = "Y axis rotate" description = "Makes the syllables rotate around their Y axis" version, kind, configuration = 3, 'basic_ass', {} include("karaskel-adv.lua") function do_syllable(meta, styles, config, line, syl) local newlin = copy_line(line) newlin.text = string.format("{\\pos(%d,50)\\t(%d,%d,\\fry360)}%s", line.centerleft+syl.center, syl.start_time, syl.end_time, syl.text) return {n=1, [1]=newlin} end __________________ Aegisub developer [ Forum | Manual | Feature requests | Bug reports | IRC ] Don't ask for: More VSFilter changes (I won't), karaoke effects, help in PM's
 2005-12-26, 06:58 Link #97 niko Member Fansubber   Join Date: Nov 2003 Location: Finland Age: 27 Heres a little program to help make (simple) karaoke effects you can download it from http://www.madjoki.com/karaokefx/ it maybe little hard to use at first but you should be able to figure out how it works in short time
Suikun
Senior Member

Join Date: Apr 2004
Location: Michigan
Age: 29
Quote:
 Originally Posted by niko Heres a little program to help make (simple) karaoke effects you can download it from http://www.madjoki.com/karaokefx/ it maybe little hard to use at first but you should be able to figure out how it works in short time
Wow, cool! I've only been doing this for about a week now, but I was just starting to get the hang of karaoking and thinking a program like this to calculate the time values and insert the proper karaoke effect would be helpful, and then I checked here and saw this!

Great program! If I could make one suggestion for future releases, though, it'd be the ability to add multiple {\t}'s on a line with different time values based on the start and end times on the \k. So you could, for example, turn {\k30} into {\t(0,150,\bord10)}{\t(150,300,\bord3} by putting in "s" in the "Start" field and "(s+e)/2" in the End field for the first effect and "(s+e)/2" for Start and "e" for End on the second effect.

Uh... if that makes sense...

But anyway, great program as is. I'll get use out of this one for sure! Thanks!

 2005-12-30, 12:23 Link #99 phib Junior Member   Join Date: Oct 2004 U can try aegisub for that.
Suikun
Senior Member

Join Date: Apr 2004
Location: Michigan
Age: 29
Quote:
 Originally Posted by phib U can try aegisub for that.
I'd have to make a .lua automation script to do it in Aegisub though, right?

Since I'm not quite that advanced yet (though hopefully I can start learning it soon) I'll have to stick to something simpler to use.

 Tags fansubbing, karaoke, software, subbing