Quantcast
Viewing all 73444 articles
Browse latest View live

PF_PathVertex and AEGP_MaskVertex

Hi!

 

My FX is applied on a layer with 2 Masks;

 

I'm trying to set 2nd Mask's shape according to 1st Mask's shape.

 

I can get vertices values from 1st Mask, but cannot set 2nd Mask's vertices according to them.

(I use: ERR(suites.MaskOutlineSuite2()->AEGP_SetMaskOutlineVertexInfo(mask_OutlineH, myIndex, OutVertexP));)

 

I get this error when I try to set the vertices values.

 

'A_Err (AEGP_MaskOutlineValH,AEGP_VertexIndex,const AEGP_MaskVertex *)' : cannot convert parameter 3 from 'PF_PathVertex' to 'const AEGP_MaskVertex *'

 

How can you convert 'PF_PathVertex' to 'const AEGP_MaskVertex *' ?

 

Any help will be really appreciated, cos' I'm really stucked...

 

Thanx

François

 

PS: I modify x and y values of vertices before trying to set 2nd Mask,

but the problem isn't there, my vertices values are still valid (I checked before asking :-) )


Layer Params in Effects

Hi,<br /><br />I don't (want to) know whether I'm too stupid to understand or it's Visual Studio's fault, but I can't seem to get my effect, which uses two layer parameters, to work. <br /><br />I want to compute my output image by taking the single pixel values for red, green and so on and multiplying them by my own rule (additional factors). <br /><br />My problem is, I don't really know how to start the iterate function and how and where to handle the pixel data from both my chosen layers. At the moment, my code looks like this:<br /><br />AllInfo          ai; //which is a struct containing 2 PF_LayerDefs<br /><br />ai.layerleftLD     = params[2]->u.ld;<br />ai.layerrightLD = params[3]->u.ld;<br /><br />ERR(suites.Iterate8Suite1()->iterate(in_data,<br />           0,<br />           (output->extent_hint.bottom - output->extent_hint.top),<br />           &params[0]->u.ld, //Why can't I just put &params[2]->u.ld here, which is equally a PF_LayerDef?<br />           NULL,<br />           (long)&ai, <br />           MyPixelFunc,<br />           output));<br /><br />In MyPixelFunc, I'm trying to access the two layers (just an example):<br /><br />register AllInfo* aiP = reinterpret_cast<AllInfo*>(refcon);<br />outP->red     = aiP->layerleftLD.data->red;<br /><br />And yes, I DO know this could be terribly wrong. After Effects tells me everytime. I can see myself that the problem is that for example params[2]->u.ld contains no data (width and height are 0). What I don't know is WHY. Please help me, I'm still a newbie...<br /><br />Note: would be nice if one of the samples in the next SDK would USE its layer parameter instead of only showing it in the EW... or haven't I seen this one?

Running AE from XCode on build won't load ExternalObject library

Hello All!  Long time no write in this forum.

 

I'm not sure if I should be posting this thread in the scripting forum or SDK forum, but I thought I would try here first since the problem I'm dealing with is related to my IDE—I think.

 

I'm modifying a plugin I've built, and it's building fine and loading fine in AE.  I'm using XCode, and I've configured my build "scheme" so that when I hit run, XCode builds my plugin, and then runs After Effects so I can debug the plugin code.  I've also built a ScriptUI panel that loads a separate C++ linked library I coded specifically for the ExtendScript ExternalObject interface.  If I run After Effects normally, by clicking its icon on my dock, the linked library loads into AE just fine.  However, when I build and run via XCode with my "scheme", AE runs, but when I load the ScriptUI, AE reports that it cannot find the object.  So, I thought it had maybe to do with the "Working Directory" in the scheme when I run AE from XCode, and I changed it to the AE directory on OSX, but that didn't seem to do the trick—the ExternalObject library still does not load correctly.

 

Does anybody have any insight as to why the ExternalObject library would load fine when running AE normally, but not when I run through XCode?

 

Thanks for your time and help!

 

—Arie

Question About Function

Dear After Effects community, I'm doing something wrong. I started with the skeleton example and changed it to do what I thought I wanted it to do, however it's not working. I changed the "MySimpleGainFunc8" and "MySimpleGainFunc16" to look like this:

 

