Skip to main content
carolgunn
Inspiring
August 28, 2012
Question

Interacting 3D elements - CC Sphere and 3D Rotate Around Circle Animation Preset

  • August 28, 2012
  • 4 replies
  • 25100 views

OK, one problem solved, on to the next problem — make that the next two problems! I have finally gotten my orbiting text (live text with 3D Rotate Around Circle Animation Preset) to go behind the planet (photo with CC Sphere effect).

1.  Now, i want to fly around those two interacting 3D objects with a camera. That works just fine with the text, but the planet appears to flatten out to a circular disc rather than a sphere. (See attached screen shot.) I could animate the planet seperately on the poistion time line, but i'd really like to know how to make this work, if possible.

2. I set up an environment layer that the front side is reflecting correctly, but why are the back and sides of the text reflecting the planet? 

After Effects CS6, iMac, OSX7.4.

Any suggestions greatly appreciated!

Thanks!

--Carol Gunn

Gunn Graphics

    This topic has been closed for replies.

    4 replies

    Participating Frequently
    December 29, 2013

    Easiest way to do it would be to simply make the CC Sphered earth Auto-Orient itself to the camera.   Right click on your earth layer > Transform > Auto Orient > Auto Orient Toward Camera.  Tadaa!  You can move your camera all around and the earth will always look like a 3d object.  Hope this helps

    Participant
    September 9, 2013

    I know this is an old thread, but am looking to do something similar to the orbiting text that you have created, but with an object or image rather than with text. I have been working with after effects for a little while now, but mostly motion tracking and compositing. So creating an animation complete from scratch is new to me. Any help is appreciated!

    Szalam
    Community Expert
    Community Expert
    September 9, 2013

    Since you have a new problem, it would be best to make a new thread but link to this old one if it has relevant information.

    What, exactly, are you trying to do?

    carolgunn
    carolgunnAuthor
    Inspiring
    August 28, 2012

    Oh, silly me, i had "Appear in Reflections" checked for the sphere. I thought that could only happen with an environment map. I unchecked it. Was kinda cool the way it reflected on the back of the text. . . think I'll turn it back on!

    lasvideo
    Inspiring
    August 28, 2012

    CC Sphere is not a 3D object when viewed from the side in AE space.

    The only true 3D objects in AE these days that I am aware of are in Video Copilot Element and Zaxwerks Invigorator. And they really exist in their own 3D space within AEs (if that makes any sense }.

    Check this out..

    http://vimeo.com/47007644#

    http://www.videocopilot.net/blog/

    UPDATE

    I know you can have several 3D objects in Element. Im pretty sure you can make a Text Ring . You should be able to use that Earth preset I sent you the link to. AND you can assign the Earth image to an Environment Map that can be reflected in the text. I think there is a 14 free trial if you want to explore it in depth.

    carolgunn
    carolgunnAuthor
    Inspiring
    August 28, 2012

    Holy moley--that looks fantastic! But me, i am just taking baby steps here after two months of self-education (but a very intensive 2 months!)

    So, you are saying there aren't any "true 3D" objects in AE? The text with the 3D Rotate Around Circle Animation Preset acts like 3D well enough for me, in terms of flying the camera around it and interacting with (disappearing behind) the planet. Well, then, i guess i will just have to animate the planet seperately.

    thanks!

    --c.

    Community Expert
    August 29, 2012

    Ok, extended the camera. Now I am getting an error msg: "Class 'global' has no property or method named 'thiscomp'". Here is what I am typing in, copied exactly from the tutorial:

    lookAt(Text-Test.activeCamera.position,position)[01]

    I thought maybe it was a "State your name" problem (like repeat after me "I, (state your name) do swear. . . ") but, no I tried substituting the name of the comp for "thiscomp". Same error msg.

    ???

    --c.


    The expressions in the tutorial by Andrew Cramer kind of work but there's an error in the technique. Adding lookAt(thisComp.activeCamera.position, position)[0] for x, and changing [0] to [1] for y and [2] for z only gives the appearance of working correctly. Draw an equator on your plannet and you'll quickly see the problem. You can fix the problem by removing the expression from CCSphere Rotation z. You don't need it. It just fouls up the movement.

    These expressions also break if you've tied the camera to a null. I use nulls all the time to animate camera position. Just as in the real world, it's easier to move the camera around if you put it on a dolly. in AE, or any 3D app, my dolly is a null.

    Here is an animation preset that you can apply to your Planet layer which also matches the lighting in your 3D scene based on a point light, directional light, or spot light in your comp named Light 1 (the default name). Make sure you've set the CCSphere layer to 3D and set Auto Orient to Orient towards camera. The keyboard shortcut for Auto-Orientation is CTRL/Cmnd + Alt/Option + O. Then apply the animation preset ccSphereTo3Dcamera.ffx to the layer. CCSphere and all of the expressions will be added to the layer.

    Here are the expressions in case you can't get the animation preset:

    For CCSphere x:

    cp=thisComp.activeCamera.toWorld([0,0,0]);

    sp=thisLayer.toWorld(effect("CC Sphere")("Offset"));

    x=length([sp[0],sp[1]], [cp[0],cp[2]]);

    y=cp[1]-sp[1];

    alpha=Math.atan2(y,x)

    value+radiansToDegrees(alpha) ;

    For CCSphere y:

    cp=thisComp.activeCamera.toWorld([0,0,0]);

    sp=thisLayer.toWorld(effect("CC Sphere")("Offset"));

    x=cp[0]-sp[0];

    y=sp[1]-cp[2];

    beta=Math.atan2(y,x)

    value+radiansToDegrees(beta) - 90;

    For CCSphere Light Height:

    cp=thisComp.activeCamera.toWorld([0,0,0]);

    sp=thisLayer.toWorld(effect("CC Sphere")("Offset"));

    lp=thisComp.layer("Light 1").toWorld([0,0,0]);

    cv=normalize(cp-sp);

    sv=normalize(lp-sp);

    angle=Math.acos(dot(cv, sv));

    100 - (angle/Math.PI)*200

    For CCSphere Light Direction:

    l=thisComp.layer("Light 1");

    xy=thisLayer.fromWorld(l.position) - effect("CC Sphere")("Offset");

    angle=Math.atan2(xy[1],xy[0]);

    radiansToDegrees(angle) + 90;

    When using a light it's also good to add some ambient light to the scene. It's also good to build up your own library of animation presets. Whenever you work on something that you think you might use again save an animation preset.