Quantcast
Channel: Adobe Community : Popular Discussions - After Effects SDK
Viewing all 73444 articles
Browse latest View live

how to get key frame value?

$
0
0

hello,everyone:

     i have written a effect plugin according the adobe after effects sdk samples,i just want to use AE's Graph Edit panel to edit key frames and get the line data. now i have a question,how to get the line data? any suggestion will be appreciated.

thanks


CreatePanelHook called twice???!

$
0
0

Hi All,

 

I've noticed very strange behavior of the CreatePanelHook call.

 

 

Right after testing my plugin with AE CC 2015 I encountered into an extremely strange behavior with AE CC 2014.

 

When I open my panel from the menu, the "CreatePanelHook" function called twice. However, if the panel was already open in the previous execution of After Effects, the "CreatePanelHook" called only once.

 

Any ideas why that can happen? How can I avoid that??

 

Best regards,

Yuri

PF_PUI_DISABLED does not disable slider on setup

$
0
0

Newbie question, which I hope have a simpel answer :-)

 

When I setup my slider I cannot disable it by default in ParamsSetup:

 

PF_ADD_FLOAT_SLIDERX( "Custom Aspect Ratio",

1, // min

5, // max

1, // slider min

5, // slider max

1, // default

PF_Precision_HUNDREDTHS,

PF_PUI_DISABLED, //this does nothing, it is still visible

CUSTOM_ASPECT_DISK_ID);

 

The PF_PUI_DISABLED flag does not disable it, while the other parameters do what they are expected to. I can enable/disable it on events in ParamChange:

 

AEGP_SuiteHandler suites(in_data->pica_basicP); //Call helper suites (should this be done outside the if-else?)

//Get selected format

FORMAT format = (FORMAT)(params[FIRST_STRETCHFORMAT]->u.pd.value-1);

PF_ParamDef aspectParam = *(params[FIRST_CUSTOM_ASPECT]);

if(format == FORMAT::CUSTOM)

     aspectParam.ui_flags &= ~PF_PUI_DISABLED;

else

     aspectParam.ui_flags |= PF_PUI_DISABLED;

ERR(suites.ParamUtilsSuite3()->PF_UpdateParamUI(in_data->effect_ref, FIRST_CUSTOM_ASPECT, &aspectParam));

 

I somehow get the feeling, that the disable flag should be set some other way initially rather than in the slider definition.

 

 

Help is greatly appreciated :-)

 

 

 

 

 

after effects and element 3d v2

$
0
0

i installed element 3d v2 but when i apply it first it shows a debug error and then "after effects error invalid filter (25 :: 3)"

i have 2GB geforce GT 610 graphic card

win 7

i3 3.3 ghz

please help

Can I get frames by type, like I-Frames, P-Frame, B-Frame?

$
0
0

Is it possible to do something only with chosen type of frame?

PF_CreateNewAppProgressDialog - how to use it?

$
0
0

Hi!

I am trying to figure out how to use PF_CreateNewAppProgressDialog().

I get an After Effects error: bad PF_ProgPtr (25::2002) when calling it

CODE:

 

    PFAppSuite6 *pfApp = NULL;
    A_UTF16Char   title[256] ,
                        button[256];
    PF_AppProgressDialogP prog_dlgP = NULL;
    basic_dataP->pica_basicP->AcquireSuite(kPFEffectUISuite, kPFEffectUISuiteVersion1, (const void**)&pfApp);
 
    if(pfApp)
    {
        pfApp->PF_CreateNewAppProgressDialog(title, button, true, &prog_dlgP);
         // After Effects error: bad PF_ProgPtr (25::2002) here
      
        if(prog_dlgP)
        {
            pfApp->PF_AppProgressDialogUpdate(prog_dlgP, 0, 0);
        }
      
        basic_dataP->pica_basicP->ReleaseSuite(kPFEffectUISuite, kPFEffectUISuiteVersion1);
    }

 

Thanks

JS

Best way to create a distortion plugin for Premiere?

$
0
0

Hi all,

 

I am working on an effect plugin (for Premiere Pro, but using the AE SDK) that will distort video according to some mathematical formula.  This is to unwarp annular video from a catadioptric lens into a spherical panorama.

 

The effect works fine, but rendering is very slow.  I am looking for some advice on possible ways to increase the speed.

 