MySimpleGainFunc16 (

  void  *refcon,

  A_long  xL,

  A_long  yL,

  PF_Pixel16  *inP,

  PF_Pixel16  *outP)

{

  PF_Err  err = PF_Err_NONE;

 

    PF_FpLong  tempR = 0;

    PF_FpLong   tempG   = 0;

    PF_FpLong   tempB   = 0;

 

    outP->alpha  = inP->alpha;

    outP->red  = inP->red + tempR * 0.5;

    outP->green  = inP->green  +  tempG * 0.5;

    outP->blue  = inP->blue  +  tempB * 0.5;

    tempR = inP->red + tempR * 0.5;

    tempG = inP->green  +  tempG * 0.5;

    tempB = inP->blue  +  tempB * 0.5;

 

  return err;

}

 

Now, what I want to happen, is for each frame, the color of each pixel in the previous frame would be averaged with the color of each respective pixel in the current frame. The function I have set up right now does not seem to be working properly. When I apply the effect to a composition, nothing happens at all. Can someone please help me to try to figure out where I'm going wrong. Thanks in advance!

Cost of being a AE Plugin Author?

Hi I am considering porting my OpenFX Plugin Rotobot to After Effects.

 

What will be the total cost per annum to be a plugin developer?

 

The Foundry have given me free Nuke licenses as a developer, chances are I could ask the same from Autodesk Flame, DaVinci Blackmagic Fusion etc etc.

 

It there any discount I can get as a small business?

 

It is not a huge cost, but I don't know if I am going to sell zero licenses of ten thousand per annum.

 

I am not trying to be rude just looking at the business decision of developing for Adobe.

 

Sam

 

Feel free to check my stuff out:

 

[deleted by mod]

PlexPanels Error

One of my users has reported a strange bug with my plugin. It's the only report I've had (and since it's a paid plugin I'd expect more of these reports if they occurred) and it's rather a difficult one to diagnose.

 

Basically upon applying my plugin, or loading a project containing it, then selecting the layer AE is displaying the error: 

Image may be NSFW.
Clik here to view.
plex_panels_error.JPG

...then freezing with the beachball and then crashing.

 

The part about selecting the layer above is important, since it's helped narrow the crash down to the UI thread. I'm assuming, since we've run a few tests that it's all to do with the custom UI in a couple of my module effects.

Interestingly this doesn't happen if he uses the plugin in AE CC2014, but does in every version after that. Was that the last version that didn't split the UI/render threads?

 

Also of note is that both his MacBook Pro and Mac Pro are using Nvidia GPUs. Now, my plugin makes no use of the GPU, apart from the custom UI, however that is 100% Drawbot.

 

Has anyone here ever had any experience with this issue? I've no idea what PlexPanels are either (Google reaps little-to-no reward here, and I'm not accessing anything known as PlexPanels in my code). Maybe someone from the Plabt might be able to shed some light on it?

 

I cannot recreate this issue on my own MacBook Air (Intel GPU).

 

Thanks, Christian

 

Here are his hardware/software stats:

MacBook Pro with 16 GB RAM running OSX 10.12.6 and the latest version of Ae CC 2018.

MacPro5,1 running 10.13.5 with a Titan X GPU and 128 GB RAM and the latest Ae CC 2018 (15.1.2)

Premiere Elements 9 plug-in not working

Premiere Elements 9 (MAC) is finding my plug-in "/Library/Application Support/Adobe/Common/Plug-ins/CS5/MediaCore" and I can see it on the spash screen when loading.

But I can't find my plugin anywhere in Premiere Elements.

I tried putting the EffectPreview file in with the plug-in, but that didn't work.

Where do the EffectPreview .png files go?

Are they named the same as with Premiere Elements 8 on Windows?

Cs5.5 Sdk Fails on Xcode 4 and and works on 3.2.6

Hi everyone, I'm having a bit of trouble with the ae cs5.5 sdk and haven't been able to find another thread with any answers so I figured I'd ask. I should mention I'm not a professional developer. I'm a vfx artist with a basic understanding of c and a bit of objective c. I'm trying to get the hang of this sdk because I was thinking of hiring someone to develop a plugin for me and want to better understand the complexity of what I need.

 

