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

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


sequence data issue, help

$
0
0

hi all,

I develop a AE plugin using opengl, and there is a class named "ParticleSystem" in my code.

but there is some problem when copy/paste effect

I have read the post by Tobias http://reduxfx.com/ae_seqdata.pdf

it seems I should use sequence_data to handle this


My question is whether I can save my "ParticleSystem" class in sequence_data.

then how to set sequence_resetup to load the same data when copy effect

thx for your help

Changing Parameter keys outside of PF_Cmd_USER_CHANGED_PARAM

$
0
0

Is it possible to somehow change/add/delete keys on parameters outside the PF_Cmd_USER_CHANGED_PARAM function? Attempting to add keyframes etc. is always triggering this error:

U_Sev_WARNING After Effects warning: A plugin is attempting to do an invalid operation: modifying a locked project

( 1 :: 0 )

 

I understand why this happens (since we're only supposed to change parameters withing PF_Cmd_USER_CHANGED_PARAM), but in my case the plugin will fetch some info from external circumstances (other layers for example) and should react to it without user interaction. Unfortunately this requires animation keys

 

I found in the forums that AEGP_SetStreamValue supposedly works - any way to also get the KeyframeSuite to play ball?

 

I've also tried to call my changes during the PF_Cmd_EVENT, however those events are only triggered while the layer with the effect is the active one? Any chance to listen to global events while the layer is inactive?

 

Does a changing expression's value linked to a parameter count as a user change that would trigger the function?

 

Many questions, I know....

Getting the start and duration of the clip currently being rendered?

$
0
0

Hi,

 

I am creating a After Effects effect for use in Premier Pro.

 

Duding render I need to know the start and duration of a clip.

 

The problem is that if my effect is applied multiple times on the timeline, the clipStart and clipDuration information is sometimes returned for a different clip (not the one being rendered).

 

In the Render routine:

 

A_long clipDuration, clipStart;

...

...

/* Only Premiere Pro supported.
*/
if (in_data->appl_id == 'PrMr') {
AEFX_SuiteScoper<PF_UtilitySuite8> utilitySuite =
AEFX_SuiteScoper<PF_UtilitySuite8>(in_data,
kPFUtilitySuite,kPFUtilitySuiteVersion8,
out_data);

 

if (err == PF_Err_NONE) {
err = (utilitySuite->GetClipDuration(in_data->effect_ref, &clipDuration));
}

 

if (err == PF_Err_NONE) {
err = (utilitySuite->GetClipStart(in_data->effect_ref, &clipStart));
}

 

How can I get the correct clip start and duration of the clip being rendered?

 

Thank you.

Automating UI Tests on AE Extensions

$
0
0

Hi all,

 

I'm trying to build an extension for AE using the scripting API, and want to automate tests in order to mimic user inputs.

Is there a way to use a GUI automation suite?

I've tried using Selenium without success, but maybe I'm missing something.

 

Thanks,

Noam

Is it possible to differentiate between an adjustment layer and a precomp?

$
0
0

Hi. I saw from a previous post it's possible to determine a layer type using the following code:

 

AEGP_LayerH layerH;
ERR(suites.PFInterfaceSuite1()->AEGP_GetEffectLayer(in_data->effect_ref, &layerH)); //get the layer refference

 

 

AEGP_ObjectType          layerType = NULL;
ERR(suites.LayerSuite5()->AEGP_GetLayerObjectType(layerH, &layerType));

 

Unfortunately for me adjustment layers and precomps are both considered video layers. I need to determine exactly which type it is, is this possible? Thanks.

how to get the item file path of the layer?

$
0
0

hi,all:

     the layer has only one video file,is there a way to get the file's full path?i have read the AE's SDK file,but i cann't find the way to get the file path of the layer file.the ITEMSUITE8 has AEGP_GetTypeName/AEGP_GetItemName/AEGP_GetItemComment,but doesn't have AEGP_GetItemFilePath.any suggestion will be thankful!

aerender Illegal argument flag with Swift "Front End"

$
0
0

I built a simple desktop app in Swift that gives aerender a user interface.  When I use it to fire off a simple render it is giving me "Illegal argument flag" when the exact same command typed in to the terminal works fine.  For example  when you use the "-project" flag followed by the file-path to the AE project.  Ive tried formatting the file path string a number of ways and playing with adding spaces (like after the "-project" text before the file-path).  My app displays the output of the command line (stdout) in the interface window so you can see all of the neat stuff like "launching After Effects".

 

I had it working fine for a while, but it started having this problem when I started putting the command in a NSTask function.  I did this so I could monitor the output (stdout) in my interface.

 

Does aerender have permission issues when receiving arguments from NSTask?  Has anyone else messed around with NSTask and aerender?  Any Swift coders out there?

 

Im happy to provide more info if needed, but i wanted to keep this post simple :-)

 

 

Thanks all!

 

-Jacob

Screen Shot 2016-08-07 at 3.49.46 PM.png


Insert menu command and Right click

$
0
0

Hi!

 

I have an AEGP, and I'd like to be able to launch a function with a simple right click.

Does anyone know how to do it? The closer I've come to is adding my menu command to KF_Assist, but then it's in the Keyframe assist submenu... and I'd like to get it directly.

 

Cheers,

François

Using Thread in a Plugin

$
0
0

Hello, and best wishes for 2016.

 

I have an issue with a thread process in a plugin.

 

Before calling a thread task,

functions like :

           ERR(suites.LayerSuite8()->AEGP_GetActiveLayer(&current_layerH));

            ERR(suites.ProjSuite6()->AEGP_GetProjectByIndex(0, &projH));

            ERR(suites.ProjSuite6()->AEGP_GetProjectRootFolder(projH, &root_itemH));

            err = suites.CompSuite10()->AEGP_CreateComp( startedParentFolder,

                                                       u16str,

                                                       700,

                                                       900,

                                                       &comp_parRt,

                                                       &durationT,

                                                       &fps,

                                                       &new_compH);

are working.

 

 

But after calling a basic function using thread,  like

staticvoid myFunc(){

    for(int i = 0; i<100; i++){

        cout << i << endl;

        //std::cout << "I " << i << "  " << std::this_thread::get_id() << std::endl;

    }

}

 

             std::thread t(myFunc);

             t.join();

 

 

             ERR(suites.LayerSuite8()->AEGP_GetActiveLayer(&current_layerH));  ===> works

but

            ERR(suites.ProjSuite6()->AEGP_GetProjectByIndex(0, &projH));  ==== >doesn't. projH return NULL

 

My question is how can I use (If it is possible) threads in a plugin, and manipulate AE UI (Plugin Effect panel, TimeLine ...)

I have to say that my main thread id is the same before and after my process.

Cheers Jim

adding a custom plugin to add an attribute to a property.

$
0
0

Is there  a way by which I can add an attribute to all the properties. Basically what I am trying to do is,  when the the designer right clicks on  the property (for eg. scale) , the small tip menu that shows up things like "Edit Value", etc will also show up the attributes that I have added  to that property and he can use it appropriately. For eg. consider I have added a property called "Possible Values" to Scale property. The user can then click on that option("Possible Values") in small tip menu and then a small menu shows up where he can then fill in the values like "20%, 50%, 100%" or "> 80%" depending on the syntax I come up with. So then my code knows what values can go into that property. Something like:

if (check (val , layer("Transform")("Scale").possibleValues)) {

    layer("Transform")("Scale").value = val;

} else {

   //error

}

 

 

Thanks.

Different methods for drawing a straight line

$
0
0

Here's an article about how to draw a straight line:

 

Drawing lines

 

It starts at the top and uses fractions. My question is, how could this be implemented? I have used the formula y = mx + c to draw a straight line, checking each pixel against the formula using the iterate suite. But I've no idea how to try this new technique. Any help would be appreciated.

UI and Render Threads Not in Sync in CC2015+

$
0
0

My plugin is a modular effect, similar to Plexus, in that there is a main render effect, and a number of UI-only effects that provide data to the render effect (I've posted about this on a number of other occasions!).

 

When you apply the Renderer effect from the effects and presets panel, it uses Sequence Setup to automatically add the default data effects, so you end up with:

 

Module Selector (added automatically)

Builder (data effect - added automatically)

Instancer (data effect - added automatically)

Renderer (render effect - added manually)

 

This all works perfectly in AE pre CC2015, but in CC2015+ I get a bunch of After Effects error: internal verification failure, sorry! {invalid index in indexed group} errors, and the effect fails to render.

 

The reason for this seems to be that the UI and render copies of the project are not in sync. Indeed when I debug Smart Render, when it loops through the layer effects to gather the data it only finds the render effect, and none of the data effects. With no data, it renders nothing.

 

Now, if I save the project, close it and reopen it, everything works as expected, so the problem is limited to first applying the effect.

 

Any thoughts on how I can sync up the two threads?

 

Thanks, Christian

AE plugin in Premier Pro

$
0
0

Can I make a plug-in using AE SDK, but have it work in Premier Pro? I don't want the user to switch to AE just to apply the plug-in.

I don't want to use Premier Pro SDK, as it does not have much motion graphics tools/APIs to make complex motion graphics.

Please correct me If I am wrong. Any thoughts?

 

I searched the forums, but could not find the answer.

Debugging information cannot be found. Symbols not loaded.

$
0
0

When i try an example project and try to debug it with After Effects, then i get the following error:

 

"Debugging information for 'AfterFX.exe' cannot be found or does not match. Symbols not loaded."

 

Here's what i did. I opened an example project from the "Effects" folder.

 

In Visual Studio 2008 i opened the:

Project properties > Configuration Properties > Linker > General > Output file: I specified this to the plugins directory of After Effects.

 

So the plugin is build into:

"C:\Program Files\Adobe\Adobe After Effects CS4\Support Files\Plug-ins\test"

 

I also went to:

Project Properties > Configuration Properties > Debugging > Command -> "C:\Program Files\Adobe\Adobe After Effects CS4\Support Files\AfterFX.exe"

 

So it automatically debugs with the AfterFX.exe file.

 

It was documented like this in the documentation. But when i do a clean build. rebuild and run, then i keep getting the above error....

 

Anyone any idea what the problem could be...??


How to use GetProjectPath (and other A_UTF16Char) properly?

$
0
0

Hi there,

 

I'm trying to get the current project path and store it to wstring variable, and later convert it to A_Char to show it on reportinfo.

 

Following code works correctly on Windows 7 64bit and project path is displayed with ReportInfo dialog box, but on macosx 10.6.8, projectPathW.length() is always nonzero even when no project is opened. And ReportInfo always shows empty string.

 

 

AEGP_ProjectH project;

AEGP_MemHandle pathH;

 

suites.ProjSuite5()->AEGP_GetProjectByIndex(0, &project);

 

if (project) {

err = suites.ProjSuite5()->AEGP_GetProjectPath(project, &pathH);

if (!err)

{

A_UTF16Char *pathText;

 

err = suites.MemorySuite1()->AEGP_LockMemHandle(pathH, (void**)&pathText);

 

if (!err)

{

wstring projectPathW((wchar_t*)pathText);

if (projectPathW.length() == 0)

{

suites.UtilitySuite3()->AEGP_ReportInfo(S_my_id,"empty string");

}

else

{

char *fileName = (char *)malloc( AEGP_MAX_PATH_SIZE );

wcstombs( fileName, projectPathW.c_str(), AEGP_MAX_PATH_SIZE );

suites.UtilitySuite3()->AEGP_ReportInfo(S_my_id,fileName);

free(fileName);

}

}

suites.MemorySuite1()->AEGP_UnlockMemHandle(pathH);

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

}

}

Training on developing plugins for after effects

$
0
0

We need training, a couple of days,on the development of plugins for after effects. The company is in Paris.
Does Adobe provides pluginsdevelopment trainingforafter effects ?

Create Puppet Pin programmatically

$
0
0

Hi all,

 

I'd like to ask whether is it possible to create puppet pins programmatically...

 

I have tried to copy stream structure ("ADBE FreePin3", "ADBE FreePin3 Mesh", "ADBE FreePin3 PosPin Position", ...) of manually created pins with

corresponding values, but when I create streams this way they are disabled (AEGP_DynStreamFlag_DISABLED - and greyed out in UI).

 

I suppose that the vertex index "ADBE FreePin3 PosPin Vtx Index" is just an index to the array stored internally as arbitrary data so the mesh and pins must be created somehow before setting these values.

 

I've found this thread where they try to do the same thing using scripting (also without success  )Create Puppet Pin on existing mesh via scripting

 

I have some ideas about how this could be done using SDK, but all of them involve diving in very dark waters..

- call the EffectSuite::AEGP_EffectCallGeneric method with fake mouse click events (PF_Cmd_EVENT) or some direct PF_Cmd_COMPLETELY_GENERAL commands if the FreePin effect supports it

- use "FreePin Suite" - which is not a part of public SDK but can be aquired using AquireSuite... - but as it's not public I suppose it operates with memory which is not so safe to touch even if I managed to get/create proper header file for this suite

 

Maybe there is a simple elegant way of creating these pins which I completely overlooked, so I would be really thankful for any suggestions

 

Thanks a lot!

 

Martin

How to integrate one buton in the project panel shell ?

$
0
0

Hello guys,

I work with Adobe After Effects CC 2017 Win SDK,

I've made homemade Imigration plugin in c++ for my team,

and I need to add on button into the project panel shell like Cineware_AE_Exporter.aex.

 

Which suite, or method could give me the possibility to do that ?

Need After Effects Mac Dialog window

$
0
0

On a Mac is there an example of raising a dialog to get a couple of strings from the user.

Viewing all 73444 articles
Browse latest View live


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