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

my plugin can be loaded in my machine,but cann't be loaded in other machines

$
0
0

i put my plugin in the AE's plugin dir,my plugin can be loaded by AE and it acts normally,but i put my plugin in AE's plugin dir in other machines(x64),it cann't be loaded normally,the error code is 193(win10) and 126(win8).what's the problem? thanks in advance.


Deleting all keyframes

$
0
0

What is the best way to delete all keyframes of a stream? Calling KeyframeSuite3()->AEGP_DeleteKeyframe for every key works, but takes quite a bit of time. I was hoping to just virtually toggle the 'stopwatch' button, but I can't seem to find the API for that.

 

Any ideas?

downward compatibility CS4->CS3

$
0
0

Hi,

 

I wrote a plugin with your current CS4-SDK. It works on AE CS4 but on CS3 it doesn't.

Is there a way to get it downward compatible, or do I have to download several SDKs and compile it for each version?

 

thx

 

mts

Reload plugin after building...

$
0
0

Would like to enquire about "SLICK DEBUGGING TRICKS" in After Effects SDK Guide (in pdf) for AE CS5 (version 10). Perhaps somebody is successful following the steps!?

I see a few problems as follows:

 

1) AE application keeps a file lock on Filter plugins (or plug-ins)

 

even if one could overwrite an effect plugin when AE process is running...

 

2) Purge All (in menu Purge -> All or Ctrl - Alt - key '/' on the numpad) does not reload the plugin; in fact this is being called in the following order:

    PF_Cmd_FRAME_SETUP,
    PF_Cmd_RENDER,
    PF_Cmd_FRAME_SETDOWN,

no request for PF_Cmd_GLOBAL_SETUP or PF_Cmd_GLOBAL_SETDOWN is made. also this thread already mentions it: http://forums.adobe.com/click.jspa?searchID=3907456&objectType=2&objectID=1798812

 

 

3) VS does not allow Edit & Continue or x64, and CS5 seems to be x64 only - how could you make use of this functionality? or documentation does not seem to be updated completely for SDK for CS5?

 

Greetings

 

mike

after effects and OLE automation

$
0
0

hi all

 

i m new to after effects and i m developing plugin in 3d software which will access after effects components,

is it possible to access after effects functions using OLE automation ?

 

i've seen OLE automation in photoshop and acrobat reader, but not in AE.

 

is there any other way ?

 

any advice will be appreciated

 

thanks and regards

mohasin

iterate_origin question

$
0
0

I've duplicated the shifter project. I'm in the smartRender function.

I'm getting an error, which... is not even remotely straightforward.

 

on these calls (exactly the same code in the original project), where it says: ShiftImage8, error.

it's  complaining: Use of undeclared identifier 'ShiftImage8'

the identifier is supposed to be a reference to a function, I get that. it's used by the iteration, repeatedly calls "SiftImage8" with new data. I get that.

the problem is: it. does. not. compile. Gives an error.  and there. is. no. indication. of. the. issue.

 

ERR(suites.Iterate8Suite1()->iterate_origin( in_data,

                                             0,

                                             output_worldP->height,

                                             input_worldP,

                                             &output_worldP->extent_hint,

                                             &origin,

                                             (void*)(infoP),

                                             ShiftImage8,

                                             output_worldP));

 

the only other information is :

the error points to a file called: AE_macros.h

specifically:

#ifndef ERR

  #define ERR(FUNC) do { if (!err) { err = (FUNC); } } while (0)

#endif

 

 

need help, AE SDK is not very clear on what it's doing.

compositing an image into the layer with rotation?

$
0
0

plugin newbie,

looking for information about copying an image (a relatively small layer, selected in a  menu)

into my effected layer, with rotation.

 

currently using :

