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

AE_Effect_Match_Name from Pixel Bender Kernels?

$
0
0

Hi,

 

I was using Pixel Bender to develop plugins until the recent discontinuation in CS6. I am working on porting my plugins into the After Effects SDK, but if possible, I would like for the native plugins to silently replace my pixel bender kernels, so that projects using the old plugins could load using the new ones.

 

Is there a way, perhaps by setting AE_Effect_Match_Name to a specific value, for After Effects to see both the pixel bender kernel and the native plugin as the same plugin?

 

Thanks,

Andrew


MAC AE plugin: Bundle scripts with plugin and access for execution

$
0
0

Hi there,

as the title says I'm trying to execute some scripts from my plugin but I can't figure out how to get the plugins location to access the bundled resources. I'm pretty new to the  plugin development so can sombody please point me in the right direction?

I found in the SDK guide the PF_GET_PLATFORM_DATA but there is no example that is using it.

 

 

Thanks in advance

Fabian

Users receiving error: Couldn't find main entry point for myPlugin.plugin (48::72)

$
0
0

Hello all,

 

I've recently released a plugin into the wild and a few (1/20) people have been receiving this error.

 

A cursory search on that code doesn't really give me a lot of helpful information about what, if anything, could be going on in my code to generate it.

 

Maybe it has nothing to do with my code, and rather is a system configuration thing, but I'd like to know that for sure.

 

I've got one guy with this system:

OS - 10.6.8

AFX CS5

AFX CS3 + CS4 are also installed on the system


and another:


OS X 10.7.5 Mac Pro 2.66 ghz quad core
14 GB RAM
AE version CC (12.2)

 

Any ideas..?

Multiple questions, so I can stop spamming the forum

$
0
0

1) Is there a clean way to set the current value of a variant stream, without adding a keyframe? As a workaround, I am setting the stream's expression to whatever value I want, but this seems to slow down AE (which makes sense, since it needs to keep parsing the expression).

 

2) Is there some way to ask for more frequent idle updates? The term would suggest otherwise, but if that's the case, what's the point of the given max sleep integer?

 

3) The amount of idle calls is really inconsistent depending on what UI is showing in AE. For example, when I am viewing the composition panel, the idle function gets maybe 3-5FPS, but when I view the render queue panel instead, it suddenly jumps to 20+ FPS. I am not sure if that just means that it's really hard for AE to render the composition panel (no idea why it would be hard), or something else, but it's pretty weird. Any ideas?

 

All in all, I would really like to get my plugin real-time updates. It's really odd that AE doesn't offer that option.

 

Thanks.

Can I set the blending mode of a layer?

$
0
0

Helo!

 

My plugin creates some comps and layers. I need to set some of that layers in "Add" blend mode, to ease some tasks. Is this possible? I try this but it doesn't work:

 

 

          AEGP_LayerTransferMode mode;
          mode.flags = AEGP_TransferFlag_RANDOMIZE_DISSOLVE;
          mode.mode = PF_Xfer_LINEAR_DODGE; //PF_Xfer_ADD
          mode.track_matte = AEGP_TrackMatte_NO_TRACK_MATTE;
          suites.LayerSuite6()->AEGP_SetLayerTransferMode( myLayer, &mode );

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

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?

Hybrid Extension in AE

$
0
0

Looking over the hybrid extensions information, it seems like the additional files needed require building the HTML5 panel with extension builder, however in Extension Builder AE doesn't show up as a host option yet...

 

Should I build a premiere Pro Project and Add  <Host Name="AEFT" Version="[13.0,14.9]" /> to the manifest? Will all the hybrid registering and additional files be built as necessary?

 

