[Open Beta] Procedural On-the-Fly Animation in UE4: iTween!

Oh, thank you! I’m so glad you’re finding it useful!

This look very interesting. I’ve download the latest version, but, their is no .exe in the file like in the installation video. How should I proceed for the installation ? Thank you

Hello biiiiioshock

You can just put the iTween folder in your plugins folder in your project or in the engine folder. I didn’t stop including the installer for any particular reason, I just forgot after a few months without an engine upgrade :slight_smile: But it’s not necessary, manual installation does the same thing.

Here’s a tutorial for UnrealCV (Install UnrealCV Plugin — UnrealCV 0.3.10 documentation) but it’ll work the same for iTween.

Perfect, thank you !

Hi everyone, here’s a recompile for Unreal Engine 4.25. No new features or fixes, but you should know that **support for Slate tweens has been removed. Note that this does not affect UMG tweening.


4.25 just isn’t playing well with it. I’ve tried all weekend to fix the compilation errors on Mac and iOS but I wasn’t able to track the issue down. Knowing that the feature wasn’t widely used coupled with the fact that removing it cut compile times in half, I decided it was better to keep the feature out of compilations moving forward. It’s not necessarily gone forever but as of now I won’t be including it.

If you still need support for Slate tweening then I’d recommend sticking with 4.24 or recompiling on your own machine with the included source. The classes appear to work ok on Windows and Android and no changes have otherwise been made for the code so if you want to work on fixing slate support then all you have to do is fix the errors with using the classes on 4.25.

I do apologize to anyone this news disappoints but I don’t see a way forward with slate support at this time. If I need slate support specifically in the future then I’ll work more on it.

4.25 Version: iTween - Google Drive

Hi! Thank you so much for your work, I hope this question is appropriate for this thread as I am quite new to both Unreal and its forum.

Would this plug in be the best way to create dynamic shapes and objects? Meaning, objects/geometry that evolve over time.

I hope my query is clear.

Thanks in Advance…

Good day Impossybleposslb,

The answer is, it depends! The plugin is meant to change the transforms of actors, components and UMG widgets, but it also has operations to change floats, vectors and colours over time.

If you want to change the topology of static meshes, this plugin would help. You’d have to create a runtime mesh, figure out where to move vertices (to morph the mesh the way you want it to) then run a number of Vector Move From/To functions to translate the vertex positions of your original dynamic mesh to the positions you want in your morphed mesh then plug the result of the tween into your dynamic mesh’s vertex position every frame (on update).

This is a very complicated way to handle this, but is possible. What is it that you want to do in specific? I can try to help you find the best solution for what you want.

Thanks so much for response! I truly appreciate it as indeed I am a bit lost.

  1. The end goal is a series of music visualisers in VR(so, objects morphing,changing in response to music), however, for now I would simply be happy to achieve this in regular 3D

2)Transform an object into particles(particles of itself,not different colored particles etc)

3)Apply ripple or any other transformative effect(and/or visual effects like motion blur) etc to an object

4)for one example, maybe you have a square that suddenly has different shapes sticking out, pulsing…

5)recursive multiplication of an object(while keeping them connected)

Anyways, that´s a lot of stuff, so whatever light you have the time and inclination to shed will be more than appreciated.

Thx in Advance!

[USER=“13335”]Jared Therriault[/USER] I just learned about tweening and I happened to stumble on your page! this plugin looks awesome. I do have a question. Can this manipulate umg objects like text or buttons? I’m trying to make my main menu a little more animated. when the title drops down from the top, I’m wanting to have kind of a bouncy or jiggly look once the text stops. It’s a kid’s game so I’m trying to make things as animated as possible. is that something your plugin can help with? I’m just having trouble manually keying in a proper looking bounce!

[USER=“13335”]Jared Therriault[/USER] Nevermind. ten minutes into your plugin and i have amazing bouncy text! you’re a LIFESAVER!! thank you so so much!!