WorldTransformSuite1()->composite_rect (

to do my copy, but I do not see anything about a transform matrix or a way to transform the world prior to doing the copy (with any of the different macros I found.)

 

what am I missing?

 

thnx,

-td

Supersampling

$
0
0

Hey everyone,

 

I'm trying to implement something like RE:Map and I pretty much have it working close to perfect.

The issue no is that even using 16 bit UV pass edges stay jagged and I'd like to do some supersampling, but I have no clue on what the best way forward is.

 

The code was clean and readable until I started hacking away at giving supersampling a go. :/

This is the mess I've currently going. (Note this is my first time playing around with the SDK.)

 

static PF_Err
RemapFunc16(  void *refcon,  A_long xL,  A_long yL,  PF_Pixel16 *in,  PF_Pixel16 *out)
{  PF_Err err = PF_Err_NONE;  double tmp_u, tmp_v;  PF_Fixed sample_u, sample_v;  RemapInfo *contextP = reinterpret_cast<RemapInfo*>(refcon);  if (contextP)  {  // Define `in_data` (required for PF_SUBPIXEL_SAMPLE)  PF_InData *in_data = contextP->in_data;  AEGP_SuiteHandler suites(in_data->pica_basicP);  if (contextP->supersamplingMode != 1) // Supersampling!?  {  int ss;  if (contextP->supersamplingMode == 2) ss = 2; // 2x Supersampling!  else if (contextP->supersamplingMode == 3) ss = 4; // 4x Supersampling!  else if (contextP->supersamplingMode == 4) ss = 8; // 8x Supersampling!  double divisor = 1 / ((double)ss + 2.0);  int half = ss / 2;  double src_u, src_v;  int totalSamples = ss * ss;  double sampleWeight = 1.0 / (double)totalSamples;  A_u_short red = 0;  A_u_short green = 0;  A_u_short blue = 0;  A_u_short alpha = 0;  A_long xLF = ((A_long)xL << 16);  A_long yLF = ((A_long)yL << 16);  PF_Fixed sample_src_u, sample_src_v;  //PF_Fixed sample_u, sample_v;  for (int x = -half; x <= half; x++)  {  // Get supersampled u source  src_u = (double)x * divisor;  //src_u += xLF;  sample_src_u = xLF + LONG2FIX(src_u);  for (int y = -half; y <= half; y++)  {  // Get supersampled v source  src_v = (double)y * divisor;  //src_v += yLF;  sample_src_v = yLF + LONG2FIX(src_v);  // Set source point to `sourceLayer`  contextP->samp_pb.src = contextP->sourceLayerData;  // Sample src color  suites.Sampling16Suite1()->subpixel_sample16(in_data->effect_ref,  sample_src_u,  sample_src_v,  &contextP->samp_pb,  out);  // Get UV based on Red/Green from input pixel  tmp_u = ((double)out->red / (double)PF_MAX_CHAN16);  tmp_v = ((double)out->green / (double)PF_MAX_CHAN16);  tmp_u *= (double)contextP->textureLayer->u.ld.width;  tmp_v *= (double)contextP->textureLayer->u.ld.height;  sample_u = LONG2FIX(tmp_u);  sample_v = LONG2FIX(tmp_v);  // Set source point to `textureLayer`  contextP->samp_pb.src = &contextP->textureLayer->u.ld;  // Sample from `map` at UV and set `out` pixel.  suites.Sampling16Suite1()->subpixel_sample16(in_data->effect_ref,  sample_u,  sample_v,  &contextP->samp_pb,  out);  /*  red += (A_u_short)(out->red * sampleWeight);  green += (A_u_short)(out->green * sampleWeight);  blue += (A_u_short)(out->blue * sampleWeight);  alpha += (A_u_short)(out->alpha * sampleWeight);  */  }  }  //out->red = (A_u_short)red;  //out->green = (A_u_short)green;  //out->blue = (A_u_short)blue;  //out->alpha = (A_u_short)alpha;  }  else { // No Supersampling!  // Get UV based on Red/Green from input pixel  tmp_u = ((double)in->red / (double)PF_MAX_CHAN16);  tmp_v = ((double)in->green / (double)PF_MAX_CHAN16);  tmp_u *= (double)contextP->textureLayer->u.ld.width;  tmp_v *= (double)contextP->textureLayer->u.ld.height;  sample_u = LONG2FIX(tmp_u);  sample_v = LONG2FIX(tmp_v);  // Set source point to `textureLayer`  contextP->samp_pb.src = &contextP->textureLayer->u.ld;  // Sample from `map` at UV and set `out` pixel.  suites.Sampling16Suite1()->subpixel_sample16(in_data->effect_ref,  sample_u,  sample_v,  &contextP->samp_pb,  out);  }  if (contextP->preserveAlpha == TRUE)  {  out->alpha *= (in->alpha / PF_MAX_CHAN16);  }  }  return err;
}

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 :-)

 

 

 

 

 

Why is fxfactory mac only?

$
0
0

I'm currently installing an osx on my pc, because of some plugins for after effects.

And i was thinking why is fxfactory mac only? Is there that big of a difference between a mac plugin and windows plugin?

 

martin.

A_Time values

$
0
0

Hello,

There  is no documentation about A_time, and I would like to know how it works.

All samples get keyframes values by AEGP_GetKeyframeTime function with a result like :

A_Time timePT = {94208, 25600}; // 3 sec 17

94208 is the value : How is formula to get this value. ?

25600 is the scale : How is formula to get this value. and how it works ?

I'm working on a keyframer,

I want to insert keyframes at 1.2 sec on a timeline of a solid for example, the composition is based on 25 fps.

How I get the right values (value and scale) for A_Time

 

I use

    ERR(suites.KeyframeSuite3()->AEGP_InsertKeyframe(position_streamH,

                                                     AEGP_LTimeMode_LayerTime,

                                                     &timePT,

                                                     &new_indexL));

Cheers

Jim

Can't find generated .aex in ae

$
0
0

I build ae sdk example with visual studio, generate .aex in C:\Program Files\Adobe\Adobe After Effects CC 2014\Support Files\(Media Core plug-ins) folder, but I can't find it in after effects. Did I generate it in correct folder, or what else I should do?

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

AEGP_GetKeyframeTemporalEase cann't get AEGP_KeyframeEase correctly?

$
0
0

hi,everyone,i find that AEGP_GetKeyframeTemporalEase cann't get AEGP_KeyframeEase correctly?my code is as below:

 

AEGP_LTimeMode timeMode = AEGP_LTimeMode_LayerTime;

  A_Time timeKf;

  A_long indexPL = 0;

  A_short t_dimPSSrc = 0;

  A_short t_dimPSDes = 0;

  AEGP_StreamValue2 valueP;

  A_Boolean needReleaseTan = false;

  AEGP_StreamValue2 in_tanP0;

  AEGP_StreamValue2 out_tanP0;

  AEGP_KeyframeEase in_easeP0;

  AEGP_KeyframeEase out_easeP0;

  AEGP_KeyframeFlags flagsP;

  AEGP_KeyframeInterpolationType inP0;

  AEGP_KeyframeInterpolationType outP0;

  AEGP_AddKeyframesInfoH addKFSH;

  A_long dim[4] = {0,1,2,3};

  //ERR(suites.KeyframeSuite4()->AEGP_StartAddKeyframes(streamDesH,&addKFSH));

  //if(addKFSH != NULL)

  {

  for(A_long index = startFrameIndex;index < EndFrameIndex;index++)

  {

  needReleaseTan = false;

  ERR(suites.KeyframeSuite4()->AEGP_GetKeyframeTime(streamSrcH,index,timeMode,&timeKf));

  ERR(suites.KeyframeSuite4()->AEGP_GetNewKeyframeValue(S_my_id,streamSrcH,index,&valueP));

  ERR(suites.KeyframeSuite4()->AEGP_GetKeyframeFlags(streamSrcH,index,&flagsP));

  ERR(suites.KeyframeSuite4()->AEGP_GetStreamTemporalDimensionality(streamSrcH,&t_dimPSSrc) );

  ERR(suites.KeyframeSuite4()->AEGP_GetStreamTemporalDimensionality(streamDesH,&t_dimPSDes) );

  if(t_dimPSSrc != t_dimPSDes)

  {

  err = A_Err_PARAMETER;

  ERR(suites.StreamSuite3()->AEGP_DisposeStreamValue(&valueP));

  break;

  }

  //if( (flagsP & AEGP_KeyframeFlag_TEMPORAL_CONTINUOUS) || (flagsP &AEGP_KeyframeFlag_TEMPORAL_AUTOBEZIER) )

  {

  AEFX_CLR_STRUCT(in_easeP0);

  AEFX_CLR_STRUCT(out_easeP0);

  ERR(suites.KeyframeSuite3()->AEGP_GetKeyframeTemporalEase(streamSrcH,index,t_dimPSSrc,&in _easeP0,&out_easeP0));

  }

  if( (flagsP & AEGP_KeyframeFlag_SPATIAL_CONTINUOUS) || (flagsP &AEGP_KeyframeFlag_SPATIAL_AUTOBEZIER) )

  {

  needReleaseTan = true;

  ERR(suites.KeyframeSuite4()->AEGP_GetNewKeyframeSpatialTangents(S_my_id,streamSrcH,index, &in_tanP0,&out_tanP0));

  }

  ERR(suites.KeyframeSuite4()->AEGP_GetKeyframeInterpolation(streamSrcH,index,&inP0,&outP0) );

  //ERR(suites.KeyframeSuite4()->AEGP_AddKeyframes(addKFSH,timeMode,&timeKf,&indexPL));

  ERR(suites.KeyframeSuite4()->AEGP_InsertKeyframe(streamDesH,timeMode,&timeKf,&indexPL));

  ERR(suites.KeyframeSuite4()->AEGP_SetKeyframeValue(streamDesH,indexPL,&valueP));

  ERR(suites.KeyframeSuite4()->AEGP_SetKeyframeFlag(streamDesH,indexPL,AEGP_KeyframeFlag_TE MPORAL_CONTINUOUS,flagsP & AEGP_KeyframeFlag_TEMPORAL_CONTINUOUS));

  ERR(suites.KeyframeSuite4()->AEGP_SetKeyframeFlag(streamDesH,indexPL,AEGP_KeyframeFlag_TE MPORAL_AUTOBEZIER,flagsP & AEGP_KeyframeFlag_TEMPORAL_AUTOBEZIER));

  ERR(suites.KeyframeSuite4()->AEGP_SetKeyframeFlag(streamDesH,indexPL,AEGP_KeyframeFlag_SP ATIAL_CONTINUOUS,flagsP & AEGP_KeyframeFlag_SPATIAL_CONTINUOUS));

  ERR(suites.KeyframeSuite4()->AEGP_SetKeyframeFlag(streamDesH,indexPL,AEGP_KeyframeFlag_SP ATIAL_AUTOBEZIER,flagsP & AEGP_KeyframeFlag_SPATIAL_AUTOBEZIER));

  ERR(suites.KeyframeSuite4()->AEGP_SetKeyframeFlag(streamDesH,indexPL,AEGP_KeyframeFlag_RO VING,flagsP & AEGP_KeyframeFlag_ROVING));

  //ERR(suites.KeyframeSuite4()->AEGP_SetAddKeyframe(addKFSH,indexPL,&valueP));

  //if( (flagsP & AEGP_KeyframeFlag_TEMPORAL_CONTINUOUS) || (flagsP &AEGP_KeyframeFlag_TEMPORAL_AUTOBEZIER) )

  {

  ERR(suites.KeyframeSuite3()->AEGP_SetKeyframeTemporalEase(streamDesH,indexPL,t_dimPSDes,& in_easeP0,&out_easeP0));

  }

  if( (flagsP & AEGP_KeyframeFlag_SPATIAL_CONTINUOUS) || (flagsP &AEGP_KeyframeFlag_SPATIAL_AUTOBEZIER) )

  {

  ERR(suites.KeyframeSuite4()->AEGP_SetKeyframeSpatialTangents(streamDesH,indexPL,&in_tanP0 ,&out_tanP0));

  }

  ERR(suites.KeyframeSuite4()->AEGP_SetKeyframeInterpolation(streamDesH,indexPL,inP0,outP0) );

  ERR(suites.StreamSuite3()->AEGP_DisposeStreamValue(&valueP));

  if(needReleaseTan)

  {

  ERR(suites.StreamSuite3()->AEGP_DisposeStreamValue(&in_tanP0));

  ERR(suites.StreamSuite3()->AEGP_DisposeStreamValue(&out_tanP0));

  }

  }

  }

  A_Boolean b = true;

  //ERR(suites.KeyframeSuite4()->AEGP_EndAddKeyframes(b,addKFSH));

  }

 

