Skip to main content
dkt0
Inspiring
March 26, 2025
Question

Motion Blur - Accessing Layer's Transforms

  • March 26, 2025
  • 2 replies
  • 6976 views

Yo

 

I've been trying for quite some time to make Motion Blur as a normal effect plug-in and I want to ask if it is even possible. Can I access the layer's transforms through a normal effect plug-in? What do I need to use?

 

I wanna make sure if it is possible or not. The only other way is making it an AEGP, right? I would like to avoid that.

2 replies

Warren Heaton
Community Expert
Community Expert
March 26, 2025

I don't know if this will help with what you are trying to achive or not, but the third-party plugin ReelSmart Motion Blur by RE:Vision Effects is well known for applying a natural-looking motion blur via an effect as an alternative to the built-in Motion Blur Switch.

dkt0
dkt0Author
Inspiring
March 26, 2025

I know about RSMB, but I want to code my own Motion Blur plugin. Thanks anyway.

Community Expert
March 26, 2025

either AEGP_GetLayerToWorldXform or AEGP_GetLayerToWorldXformFromView will get you tra transformation for a given time, which you can use to calc motion blur.

however, as for the rest of your question, it's a bit too broad. can you explain what you're trying to do in more detail?

dkt0
dkt0Author
Inspiring
March 26, 2025

Thanks. 

 

At least now I know I can make it. Any simple example of how to use those to access the transforms? Would be helpful tbh.

 

And for the rest of the question, I was talking about making Motion Blur as an AEGP (Artisan ig) if making it a normal effect plugin was not an option.

 

Also, for a tiles effect, I use the same stuff, right? I need to access the layer's transforms for that one too.

dkt0
dkt0Author
Inspiring
March 27, 2025

this is how i check it out, in a rather generalized apporach (fitting for extnetion to premier where other pixel formats are used as well). pass the input or output buffer as an arg to PF_GetPixelFormat (after checking them out, of course).

PF_PixelFormat	pixelFormat;
AEGP_WorldType	worldType;

PF_WorldSuite2 *wsP = NULL;
ERR(suites.Pica()->AcquireSuite(kPFWorldSuite, kPFWorldSuiteVersion2, (const void**)&wsP));
ERR(wsP->PF_GetPixelFormat(output, &pixelFormat));
ERR(suites.Pica()->ReleaseSuite(kPFWorldSuite, kPFWorldSuiteVersion2));

switch (AEInf.renderInf.pixelFormat)
{
case PF_PixelFormat_ARGB128:
	worldType = AEGP_WorldType_32;
	break;
case PF_PixelFormat_ARGB64:
	worldType = AEGP_WorldType_16;
	break;
case PF_PixelFormat_ARGB32:
	worldType = AEGP_WorldType_8;
	break;
}

 


Thanks, that is actually extremely helpful.

 

Now another question, why do my plugins interact so weird with each other? What do I need to change? Like why does the Exposure/Gamma or the Directional Blur or the Pinch/Bulge modify the layer's position? Those should not interact with the position at all. They only do that when I add one of the first 3 effects, if I just add them individually, they don't interact with the position. What do I need to change to make them not interact with each other that way? 

 

(I hope I can at least upload screenshots)

 

Well if they don't get attached, the problem is that my plugins interact weird with each other. Plugins that normally do not change the layer's position, change it when I apply my transform plugins.