whenever i keyframe some pixelart and move it from one side to another it always blurs a little bit. I tried setting the image quality to draft, but the animation ends up being jagged or animated as if it where in 2s or 3s. is there a way to keep the pixels while the image is moving and have the movement smooth?
this has been torture trying to figure out.
A little more detail and maybe a screen shot or two would be helpful in finding an answer to the problem.
A screen shot of the timeline panel and the comp panel to show what type of blurring you are talking about would be helpful.
One thing that may be causing it: when something is moving it will blur if you have the motion blur switch for the layer turned on.
To prevent antialiasing on horizontal and vertical edges, you need to move a layer an even number of pixels per frame. You need to ensure that the resting position is perfectly lined up with the pixel grid. This is easy to do with an expression, but most of the time, it is unnecessary. Most of the time, unless the movement is slow, motion blur will make any animation look better.
High frame rate compositions, which means anything above 30 fps, always have more problems with horizontal and vertical edges looking unnatural when the video is playing at full speed.
Here is the expression for precise vertical movement of things like rolling credits:
moveDistance = 6; // 4 to 8 are good values - must be a whole number hvSwitch = 1; // 0 makes a scroll, 1 makes a roll startTime = time - thisLayer.inPoint; frameCount = startTime / thisComp.frameDuration; pixPerFrame = frameCount * moveDistance; if (hvSwitch == 0) [value - pixPerFrame, value] else [value, value - pixPerFrame];
I hope this helps.
EDIT: Now that I see your screenshots, you are looking at the Comp with a Magnify Ratio of 200%. You are seeing magnified pixels. Your black line is also only 1 pixel wide, so it will antialias and look more or less gray as it moves. When designing artwork for the video, the minimum recommended line thickness, especially for horizontal and vertical lines, is 2 pixels.
I would turn on motion blur and make your final quality assessment previewing the video with the Magnification Ratio set to 100%, resolution to Auto, and have the Info Panel open to make sure the preview is running in real-time.
Those thin lines, especially the black against white, will also cause problems when the video is rendered (h.264 MP4) for delivery. Color is compressed in blocks of 4 pixels, and luminance is averaged over several frames so that may cause problems getting the best quality with such thin lines.
is there a way to change the expression to make it move horozontaly?
Change the value of hvSwitch to 0.
moveDistance = 6; // 4 to 8 are good values - must be a whole number hvSwitch = 0; // 0 makes a scroll, 1 makes a roll startTime = time - thisLayer.inPoint; frameCount = startTime / thisComp.frameDuration; pixPerFrame = frameCount * moveDistance; if (hvSwitch == 0) [value - pixPerFrame, value] else [value, value - pixPerFrame];
If you want the movement to go the other way change " - pixPerFrame" to " + pixPerFrame in the if/else part of the expression.
Hope this helps.