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

AEGP_SetSelection preview render

$
0
0

I want my plugin to select some layers, and in order to do so, I'm using a collection and then the AEGP_SetSelection.

However, I noticed that when I use the AEGP_SetSelection function, a render is forced. Can I avoid this? I just want the layers to be selected in the UI and nothing else.


Can we expect a Vulkan/Metal example in the next iteration of the SDK?

$
0
0

I have no clue how to set up Vulkan for AE, and since Apple doesn't support it anymore, it's something to be desired. So what do you devs think? A Vulkan/Metal sample for 2020?

What is the full name of PF?

$
0
0

Hello,

I am very new to the Ae SDK, and forgive my curiosity, there are lots of parameters and classes handled  by plugins have the prefix ’PF_’(e.x. PF_Pixel,PF_Handle).

So... what is actually a ‘PF’ mean? Is it a shortened form of a term?

Effect Crash When creating shapes from text

$
0
0

Hello, everyone. I'm new to AE plug-in development and stumbled upon a problem, so I thought I'd ask.
I have an Effect Plug-In which I apply to a Text Layer, and that works fine. However when I click on "Create Shapes from Text", the Shape Layer gets created with the effect applied, but no shapes in it and I get this error:

 

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

 

I'm guessing the problem is here (executed on PF_Cmd_UPDATE_PARAMS_UI):

 

AEGP_EffectRefH  meH = NULL;
AEGP_StreamRefH paramStreamH = NULL;
ERR(suites.PFInterfaceSuite1()->AEGP_GetNewEffectForEffect(NULL, in_data->effect_ref, &meH));
ERR(suites.StreamSuite2()->AEGP_GetNewEffectStreamByIndex(NULL, meH, parameterName, &paramStreamH));
ERR(suites.DynamicStreamSuite2()->AEGP_SetDynamicStreamFlag(paramStreamH, AEGP_DynStreamFlag_HIDDEN, FALSE, shouldHide));
if (paramStreamH)
{
     ERR2(suites.StreamSuite2()->AEGP_DisposeStream(paramStreamH));
}
if (meH)
{
     ERR2(suites.EffectSuite2()->AEGP_DisposeEffect(meH));
}

This code normally does what it's supposed to, except in this scenario.

 

I would appreciate it if someone can give me a clue as to what I am doing wrong.

text animator

$
0
0

hello

although i don't assume its possible as i checked this deeply - i'm trying my luck here )

is there any way of knowing the amount of rotation for each character at given time, once a text animator is applied?

 

maybe the image will better explain what i need -

for example i want to know the rotation of the "1" and the rotation of the "2" at this specific time.

 

Many thanks

 

animator.png

VS/VC++ Struct Member Alignment (set to 4)?

$
0
0

I would like to ask why Struct Member Alignement is set to 4 instead to Default (or 8 on x64)?

(in Visual Studio 2008 - Project properties ( -> Configuration  properties) -> C/C++ -> Code Generation -> Struct Member  Alignment)

 

There were runtime problems after linking with an external library (default alignment); so it might be better to change the skeleton template in SDK.

 

For example in After Effects CS5 SDK for windows in:

 

after_effects_cs5_sdk_win\Adobe After Effects CS5 Win SDK\Examples\template\Skeleton\win\Skeleton.vcproj

 

look for:

 

StructMemberAlignment="3"

 

and set it to 0 (default) or at least to 4 (64bit alignment)

 

StructMemberAlignment="0"

 

or

 

StructMemberAlignment="4"

 

 

greets

m

Language localisation plugin for After effects

$
0
0

Hi,

 

I am working on a project for one of my clients to create/ identify automated plugin/tool for Adobe After effect language localization ie. to convert the content in Adobe After effects to different languages.

 

Could someone point in the right direction as to where I find an automated plugin for the same?

If not,  just a sample plugin to get started with the project?

Any help would be massively appreciated.

 

Thanks in advance.

 

Kritika!

Getting After Effects version name

$
0
0

I need to identify the version of AE my plugin is running on. I can get the version number using major and minor versions from the PluginMain function.

