AnimeSuki Forums

Register Forum Rules FAQ Community Today's Posts Search

Go Back   AnimeSuki Forum > Anime Related Topics > General Anime > Fansub Groups

Notices

Reply
 
Thread Tools
Old 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
ThunderEmperor is offline   Reply With Quote
Old 2005-12-19, 15:44   Link #82
Sylf
翻訳家わなびぃ
*Fansubber
 
 
Join Date: Nov 2003
Age: 50
Send a message via MSN to Sylf Send a message via Yahoo to Sylf
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,<effect>).
Sylf is offline   Reply With Quote
Old 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
ThunderEmperor is offline   Reply With Quote
Old 2005-12-20, 20:17   Link #84
shinjipierre
Computer graphist
 
 
Join Date: Dec 2005
Location: Paris, France
Age: 41
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
shinjipierre is offline   Reply With Quote
Old 2005-12-20, 21:33   Link #85
Itachikun
Animesuki's Janitor
 
 
Join Date: Dec 2005
Location: Somewhere in Shigeru Miyamoto's head
Age: 37
Send a message via AIM to Itachikun Send a message via MSN to Itachikun
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.
Itachikun is offline   Reply With Quote
Old 2005-12-20, 23:24   Link #86
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).
phib is offline   Reply With Quote
Old 2005-12-21, 05:34   Link #87
shinjipierre
Computer graphist
 
 
Join Date: Dec 2005
Location: Paris, France
Age: 41
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
shinjipierre is offline   Reply With Quote
Old 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
phib is offline   Reply With Quote
Old 2005-12-21, 18:17   Link #89
SCR512
Ayu/Eclipse Semi-Slave
 
Join Date: Nov 2003
Age: 41
Send a message via AIM to SCR512
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.
SCR512 is offline   Reply With Quote
Old 2005-12-22, 11:38   Link #90
Itachikun
Animesuki's Janitor
 
 
Join Date: Dec 2005
Location: Somewhere in Shigeru Miyamoto's head
Age: 37
Send a message via AIM to Itachikun Send a message via MSN to Itachikun
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.
Itachikun is offline   Reply With Quote
Old 2005-12-23, 08:17   Link #91
shinjipierre
Computer graphist
 
 
Join Date: Dec 2005
Location: Paris, France
Age: 41
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
shinjipierre is offline   Reply With Quote
Old 2005-12-23, 10:05   Link #92
Sylf
翻訳家わなびぃ
*Fansubber
 
 
Join Date: Nov 2003
Age: 50
Send a message via MSN to Sylf Send a message via Yahoo to Sylf
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?
Sylf is offline   Reply With Quote
Old 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
kooc is offline   Reply With Quote
Old 2005-12-23, 12:46   Link #94
jfs
Aegisub dev
 
 
Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 39
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.
jfs is offline   Reply With Quote
Old 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
ThunderEmperor is offline   Reply With Quote
Old 2005-12-25, 19:42   Link #96
jfs
Aegisub dev
 
 
Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 39
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
jfs is offline   Reply With Quote
Old 2005-12-26, 06:58   Link #97
niko
Member
*Fansubber
 
Join Date: Nov 2003
Location: Finland
Age: 34
Send a message via MSN to 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
niko is offline   Reply With Quote
Old 2005-12-30, 11:07   Link #98
Suikun
Senior Member
 
Join Date: Apr 2004
Location: Michigan
Age: 37
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!
Suikun is offline   Reply With Quote
Old 2005-12-30, 12:23   Link #99
phib
Junior Member
 
Join Date: Oct 2004
U can try aegisub for that.
phib is offline   Reply With Quote
Old 2005-12-30, 12:42   Link #100
Suikun
Senior Member
 
Join Date: Apr 2004
Location: Michigan
Age: 37
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.
Suikun is offline   Reply With Quote
Reply

Tags
fansubbing, karaoke, software


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 22:38.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
We use Silk.