I downloaded the sdk from the adobe website and it's now residing inside my Developer>SDKs folder. When I open any of the sample projects I get a warning saying "missing base sdk Mac OSx 10.5 sdk" I fiddled around with the build setting and found that switching the base sdk setting to latest solves this problem. However if I try to build it it fails. It gives me this error.

 

"Command /Developer/usr/bin/Rez failed with exit code 3"

 

Also it says this"

 

Rez /Users/JackOnTheGo/Library/Developer/Xcode/DerivedData/Easy_Cheese-besjutzvbocldxauxmejtw tecnyj/Build/Intermediates/Easy_Cheese.build/Debug/Easy_Cheese.build/ResourceManagerResour ces/Objects/Easy_Cheese_PiPL.rsrc ../Easy_Cheese_PiPL.r

    cd "/Developer/SDKs/Adobe After Effects CS5.5 Mac SDK/Examples/AEGP/Easy_Cheese/Mac"

    /Developer/usr/bin/Rez -o /Users/JackOnTheGo/Library/Developer/Xcode/DerivedData/Easy_Cheese-besjutzvbocldxauxmejtw tecnyj/Build/Intermediates/Easy_Cheese.build/Debug/Easy_Cheese.build/ResourceManagerResour ces/Objects/Easy_Cheese_PiPL.rsrc -d SystemSevenOrLater=1 -useDF -script Roman -define __MACH__ -arch x86_64 -i /Users/JackOnTheGo/Library/Developer/Xcode/DerivedData/Easy_Cheese-besjutzvbocldxauxmejtw tecnyj/Build/Products/Debug -i "/Developer/SDKs/Adobe After Effects CS5.5 Mac SDK/Examples/AEGP/Easy_Cheese/Mac/../../../Util" -i /Users/JackOnTheGo/Library/Developer/Xcode/DerivedData/Easy_Cheese-besjutzvbocldxauxmejtw tecnyj/Build/Products/Debug -i /Users/JackOnTheGo/Library/Developer/Xcode/DerivedData/Easy_Cheese-besjutzvbocldxauxmejtw tecnyj/Build/Products/Debug/include -i ../../../Headers -i ../../../Headers/adobesdk -i ../../../Headers/SP -i ../../../Headers/Win -i ../../../Headers/adobesdk/config -i ../../../Headers/adobesdk/drawbotsuite -i ../../../Util -i ../../../Headers/SP -i ../../../Resources -isysroot /Developer/SDKs/MacOSX10.6.sdk "/Developer/SDKs/Adobe After Effects CS5.5 Mac SDK/Examples/AEGP/Easy_Cheese/Mac/../Easy_Cheese_PiPL.r"

 

/Developer/SDKs/Adobe After Effects CS5.5 Mac SDK/Examples/AEGP/Easy_Cheese/Mac/../Easy_Cheese_PiPL.r:1: ### /Developer/usr/bin/Rez - SysError 0 during open of "AEConfig.h".

Fatal Error!

/Developer/SDKs/Adobe After Effects CS5.5 Mac SDK/Examples/AEGP/Easy_Cheese/Mac/../Easy_Cheese_PiPL.r:1: ### /Developer/usr/bin/Rez - Fatal Error, can't recover.

AEConfig.h: ### /Developer/usr/bin/Rez - Since errors occurred, /Users/JackOnTheGo/Library/Developer/Xcode/DerivedData/Easy_Cheese-besjutzvbocldxauxmejtw tecnyj/Build/Intermediates/Easy_Cheese.build/Debug/Easy_Cheese.build/ResourceManagerResour ces/Objects/Easy_Cheese_PiPL.rsrc's resource fork was not written.

Command /Developer/usr/bin/Rez failed with exit code 3

If I use Xcode 3.2 it builds with a few warnings about several methods being deprecated.
I get exactly 36 warnings like this one:

warning: 'ICAGetChildCountPB' is deprecated


I'm using Xcode 4 on Mac OSx 10.6.7 and I'd rather not have to downgrade as I actually paid for Xcode 4
Any and all help is greatly appreciated