Would a hybrid extension allow the creation of menu items and access to AEGP? (I imagine this is where ScriptUI being called from " Window > " and Extensions coming from " Extension > " might be the limitation of a non-fully C++ route.


Run function after updating values

$
0
0

I'm writing a fairly basic plugin where I need to have a function run after the values of a point have been updated.

 

I'm doing this to change the point's values:

 

params[POINT]->u.td.x_value = FLOAT2FIX(pointX);

params[POINT]->u.td.y_value = FLOAT2FIX(pointY);

params[POINT]->uu.change_flags = PF_ChangeFlag_CHANGED_VALUE;

 

This works fine for updating the values, however any code that goes after this block is run before the values actually change. Is there a way to force the change to happen after I have set the new values or is there somewhere else I can put the function so that it will be run after the values are actually changed?

プラグイン(TRAPCODE SUITE)が、正常に動作しない

$
0
0

AE5.0のプラグインの試用版をダウンロード、インストールしましたが、particularなどの機能を使用しようとすると

エラーが発生します。

 

After Effects: effect cannot change non-dynamic flag bits during PF_Cmd_QUERY_DYNAMIC_FLAGS( 25 、 228 )

 

色々と調べましたが、ほとんど情報がありませんでした。

 

また、マニュアルらしきものから以下の記述を発見しました。

 

解決法が分かる方いらっしゃいますでしょうか。

よろしくお願いします。

 

 

Table 6: PF_OutFlags2

 

 

Flag

 

Indicates

 

PF_OutFlag2_SUPPORTS_QUERY_DYNA MIC_FLAGS

 

The effect responds to

PF_Cmd_QUERY_DYNAMIC_FLAGS. Must be set in the PiPL and during PF_Cmd_GLOBAL_SETUP.

 

PiPLs

Plug-In Property Lists, or PiPLs, are resources which indicate the behavior of a plug-in. These resources are a legacy originated by Adobe Photoshop, and

 

have been largely supplanted within After Effects by PF_Cmd_GLOBAL_SETUP. However, the behaviors indicated during global setup must agree with those in the PiPL.

For MacOS development, you can use Mathemaesthetic’s Resorcerer (and the PiPL resource template provided in the SDK) to edit PiPLs; ResEdit cannot visually edit a PiPL resource. Use DeRez to make a .r file from your PiPL resource to use the same .r file for both MacOS and Windows (as the SDK does). The PiPL format is defined in AE_General.r; use this as your prefix file in your CodeWarrior project’s Settings > Rez dialog.

 

 

SDK Plugins crash on 64bit machine

$
0
0
Howdy,<br /><br />I tried using a plug-in provided in the SDK, on a 64 bit machine (Running Windows Server 2003) and it throws an error message - <br /><br />"After Effects error: plug-in "<plug-in path>\Transformer.aex" could not be loaded (14001)<br /><br />(48::46)"<br /><br />Any idea?<br /><br />Thanks,<br />K

AEGP_DoCommand(2415), aka Play, doesn't do anything

$
0
0

Are there limitations as to when the Play command can be issued?

I am issuing it in the idle hook, and it does nothing whatsoever.

Other commands (and by other I mean RAM preview) work.

 

Thanks.

How do i get out_data.width and out_data.height when handling UI ?

$
0
0

Hello!

 

I'm currently working on a project where i change the projection of a video based on where the user click position and I'd like to get out_data.width and out_data.height in a DragHandle event to change one of my slider.

Those values are always set to 0 and only available in rendering. Any idea on how to get those values ? Or maybe i'm working the wrong way...

 

Thanks!

How can I create a textbox-like field?

$
0
0

I am writing a After Effect Plug-in.

I want to create a textbox-like for user, when click om plugin in after effect cs4 popup textbox

 

So, if there is any example to create that UI for me?

 

Thanks a lot.

Convolve and PF_KernelFlag_REPLICATE_BORDERS

$
0
0

I was looking at the convole function in PF_WORLDTRANSFORMSUITE1, and it is *almost* exactly what I am looking for except for the small detail of it does not replicate borders, and the Kernal Flag of PF_KernelFlag_REPLICATE_BORDERS does not seem to be implemented.

 

Is anyone else able to use convolve with border pixels replicated, and if so how are you achieving that result (convolve or otherwise)?  I have been messing around with manually accessing the pixel neighbors, but I would prefer to use the PF_WORLDTRANSFORMSUITE1's convolve if possible ... although my initial guess is that I will have to go about it another way ...


Tracking mask path vertices?

$
0
0

Hi all

 

I've tried many ways to track vertex coordinates of a path(beign it mask or shape path). And the only solution i've found until now was making scripts, which works well, but is not ideal, since running a script everytime a modification is done on the path is not workflow-friendly, specially when making 2D shape animation, where you are always making tiny adjustments on the path and RAM-previewing it like 10 times in 2 minutes, to feel the flow of the motion.

 

The other way, that was almost perfect for me, was trying to take the vertices data through expressions, but when you get the shape object from the expression, example: thisComp.layer("some-solid").mask("my mask").maskPath.value ...... the value inside after effects becomes an empty [object Object], and in Extendscript Tool, that same object is a [object Shape] with all the information in it. I guess Adobe took off that particular object from expression for perfomance reasons, but i'm not sure.

 

So, i became aware of things like PathDataSuite and PF_PathVertex from the SDK, which is exaclty what i was looking for, but i was wondering how would be the best way to ouput that data through Effects, to be accessible by expressions, and then, inside After Effects, with expressions, i decide what to do with the path data given by the plugin. But, looking at all the other existing plugins, i realized that the only properties that are accessible by expressions, are things like point, rotation, sliders, dropdown menus, etc....

 

My question is: How can i output path data through an Effect's property, reachable by expressions. Could be something similar to "Source Text" property, with a string in array format, like [ verticesArray , inTangentsArray ,outTangentsArray ].

 

Example of 1 segment: [ [ [0,0] , [10,0] ] , [ [-10,-10] , [10,10] ] , [ [10,10] , [-9,0] ] ]

 

And then, on the position property of a null, i could write the expression: effect("My Effect")("Path data")[0][0]; to get the first vertex position data, and then, doesn't matter where i put that vertex, the null will always follow it's position(relatively).

 

Finally, in the SDK i was looking for something like PF_ADD_PARAM that could act as if it was PF_ADD_TEXT If you know what i mean.

 

Any ideas?

 

P.S. if you made it through here, thank you for reading all this.

CCU Render Example 16bit / 32bit

$
0
0

I am experiecing an issue when trying to convert some code from 8bit to 16bit that follows the same type of pixel iteration like in the Render function from the CCU example project.

I have implmented some code using 8bit that appears to working great, however when I update my code to 16bit things stop working.

 

When I run in 8bit using a 1080 x 1920

 

A_long          sizeOfPF_Pixel8 = sizeof(PF_Pixel8);

A_long          sizeInputRowBytes = (input_worldP->rowbytes / sizeOfPF_Pixel8);   // 7696 divided by 4 = 1924

A_long          sizeOutputRowBytes = (output_worldP->rowbytes / sizeOfPF_Pixel8); // 7680 divided by 4 = 1920

in_gutterL   =   sizeInputRowBytes - input_worldP->width,

out_gutterL  =   sizeOutputRowBytes - output_worldP->width;

---

in_gutterL ends up being 4

out_gutterL ends up being 0

 

so on my for loop when I get to the row iteration I am ultimatly adding 4 to the row buffer before processing the next row and all iterates as expected

 

When I run in 16bit using a 1080 x 1920

A_long          sizeOfPF_Pixel16 = sizeof(PF_Pixel16);

A_long          sizeInputRowBytes = (input_worldP->rowbytes / sizeOfPF_Pixel16);   // 15360 divided by 8 = 1920

A_long          sizeOutputRowBytes = (output_worldP->rowbytes / sizeOfPF_Pixel16); // 15360 divided by 8 = 1920

in_gutterL   =   sizeInputRowBytes - input_worldP->width;   // 1920 - 1920 = 0

out_gutterL  =   sizeOutputRowBytes - output_worldP->width; // 1920 - 1920 = 0

---

in_gutterL ends up being 0

out_gutterL ends up being 0

 

so on my for loop when I get to the row iteration I am adding 0 to the row buffer before processing the next row and during the iteration something blows up and I get around 500 on my "height" of the buffer

 

Any one had anything similair happen to them when they were trying to do something like this?

Showing and Hiding Param Groups (Topics) Problem

$
0
0

My rather complex scopes plugin has quite a few parameters, which I've grouped using topics to keep things neat. The user can choose which scopes to turn on-or-off using a checkbox for each. Turning a checkbox on shows the group of parameters; turning it off hides the group of parameters. I use code like this in a function called from PF_Cmd_USER_CHANGED_PARAM andPF_Cmd_UPDATE_PARAMS_UI:

 

AEGP_StreamRefH                    wfm_streamH                              = NULL;

A_Boolean                              hide_wfmB                              = !params[QPGA_SCOPE_OPTION_WFM]->u.bd.value;     // Set hide_wfmB to the inverse of the checkbox value

AEGP_EffectRefH                    meH                                                  = NULL;

AEGP_SuiteHandler          suites(in_data->pica_basicP);

 

ERR(suites.PFInterfaceSuite1()->AEGP_GetNewEffectForEffect(NULL, in_data->effect_ref, &meH));

 

// Example - Waveform monitor only, but in the code for real there's one of these for each of the five scope groups

ERR(suites.StreamSuite2()->AEGP_GetNewEffectStreamByIndex(NULL, meH, QPGA_WFM_TOPIC_START,           &wfm_streamH));

// etc...

 

// Toggle visibility of parameters

ERR(suites.DynamicStreamSuite2()->AEGP_SetDynamicStreamFlag(wfm_streamH, AEGP_DynStreamFlag_HIDDEN, FALSE, hide_wfmB));

// etc...

 

if (meH){

                    ERR2(suites.EffectSuite2()->AEGP_DisposeEffect(meH));

}

if (wfm_streamH){

                    ERR2(suites.StreamSuite2()->AEGP_DisposeStream(wfm_streamH));

}

// etc...

 

This works fine whenever the checkbox is toggled, however the problem arises if I save my effect instance as an effect preset. When I apply the preset to a new layer, for example, I get all of the parameters in the hidden groups showing up minus their group topics, when they should be hidden away. These two images show what the controls should look like, and what they do look like:

Desired result:

qpga_params_correct.jpg

 

Actual result if applying via an effect preset:

qpga_params_incorrect.jpg

The params between the red lines are those from the other four groups that shouldn't be displayed.

 

I hope this makes sense. My hunch is that I need to turn on-or-off *every* parameter within a group. This will require a lot of stream ref handles though and seems a bit inelegant/inefficient!

 

One thing I'm not doing is using sequence data - I did try this as it was part of the example project (Supervisor, I think), but it didn't affect the outcome. I figured sequence data was a red herring here anyway.

 

Thanks in advance!

 

Christian

After Effects SDK 6 Skeleton Example Pixel load

$
0
0

Hello,

i'm new here and i'm new with the sdk 6 for AE.

I tryed a lot of code to get all pixel from a frame.

 

I want create a tonemaping plugin. I have a drago tonemapper base on C and i tryed to use the skeleton example from the sdk.

My question is.

 

How can i store all the pixel from a frame?

 

I tryed something like this:

 

scene = (SCENE*) malloc(sizeOf(SCENE)*width*height);

 

scene is a struct with three floats, r g b.

 

This dosen't work for me

 

So and then is saw ATLAS:

http://www.3dcg.net/software/atlas/

 

It's a tonemapping plugin for AE. So i tryed to understand how it works.

Next problem was, that i can not compile the atlas source code without errors.

So i tryed to copy line by line.

 

 

Now i can compile it without a error but AE crashed. And i don't know why.

 

 

Can some body help me?

I need only a fast and easy way to storage the pixel to use it for the drago tonmapping code. I use visual studio.

 

 

Thank's a lot and sorry for my bad english

greetz drewiss

Using AEGP_StartUndoGroup / EndUndo to force an asynchronous re-render

$
0
0

I need to make an asynchronous call (from other thread) that forces re-render. I've read on this forum that introducing something into the undo stack it is forced to re-render.

 

I'm totally newbie to AE SDK so my idea was to store a pointer to the AEGP_UtilitySuite1 in that thread.

 

I saved it from the ParamsSetup

 

AEGP_SuiteHandler suites(in_data->pica_basicP);

suites.CommandSuite1());

 

And in the asynchronous function I call

 

suite->AEGP_StartUndoGroup("TEST UNDO");

suite->AEGP_EndUndoGroup();

 

But unfortunatly I had no luck and nothing is added to the undo stack.

 

I know that the good way should be use NULL as parameter to avoid place it into the undo stack and only re-render but I used that string to test if it is taken in account.

 

 

Thank you in advance, I'm driving nuts with this!

 

F.

Viewing all 73444 articles
Browse latest View live


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