However, I need the version String, like "After Effects CC 2017", "After Effects CC 2018", etc. I need this because I have to create a list of user presets, and for that reason I have to know the full path to the user presets so I can look for ffx files in there.


Has anyone used AEGP_RenderAndCheckoutLayerFrame?

$
0
0

Hi. I want to get the pixels of my layer from an AEGP post effects using AEGP_RenderAndCheckoutLayerFrame. I keep getting a hard crash. This is my code:

 

   AEGP_SuiteHandler suites(sP);        AEGP_LayerRenderOptionsH optionsH;    AEGP_RenderSuiteCheckForCancel cancel_functionP0;    AEGP_CancelRefcon cancel_function_refconP0;    AEGP_FrameReceiptH *receiptPH;    AEGP_WorldH worldH;    PF_EffectWorld world;    ERR(suites.LayerRenderOptionsSuite1()->AEGP_NewFromLayer(S_my_id, *layerH, &optionsH));    ERR(suites.RenderSuite5()->AEGP_RenderAndCheckoutLayerFrame(optionsH,                                                                cancel_functionP0,                                                                cancel_function_refconP0,                                                                receiptPH));        ERR(suites.RenderSuite4()->AEGP_GetReceiptWorld(*receiptPH, &worldH));    ERR(suites.WorldSuite3()->AEGP_FillOutPFEffectWorld(worldH, &world));    ERR(suites.RenderSuite4()->AEGP_CheckinFrame(*receiptPH));

 

layerH and options H are both allocated before AEGP_RenderAndCheckoutLayerFrame, and AEGP_RenderAndCheckoutLayerFrame causes the bad access. Any ideas what I'm missing? This is implemented inside an AEGP. Thanks.

Multithreading TransformWorld

$
0
0

Hi. This may be completely dumb, but I was trying to speed up a transform world by splitting it into smaller chunks then using iterateGeneric. It works if the user changes parameters slowly, but if a slider is dragged quickly it crashes the app. I specifically made sure that each iteration is writing to a separate destination world, but all are reading from the same input. Here's the gist of the code:

 

PF_Err MT_Xform(void *refcon, A_long threadInd, A_long iterNum, A_long iterTotal)
{
xformData *data = (xformData*)refcon;

int i = iterNum;

PF_Err err = PF_Err_NONE;

ERR(data->in_data->utils->transform_world( data->in_data->effect_ref,
data->in_data->quality,
PF_MF_Alpha_STRAIGHT,
data->in_data->field,&data->inWorld,&data->compMode,
NULL,&data->mat,
1,
TRUE,&data->outWorld[i].extent_hint,&data->outWorld[i]));

return err;
}

 

Crash in VS:

Exception thrown at 0x00007FFE945431F7 (ntdll.dll) in AfterFX.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.

 

Any ideas on how to improve the stability? Thanks.

Setting layer's transform/rotation matrix

$
0
0

Hi All,

I''m working on an AEGP plug-in that needs to keyframe layer's transform. I've got a sequence of 3D rotations stored as quaternions and I'd like to convert it into orientation (or rotation) keyframes. Converting the quaternions to Euler angles is not acceptable in my situation, since due to the multiple possible solutions/angles for the same 'pose', the object flips during animation. The SDK Guide also specifies that Orientation uses quaternion, but I'm not sure how this can help me.

 

Any ideas ?

 

Thanks

 

 

edit: from this thread http://forums.adobe.com/thread/1142672?tstart=30, it looks like what I'm looking for is not possible:

 

(shachar carmi):
neither an effect, nor an AEGP can change the transformation matrix. they can only change the param values.

 

 

Message was edited by: cbmb

call CEP from plugin

$
0
0

Hi,

 

I've a double question about the cep thread communication from a plugin, I didn't find answer in previous threads.

 

firstly , is there a solution to embbed some CEP in a plugin ?

 

secondly, I made an experiment using AEGP_ExecuteScript(). the plugin call it when a button is pressed. (in UserchangedParam thread)

 