Quartz and Quickdraw with MacOS

Hello guys,

long time no posts...

 

I m trying to make my plugins running on Windows and Mac.

Basically it works... except for the UI part.

As for drawing rectangle and so on... i succeded to do it with quickdraw until CS4 and with drawBot with CS5

My problem is for circular handles, that i want to get stretched, rotated according to the Layer scale, rotation, zoom factor...

With windows, I succeed to get my stuff done using GDI+

 

void

getLayer2FrameMatrix(

    PF_FloatMatrix&            xform,

    const PF_InData        *in_data,

    const PF_EventExtra    *event_extra)

{

    event_extra->cbs.get_layer2comp_xform(event_extra->cbs.refcon, event_extra->contextH, in_data->current_time, in_data->time_scale, &xform);

    //need to nullify the translation column?

    //xform.set(tmp);

 

    //! Transforms the source coordinates in the current context to screen coordinates.

    //! Screen (frame) coordinates are affected by the current zoom level.

    PF_FixedPoint scale = { INT2FIX(1), INT2FIX(1) };

    event_extra->cbs.source_to_frame(event_extra->cbs.refcon, event_extra->contextH, &scale);

 

    float scaleX = static_cast<float>(FIX_2_FLOAT(scale.x));

    float scaleY = static_cast<float>(FIX_2_FLOAT(scale.y));

 

    xform.mat[0][0] *= scaleX;

    xform.mat[0][1] *= scaleY;

    xform.mat[1][0] *= scaleX;

    xform.mat[1][1] *= scaleY;

    xform.mat[2][0] *= scaleX;

    xform.mat[2][1] *= scaleY;

}

 

     PF_FixedPoint center ={cx ,cy};

     PF_FloatMatrix xform;       

     getLayer2FrameMatrix(xform, in_data, event_extraP);

         HDC hdc;

        PF_GET_CGRAF_DATA((*(event_extraP->contextH))->cgrafptr, PF_CGrafData_HDC, reinterpret_cast<void**>(&hdc));

        Gdiplus::Graphics g(hdc);

        Gdiplus::Pen pen(Gdiplus::Color(color.alpha, color.red, color.green, color.blue), 1);

        pen.SetDashStyle(static_cast<Gdiplus::DashStyle>(style));

        Gdiplus::Matrix mat(xform.mat[0][0], xform.mat[0][1], xform.mat[1][0], xform.mat[1][1], xform.mat[2][0], xform.mat[2][1]);

        g.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);

        g.SetTransform(&mat);

        g.DrawEllipse(&pen, center.x-cr, center.y-cr, cr+cr, cr+cr);

 

 

This is ok for windows and make the deal.

 

My problem occurs when i do it with Mac...

Of course drawbot with CS5 works perfectly. My problem is for anterior version of after effects.

 

With quickdraw there is no ways to make like with GDI+ and specify a matrix.

So I have two solution:

1) compute transform matrix, computing all the point of my circle, transform them with a transformation matrix, use the PaintPoly and FillPoly function

2) use Quartz and its context transformation matrix...

 

I thought that Quartz would work perfectly and simply...

but i was wrong.

The coordinate system is different....

Y is inverted, and the origin is not top left, but bottom left.

I tried to make it work anyways... but it did not...

So i just tried to understand what s happening. I tried to paint a rectangle at the origin of the coordinate system:

 

void *dp = (*(event_extraP->contextH))->cgrafptr;

CGrafPtr port = reinterpret_cast<CGrafPtr>(dp);

CGContextRef context;

OSStatus err = QDBeginCGContext (port, &context);

if (err== noErr){

            CGRect rect = CGRectMake ( 0,0,100,100);      

            CGAffineTransform userToDevice = CGContextGetUserSpaceToDeviceSpaceTransform (context);

            CGAffineTransform deviceToUser = CGAffineTransformInvert ( userToDevice);

            CGContextSetRGBFillColor (context, 1, 0, 0, 1);

            CGContextFillRect (context,rect)

            QDEndCGContext (port, &context);    

}

 

I get a red rectangle... but not on the top or bottom left corner, kind of in the middle of theleft edge of the layer...

 

Then I tried to go back to more basics  and tried

