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

share arb data between plugins

Community Beginner ,
Jan 16, 2025 Jan 16, 2025

Hi,

I have a 2 plugin of different types (say A and B). both have an arb parameter that consists of a 3x3 matrix (actualy 9 floats). When i try to connect both paramters via the whip tool in AE i get an expression error saying that paramters are of idfferent type.

 

Is there a way for 2 plugins instances (of different types) to connect through an arb paratmeters knowing that the 2 arb are of the same type ? I dont record a way of naming a type for an ARB (aside from refconPV).

 

Thank you

TOPICS
How to , SDK
425
Translate
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 , Jan 16, 2025 Jan 16, 2025

you get an effect ref using AEGP_GetLayerEffectByIndex with an AEGP_LayerH and the effect index on that layer.

 

if you need to consistently identify a specific instance of an effect, that's a lot trickier...

the way i go about it is to put some id in sequence data, and accessing it via AEGP_EffectCallGeneric. but even that is tricky as a duplicated effect will have the same id...

another way to go about it, is to rename some invisible param, but that doesn't survive reloading a project.

Translate
Community Expert ,
Jan 16, 2025 Jan 16, 2025

no way that i know of. AE assumes any 2 different can't be guaranteed to have the same structure and blocks the expression.

if you want to do it on the C side, then AEGP_GetNewStreamValue will allow you to read arb values from other effects.

Translate
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 ,
Jan 16, 2025 Jan 16, 2025

Hi. thank you very much for your answer. I was more or less expecting that behaviour from AE. I like your workaround using AEGP_GetNewStreamValue. But how can the user help plugin B to find plugin A ? In other words, how can in C/C++ code refer to the other plugin ? by name, type .... ? thx

Translate
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 ,
Jan 16, 2025 Jan 16, 2025

you get an effect ref using AEGP_GetLayerEffectByIndex with an AEGP_LayerH and the effect index on that layer.

 

if you need to consistently identify a specific instance of an effect, that's a lot trickier...

the way i go about it is to put some id in sequence data, and accessing it via AEGP_EffectCallGeneric. but even that is tricky as a duplicated effect will have the same id...

another way to go about it, is to rename some invisible param, but that doesn't survive reloading a project.

Translate
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 ,
Jan 17, 2025 Jan 17, 2025

Thank you again for the ideas. If i get it right, there is no way for a user to specify a specific instance of a plugin toa nother plugin. The closest thing would be for a plugin A to have a layer param from which the user can choose a layer that has a plugin B. then programmatically, we could iterate through layer and look for (let's say) the first instance of plugin B. 

Otherwise,  is it possible, in C++, to differenciate whether a param is drivven by a whip tool or not ?

thank you very much.

Translate
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 ,
Jan 17, 2025 Jan 17, 2025

you idea of using a layer param for the instance recogntion is excellent!  if it suits your needs, then it's awsome!

as for telling whether there's an expresion on a param or not, use: AEGP_GetExpressionState().

Translate
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 ,
Jan 17, 2025 Jan 17, 2025
LATEST

thank you for everything !!

Translate
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