Here's what I'm doing:

 

  • In Render, I determine the output height of the panorama based on the output width (outputP->width).  I create a map (really two arrays, one for X and one for Y), containing the floating-point pixel offsets into the source video frame for each pixel in the destination.  Currently, I create the map on each render.  I would like to create it once and leave it alone unless input parameters change, but I've noticed through debugging that Premiere changes the dimensions of outputP between a few different values when previewing, so I don't see a way that caching the map will speed this up, unless I want to cache several maps and do checks based on the dimensions.
  • Then I use the Iterate8Suite1()->iterate function to iterate over each pixel, passing in the map and determining the destination pixel's color from the offsets into the source.  If quality is set to high, I interpolate the pixel's color values bicubically.  This requires sampling the surrounding pixels and running the values and floating-point offsets through an algorithm.  This is the slowest part-- interpolating this way doubles the render time over a nearest neighbor implementation.

 

First, I'm wondering if I'm approaching this the right way.  I don't see any similar distortion effects in the SDK examples so I'm shooting in the dark with regards to method.  Is there a better way to accomplish the distortion than producing a map and iterating pixel by pixel (some kind of matrix transform method, or using something like OpenGL)?

 

Second, rather than rolling my own interpolation method, is there anything in the SDK that can do this more efficiently?  Subpixel sampling in Sampling8Suite1 seemed promising, but I get exceptions when I try to use it and I see in the documentation that it doesn't seem to be supported in Premiere yet.

 

I am currently using the CS6 SDK but would appreciate any suggestions related to the latest CC SDK as well.

 

Thanks in advance for any advice!

Conflict parameters in duplicate plugin

$
0
0

Well.. Another question.

 

I've done plugin and stuck with next question. If I duplicate my plugin on the same layer and change of any parameter, they begin to clash.


Details:
Plugin with moving particles and with flag PF_OutFlag_NON_PARAM_VARY. In every Render() call I check frame number and, if UI parameters changed, change particles behavior. If I duplicate my plugin one of them responds to the another UI settings.

For particles and they behaviors I create separate classes without nests, extends or implements. Also I use singleton class with UI parameters.

 

Why plugins did behave with duplicate?

Must I use handles for every object or class? Or am I wrong to assess the situation?

 

Thank you!

 

With warm,

Mike.


AEIO plugin. Importing my multilayer file format.

$
0
0

Hello, I need help!!

 

I'm using the IO sample to implement my file format importer, but in that example there are not pixel data loading from any file, only a "procedural" pixel data is created in the My_DrawSparseFrame function.

 

I have readed the After Effects SDK Guide and I have no idea about how and where I have to store my pixel data and how can I create new layers with my buffers.

 

I'm sorry but... that SDK is very very dark...

AEGP_ExecuteScript

$
0
0

Hello

 

I have a problem using script from sdk.

 

When in script editor I run this code, my project load with any problem

 

function openProject(filename) {

     if (app.project != NULL)

       app.project.close(CloseOptions.DO_NOT_SAVE_CHANGES);

     var myFile = File(filename);

     if (myFile.exists)

       app.open(myFile);

     else

       writeLn("no such file or directory!");

}

 

openProject("C:\\MonDossier\\bandeau défilant.aep");

But when my plugin call, this function, After Effect crash "an strange error with ae.blitpipe"

/* some includes here! */

#include <AEGP_SuiteHandler.h>

#include <AE_GeneralPlug.h>

 

 

#define OPEN_PROJECT "function openProject(filename) { \

if (app.project != NULL) \

          app.project.close(CloseOptions.DO_NOT_SAVE_CHANGES); \

var myFile = File(filename); \

if (myFile.exists) \

          app.open(myFile); \

else \

          writeLn(\"no such file or directory!\"); \

} \