is there any problem of my code?my goal is to copy a stream to another stream through copying keyframes.

Develop a simple After Effects plugin in C# ?

$
0
0

Hello,

 

I would like to create a simple After Effects Plugin using C#.  The plugin will have a small screen with a couple simple controls . This plugin will run in After Effects on a Windows machine.

 

I am new to Adobe After Effects .

 

Can you point me to a SDK , tutorials etc ?

 

Thanks a ton,

Peter


Any AE plugin Xcode sample project with cuda for mac?

$
0
0

Hello everyone,

As suggested by the AE sdk, I start to create my plugin with sample project from the SDK.

However, I can not find an example with CUDA support for mac.

Now I have some troubles to setup an adobe plugin project with CUDA support for mac, as cuda files are compiled by nvcc.

Anybody can tell me where I can find an example to build an AE plugin with CUDA for mac?

 

Thanks for your help.

Reload plugins without restarting AE CC

$
0
0

Is is possible to reload effect plugins in After Effects CC without restarting the whole application?

 

I am developing a new effect and would like to be able to load a new build of the effect without have to constantly Quit and restart After Effects.

Is there a way of using PF_EFFECTCUSTOMUIOVERLAYTHEMESUITE1 in an AEGP?

$
0
0

Actually, you can add this to a pile of AEGP + UI questions..

 

