Mailing List AE-List@media-motion.tv — Message #54602
From: Teddy Gage <AE-List@media-motion.tv>
Subject: Re: [AE] Applying a slider control to an overall set of keyframes
Date: Tue, 15 Jul 2014 20:14:06 -0400
To: After Effects Mail List <AE-List@media-motion.tv>
1. Sadly that doesn't work - Not sure why, but I think it's because that portion of the expression is just defining the 0-100 range of the slider. The "orientation" wiggle has amplitude max of 1, however when that value becomes negative it loops back to 359 degrees instead of -1 degrees (like it would in rotation). This means that in scaling the overall amplitude, it doesn't work as expected. 

2. In terms of rotation, the problem is that the 3D camera tracker already generated the wiggle keyframes as orientation values. I'd need a script or something to convert the 3D array of orientation values [x,y,z] into separate linear rotation values [x] [y] [z] and then a separate expression on each axis...


On Tue, Jul 15, 2014 at 7:28 PM, Phil Spitler <AE-List@media-motion.tv> wrote:
Not sure if I understand but I think just changing the 100 to 360 would work.

x=linear(slider,0,360,minx,x);


Also, would you be better animating the rotation instead of orientation?

hope this helps.

Phil




Phil Spitler  |  Creative Technologist   |  Bonfire Labs  |  t : 415.394.8200  m : 415.571.3139

Website | Facebook | LinkedIn

On Jul 15, 2014, at 4:21 PM, Teddy Gage <AE-List@media-motion.tv> wrote:

OK sorry to keep bringing this up but I've figured out the problem, even if I haven't solved it. I think it makes an easier question to ask.

Here is my current progress, and in fact orientation is more important to me than position anyway.

p=transform.orientation;
x=p[0];y=p[1];z=p[2];

minx=0;miny=0;minz=0;

slider=thisComp.layer("CAM CONTROL").effect("CAMERA SHAKE")("Slider");
x=linear(slider,0,100,minx,x);
y=linear(slider,0,100,miny,y);
z=linear(slider,0,100,minz,z);
[x,y,z]

So with this expression, 100 is full wiggle, and 0 on the slider is no wiggle. The problem is that, at 50 on the slider, all of a sudden the values on a rotational scale of 0-360 are cut in half. So that instead of wiggling slightly from zero to 359.8, it wiggles from 0 to 179.4 in the same span of time. This is not useful. The problem is that orientation loops back from 360 to 0 with the original camera wiggle keyframes values.

is there a way to translate those 0-100 values from the slider to the 0-360-0 degrees orientation uses?



On Tue, Jul 15, 2014 at 5:29 PM, Teddy Gage <AE-List@media-motion.tv> wrote:
It totally works!

Now I'm trying to do the same for orientation. A bit trickier. This is as far as I got, but the output values are definitely not scaled versions of the original values with this. It jumps by much bigger chunks and flips the camera around the axis when this is applied to orientation keyframes. Any idea what I'm doing wrong?

p=transform.orientation;
x=p[0];y=p[1];z=p[2];

minx=-360;miny=-360;minz=-360;

slider=thisComp.layer("CAM CONTROL").effect("CAMERA SHAKE")("Slider");
x=linear(slider,-360,360,minx,x);
y=linear(slider,-360,360,miny,y);
z=linear(slider,-360,360,minz,z);
[x,y,z]



On Tue, Jul 15, 2014 at 5:14 PM, Zack Lovatt <AE-List@media-motion.tv> wrote:
That looks as if it'd work!



On 15 July 2014 17:09, Teddy Gage <AE-List@media-motion.tv> wrote:
Chris I think so, exactly. Now to translate that expression into 3D array I would write it like this? Look right?

p=transform.position;
x=p[0];y=p[1];z=p[2];

minx=0;miny=0;minz=0;

slider=effect("Amount 0-100")("Slider");
x=linear(slider,0,100,minx,x);
y=linear(slider,0,100,miny,y);
z=linear(slider,0,100,minz,z);
[x,y,z]



On Fri, Jul 11, 2014 at 8:57 PM, Chris Zwar <AE-List@media-motion.tv> wrote:
Not sure I understand 100%, but it sounds like you would use a slider to control the interpolation between the layers actual position, and a minimum or maximum amount.  So if you have a slider called "Amount 0-100" your position expression would be:

p=transform.position;
x=p[0];y=p[1];

minx=0;miny=0;

slider=effect("Amount 0-100")("Slider");
x=linear(slider,0,100,minx,x);
y=linear(slider,0,100,miny,y);

[x,y]


Is this what you mean? 


-Chris


On 12/07/2014, at 10:07 AM, Teddy Gage <AE-List@media-motion.tv> wrote:

Not even sure this is possible. But say you have an object on a motion path with hundreds of keys (not able to be reproduced by expressions). Would it be possible to put an expression on a slider linked to those keyframes to dynamically control, say, the absolute minimum and maximum values the object travels on the x axis? 

Sort of like scaling the entire motion path of keys in one or all directions, but tying that to a slider, so that when the slider is at 0, there is no motion. ie it clamps all values to 0.

There is probably an easier way to do this but I was wondering if this it was possible like this. Thanks,
-TG

--
_____________________________
VFX & Motion Graphic Artist
teddygage dot com




--
_____________________________
VFX & Motion Graphic Artist
teddygage dot com




--
_____________________________
VFX & Motion Graphic Artist
teddygage dot com



--
_____________________________
VFX & Motion Graphic Artist
teddygage dot com




--
_____________________________
VFX & Motion Graphic Artist
teddygage dot com
 
Subscribe (FEED) Subscribe (DIGEST) Subscribe (INDEX) Unsubscribe Mail to ListMaster