2005-12-19, 15:29 | Link #81 |
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 |
翻訳家わなびぃ
Fansubber
|
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>). |
2005-12-20, 20:17 | Link #84 |
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
__________________
|
2005-12-20, 21:33 | Link #85 |
Animesuki's Janitor
|
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. |
2005-12-20, 23:24 | Link #86 | |
Junior Member
Join Date: Oct 2004
|
Quote:
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 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); |
|
2005-12-21, 14:46 | Link #88 |
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 |
Ayu/Eclipse Semi-Slave
|
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 |
Animesuki's Janitor
|
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, 10:05 | Link #92 |
翻訳家わなびぃ
Fansubber
|
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 |
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 |
2005-12-23, 12:46 | Link #94 | |
Aegisub dev
Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 40
|
Quote:
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
__________________
Last edited by jfs; 2005-12-25 at 11:50. |
|
2005-12-25, 14:48 | Link #95 |
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 |
Aegisub dev
Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 40
|
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 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 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
__________________
|
2005-12-26, 06:58 | Link #97 |
Member
Fansubber
|
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 |
2005-12-30, 11:07 | Link #98 | |
Senior Member
Join Date: Apr 2004
Location: Michigan
Age: 37
|
Quote:
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:42 | Link #100 | |
Senior Member
Join Date: Apr 2004
Location: Michigan
Age: 37
|
Quote:
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 |
|
|