Changing axis of rotation in timeline animation.

Hi guys I am working on creating a logo with animation, and I am struggling to make a layer rotate without wobbling off of axis. I doing a transform in the timeline, and moving the anchors to the direct center of the screen when I am rotating the layer in transform mode in the timeline to save the animation. Although the layer rotates perfectly when I do it manually to before adding a point on the timeline, when I hit play, the layer wobbles out of axis. Do you guys know how to change the axis of rotation on a layer animation in the timeline?

What I would try to sove the problem would be to create rasterize layer version of your odd shape layer and add a couple of very transparent pixels so that the retangle layer's bounds would be centered over the center of the round circle part of your shape layer.

Similar Messages

  • PositionInterpolator - change axis

    Hello,
    A question concerning PositionInterpolator:
    I�m trying to use setTransformAxis(Transform3D axisOfTransform) method to change axis from X (default) to Y. The question is how to construct Transform3D object that is passed as a parameter.
    Thanks in advance!

    Well kiddies, it's getting late and my head hurts. I'm still trying to get the new Interpolator working...
    Anyway, here's what I got so far (if it helps you, etc etc). Everything works except the Interpolator. I'll have to run some tests to make sure I'm using it right. Keep in mind this code is incomplete (it doesn't do exactly what's it's supposed to yet):
    // Allows an object or group of objects to be moved around SMOOTHLY by the
    // keyboard in the X x Z plane.
    public class KeyboardControlBehavior extends Behavior {
    // USER DEFINED VARIABLES (SET ONCE, REQUIRED TO SET THINGS UP)
    // The time is takes to move once.
    private long time = 0;
    // The distance travelled in one move.
    private float distance = 0.0f;
    // The TransformGroup to move around.
    private TransformGroup target = null;
    // SYSTEM DEFINED VARIABLES (SET ONCE, REQUIRED FOR FUTURE MOVEMENTS
    private Vector3d rotationAxis = null;
    // BEHAVIOR DEFINED VARIABLES (CONSTANTLY CHANGED TO KEEP MOVING FORWARD)
    // The last keyboard key code that was pressed.
    int lastKeyCode = KeyEvent.VK_RIGHT;
    // The Interpolator used to make the smooth movement animation.
    private RotPosScalePathInterpolator posInt = null;
    // The Alpha object used by the Interpolator.
    private Alpha alpha = null;
    // The Knots used by the Interpolator (Alpha time of each key frame).
    private float[] knots = null;
    // The Quaternions used by the Interpolator (rotation of TransformGroup at
    // each key frame).
    private Quat4f[] quats = null;
    // The Scales used by the Interpolator (scale of TransformGroup at each
    // key frame).
    private float[] scales = null;
    // The Positions used by the Interpolator (position of TransformGroup at
    // each key frame).
    private Point3f[] positions = null;
    // Create the KeyboardControlBehavior.
    KeyboardControlBehavior(long time, float distance, TransformGroup target){
    super();
    // Set the target TransformGroup to move around.
    this.target = target;
    // Set the time it takes to move the TransformGroup around.
    this.time = time;
    // Set the Alpha object to the specified time for the Interpolator to use.
    this.alpha = new Alpha(1, time);
    // Set the distance to move the TransformGroup around.
    this.distance = distance;
    // Set the rotation axis of the Interpolator to be the Y axis.
    Transform3D yAxis = new Transform3D();
    yAxis.rotZ(-Math.PI/2.0f);
    this.rotationAxis = new Vector3d();
    yAxis.get(this.rotationAxis);
    // Set the Alpha time of each key frame:
    // - Initial frame is at 0.0
    // - Rotation frame is at 0.3
    // - Translation frame is at 1.0
    this.knots = new float[3];
    this.knots[0] = 0.0f;
    this.knots[1] = 0.3f;
    this.knots[2] = 1.0f;
    // Set the Scales of each key frame to 100% (1.0f).
    this.scales = new float[3];
    this.scales[0] = 1.0f;
    this.scales[1] = 1.0f;
    this.scales[2] = 1.0f;
    // Initialize all the positions to be the current TransformGroup's
    // position.
    Transform3D curPos = new Transform3D();
    target.getTransform(curPos);
    Vector3f curPosVec = new Vector3f();
    curPos.get(curPosVec);
    float[] curPos3f = new float[3];
    curPosVec.get(curPos3f);
    this.positions = new Point3f[3];
    this.positions[0] = new Point3f(curPos3f);
    this.positions[1] = new Point3f(curPos3f);
    this.positions[2] = new Point3f(curPos3f);
    // Initialize all the rotations to be the current TransformGroup's
    // rotation (none).
    this.quats = new Quat4f[3];
    this.quats[0] = this.createQuaternionFromAxisAndAngle(this.rotationAxis, 0.0f);
    this.quats[1] = this.createQuaternionFromAxisAndAngle(this.rotationAxis, 0.0f);
    this.quats[2] = this.createQuaternionFromAxisAndAngle(this.rotationAxis, 0.0f);
    // Create the new Interpolator, disable it and add it to the target
    // TransformGroup.
    this.posInt = new RotPosScalePathInterpolator(alpha, target, new Transform3D(), knots, quats, positions, scales);
    this.posInt.setEnable(false);
    target.addChild(posInt);
    // Initialize the KeyboardControlBehavior.
    public void initialize(){
    // Set the initial wakeup condition to a key pressed.
    this.wakeupOn(new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED));
    // KeyboardControlBehavior behavior (tasks to execute after a key is
    // pressed).
    public void processStimulus(Enumeration criteria){
    // Extract the KeyEvent.
    KeyEvent event = (KeyEvent) ((WakeupOnAWTEvent) criteria.nextElement()).getAWTEvent()[0];
    // Read the key code that was pressed.
    int currentKeyCode = event.getKeyCode();
    // Execute the desired movement according to which arrow key was pressed
    // as well as the previous arrow key (previous direction).
    if(alpha.finished()) {
    if(currentKeyCode == KeyEvent.VK_UP
    || currentKeyCode == KeyEvent.VK_DOWN
    || currentKeyCode == KeyEvent.VK_LEFT
    || currentKeyCode == KeyEvent.VK_RIGHT) {
    // Set the position of the first key frame to the last key frame's
    // position.
    positions[0] = (Point3f)positions[2].clone();
    // Set the rotation of the first key frame to the last key frame's
    // rotation.
    quats[0] = (Quat4f)quats[2].clone();
    switch(currentKeyCode) {
    case KeyEvent.VK_UP:
    System.out.println("UP KEY");
    // If the current direction is different than the last direction,
    // a rotation into the new direction is required.
    switch(lastKeyCode) {
    case KeyEvent.VK_DOWN:
    break;
    case KeyEvent.VK_LEFT:
    break;
    case KeyEvent.VK_RIGHT:
    break;
    case KeyEvent.VK_UP:
    // If we're going in the same direction, do not rotate.
    positions[1] = (Point3f)positions[0].clone();
    quats[1] = (Quat4f)quats[0].clone();
    break;
    // Set the last key frame farther away on the Z axis.
    positions[2].z += distance;
    break;
    case KeyEvent.VK_DOWN:
    System.out.println("DOWN KEY");
    break;
    case KeyEvent.VK_LEFT:
    System.out.println("LEFT KEY");
    break;
    case KeyEvent.VK_RIGHT:
    System.out.println("RIGHT KEY");
    // If the current direction is different than the last direction,
    // a rotation into the new direction is required.
    switch(lastKeyCode) {
    case KeyEvent.VK_DOWN:
    break;
    case KeyEvent.VK_LEFT:
    break;
    case KeyEvent.VK_RIGHT:
    // If we're going in the same direction, do not rotate.
    positions[1] = (Point3f)positions[0].clone();
    quats[1] = (Quat4f)quats[0].clone();
    break;
    case KeyEvent.VK_UP:
    break;
    // Set the last key frame farther away on the X axis.
    positions[2].x += distance;
    break;
    // Enable the Interpolator.
    posInt.setEnable(true);
    // Activate the Interpolator to move the TransformGroup.
    posInt.getAlpha().setStartTime(System.currentTimeMillis());
    // Save the last key code.
    lastKeyCode = currentKeyCode;
    else {
    System.out.println("NOT AN ARROW KEY");
    // Don't move the TransformGroup.
    else {
    System.out.println("Waiting for animation to complete...");
    // Wait till animation is finished to process next key.
    // Consume the key pressed event.
    event.consume();
    // Reset the wakeup condition to await the next key pressed event.
    this.wakeupOn(new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED));
    // A very practical method to convert Radian angles into Quaternions.
    // (Taken from page 207 of Daniel Selman's Java 3D Programming book.)
    private Quat4f createQuaternionFromAxisAndAngle( Vector3d axis, double angle ) {
    double sin_a = Math.sin( angle / 2 );
    double cos_a = Math.cos( angle / 2 );
    // Use a Vector so we can call normalize.
    Vector4f q = new Vector4f();
    q.x = (float) (axis.x + sin_a);
    q.y = (float) (axis.y + sin_a);
    q.z = (float) (axis.z + sin_a);
    q.w = (float) cos_a;
    // It is best to normalize the Quaternion so that only rotation
    // information is used.
    q.normalize();
    // Convert to a Quat4f and return.
    return new Quat4f( q );
    } // end of class KeyboardNavigationBehavior

  • ColorTransform messing up timeline animation.

    I dynamically set a color using this function in colortransform.
    function setColor(o:DisplayObject,color:uint):void
         var myColor:ColorTransform = o.transform.colorTransform;
         myColor.color = color;
         o.transform.colorTransform = myColor
    I then have a short timeline animation in Flash CS5 where the height grows just a little bit, and it does not grow.
    It grows in the preview, but not after compile.  If i comment out this color transform function, the height animates correctly.
    Any help would be appreciated thank you.

    changing a displayobject's appearance with actionscript will break any concurrent timeline tween.  to remedy, use only actionscript or use only the timeline.

  • Is it possible to change the duration of the timeline in Premiere Pro CS5.5?

    I'm used to working on Avid systems where the length of the timeline is determined by the last asset in the timeline, where it ends. I'm editing commercials and don't need or want a 10 minute timeline. Does anyone know how to change the duration of the timeline, like you can in After Effects? I've tried everything I can think of and It seems like it is not possible.... Thanks!

    Now, if you are seeing a Duration for your Timeline, that is longer than what you "anticipate" with your Assets on it, then you could well have an "Orphan," out beyond the anticipated end. This ARTICLE goes into more detail.
    Good luck,
    Hunt

  • Converting timeline animations into .swf??

    Hello all,
    In CS3 I was able to export animations into .SWF files but with CS6 I cant seem to find out how to do this?  The only option is .MP4 via File>Export>Render Video but thats no good to me.  I've searched high and low for this answer but have come up with nothing!
    Any suggestions?  It needs to be SWF.  I've tried to convert MP4 into SWF using a 3rd party software but the quality was shocking and I'm unsure what settings to use for the original animation and also for the converting!  Doing it with CS6 is much prefered if possible!
    Thanks in advance

    To my knowledge, you cannot do this in Photoshop CS6. Check out this help document, Creating Timeline Animation (Photoshop Extended).
    Do you have Flash or After Effects?
    Cheers,
    Michael

  • Flash CS6 as3 Navigate to URL stops timeline animation!

    Hello
    I'm hoping someone can help me out! I'm quite new to flash but slowly getting the hang of it. I'm trying to make an interactive banner using jpegs converted to buttons etc with type, all animated. I've got separate layers for everything including mask layers and actions. I just want to navigate on a top layer which is invisible to take the user to a new URL. Everything is working great until I put more than one URL link in the code, as soon as I do the whole banner animation stops!!
    If someone could suggest a few ideas it would be much appreciated as I'm all out?!
    Many thanks,
    here's the code:
    import flash.events.MouseEvent;
    btn1.addEventListener(MouseEvent.CLICK, btn1Click_1);
    btn2.addEventListener(MouseEvent.CLICK, btn2Click_2);
    function btn1Click_1(event: MouseEvent): void
      navigateToURL(new URLRequest("http://www.google.com"), "_self");
    function btn2Click_2(event:MouseEvent):void
      navigateToURL(new URLRequest("http://www.youtube.com"), "_self");
    addEventListener(MouseEvent.MOUSE_OVER, mo);
    function mo (event:MouseEvent):void
    event.currentTarget.stop();
    function mo2 (event:MouseEvent):void
    event.currentTarget.play();
    } addEventListener(MouseEvent.MOUSE_OUT, mo2);

    Thanks Ned and moccamaximum for the replies.
    The last bit of code does apply to the whole timeline as it stops the animation with a Mouse Over/Roll Over. Taking this away has no effect on the animation in the timeline. The only thing that seems to stop the timeline animation is the second button URL request!
    btn2.addEventListener(MouseEvent.CLICK, btn2Click_2);
    and:
    function btn2Click_2(event:MouseEvent):void
      navigateToURL(new URLRequest("http://www.youtube.com"), "_self");
    Works perfectly without this command. I don't get it!

  • The display on my iPhone only works vertically.  It will not change when I rotate my phone.

    The display on my iPhone only works vertically.  It will not change when I rotate my phone.

    Swipe up on the bottom of the screen to expose control center and see if the orientation lock is on (top row of controls, far right; looks like a lock with a circular arrow).
    Not all apps support orientation changes, BTW.

  • Photoshop CC: Layer Merging Behavior with Timeline Animations (Bug?)

    Hello,
    we're working a lot with the Photoshop timeline in our company. After upgrading to Photoshop CC we encountered a behavior that was different with CS6.
    Picture a file with a timeline animation consisting for example of 8 frames, with 8 layers, each layer's visibility exposed on a single frame (layer 1 exposed in frame 1, layer 2 exposed in frame 2 etc) and all other layer not visible.
    In Photoshop CS6, if I were to create a new layer for example in frame 4 of my timeline above layer 4 (which is the only visible layer in this frame) and merged it back down onto layer 4 (by selecting it and pressing the shortcut CTRL+E), the resulting layer inherited all the exposure settings of layer 4, but did contain the merged visual content of layer 4 and the previously new layer above it. This is what I want.
    Now in Photoshop CC, when doing the very same action, the layers are merged and keep the naming of layer 4, however the visibility flag is not inherited properly. The resulting layer is exposed (visible) on all frames in the timeline, whereas it actually should only be exposed in frame 4.
    Also note that the timeline option "New layers visible in all frames" is deactivated. So even if Photoshop treated the merged layer as an actual new layer, it shouldn't expose it's visibility in all other frames.
    The only workaround I've found so far is enabling "unify layer visibility", hiding the layer, then disabling "unify layer visibility" again. This is annoying however, and the entire new behavior seems like a bug to me. Can any of the developers comment on this? Thank you.
    Regards,
    Hannes Drexl

    My only solution so far is to avoid using CC and sticking with CS6.  Thanks Adobe for not letting me enjoy the other great features of the PS version you seem to care about updating and improving.  Since PS is the main reason I even subscribed to creative cloud, it would be nice to at least know this problem is being resolved in the future.

  • Flash Timeline Animation to Edge Animate CC?

    I have a client with an old Flash CS4 Presentation file that uses Forms and Slides and they want to update their presentation to HTML. I am not concerned about the presentation functionality or shell as my developer will create a new one... But, the presentation contains a bunch of timeline animations that demo their product.
    I don't want to export the animations out using the Canvas tag, or as a movie or image sequence.
    I am new to Edge, but I am thinking this is the solution for the animations.
    Is there a way to export/import these Flash timeline animations into Edge? Or even, at the very least, import the assets into Edge?
    Thanks,
    Carol

    What kind of animations do you have? If you have scenes in Flash you can reproduce that in Edge Animate with symbols. For small animations like a runner for example you can create a spritesheet with Flash and use it in Animate. You will have to use the clip tool and display on/off to set it up. Rigth now it takes several tools to go from Flash to Animate but Animate is quite adequate to reproduce what was done in Flash.

  • Convert To Timeline Animation Button doesnt appear.

    Convert To Timeline Animation Button doesnt appear and its driving me crazy.
    in the animation window its in frame animation mode and this button im talking about doesnt appear!.
    Can someone please help me?!.

    Timeline animation is only available for Photoshop Extended. You don't have Extended so you don't get to make timeline animations

  • Timeline animation in Photoshop CC cannot complete my requests because of program error

    Working on a class project animating a small gif using timeline animation.  After Saving and reopening the file I keep receiving the error message if I try to continue working on it in any way.
    HP Pavilion p7-1451 Desktop
    PC Windows 8.1 64 bit OS
    Processor: AMD a10-5700 APU with Radeon HD Graphics 3.4 GHz

    What specifically is going on in the animation? What document settings? The errors look like some external source was used and cannot be accessed...
    Mylenium

  • Can't change the duration of my move animation in Keynote

    For some reason, when I change the duration of a move animation in a slide, nothing changes. It always animates at the same speed. Anybody has this problem?
    I'm using Keynote 6.1

    you will have countless other problems with this rubbish update,
    What specific issues are you having and someone might be able to help you?
    Keynote 6.1 is stable and works perfectly well for new presentations, continuing to use Keynote 5  for existing projects is a well accepted workflow.

  • Timeline animation events

    Hello Forum
    I learning how to use Flex Builder 3 to build a as3 project.
    I prepared a timeline into animation in Flash CS4 which I've exported as a .swc file.
    What options do I have to gain access to the timeline animation?  I'd like to know when the intro animation has finished playing for example...  What kind of events do I have to register to that would listen to manually created timeline animations?
    Thanks for guiding me through this adventure...
    sk

    Thank you Justin.  That's very helpful.  The class looks interesting.  I started  using it.  So far so good.
    The onEnterFrame event could work as well.  It seems like a lot of unnecessary overhead though...
    Thank you.
    sk

  • Copies of repeater are not extending (3D timeline animation steps)

    Trying to make a 3D timeline animation by following this tutorial video: After Effects Video Tutorial: 3D Timeline Animation on Vimeo.
    But faced a very beginning problem: when I made the copies of the rectangles, they do not extend as they should have (The blue indicator stays on the first one, please see the first image). Unlike the video which he has the blue indicator extending all the way (please see the second image).  I think this affects how every composition connects to each other later. (Please see the 3rd image compared to the 4th image from the video).
    I will very appreciate if somebody could help me out with this. Thank you!

    I see nothing wrong in your pictures. The bounding box display depends on what property/ item/ shape group is selected and there is a difference between certain procedural items vs. normal shape paths. A bit confusing, but you'll get the hang of it.
    Mylenium

  • Timeline Animation and interaction with ActionScript

    A simple timeline animation, runs fine but stops suddenly onRollOver action.
    car.onRollOver = function():Void {
         this._width -= 5;
         this._height -= 5;

    I could duplicate what you describe and cannot explain why it stops entirely, but it does.  If you follow the approach I described where the animation is separate from the code, it can do what you seem to want.
    Maybe someone else can explain what gets broken when you take your approach.

Maybe you are looking for