I tried to use some json inside the script. The json lib is present in cep but not in classical extendscript. And it works. If the json file has an error, the after effect script debuger show  the CEP script with the error. (I don't use external library in script side).

 

but sometimes  I randomly  get a script error  : AE  doesn't know the JSON class functions. It seems in this case that  it  does'n't access to the CEP lib but only the classical extendscript...

Is there any entry command that can be called by scripts?

$
0
0

Hi,

I am now working on a PF plugin. There is a button which trigers a script window run by ExecuteScript. And there is also a button in my script window. What I want is that when I click the "Apply" button in script window, my plugin should recieve a command that can send my data from script window back to my arbitrary data in my PF plugin. (Like what adobe have done with Color Parameter, when you change color in Color Picker window, the color param can get the color data real time)

Multithreading

$
0
0

Hi gang;

 

I'm back at this and not getting anywhere.

 

I am not using the iteration suite so I need to implement my own basic multithreading. I have read in several messages that std::thread supposedly works fine.

 

I have a function like so:

 

void FilterImage (PF_ParamDef *size_param, int cdepth, PF_InData *in_data, PF_EffectWorld *input, PF_EffectWorld *output)

{

Do stuff...

}

 

And after reviewing many threading examples, I am calling it like so:

 

std::thread t1(FilterImage,&size_param, cdepth, in_data, input_worldP, output_worldP);

t1.join();

 

I am using #include <thread> in the .h file.

 

I compile with full optimizations and /MTd mode. I do not get any compile errors. Yet when I run it in AE, I do not see all the threads being used. They run at 25% which is indicative that it is only using 1 thread. What am I doing wrong here? Any tips or suggestions?

 

Thanks,

-Rich

How to mask circular or cylindrical 3D text with geometry & material options?

$
0
0

Hello, guys, I am back to trying to rotate that text around that planet in After Effects CS6.

 

I am making one basic assumption — please correct me if I am wrong. (I'm sure you will !) I understand that I cannot have two 3D objects (or in this case, two 2D objects with 3d effects applied) in the same "scene" (as it is called in Photoshop.) In other words, I cannot have the planet and the orbiting text in the same layer, so that the planet naturally masks out the back side of the orbiting text. I am limited to having the planet on one layer and the text on another, correct?

 

My goal: to make some shiny, reflective, extruded text, make it goaround in a circle with the text on the back side of the circle masked out so that the orbiting text appears to be disappearing behind the planet.

 

OK, given that the above assumption is correct, I can see two ways to do this, but (so far as I can tell) each method seems to have its advantages and disadvantages:

 

1. I can apply the CC Cylinder effect to my text.

 

PROS:

- This effect has a very handy option to render the full cyclinder or just the outside or inside. I chose outside as I want the text to appear to rotate across the front of the planet.

- I can add a mask to hide some of the remaining visible text when needed.

- Some built-in lighting controls.

 

CON:

- No material options so I cannot add an environment layer to get those cool reflections that are really going to impress the client. (Yes, I am using the Ray-Traced 3D Renderer.)

 

 

2. I can apply the 3D Rotate Around Circle Animation Preset to my text.

 

PRO:

- I have material and geometry options to make the cool reflections.

 

CON:

- No "Render Outside" option and I understand you cannot add a mask to a Ray-Traced Layer. (Correct?) I suppose I could render those 6 seconds to video and then mask that footage layer, but when the front text is right in front of the back text, it would be a really complex mask to have to make.

 

Here is what I am talking about:

http://www.youtube.com/watch?v=Y9FcD-bx-sg&feature=plcp

 

That boring flat white text that looks like it was cut out of paper is what I am trying to replace with something snazzier.

Any ideas, suggestions? Is there some other way to achieve this goal that i just don't know about yet?

 

I am using the latest version of After Effects CS6 on a 27" iMac, running OSX7.4.

 

Thanks!
--Carol

 

Carol Gunn
Gunn Graphics
Austin, TX 78741
512-385-8818
www.gunngraphics.biz
www.linkedin.com/in/carolgunn


Using multiple sliders/controllers?

$
0
0

Hey guys. So sorry that my first question is going to be such a simple one but I'm pulling my hair after two days of trying to understand and modify the Skeleton template.

 

Obviously I enjoy learning and I've learned a lot from looking at and modifying examples and reading "the" AE SDK tutorial over at MacTech, and the documentation. But I'm at a standstill here; how do I use multiple sliders and pass their values to the Render function?

 

Or formulating it differently; is using two separate iterate() functions for two sliders the way to go, or should I do all my calculations with both sliders in the same function?

 

Right now I'm running two iterate() functions in a row, with different refcons and functions but only the last one gets caught. I'm assuming it's because they both use &params[SKELETON_INPUT]->u.ld as src and output as, well, output - the second function overwriting the first one.

 

I read in the documentation, page 96, that you could use something like this;

 

lines_per_iterateL = in_data->extent_hint.top - in_data->extent_hint.bottom;

total_linesL = 3 * lines_per_iterateL;

lines_so_farL = 0;

 

suites.iterate8suite()>iterate(

                              lines_so_farL,

                               total_linesL,

                              input_worldP,

                              &output>extent_hint,

                              refcon,

                              WhizBangPreProcessFun,

                              output_worldP);

 

lines_so_farL += lines_per_iterateL; ERR(PF_PROGRESS(lines_so_farL, total_linesL));

 

But tbh I'm just not quite getting it.

 

Any takers?

 

Edit: well, I'm getting the values from both sliders now - maybe I did before too - but I can only use them if I sum them up under the same refcon used in the iterate() function. Seems like I need one iterate() function for each slider?

Project files crash after adding new parameters to an effect plugin

$
0
0

Hi There,

 

As I was developing an effect, I built projects to test things out.  Now, however, I added a new parameter to an effect and when I open the projects that contain the old build of the same effect, I get the following three error messages:

 

1.  After Effects warning: effect control conversion required in effect "Test Plugin".  Some effect controls will be reset.  To avoid silently resetting these same effect controsl on all subsequently loaded projects, save this project and then quit & re-launch After Effects. (25 :: 0)

 

2.  After Effects error: missing data in file. (33 :: 4)

 

3.  After Effects warning: your project file is apparently damaged (skipped sections: 3).  Please save using a different name.  (26 :: 0)

 

Why does this happen, and what can I do, if anything, to avoid this from happening.

 

Thanks for your time and help!

 

--Arie

How to properly use a .dylib in a plugin on OSX?

$
0
0

Hello All,

So after using the much appreciated help here on the forums, I was successful at loading a third-party DLL that I needed to use in my plugin on Windows.  Now, I'm moving onto OSX and have a .dylib file that is effectively the equivalent of the DLL in OSX.  My question is how do I properly load the .dylib on OSX for my plugin to work within AE?

 

Many thanks for your time and help!


Best,
Arie

СС2015 - Modal dialog is waiting for response.

$
0
0

Hi All,

 

I've this script error on CC AE 2015 while it runs flawlessly on AE 2014.

Just a simple script that reads the blend mode, and it executed after AEGP_IsScriptingAvailable called.

 

Any ideas what may cause this one?

I can't implement a simple box blur

$
0
0

Hi,

 

I'm very new to Adobe AE plug-in development and image processing in general, so I'm probably missing something very basic. I'm trying to implement a simple box blur using the supplied convolve method in the WorldTransformSuite1, but I am unable to achieve the blurring effect. I'm doing this just as a practice - I am aware of the FastBlur function in the AEGP suite.

 

Original image:

1.jpg

 

Output image:

 

The code in Render:

PF_FpLong convKer[9] = { 0.111f, 0.111f, 0.111f,

                                            0.111f, 0.111f, 0.111f,,

                                            0.111f, 0.111f, 0.111f };

 

ERR(suites.WorldTransformSuite1()->convolve( in_data->effect_ref,

                                                                             &params[BBOX_BLUR_INPUT]->u.ld,

                                                                             &in_data->extent_hint,

                                                                             PF_KernelFlag_2D | PF_KernelFlag_CLAMP,

                                                                             KERNEL_SIZE,

                                                                             convKer,

                                                                             convKer,

                                                                             convKer,

                                                                             convKer,

                                                                             output));

 

I have mostly been referring to the Convolutrix sample provided with the SDK, and my code looks (almost) identical to the sample. I can't figure out what exactly I'm doing wrong.

Viewing all 73444 articles
Browse latest View live


Latest Images

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