I'm trying to make a 3d carousel of 7 images in After Effects, and I need to animate it switching between images. Kinda like this Flash example: http://www.flashxml.net/3d-carousel-menu.html, except then the front image has to be larger then the rest, and the images in the back have to be blurred.
I tried the CC Cylinder effect which didnt really work (the images gets squeezed, and I can't use Depth of Field on the effect). Then I tried to position them in 3D on a circle (from top view), make them auto-orient the camera and change the Y axis of the images. This worked, but I'm never able to position the 7 image's exactly in the cirle (with the same amount of space inbetween).
Is there any way how I can make this? In the end i'll have to animate every 'switch' between images, back and forth and render them out.
I appreciate your help!
Your link doesn't work.
I'm not sure what you mean by "switching" images.
I'm picturing a heptagon rotating, with a different image on each face. Is that what you're going for?
Darby Edelen gave a good very explanation of how to properly join planes in AE's 3d space in this thread. See if it helps.
he had a comma in his link - http://www.flashxml.net/3d-carousel-menu.html - that should work.
as to the effect, I have no idea.
Here's one way to do it that works well and isn't hard to set up.
Go to the Video Copilot site and grab the 3d Orbit preset if you don't have it. (Andrew Kramer to the rescue again.)
Start fresh, and with only one of the seven image file layers in your comp, create a new Camera.
Make the layer 3d.
Apply the preset to the layer.
Now as you scrub the timeline your layer will orbit, oriented to the camera. It defaults to orbiting around the camera, so pull your camera back in z until it's orbiting in front of the camera. Then adjust the camera position, and the Radius and Speed effects of the preset to taste.
Now duplicate your layer. Change the Rotation Offset effect until this layer is where you want it. Replace the source file for this layer with the next image by selecting the layer and then option dragging the next source file to the layer. Repeat for the rest of the files.
Now, with one of the layers at its closest distance from the camera, go to a top view and adjust the Point of Interest for the camera until it's lined up with that layer.
Next activate the Stopwatch for the Focus Distance parameter of the camera and paste this expression-
This sets the focus distance to be the same as your point of interest.
Now just tweak the Aperture and Blur Level parameters of the camera until the depth of field tapers off to your satisfaction.
Hope this gives you what you're after.
If you got my response in your e-mail, please disregard the part about turning off the visibility of the other layers. You're starting with only one in the comp.
Here's one more thing you can do to make this project easily customize-able.
After you've created your first layer, applied the preset and adjusted to taste, create a Null Object layer, make it 3d, and apply the preset to that. Now for the slider controls for each effect on your image layer, click the Stopwatch and use the Pickwhip to select the slider parameter of the corresponding effect on the Null.
Now after you've built the rest of the comp, the Null layer can be used as a Master Controller for the rest of the layers, allowing you to adjust the overall radius of the rotation path and the speed of the orbit.
Here is a simple but very effective trick to place 3D layers around a circle:
1- Create a comp that is wide enough so your images can be neatly positioned. Don't worry for now about your output size.
2- create a 3D layer at the same size then your comp, rotate it in the X axis by 90 degrees & switch to top view.
3- Using the Ellipse Tool & starting from the center, draw a circle that fills your comp .
4- Apply the Vegas Effect to your layer, tell it to use the Mask/Path for the stroke and assign Mask 1 as a path. As you need (7) images, just alter the Segments value to (7)then reduce the Length parameter to something like (0.120)to get seven little dots.
These dots are now perfectly evenly surrounding your circle!
5- Import your images switch them to 3D and move each of them using the Z & X arrows in top view so the green Y axis gizmo touches the Vegas segments.
6- Change now your comp size to whatever resolution you need to work with.
As to animating the whole thing:
1- Create a 3D null object, parent all images to it.
2- Create a camera layer and adjust its Z axis position to taste so you see all your images in camera view.
3- Animate the null object y rotation to rotate your carousel. Select all your images and animate their Y rotation axis at the exact same time then the null object but in opposite direction. (For example if your null is rotating by 180 degrees make sure your images are rotating by -180 degrees)Forget about the Orient towards Camera stuff in this project.
For the blur, just enable your camera Depth of Field and adjust the camera Options to taste.
New! InvigoMany-Media is available here: http://www.nyc-visual.com
Invigorator/Proanimator Training: http://library.creativecow.net/articles/hamad_serge/invig_training.php
If you decide to go with my method, and you would like the orbit speed to slow down as each layer nears the camera, you can keyframe the slider value of the Speed effect applied to the control Null.
Thanks alot for your replies Joey and Serge.
I tried the 3d Orbit method of Joey and that seems to work, got them all positioned in 3d space and rotating.
I made a Null object to have the master controller, works good with adjusting the overall rotation offset, but I'm having difficulties animating the speed. As soon as I change the speed slider to 0 the position changes too. Basically I want to animate each image from the position right in front of the camera, to the other picture being right in front of the camera (and have it ease in and out).
I thought I could do that by animating the speed from 0 to 100 and back, but changing the speed parameter to 0 will have my image appear somewhere else in the carousel instead of in front of the camera.
Thanks for the advice!
Martin, sorry for the delay. I hadn't anticipated this issue at the outset, but I have a solution now.
Set the speed of your controller null to 0.
For each image layer, click the stopwatch for Rotation Offset, and pickwhip that value to Rotation Offset for the null.
This will, of course, put all of your layers in the same position.
The way to reposition them is to subtract a certain value from each layer's Rotation Offset expression.
thisComp.layer("Null 1").effect("Rotation Offset")("Angle")-130
I just added the - 130 to the expression line created by pickwhipping.
Viewing your scene from the Top view, do this for each layer until they're back in the right position.
Now just animate the Rotation Offset for the Null, and the keyframes will behave like you would expect them to.
Don't forget to set speed to 0.
Hope that works for you.
Joey, Thanks alot.
I've managed to get it working. I've done the math 360/7 = 51,48.... and I've added that to the expression, say: first image: +51,48 , second image: +102,98 etc.. Works great and can easily be modified.
Thank you very much!