• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

ref to expression controller in another comp results in 0

Community Beginner ,
Apr 27, 2021 Apr 27, 2021

Copy link to clipboard

Copied

I have an expression that references an expression controller (slider) on another layer, in another comp. 

It was working fine until randomly the reference the the slider will only return 0, even though the slider has a non-zero value.

 

There is no error, and when I rename the expression controller it auto-updates the name in my reference. So clearly it still pointed correctly. If I reference the same controller from an expression within the same comp it returns the actual value. 

 

My assumption is this is a bug. But I dont know how to get around it. I would appreciate any help.

TOPICS
Expressions

Views

942

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Apr 27, 2021 Apr 27, 2021

If the slider is being referenced from a comp that's nested as a layer in the comp with the slider, and the slider is animated (keyframed or expression), and the nested comp layer doesn't start at time 0, you have to adjust your expression, using something like this:

C = comp("Main Comp");
ctrl = C.layer("Controls").effect("Slider Control")("Slider");
L = C.layer(thisComp.name);
ctrl.valueAtTime(time + L.startTime)

 

Votes

Translate

Translate
Community Expert ,
Apr 27, 2021 Apr 27, 2021

Copy link to clipboard

Copied

It could be a timing issue. We need to see a flowchart showing the relationship and we need to see the modified properties of the layers giving you problems. Press 'uu' to reveal all modified properties, share the expressions, and give us your AE version down to the last decimal point and your system and os specs. 

 

I have a couple of expressions in a fairly complex extended graphics project that is suffering timing issues that cause a crash when you scrub through the timeline quickly. I did find a workaround, but it took removing some of the references to time in the expressions.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 27, 2021 Apr 27, 2021

Copy link to clipboard

Copied

I'm running Windows 10 Pro version 2004 (KB4023057), Intel i9-9900k, Nvidia 2080ti, AE 17.6.0 (build 46).

 

I have many (probably too many) expressions controlling a decently complex project. Too many to paste here but I can describe exactly what is going on that is relevant to this issue.

 

- I have a comp with a null with many expression controllers; mostly sliders that animate 0-100 with keyframes.

- In that comp I have a precomp that has many layers referencing one of the sliders. this reference results in 0.

- Even if I create a text layer in the precomp and set the sourcetext to the value of the slider, it will return 0.

- If I create a text layer in the main comp and set the sourcetext to the value of the slider, it will return the true value.

- I have a single reference to time in another layer which is totally unrelated. removing this doesnt change my outcome.

Let me know if thats enough information. Just to be clear, all was working fine for weeks until about an hour ago. In fact if I open an older version the same expression is working.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 27, 2021 Apr 27, 2021

Copy link to clipboard

Copied

If the slider is being referenced from a comp that's nested as a layer in the comp with the slider, and the slider is animated (keyframed or expression), and the nested comp layer doesn't start at time 0, you have to adjust your expression, using something like this:

C = comp("Main Comp");
ctrl = C.layer("Controls").effect("Slider Control")("Slider");
L = C.layer(thisComp.name);
ctrl.valueAtTime(time + L.startTime)

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 27, 2021 Apr 27, 2021

Copy link to clipboard

Copied

This seems to be my issue. Since it stopped working when I slid the layers over on my timeline.

 

When I move the both back to start at time 0, my expression works agian. 

 

Trying to implement your solution now. 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 27, 2021 Apr 27, 2021

Copy link to clipboard

Copied

LATEST

Okay as I suspected this fixed my issue. 

 

Thanks for teaching me something new.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines