Activity › Forums › Adobe After Effects Expressions › composition not updating when keyframe or time-vary stop watch is on
-
composition not updating when keyframe or time-vary stop watch is on
Posted by Ben Wolfinsohn on November 23, 2012 at 8:16 amlet me try to explain what i have going on best i can here –
comp 1 – has 2 items, a null with 2 sliders that control a characters head rotation and body rotation, and it has comp 2 in it.
comp 2 – has the pre comp of comp 3 and is timeremaped, that time remapping is being controlled in the slider in comp 1.
comp 3 holds the body rotation and holds comp 4.
comp 4 holds the head rotation, that head rotation is controlled by the slider in comp 1.when I move the sliders in comp 1 everything moves as it should. BUT when I start to add keyframes onto the sliders the sliders no longer update with the correct image. I assume this has something to do with the timeremapping but can’t figure out how to get the keyframes to work.
note- and I made sure all of my comps are the same length and frame rates
Ben Wolfinsohn replied 13 years, 5 months ago 2 Members · 11 Replies -
11 Replies
-
Dan Ebberts
November 23, 2012 at 4:49 pmI don’t think you’re going to be able to get nested time-remapped comps to work the way you’re expecting.
For example, suppose you’ve got a control for the outer time-remaped comp to set to 1 second. Then you keyframe the control for the time remapping of one of the nested comps. You would be expecting the same frame (at 1 second) of the outer comp to render differently, depending on what’s going on in the nested comp. I don’t see how that could work.
Dan
-
Ben Wolfinsohn
November 23, 2012 at 10:07 pmok. if I can’t do that, then how about this?
if i have 1 object and 4 nulls in a comp. and i want to be able to have the object follow the position and the scale of each null individually with a slider on a 5th null that allows you to change with of the 4 nulls its following. so if you took the slider on the 5th null to 1 the object would follow null 1 and if you took the slider to 3 it would follow the 3rd null.
-
Dan Ebberts
November 23, 2012 at 10:31 pmYou could do that with something like this (for position):
slider = thisComp.layer(“Null 5”).effect(“Slider Control”)(“Slider”);
thisComp.layer(“Null “+ clamp (parseInt(slider,10),1,4)).transform.position;Dan
-
Ben Wolfinsohn
November 23, 2012 at 10:41 pmgreat. and how about this – can i have the position of an object pointing to a slider in the null, so when the slider goes to 1 the position is 140,140. and if the slider goes to 2 then the position goes to 145,145, and so on. so i can somehow manually put in the position and then the slider takes it there.
thanks! -
Dan Ebberts
November 23, 2012 at 11:45 pmSomething like this should work:
slider = thisComp.layer(“Null 1”).effect(“Slider Control”)(“Slider”);
pos = [[100,100],[200,200],[300,300],[400,400]];idx = clamp(parseInt(slider,10),0,pos.length-1);
pos[idx]This will give you the first postion ([100,100]) when the slider is zero, but it would be pretty easy to change that to 1 if you really want that.
Dan
-
Ben Wolfinsohn
November 26, 2012 at 5:32 amslider = thisComp.layer(“Null 5”).effect(“Slider Control”)(“Slider”);
thisComp.layer(“Null “+ clamp (parseInt(slider,10),1,4)).transform.position;one last thing on this one regards to the above-
instead of the slider on null 5 telling it which null it should follow, what if i had 4 more nulls, each null had its own slider, the nulls were called null 6 though 9, and when the slider on null 6 was > 1 then it would follow the position of null 1, and when the slider on null 7 was > 1 then it would follow the position of null 2 and so on all the way to null 4. does that make sense?
thanks!
-
Ben Wolfinsohn
November 26, 2012 at 6:43 ami thought i got it below, but it gives me an error – getting an error of – invalid numeric result (divide by zero?)
slider = thisComp.layer(“all head-body contols view 1”).effect(“turning”)(“Slider”) > 1;
comp(“body-head together comp Pre-comp 1”).layer(“Null “+ clamp (parseInt(slider,10),1,8)).transform.position; -
Dan Ebberts
November 26, 2012 at 8:06 amI don’t understand what you’re trying to do with the ” > 1″ part in the first line. It will turn your slider variable into a boolean with a value of true or false, which won’t work in the second line.
Dan
-
Ben Wolfinsohn
November 26, 2012 at 8:35 ammaybe i can explain a bit better what i’m trying to do –
I have 6 null layers, 1 though 6, with sliders in them.
I have a 7th null that has a slider.
when null 1 has a value greater then 1 in the slider it forces the 7th null to go to a value of 1
when null 2 has a value greater then 2 in the slider it forces the 7th null to go to a value of 2
and so on down the row….thats what i need if that makes sense.
thanks!
-
Dan Ebberts
November 26, 2012 at 7:31 pmMaybe something like this:
if (thisComp.layer(“Null 6”).effect(“Slider Control”)(“Slider”) > 6)
6
else if (thisComp.layer(“Null 5”).effect(“Slider Control”)(“Slider”) > 5)
5
else if (thisComp.layer(“Null 4”).effect(“Slider Control”)(“Slider”) > 4)
4
else if (thisComp.layer(“Null 3”).effect(“Slider Control”)(“Slider”) > 3)
3
else if (thisComp.layer(“Null 2”).effect(“Slider Control”)(“Slider”) > 2)
2
else if (thisComp.layer(“Null 1”).effect(“Slider Control”)(“Slider”) > 1)
1
else
0Dan
Reply to this Discussion! Login or Sign Up