openProject(\"%s\");"

 

 

std::string Do(SPBasicSuite* sp, AEGP_PluginID id)

{

          std::string lReturnedValue;

 

 

          try

          {

    A_Err err = A_Err_NONE;

    AEGP_SuiteHandler(sp);

    AEGP_MemHandle resultMemH = NULL, errorMemH = NULL;

    A_char *resultAC = NULL, *errorAC = NULL;

    A_char scriptAC[AEGP_MAX_MARKER_URL_SIZE] = {'\0'};

    A_bool encodingB = TRUE;          // my file to load may have non ascii char

 

 

    sprintf(scriptAC, OPEN_PROJECT, "C:\\\\MonDossier\\\\bandeau d\u00E9filant.aep");

    ERR(suites.UtilitySuite5()->AEGP_ExecuteScript(id, scriptAC, encodingB, &resultMemH, &errorMemH));

    bool lAnErrorOccured = (err == A_Err_NONE);

    ERR(suites.MemorySuite1()->AEGP_LockMemHandle(resultMemH, reinterpret_cast<void**>(&resultAC)));

    ERR(suites.MemorySuite1()->AEGP_LockMemHandle(errorMemH, reinterpret_cast<void**>(&errorAC)));

 

 

    lReturnedValue.assign(resultAC, strlen(resultAC));

    if (lAnErrorOccured)

    {

      lReturnedValue.append("ERROR: ");

      lReturnedValue.append(errorAC, strlen(errorAC));

    }

 

    ERR(suites.MemorySuite1()->AEGP_FreeMemHandle(resultMemH));

    ERR(suites.MemorySuite1()->AEGP_FreeMemHandle(errorMemH));

          }

          catch(...)

          {

    /* Do something here! */

          }

 

          return lReturnedValue;

}

 

Error on exit: Leaked effect refs

$
0
0

Hello,

I have error message "After Effects: AEGP Plugin    Updater: Leaked effect refs (5027::12)"

when exit AfterEffects with saved project. The error appears only if there are two or more instanses of my effect. One instance is ok.

After effects ends it's work correctly. Except this annoying message.

What does it mean? Does anybody know how to fix it?

dp_info.jpg

Put a picture(like .png)into Composition Window .

$
0
0

Hi,everybody!

Firstly,i have to admit that I did a 'stupid' thing...I am trying to do a simple plugin for 'play'...

Now,i am getting in the trouble.  So i come here for some help.

I want to konw how i can let my plugin put a picture(i have edited) into composition window.(like the plugin'Optical Flares', but i just let my plugin put one picture.)

And i can do some simple adjustment(such as width,height,center).

I am puzzled about the code.If someone can provide an example or way,it will be very helpful.

(I am a CS5 user)

 

Thank You!

Setting A_UTF16Char to a file path

$
0
0

I'm trying to use AEGP_OpenProjectFromPath to open a manualy specificed .aep

 

I've tried this with error:

 

const A_UTF16Char *pathZ = reinterpret_cast<const A_UTF16Char *>(L"/transfer_test.aep");
suites.ProjSuite6()->AEGP_OpenProjectFromPath(pathZ, &my_projH);

 

After Effects error: Can't import file "var": unsupported filetype or extension. ( 0 :: 1 )

 

 

There are no examples that use AEGP_ProjSuite6's IO functions.

 

Any help would be great. Thanks.

ProjDumper : {unexpected match name searched for in group} ( 29 :: 0 )

$
0
0

Using ProjDumper example from the SDK I consistently get the following error:

"After Effects error: internal verification failure, sorry! {unexpected match name searched for in group}

( 29 :: 0 )".

Can anyone shed a light?

Arbitrary Data Flattening in Premiere Pro

$
0
0

Hi All,

 

I managed to implement an arbitrary param for my aftereffects/premiere plugin by copying code from the ColorGrid example in the SDK as described in Arbitrary / Sequence Data questions. I set the arbitrary param during the PF_Cmd_USER_CHANGED_PARAM by setting the PF_Change_Flag_CHANGED_VALUE and more or less the same code as decribed in the last post of Saving to arbitrary parameter.

 

In After Effects it works nicely. I can change the param and it saves and reopens nicely, but in Premiere I cannot get it to work for some reason:

This is what I do:

 

1. When params get setup the arbitrary param is set to it's default value correctly

2. it also calls the unflatten function for every thread

3. on frame setup I get the parameter.. it's set to the default

4. When I change the param during PF_CMD_USER_CHANGED_PARAM I set the PF_Change_Flag_CHANGED_VALUE and before store the new data in the handle

5. the flatten function is called and the unflatten function is called for every thread (until here everything works as expected)

BUT NOW when the frame setup is called the next time my arb param is still at the default.

 

As it is working in after effects I was thinking, that the problem is connected to the fact, that Premiere clones the plugin data to multiple threads while rendering, an that I may flatten the param in the main thread, but that this flattened data is not "seen" by the render threads for some reason, even if the unflatten function is called for every thread after setting the value.

 

I just dont really understand how the arbitrary param is working and would be very grateful for some documentation pointers or a more general introduction on how one should set, get, save and load the data.

 

Cheers,

 

Martin


How to get AEGP_EffectRefH within the custom effect?

$
0
0

Hi,

    I want to get the AEGP_EffectRefH of the custom effect applied. This is what I'm trying to do:

 

In global setup of custom effect:

 

AEGP_GlobalRefcon globalRef    =    NULL;

 

const A_char*        pluginName    =    "ADBE Custom Effect";
   
AEGP_SuiteHandler    suites(in_data->pica_basicP);
   
suites.UtilitySuite5()->AEGP_RegisterWithAEGP(globalRef, pluginName, &S_Plugin_ID );

 

After getting the plugin ID, I do this in a function to get the AEGP_EffectRefH:

 

I call this function when the custom effect is added:

 

void function()

{

     AEGP_EffectRefH        effect_refH        =    NULL;
           
     AEGP_SuiteHandler    suites(in_data->pica_basicP);           
           
     ERR(suites.PFInterfaceSuite1()->AEGP_GetNewEffectForEffect(S_Plugin_ID, in_data->effect_ref, &effect_refH));

}

 

But the effect_refH returned is NULL. AE pops up a dialog saying

 

After Effects error: internal verification failure, sorry! {child not found in parent}

 

(29 :: 0)

 

What am I doing wrong?

 

Thanks,

Dheeraj

Convolve and 32bit

$
0
0

Is the convolve function from the World Transform Suite compatible with 32bit color? I am trying to implement this function using the examples as a base. I am able to get it working with 8bit and 16bit but not 32bit as the color seems to return only black and white. I tried setting the kernel flags for the fixed point array and passing that but that flag does not seem to be implemented yet.

 

Can anyone confirm that the convolve function does not work with 32bit?

My plugin just stopped loading (Windows)

$
0
0

Hi all.

 

I've recently taken over a codebase for an AEGP plugin. I am also new to AE in general. I've written a bunch of plugins for 3DSMAX over the years so I have some knowledge about how DLLs work and so forth but this one stumps me.

 

When I first arrived at this new gig, the debugging process went something like, "compile the stuff, then copy the AEX and the PDB to Support Files\Plugins, then copy other DLLs to the Support Files directory." I thought that was error prone and tedious at the very least so I set up symlinks (using mklink in a batch file) so that I could iterate on the plugins, leave them in the output folders and then AE (both CS6 and CC) would be able to automatically have the most recent build. This worked great. For two weeks.

 

Then a week went by where I didn't use AE or work on the plugin. Who knows what all changed in that time; a lot no doubt since I work on a big team but the plugin doesn't rely on any "external" code that might be getting changed. However, the plugin no longer loads.


As in, I open Process Monitor and the AEX file is not even touched. AE appears to be iterating the directory but then choosing not to even look at my plugin.

 

I undid the symlinks and manually copied all of the files. Same behavior. I copied the plugin from someone else and it loads but gives one of those errors that makes no sense; I haven't looked at it further because it's enough to know that there's something in my build that's just making the plugin get skipped.

 

I looked at the files (his and mine) in depends.exe and they both have an entry point named the same (EntryPointFunc per the sample plugins). I even rolled my code back to the last point in time when I know that it worked and got the same behavior.

 

I looked, just to be sure, and my VirtualStore folder is empty. At least, it appears to be. I'm not really sure how that works but let's just say I'm really bummed that there's no way to configure the plugin folder inside of AE.

 

I'm sort of at a complete loss as to how to diagnose this. Do any of you pros who've been at this a while have any tips for sorting this out?

 

While I'm at it, I have six folders in %APPDATA%\Adobe with "After Effects" in their names; all but one have some "garbage" unicode character prefixing the text "After Effects" and inside of each of them is a folder with a version number (i.e. 11.0 or 12.0) and inside all of the garbage-looking folders' version folders is a file called AfterEffects##.ini, where ## matches the version. (These folder names are not confidence inspiring.)

 

I just noticed the Plugin Loading.log in %APPDATA%\After Effects\11.0 and it has no mention of my plugin. Again- my plugin had been loading just fine. It just ... stopped and I'm not sure how to diagnose it from here.

 

TIA,

-tom!

Announcement.

$
0
0

any tips and tricks are welcome. :-D

puzzi03.jpg

AEIO plugin not loaded on macintosh

$
0
0

Hello,

 

I have AEIO plugin that works fine on windows. When I import it to macintosh, it does not work (even that it is loaded, because it complains if I put a corrupted file)

 

I also tried the example of Projector and it is not working either.

 

The plugins are on /Applications/Adobe After Effects CC 2015/Plug-ins

(also tried on /Applications/Adobe After Effects CC 2015.app/Contents/Plug-ins)

 

I can supply my xcode project or plugin if necessary

 

My macintosh is MacMini with OSX 10.9.5

 

Thanks

Viewing all 73444 articles
Browse latest View live