iExpressions 3
  • It seems that iExpressions isn’t running very smooth. For simple tasks as shifting a keyframe the spinning beachball of death appears. Is there a solution for this? 
  • When I bake the expressions, the animations run a lot faster (as expected)
  • Hi Maurice,

    the performance of iExpressions heavily depends on which expression you are actually using. Some are more computation intensive than others. Which expression to you have issues with and how did you set the parameters?
    Best open a support ticket, this is the fastest way to get help:

    Cheers,
    Mathias
  • Das geht mir SOWAS von auf den Sack, jedesmal wenn Ich mich in AE einlogge, Ich meinen Code sowie die library von iExpressions installieren zu müssen, zudem funktioniert der Server maximal zu 50%. Es lebe der Turbo Kapitalismus!
  • Welche Version von iExpressions benutzt Du, Raym? In Version 3 braucht man keine Library mehr extra zu installieren und das Tool selbst läßt sich ganz bequem über die aescripts + aeplugins Manager App (https://aescripts.com/learn/aescripts-aeplugins-manager-app/) installieren bzw. updaten und auch lizenzieren.

    Die Library von iExpressions 2 ist über den Server nicht mehr verfügbar. Falls Du iExpressions 2 noch nutzen möchtest, solltest du die dem Produkt-Download beiliegende Library verwenden (in den iExpressions 2 Settings als "local library file" auswählen).


    Das geht mir SOWAS von auf den Sack, jedesmal wenn Ich mich in AE einlogge, Ich meinen Code sowie die library von iExpressions installieren zu müssen, zudem funktioniert der Server maximal zu 50%. Es lebe der Turbo Kapitalismus!

  • I don't appreciate iExpression claiming to have created expressions I wrote and saved:

    // iExpression: (name)
    For expressions that come with iExpression, this is appropriate. 
    For others, attribution should be removed or customized
  • Hi Isa,
    note that “created with” does not say anything about the copyright or intellectual property of the code.
    It merely states that the code has been generated with the help of iExpressions, so if you want to modify it, it is a good idea to load it into iExpressions again. If you linked parameters to sliders, for example, and in particular if you modified the options of the link, the code created by iExpressions for these links is a bit hard to read and editing it with iExpressions is much simpler. Therefore, it is good that people can see if the expression has been created with iExpressions or not. But of course it is just code and you can modify the comments however you like.


    Isa Alsup said:
    I don't appreciate iExpression claiming to have created expressions I wrote and saved:

    // iExpression: (name)
    For expressions that come with iExpression, this is appropriate. 
    For others, attribution should be removed or customized
    Also note that if you want your name in the comment, you can simply include it in the expression in your library. If you save your expression as "Wiggle by Isa Alsup", iExpressions will write in the expression
    // iExpression: Wiggle by Isa Alsup
  • Is it possible to combine several expressions? E.g Spring and loop cycle? Thanks
  • Hi Rusty,

    in general, After Effects (and also iExpressions) only allows to have one expression on a property. If you want one expression to act on top of the result of another expression, you can bake the first expression into keyframes and then apply the second one. Tthis makes sense, if the second expression uses the keyframes of the property, as the loop expression does, for example. So you can bake the spring and then apply the loop on top of it.

    If you want to transition from one expression to another one (first only expression A is active then transition to expression B being active) you can also use my script Expression Timeline.
    It works with any expressions, you can also cut and paste expressions into it that you created with iExpressions.

    Is it possible to combine several expressions? E.g Spring and loop cycle? Thanks

  • Hello !
    If I use Iexpressions in my project and send the project to a collegue who isn't licensed, will it still work for him ? In other words : does iexpressions create a code ?
    Thanks for your answer
    Claire
  • Hi Claire,

    iExpressions just creates expressions and they will work without issues on machines where iExpressions is not installed. You can also use the expressions in motion graphics templates and users of the templates don't need to have iExpressions installed.

    Only if you want to change the parameters of the iExpressions, you need to load them into the iExpressions user interface. But if your colleagues don't need to change the expressions and only use them as they are, they don't need to install iExpressions.

    Hello !
    If I use Iexpressions in my project and send the project to a collegue who isn't licensed, will it still work for him ? In other words : does iexpressions create a code ?
    Thanks for your answer
    Claire

  • Can we link selected scripts/expressions to kbar buttons so ew don't need to have the panel open? Or maybe have the expressions searchable in FX Console?
  • Hi Saxon,

    this is currently not supported but a great feature request!
    I will keep it in mind for future updates.
    Saxon Rix said:
    Can we link selected scripts/expressions to kbar buttons so ew don't need to have the panel open? Or maybe have the expressions searchable in FX Console?

  • Hi Saxon,

    this is currently not supported but a great feature request!
    I will keep it in mind for future updates.
    Great, thank you! It think it'd help to fit iexpressions into a lot more of people's existing workflows and help to keep panels to a minimum.
  • can you can delete the note: //{{iExpressionData:df704ff09156bc6cfbd1ad713a06cfb2835336be4edfc15afac0.................iExpressionDataEnd}}
    i often use more than 100 expressions  in a project, it makes project size increase
  • Hi Ryan,

    iExpressions needs this data if you want to load the expression later in the UI again to modify it.
    If you are sure that you don't want to modify the expressions anymore, you could delete them, but usually it is better to keep them. The data roughly doubles the size of the expression, so you should really just notice it at all, if you have a lot of very long expressions in your project.
    can you can delete the note: //{{iExpressionData:df704ff09156bc6cfbd1ad713a06cfb2835336be4edfc15afac0.................iExpressionDataEnd}}
    i often use more than 100 expressions  in a project, it makes project size increase

  • I'm using this to replicate UIkit springs and it's very slow especially when you start using it on several layers. I'm on a M1 Macbook pro with 32 gigs of ram. Any chance this could be improved?
  • Hi Jonas,

    the spring simulations need to be implemented as frame by frame simulations in order to replicate the exact behavior of Android and UI Kit. Unfortunately frame by frame simulations are not efficient in After Effects expressions. But there are two things you can do:

    1) The performance depends heavily on the duration of the layer. The 100th frame takes 100 times as much work to calculate as the first one. Therefore, layers of a few seconds calculate fast, but layers which are minutes long calculate very slow. Make sure to make your layers as short as possible. If needed, split the layer into multiple ones.
    2) If you use the graph editor, make sure it does not show the post expression graph. Because this graph slows down the expression calculation a lot.

    I'm using this to replicate UIkit springs and it's very slow especially when you start using it on several layers. I'm on a M1 Macbook pro with 32 gigs of ram. Any chance this could be improved?

  • I'm trying to use the iExpressions Play Animation at Marker expression to trigger trim paths animations, as well as to trigger playback of an embedded precomp layer within presomp where all of these keyframes reside, and then I need to have the trigger markers on the precomp layer in the main comp. I cannot see a way to do this. I have the (other) Trigger plugin, which can do all of this, but it cannot retime speed of playback the way the iExpressions method can, so I would very much like to use iExpressions for this. Please help!


  • Hi Mark,
    the iExpression can use markers from any other layer - also from layers in other compostions.
    In the "Play Animation At Marker" iExpression go to the section "Marker Source" and choose "Use markers from other layer". Then select the precomp layer in the main comp and click the "Connect" button. Now you can apply the expression to any properties inside the precomp (or any other comps) and they will react to the markers on the precomp layer.

    image
    I'm trying to use the iExpressions Play Animation at Marker expression to trigger trim paths animations, as well as to trigger playback of an embedded precomp layer within presomp where all of these keyframes reside, and then I need to have the trigger markers on the precomp layer in the main comp. I cannot see a way to do this. I have the (other) Trigger plugin, which can do all of this, but it cannot retime speed of playback the way the iExpressions method can, so I would very much like to use iExpressions for this. Please help!



  • Hey having an issue where during my walk cycle the character stops and starts sliding? 
  • Hi Jazz,

    can you explain the issue in a bit more detail? The more I know, the quicker and better I am able to help. Is it only for a particular period of time where it is sliding?If so, what happens during that time (i.e. which keyframes do you have there). Do you have a background layer connected?
    If you move the background layer and the character in exactly the same way, for example, the character will "slide", since  when you move the background layer, this means the entire scene moves (like a camera pan) and hence, the character does not walk.

    Hey having an issue where during my walk cycle the character stops and starts sliding? 

  • Hi, would it be possible to add SwiftUI springs to the library in addition to UIkit? I just learned from our iOS eng that SwiftUI and UIKit springs result in slightly different motion. It would be helpful to be able to get matching parameters for both when speccing motion for eng.
  • Hi there! 
    I'm trying your awesome walk cycle expression to see if I can implement it into my animation workflow.

    Is it possible to have a character switch from walking to running (or vice versa) using the same master control null?
    It seems I can only EITHER have it walk OR run, not switch. 
    What would be the best way to do is?
    (preferably without making duplicates to a character)

    I'm testing to have a character move in place, walk around, start running, stop and turn, jump etc. to cover all bases.
    All works great by adding animation on top of the walk cycle, only switching between walking and running I can't seem to work out.

    Thanks so much for your time!
  • Hi Solo,

    iExpression just supports either walking or running in a single instance of the expression.

    As a workaround, you could try to combine two instances with Expression Timeline. This should even allow to blend between walking and running.
    However, I have a few bug reports that Ae crashes sometimes when you launch Expression Timeline on recent Ae versions. So please check with the trial version, if this is the case on your system. I also submitted a bug report to Adobe,  but I am not sure if it is fixed already.

    Another option would be to have three copies of your hand and foot goal nulls. 
    - use one copy to apply the running walk cycle to it
    - use a second copy to apply the walking walk cycle to it
    - use a third copy with a Linear Link 2D iExpression on its position to link it to both the first and second copy. That way, you can control with a slider how much it follows the first and/or the second copy, i.e. again have a slider to blend between walking and running. Your character then can be connected to this third copy and the other two copies are just there in order to be able to blend between them.


    Hi there! 
    I'm trying your awesome walk cycle expression to see if I can implement it into my animation workflow.

    Is it possible to have a character switch from walking to running (or vice versa) using the same master control null?
    It seems I can only EITHER have it walk OR run, not switch. 
    What would be the best way to do is?
    (preferably without making duplicates to a character)

    I'm testing to have a character move in place, walk around, start running, stop and turn, jump etc. to cover all bases.
    All works great by adding animation on top of the walk cycle, only switching between walking and running I can't seem to work out.

    Thanks so much for your time!

  • Hi! I have iExpressions and wondered if you will be adding to the library it has at all?
  • Hi Caden,
    we keep a list of feature requests for all our products and then prioritize our development based on how promising and useful new features could be. For iExpressions we don't have many ideas in the pipeline, currently, since the big topics are covered pretty well already. We only want to add new expressions if they really add value for a lot of users. So if you have any ideas for new expressions, I would be very interested to hear them.

    Hi! I have iExpressions and wondered if you will be adding to the library it has at all?

  • Does anyone know how to expand this Dan Ebbert expression so that it works with iExpressions? (Which is currently not loading it into the UI) The issue is with the COLORS array

    colors = [[255,205,45,255]/255,[220,20,60,255]/255,[20,100,80,155]/255,[20,80,200,60]/255];
    period = 1.5;
    seed = Math.floor  (time/period);
    seedRandom(seed,true);
    idx = Math.floor(random(colors.length));
    colors[idx]

  • The problem is that iExpressions does not support color arrays as parameters. You can move the colors array down, such that it not used as parameter - with this variant you should at least see the period as parameter in iExpressions:

    period = 1.5;
    seed = Math.floor  (time/period);
    seedRandom(seed,true);
    colors = [[255,205,45,255]/255,[220,20,60,255]/255,[20,100,80,155]/255,[20,80,200,60]/255];
    idx = Math.floor(random(colors.length));
    colors[idx]


    Does anyone know how to expand this Dan Ebbert expression so that it works with iExpressions? (Which is currently not loading it into the UI) The issue is with the COLORS array

    colors = [[255,205,45,255]/255,[220,20,60,255]/255,[20,100,80,155]/255,[20,80,200,60]/255];
    period = 1.5;
    seed = Math.floor  (time/period);
    seedRandom(seed,true);
    idx = Math.floor(random(colors.length));
    colors[idx]



  • The problem is that iExpressions does not support color arrays as parameters. You can move the colors array down, such that it not used as parameter - with this variant you should at least see the period as parameter in iExpressions:
    Thank you Möhl! Is there a definitive list somewhere of what iExpressions does not support?
  • iExpressions recognizes variables with the following values and shows them in the UI:
    - boolean values (will show up as checkboxes) 
    - numbers
    - arrays of two numbers (i.e.  2D points)
    - arrays of three numbers (i.e. 3D points)
    - strings
    - colors
    - links to properties
    - links to layers


    Thank you Möhl! Is there a definitive list somewhere of what iExpressions does not support?

  • iExpressions recognizes variables with the following values and shows them in the UI:
    - boolean values (will show up as checkboxes) 
    - numbers
    - arrays of two numbers (i.e.  2D points)
    - arrays of three numbers (i.e. 3D points)
    - strings
    - colors
    - links to properties
    - links to layers

    I see,

    chrs