I have a lovely working panelled plugin (thank you, people who gave answers to previous questions of mine).

The panel, though, is ugly as sin. I'd like to make it integrate nicely into AE's own GUI, matching the user's display preferences, etc.

 

The SDK discusses this when it comes to effects.

 

The forum keeps leaving tantalizing hints of how AEGPs can access effects suites

 

(for example, when discussing HTML5 panels... People keep mentioning "yes you poor AEGP people we aren't supporting you but maybe you can make your plugin communicate with an effect that uses this).


All I want is to be able to retrieve whatever the current AE graphic settings are for brightness etc and use them to set up my window. From an AEGP, not from an effect.


How can I do this?


(and as a bonus question, is there, anywhere, some kind of starting guide for how to accomplish this mythical effect-plugin commnication? Especially vis a vis html5)


Thanks!

second parameter "const A_char* inScriptZ" description in AEGP_ExecuteScript()??

$
0
0
Hi,

The prototype of AEGP_ExecuteScript() is

SPAPI A_Err (*AEGP_ExecuteScript)(AEGP_PluginID inPlugin_id, const A_char* inScriptZ,// in const A_Boolean platform_encodingB, AEGP_MemHandle* outResultPH0, AEGP_MemHandle* outErrorStringPH0);

What is the second parameter "const A_char* inScriptZ" describes?
Is it path of the script file or direct script only?

Thanks
Manjunath

Image / Logo in Parameter

$
0
0

This might be a fairly naive question, but I've fumbled through putting together my first plugin through these forums, the sdk and sheer brute force at times ... however one thing I noticed on Keylight that I can only assume is not part of the out of the box params is shown in the following screenshot.  I was wondering if anyone has looked into doing this type of thing before, and if so how you went about doing it.  I have just have been wondering about this for a while and figured I would ask as I am almost done with my plugin.

Capture.PNG

Viewing all 73444 articles
Browse latest View live


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