CGAffineTransform userToDevice = CGContextGetUserSpaceToDeviceSpaceTransform (context);
CGAffineTransform deviceToUser = CGAffineTransformInvert ( userToDevice);

to transform my rectangle, and i got in the top left corner of the panel containing the layer panel.

That would be helpfull if I could get the top left corner of the layer panel... But I did not find a way to get it

source_to_frame gives only zoom factor

and

layer_to_comp get the transformation into the layer panel...

 

I m really thinking about going back to the solution 1)...

 

Does anyone have any idea of how to use properly quartz inside after effects?

 

 

Sorry for the vague of my question.

Need help processing raw image data

I've found that I can access the raw input image through params[0]->u.ld and the output image that I can write to via the output parameter in the Render function. I get most of the information I need via the data, width, height and rowbytes members of these structs, but I can't figure out how to determine the pixel format or bit depth of the images. I would like to process the data from params[0]->u.ld.data and write it directly to output->data but I need to know the pixel format to correctly interpret the image data.

 

How can I go about finding the bit depth of the input/output images? Is there a way to make my plugin only support 128 bits per pixel floatin poing data?

Excluding Adjustment Layers from a Layer Param

Is there any way I can do this?

 

If not, how can I detect if the selected layer is an adjustment layer?

Trying to create a very simple script loop for Presets

Hi there,

 

VERY new to scripting but use a ton of AEscripts tools in After Effects.

 

I'm trying to create a very small script that will apply pre-sets all at the same time to a selected layer.

 

I currently have this but it doesn't seem to work. Scripts within the *** they are not in the script file.

 

*********************************

 

var presetList = [

 

'c:/Program Files/Adobe/Adobe After Effects CS6/Support Files/Presets/BrainStorm/Brainstorm Exposure Correction.ffx',

 

'c:/Program Files/Adobe/Adobe After Effects CS6/Support Files/Presets/BrainStorm/Brainstorm Screen Enhancer.ffx',

 

'c:/Program Files/Adobe/Adobe After Effects CS6/Support Files/Presets/BrainStorm/Brainstorm Primatte Keyer Default.ffx',

 

'c:/Program Files/Adobe/Adobe After Effects CS6/Support Files/Presets/BrainStorm/Brainstorm Samurai.ffx',

 

'c:/Program Files/Adobe/Adobe After Effects CS6/Support Files/Presets/BrainStorm/Colour Fix For Blacks.ffx',];

 

for (var i = 0; i < presetList.length; i++)

 

{

 

app.project.activeItem.selectedLayers[0].applyPreset(presetList[i]);

 

}

 

********************************

 

If I run it from a docked UI panel for scripts nothing happens, if I try it as a JavaScript button in FT ToolBar 2 it doesn't do anything, but if I launch it from the File/Run/Script route I just get an error saying that the ffx file is not a file or folder?

 

I've tried guessing different ways of writing the pre-set location but don't seem to be having any luck.

 

If anyone has an idea on how to get this working it would be awesome.

 

Thanks,

Query on Undo Set Stream flags.

Hi All,

          I'm using AEGP_SetStreamValue to update the value of the effect parameter. The Edit menu shows Undo Set Stream flags. Now if I Undo, nothing happens. I tried AEGP_StartUndoGroup() before I set the stream value. I end the undo group after setting the stream value using AGP_EndUndoGroup(). Still Edit menu is showing Undo Set Stream Flags.

          What is the issue? Any ideas?

 

Thanks,

Dheeraj.

world vs layer

I'm taking the fxphd course to get me starting and it's helping a lot in understanding how things work.  But I have a couple of concept questions.

 

1. what's the difference between a layer and a world?  The instructor said that the sdk calls a layer a world.  But in 3d math and opengl I think of world as something else.  And I see functions like GetLayerToWorldXform and I see the docs talking about layers.  So it makes me think that either I misunderstood him or he was simplifying things or was incorrect.

 

2. If I wanted to replicate the transform plugin and make an effect that can position and scale layers (but not apply any pixel effects), would that plugin only need to change a matrix or would it need to render pixels? Maybe it's in the docs and I don't know what to search for, but I can't seem to find an explanation of how to do this.

 

