Activity › Forums › Adobe After Effects › “flicker” problem in a horizontal scrolling text
-
“flicker” problem in a horizontal scrolling text
Posted by Victor Gonzalez on September 21, 2007 at 3:23 pmHey, I am doing an horizontal scroll (like a TV storm warning) but it gives me a
Marco Barneto replied 12 years, 7 months ago 6 Members · 12 Replies -
12 Replies
-
Victor Gonzalez
September 21, 2007 at 3:49 pmi’ll try the arithmetic solution for vertical text and keep you guys posted, thanks!
-
Kevin Camp
September 21, 2007 at 4:08 pmadding a rounding expression to the position values is a simple way to force whole pixel movement, and avoid the rasterizing problem on the text…. this will round the x values to whole pixels, although it can create some slight inconsistencies in movement due to round values up or down:
[Math.round(value[0]),value[1]]
this expression will mov a layer a set number of pixels each frame (d=8, moves 8 pixels), so movement will be consitent. no keyframes are necessary, just position the text where you need it at the start, and it will march accross the screen for as long as your comp is:
d = -8; // positive values will move left-right, negative values right-left
x = value[0] + ((time * (1 / thisComp.frameDuration)) * d);
[x, value[1]]if you want a very elaborate expression for horizontal movement you can try this… you don’t need to apply any keyframes if you don’t want to, but you can use keyframes for start position, end position or both:
n = numKeys;
if (n > 0){
if (n == 1){ // If only one key, determine if it is start or end key
if (key(1).time < thisComp.duration / 2){ // If key is in the first half of comp, assume start key startX = key(1).value[0]; // Start postion based on X position from keyframe startT = key(1).time; // Start time based on first keyframe endX = (thisLayer.width / 2) * -1; // End postion based on layer width endT = thisComp.duration; }else{ // If key is in last half of comp, assume end key startX = thisComp.width + (thisLayer.width / 2); // Start position based on layer width; startT = 0; endX = key(1).value[0]; // End postion based on X position from keyframe endT = key(1).time; // End time based on keyframe } }else{ startX = key(1).value[0]; // Start postion based on X position from first key startT = key(1).time; // Start time based on first key endX = key(n).value[0]; // End postion based on X position from last key endT = key(n).time; // End time based on last key } }else{ startX = thisComp.width + (thisLayer.width / 2); // Start position based on layer width startT = 0; endX = (thisLayer.width / 2) * -1; // End postion based on layer width endT = thisComp.duration; } frameRate = 1 / thisComp.frameDuration; duration = frameRate * (endT - startT); // Duration (frames) between keyframes displace = startX - endX; frameNum = (frameRate * (time - startT)); if (frameNum < 0){ // If uing keyframes, there is no movement until the first key frameNum = 0; }else{ frameNum; } Xinc = Math.round((displace / duration) + 0.5); xPos = startX - (Xinc * frameNum); if (xPos < endX){ // If using keyframes, take final position from end key x = endX; }else{ x = xPos; } [x,value[1]] Kevin Camp Designer – KCPQ, KMYQ & KRCW -
Kevin Camp
September 21, 2007 at 4:18 pmin addition to the motion blur, rendering to fields (with correct dominance) may help your horizontal text crawl move smoother, but that depends a bit on the rate. if it’s a slow crawl, it may still get a bit wavy. you’d also need to view it on a broadcast monitor.
Kevin Camp
Designer – KCPQ, KMYQ & KRCW -
Austin Reeves
September 21, 2007 at 4:33 pmI assume your “vibrating” scroll is only visable on a NTSC monitor…
Try this:
Add a FAST BLUR set at 0.5 to your scroll (the text is what I assume is vibrating).
See if that fixes things.
Austin
AR&C -
Kevin Camp
September 21, 2007 at 4:37 pmwe’ve been trouble shooting the aliasing problem… but if your text is moving too fast, when rendered progressively, it will seem to ‘strobe’, and rendered with fields or motion blur, it may get almost unreadable.
if that is the case, then you may need to use a condensed font and/or scale the text down to shorten the length of the text line.
Kevin Camp
Designer – KCPQ, KMYQ & KRCW -
Kevin Camp
September 22, 2007 at 3:00 pmif you tried the expression that moved the text a set number of pixels each frame (d = 8), and your value was much higher than about 4, then your text may just be moving too fast… try a lower value to see if that helps.
if it does, you may need to lengthen the duration of the comp/move or decrease the length of your text line to get the move to complete.
Kevin Camp
Designer – KCPQ, KMYQ & KRCW -
Rene Aguilar
September 22, 2007 at 11:40 pmhave u tried this?
1st check the layer quality in your comp window.
2nd
Put all your text in a laaaaaaaaaaarge illustrator file.
Import it in your comp.
Put only 2 keyframes in position. the first in the initial position and the last in the end position. By this way you only need to contol 2 keyframes.
😉 -
Victor Gonzalez
September 23, 2007 at 12:44 amok , i dunno but nothing is working. so i can someone check my math? perhaps i am doing something wrong…
i want my scroll to start at 1508 and end at -892 that
-
Kevin Camp
September 23, 2007 at 4:33 pmtechnically it should be 20 seconds x 29.97 fps… so 599.4 frames… but that math gets too complicated for me. try rendering out your text crawl at the 600 frames (30fps) that you have, import that footage, but interpret the footage as 29.97, then drop that into your main comp.
also, can you post the crawl somewhere, so we can see the problem?
Kevin Camp
Designer – KCPQ, KMYQ & KRCW
Reply to this Discussion! Login or Sign Up