Skip to main content
JNSStudios
Participating Frequently
December 4, 2017
Answered

Making Images Move in a Circular Path without rotating

  • December 4, 2017
  • 1 reply
  • 3659 views

So, I'm making an animation where these items start floating and rotate around my character in a circular motion, but they dont rotate. I found an example of this here: Undertale: Flowey Boss - YouTube Those hearts go in a circle shape around the red heart without rotating the sprites, so how would I do this?

Also, I'm using AE CS3, so might wanna keep that in mind while finding an example.

    This topic has been closed for replies.
    Correct answer Rick Gerard

    Start by putting a null in the center of a circle. Now arrange all of the objects so they are on directly above the null and on the circumference of the circle. Make sure that the anchor points are all in the center of the layer and exactly on the circumference of the circle. A couple of guides will help you position each layer manually if you turn on snaps or you can do it mathematically. Now select the top layer and the null, press r to reveal the rotation property and then hold down the Alt/Option key and click on the Rotation property of the top layer to add this expression by first typing the minus sign, then space, then dragging the expression pickwhip to the null's rotation property. You should end up with this:

    - thisComp.Layer("Null 1").transform.rotation

    When the expression has been added, parent the first layer above the null to the null.

    Now comes the fun part. If you have 6 layers each layer will be 60º apart so rotate the null 60º and parent the next layer above to the null. Repeat until all layers have been parented to the null and they are all positioned properly.

    Here comes the magic. Select the rotation property of the layer with the expression and go to Edit>Copy Expression Only. Now select all of the other layers and paste. They should all snap to vertical. Now just animate the rotation of the null to make them spin.

    This works because it subtracts the rotation of the null from the rotation value of the parented layer so they all stay horizontal.

    1 reply

    Rick GerardCommunity ExpertCorrect answer
    Community Expert
    December 4, 2017

    Start by putting a null in the center of a circle. Now arrange all of the objects so they are on directly above the null and on the circumference of the circle. Make sure that the anchor points are all in the center of the layer and exactly on the circumference of the circle. A couple of guides will help you position each layer manually if you turn on snaps or you can do it mathematically. Now select the top layer and the null, press r to reveal the rotation property and then hold down the Alt/Option key and click on the Rotation property of the top layer to add this expression by first typing the minus sign, then space, then dragging the expression pickwhip to the null's rotation property. You should end up with this:

    - thisComp.Layer("Null 1").transform.rotation

    When the expression has been added, parent the first layer above the null to the null.

    Now comes the fun part. If you have 6 layers each layer will be 60º apart so rotate the null 60º and parent the next layer above to the null. Repeat until all layers have been parented to the null and they are all positioned properly.

    Here comes the magic. Select the rotation property of the layer with the expression and go to Edit>Copy Expression Only. Now select all of the other layers and paste. They should all snap to vertical. Now just animate the rotation of the null to make them spin.

    This works because it subtracts the rotation of the null from the rotation value of the parented layer so they all stay horizontal.