This is my thinking.. let's say I had a plugin that filled the layer/solid/whatever with a checkerboard.  I don't think moving this solid around in space or scaling it does anything to how that plugin is rendering that checkerboard.  It still gets rendered at render size first.  And then the layer position, rotation and scale, etc are transforming that layer as a last step during compositing.  Can I have a layer that either doesn't have a cmd_render or doesn't do anything in it?  Can I checkout the transformation matrix, change it and check it back in?

PF_PixelFormat Help

Hi gang;

 

I believe I am using the PF_Pixelformat function correctly, yet I am getting incorrect results.

 

My plugin should use 8 and 16 bits per channel color depths only.

 

So in the GlobalSetup I use the flag:

 

PF_OutFlag_DEEP_COLOR_AWARE;

 

Then, in my render function I declare the following:

 

AEGP_SuiteHandler suites(in_data->pica_basicP);

PF_WorldSuite2      *wsP  = NULL;

PF_PixelFormat      format = PF_PixelFormat_INVALID;

ERR(suites.Pica()->AcquireSuite(kPFWorldSuite, kPFWorldSuiteVersion2, (const void**)&wsP));

ERR(wsP->PF_GetPixelFormat(output, &format));

 

And finally, I can check my color depth mode by using:

 

if (format == PF_PixelFormat_ARGB32) // 8 bit

if (format == PF_PixelFormat_ARGB64) // 16 bit

if (format == PF_PixelFormat_ARGB128) // 32 bit (I am not using this color depth)

 

The problem is that when I test this in After Effects, it does not differentiate between 16 bit and 32 bit color mode. It tries to the generate the effect even if I switch to 32 bit color mode, and then crashes. Between 8 and 16, it certainly differentiates.

 

I should mention I am checking out another layer with this plugin but I don't think that could be the issue. What could I be doing wrong here?

 

Thanks in advance,

-Rich


transform_world() off-by-one-pixel issue

Here is the description of pixel problem for the forums:

 

What is the proper way to set up a matrix with transform_world() for doing a simple copy from a src_world to a dst_world mapping pixel (0,0) of the source to pixel (0,0) of the destination?

It would seem that the correct way to do this is to use an identity matrix however...

 

I have a strange "off-by-one pixel" issue that I'm seeing w/ transform_world().  Basically when I pass (essentially) the identity matrix to this function and attempt to copy from a source image to my destination image, I get a result that is off-by-one-pixel.

In AE, create a new composition w/ a single layer:
1) New Composition
2) New Layer -> Solid -> Make Composition Size -> OK

 

Then add an effect which copies from a user-specified layer using transform_world().  The matrix that I pass is just a scaling matrix to account for aspect ratio -- there is no translation.

My effect does the following:

 

{
    const PF_InData* data = context->data;
    PF_Err err = PF_Err_NONE;
    AEGP_SuiteHandler suites(data->pica_basicP);
   
    PF_CompositeMode compositeMode;
     PF_FloatMatrix mat;
    PF_FloatMatrix scale;
    PF_Rect dstRect;

 

    compositeMode.xfer      = PF_Xfer_COPY;
    compositeMode.rand_seed = 0; // not used for PF_Xfer_COPY
    compositeMode.opacity   = PF_MAX_CHAN8; // 0 - 255
     compositeMode.rgb_only  = FALSE;
    compositeMode.opacitySu = PF_MAX_CHAN16; // for deep color only

 

    // Load the transformation matrix.
    SetIdentityMatrix(&mat);

 

    // Aspect ratio scaling
     float downsamplex = data->downsample_x.den / (float)data->downsample_x.num;
    float downsampley = data->downsample_y.den / (float)data->downsample_y.num;
    float aspectratio = data->pixel_aspect_ratio.num / (float)data->pixel_aspect_ratio.den;
     ComputeScaleMatrix( 1.0f/(aspectratio * downsamplex),
                        1.0f/downsampley,
                        &scale );
    MultiplyMatrix( &scale, &mat, &mat );

 

    dstRect.bottom = (A_short)data->height-1;
     dstRect.top    = 0;
    dstRect.left   = 0;
    dstRect.right  = (A_short)data->width-1;

 

    ERR(suites.FillMatteSuite1()->fill(
        data->effect_ref,
        NULL,
        &dstRect,
         context->shapeStaging ));
    ERR(suites.WorldTransformSuite1()->transform_world(
        data->effect_ref,
        data->quality,
        PF_MF_Alpha_STRAIGHT,
        PF_Field_FRAME,
         &context->shapeLayerParam.u.ld,
        &compositeMode,
        NULL,
        &mat, 1,
        TRUE,
        &dstRect,
        context->shapeStaging ));

 

    return err;
}

 

