Is there a specific reason you are doing time remap?
I would make expression controls on the main node, and then all nested layers will have their opacities controlled by those controls using expressions.
So “Eyes front open”, “Eyes front inbetween”, “Eyes front closed”, “Eyes front down” would have the following, respectively:
// "Eyes front open":
if ( comp("ellen_head").layer("head_CNTRL").effect("Eye_slider")("Slider") == 1 ) { opacity = 100 } else { opacity = 0 }
// "Eyes front inbetween:
if ( comp("ellen_head").layer("head_CNTRL").effect("Eye_slider")("Slider") == 2 ) { opacity = 100 } else { opacity = 0 }
// "Eyes front closed":
if ( comp("ellen_head").layer("head_CNTRL").effect("Eye_slider")("Slider") == 3 ) { opacity = 100 } else { opacity = 0 }
// "Eyes front down":
if ( comp("ellen_head").layer("head_CNTRL").effect("Eye_slider")("Slider") == 4 ) { opacity = 100 } else { opacity = 0 }
Hold shift while using sliders to make it snap to integers.
And you would do that in every comp that has those features. I do some more complicated layer name parsing sometimes to be able to name the layer with the the control I want it to follow and the expression will read the layer’s name to get the control:
so “eyes_front_open-head_cntrl-eye_slider” could be a layer name and with
L = thisLayer.name.split("-"); // Will split the layer name into three chunks (separated by "-").
// L[0] = eyes_front_open
// L[1] = head_cntrl
// L[2] = eye_slider
if ( comp("ellen_head").layer( L[1] ).effect( L[2] )("Slider") == 4 ) { opacity = 100 } else { opacity = 0 }
I tend to use short names, like “eyes” just become “e”, “head” just becomes “h” and so forth. If you are going to use expressions/scripts, be consistent with names and separators. I tend to use underscores instead of spaces, and hyphens to separate stuff.
–
James
Mac Pro 4,1 Quad Core 2.66