Hey [USER=“13335”]Jared Therriault[/USER] I’ve spent a while getting all of my menu items using your amazing plugin, but as soon as I get into the multiplayer side of things, It’s bad. Crashing all over the place anytime the server and client are replicating a widget. I’m so bummed! I noticed someone above me described how he went into the code to properly fix it, but I’m all Blueprint! Not sure where to begin with that. Any chance we could get this bug fixed asap?? Thanks so much!!

So I did manage to find a temporary workaround and pintpoint the overal problem. If I have an Itween node kicking off AT map start, it crashes the multiplayer game. But if I set it with a timer to go off in even 2 seconds after load, it’s just fine. Something about loading a multiplayer map with itween nodes from the very start is crashing it every time. After the map loads, I have several widgets using itween with no issue. Just wanted to let you know!

Hey ksimpson1986 - this is a known issue with multiplayer. The iTween library works by spawning in an actor that does the operations and to spawn an actor you need a reference to the world. Rather than making users pass in a World Context object every time they call it, I just get the viewport. But the viewport of course doesn’t always exist in a multiplayer environment so I’m going to have to find another solution.

However I don’t have the extra time to invest in iTween at the moment. I created it for my team and shared it. In time we’ll get to working on multiplayer projects and at that time I’ll have to work out a solution for iTween to work with our new project, but for now all of my time is being spent on game development and other tools local to the project. I’ll definitely keep updating the build for new versions and fix critical blockers that have no workaround, but at the moment I don’t have the capacity for its active development.

That said, I do have an idea of how to amend the code and if I end up with a free weekend I’ll push the change that will end up in the next version. The idea is to add a World Context Object pin just in case, but I’m not sure if the pin can be left unhooked in a static function. I’m also not sure if that will work in a multiplayer environment and I don’t have a multiplayer project to test it on so fingers crossed when that gets released :smiley:

[USER=“13335”]Jared Therriault[/USER] Thanks for responding and explaining! I’ll be more than happy to test the new function if you release it. So far, adding the small delay really isn’t that big of a deal to me, i just gotta be careful on my map loads. It’s worth it since your plugin breathed life into my project. thank you for making this plugin!

Thank you for the kind words! I’ll be sure to PM you when I’m able to put the fix in!

Hey everyone! 4.26 just released, so here’s iTween for 4.26!


Hi, I’ve been trying to use this plugin to create a more advanced weapon sway, using the ease in and ease out elastic. Everything works when I use set relative rotation, other wise when I use component rotate from the weapon just starts glitching out stuttering and rotating everywhere crazy. I also thought maybe doing it with the Float from too node but theres no way to get the output of the float. I would greatly appreciate any help!

iTween may not handle component relative rotations super well in certain situations. It’s something I would like to fix one day if I ever have a free moment I wouldn’t mind spending in a dev environment. You might try to experiment with the Shortest Path parameter or try using transform rotation to do everything in world space. But otherwise I can help you out with data tweens.

In the image below, you can see me kick off a float tween. On update, we call FloatTweenUpdate which gets an actor of class and updates its relative rotation using a value from the DTV struct.

To accomplish this, set up the tween as normal. If you’re using the Full node, add a function name that will be called on update into the “On Tween Update Function Name” field. If using the Simple node (pictured) type oufn = {function name} into Parameters. oufn of course stands for “on update function name.” Both of these nodes accomplish the same things, this is just a quicker way.

I didn’t do this in the picture, but you’ll also need to plug something into the “On Tween Update Target” pin. This is the object that has a function named the same as what you put into the “On Tween Update Function Name” field. In this case since the same blueprint calls the tween and the target function, we’d plug in “Self” here.

Finally, in the target function we need to access the float data from the tween. To do so, get the iTween Actor reference from the Return Value of the float tween and search for “Data Type Values”. This should return a struct. Split the struct and get the float from it.

You can do this same kind of thing for any data tweens. You may have luck doing a data tween with a rotator or vector if need be. Try some different stuff. Sorry for the inconvenience there!

That was extremely helpful information, hopefully I can use tween to add eleasticity to my floats and plus them into either interp or set rotation. I’ll be experimenting with it. Thank you for the help, and the plug-in is awesome as well!


4.27 version is found here: - Google Drive

1 Like