Even if I use a pure identity matrix, the result is off-by-one.  The SDK guide is not too clear on where the center of a pixel is located

 

So what is the correct way to setup a matrix for the mapping I desire?  Is it necessary to apply a matrix that translates by (-0.5,-0.5) or (-1,-1).  Indeed it seems that applying a matrix that transforms by (-1,-1) produces the expected mapping result but I don't understand why this would be the case

 

 

You can see on the attached picture the one pixel black line around my sample

PiPL and code version mismatch warning

Hey, I was hoping someone could help me understand PiPL versions.  I have had some problems with a warning flag when I apply my plugin in after effects, getting a warning flag that says:

 

"effect has version mismatch.  Code version is 2.0 and PiPL version is 2.0 (108600) (25 :: 16)"

 

This is a pretty unhelpful message as 2.0 == 2.0. 

 

I've found I can make the error go away if I dutifully replicate the header and pipl versioning found on the adobe sdk examples, but this is kind of annoying and I'd like to understand it better. 

 

To load without error, my PiPL resource looks like this:

                    AE_PiPL_Version { 2, 0 },

                    AE_Effect_Version { 1048577 } /* 2.0 */

 

and my plugin header looks like this:

#define          MAJOR_VERSION                    2

#define          MINOR_VERSION                    0

#define          BUG_VERSION                    0

#define          STAGE_VERSION                    PF_Stage_DEVELOP

#define          BUILD_VERSION                    1

 

I'm guessing the "code version" the warning refers to is a concatenation of major and minor versions, and it seems the "PiPL version" the warning is reporting comes from AE_Effect_Version (1048577) and NOT AE_PiPL_Version (2,0). 

 

If I change ANY of the values in the plugin header (not just major/minor versions), I get the warning.  So I suspect the AE_Effect_Version number is some kind of a hash of all the version info (major, minor, bug, stage, build versions), and that the warning is a bit misleading. 

 

Can anyone explain more about that number, 1048577?  Is it some kind of hex value?  Thanks!

I'll go first, new AE CC 2015, is there a new SDK?

Haven't seen any posts anywhere linking to a new SDK for the new CC 2015 version of After Effects. 

Am I missing it or is it just not out yet?

 

I noticed a few things have changed, notably, I can't read my sequence data anymore on render calls. This might just mean I need to finally upgrade the plugin to set PF_OutFlag2_SUPPORTS_SMART_RENDER  and update the rendering logic. Not sure.

 

thanks

-Andy

Build Combined Effect and AEGP on Mac

Hi all,

 

My three-year-in-development plugin is ready for shipping (YAY!) with one small snag:

 

On Windows I've managed to build a single AEX that contains the effect plugins AND the AEGP that's required for performing the behind-the-scenes stuff when the effect is first applied (long story short, it adds the various modules needed by the render effect).

 

However on Mac, this doesn't work - the AEGP isn't being loaded by After Effects. I've checked that the relevant .cpp files are being compiled, so it's definitely being included in the .plugin file. As luck would have it I had to rebuild my info.plist file and spotted that there's a key called CFBundlePackageType with the value "eFKT". In AEGPs that is set to "AEgx". Is there a CFBundlePackageType that covers both Effect and AEGP (or am I barking up the wrong tree)?

 

It's not a deal-breaker - I can build the AEGP separately for Mac distribution if need be but I'd prefer a single .plugin if possible.

 

Thanks!

Plugin Cache Problem

Playing with my plugin settings is increasing memory footprint to the skies, easy reaches up to 4-5 GB in a matter of minute.

How can I stop AE from saving cached image for each param change I do?

Viewing all 73444 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>