Thread: AE Karaoke
View Single Post
Old 2007-05-07, 16:59   Link #33
Senior Member
Join Date: Jul 2004
As I was thinking, I can't do tracking at all. But, precomposing [precompose()] might help a bit in terms of displaying all hundreds of layers, so that you only see one layer consisting of the karaoke effects in your original composition.

There is one reason why using keyframes alone won't help at all, but first I'll discuss about the timings, as I have watched quite a few Karaoke as well as making some karaoke on my own (SSA and AE).

There are seven (7) timings I can think up of, and I'll let the user to set basic timings using the slider control or the markers (so no coding is ever needed, and you'll be able to see each timing keyframes right on the screen instead of thinking about it).

[TODO] (I think this will be the main core of implementation)

Timings Chart:

Timings Description:
  1. Line Lead-in: This basically lets you to have some lead-in effects before a line is displayed. (Example: linear wipe line transition)
  2. Line Lead-in overlapped: This basically lets you to overlap some lead-in effects when a line is displayed. (Example: Gradual feathered linear wipe at the time of playing the song - it's used often in ssa karaoke)
  3. Syllable Lead-in: This basically lets you to have some lead-in effects before the syllable is played.
  4. Syllable In-Play: This basically lets you to have effects when the syllable is displayed.
  5. Syllable Lead-out: This basically lets you to have lead-out effects after the syllable is played. (This is often use quite a bit and can be extremely slow, but for now, I think it's used more often than Lead-in effects)
  6. Line Lead-out overlapped: This basically lets you to have overlap some lead-out effects when a line is displayed. (Example: Gradual gradient linear wipe towards the end)
  7. Line Lead-out: This basically lets you to have some lead-out effects after a line is played. (Example: blur-out transition)

There are two types of timings: one is absolute timing, and one is normalized timing (it will be normalized based on Timing #4 [Syllable or Line - depending which part you're on)

Okay, so what does this have anything to do with keyframing effects? A lot. First of all, when doing such effects based on keyframes instead of multiple layers, you can't have any effects on Timing #3 and Timing #5 (Lead-in/Lead-out Syllable). Unfortunately, most fancy karaokes tend to abuse Lead-in and Lead-out effects. However, some effects may allow you to create smaller sizes to fit into the appropriate region, but I'm not going to go through that mess since one will have to tweak them quite a bit. However, I can decide to let the user to take out Timing #3 and #5, allowing them to improve drastically in rendering speed, since they only need one or two (one for display and one for the effects) layers per line. (Text Animator and some effects [like bulge, etc] can use one line) The settings will be described in the Layer comments, and the name of the Layer is determined from the SSA styles and layer #.

In addition, there will be two types of effects, one is effects on the text, and one is via the layer (moving images/videos or effects [like Trapcode Particular for Particle Effects]). I haven't thought about how to approach this yet. Each syllable will be displayed not based on the position but based on the range selector (alpha to hide the rest).

In my case, since I wasn't able to find the position data using just AE alone, I have created a separate javascript (using IE, Firefox, or Opera) to get the width and height from each syllable. I recommend Opera though since it seems to display most of the Kanji properly. But, this is a temporary solution for me. I noticed in AE CS3, there's calculateTransformFromPoints, which probably allows me to transform any 3 points in the 3D coordinate system to what the layer depicts. That might be helpful.
pichu is offline   Reply With Quote