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

For those who may not know, iTween is a procedural animation package for Unity that allows you to animate objects on the fly during runtime. Move , rotate this way, change to this colour, scale to this size, etc. Tell it what to do and it’ll do it smoothly. It’s amazing.

iTween: iTween for Unity by Bob Berkebile (pixelplacement)

If you love iTween in Unity, you’ll (kinda) like this. With the help of original author Bob Berkebile, we’ve ported over most of the functionality to Blueprints and C++, with more to come!

Latest download: Update 37 (Sep 10 2023)(5.3):

Video Tutorials can be found : Youtube
Wiki Entry found : https://www.ue4community.wiki/Legacy/Itween

If you’d like to be notified via private message on these forums when new versions are released, please send me a private message. Thanks!

Update 3: 's alpha release version 0.3 (because we said so): iTween for UE4 a0.3f

It has near 100% complete implementations of Move From/To Location, Move To Location Array, Move To Spline Component, and Float Update.

We understand some of this may seem cryptic or difficult to figure out without some sort of tutorial, and we apologise for that! We want to make the full suite of tweening operations available first before we get started on tutorials.

Update 4 (Sep 29 2014): https://forums.unrealengine.com/show…l=1#post155142

Update 5 (Oct 3 2014): https://forums.unrealengine.com/show…l=1#post158082

Update 6 (Oct 21 2014) |DON’T DOWNLOAD THIS, DOWNLOAD UPDATE 7|: https://forums.unrealengine.com/show…l=1#post167360

Update 7 (Oct 22 2014): https://forums.unrealengine.com/show…l=1#post167993

Update 8 (Oct 29 2014): https://forums.unrealengine.com/show…l=1#post171698

Update 9 (Dec 25 2014): https://forums.unrealengine.com/show…l=1#post197552

Update 10 (Jan 6 2015): https://forums.unrealengine.com/show…l=1#post202034

Update 11 (Jan 8 2015): https://forums.unrealengine.com/show…l=1#post202593

Update 12 (Feb 12 2015): https://forums.unrealengine.com/show…l=1#post221051

Update 13 (Mar 19 2015): https://forums.unrealengine.com/show…l=1#post251158

Update 14 (Hotfix) (Mar 20 2015): https://forums.unrealengine.com/show…l=1#post252755

Update 15 (Hotfix) (Mar 22 2015): https://forums.unrealengine.com/show…l=1#post254384

Update 16 (same version, recompiled for 4.8) (Jun 14 2015): https://forums.unrealengine.com/show…l=1#post311438

Update 17 (same version, recompiled for 4.10) (Dec 12 2015): https://forums.unrealengine.com/show…l=1#post436494

Update 18 HOTFIX (addresses packaging issues) (Mar 15 2016): https://forums.unrealengine.com/show…l=1#post493837

Update 19 HOTTERFIX (addresses packaging issues on mobile specifically) (Mar 29 2016): https://forums.unrealengine.com/show…l=1#post502047

Update 20 (recompile for 4.11): https://forums.unrealengine.com/show…l=1#post504434

Update 21 (May 10 2016): https://forums.unrealengine.com/show…l=1#post527827

Update 22 (Nov 15 2016)(Recompile for 4.14): Mediafire Mega

Update 23 (Mar 10 2017)(Recompile for 4.15):
Mediafire Mega

Update 24 (May 31 2017)(Recompile for 4.16):
Mega

Update 25 (Mar 18 2018)(Recompiles for 4.17, 4.18 and 4.19): https://forums.unrealengine.com/deve…14#post1445814

Update 26 (Jul 29 2018)(v0.8.8 for 4.20): https://forums.unrealengine.com/development-discussion/blueprint-visual-scripting/15366-open-beta-procedural-on-the-fly-animation-in-ue4-itween?p=1508518#post1508518

Update 27 (Nov 17 2018)(Recompile of 0.8.8 for 4.21): https://www.mediafire.com/file/63k4b…-4.21.zip/file

Update 27 (Apr 11 2019)(Recompile of 0.8.8 for 4.22): https://www.mediafire.com/folder/n46…/iTween_Builds

Update 28 (Oct 2 2019)(Recompile of 0.8.8 for 4.23): http://www.mediafire.com/file/3dl64v…_4.23.rar/file

Update 29 (Dec 11 2019)(Recompile of 0.8.8 for 4.24): 4_24 - Google Drive

Update 30 (May 10 2020)(Recompile of 0.8.8 for 4.25): 4_25 - Google Drive

Update 31 (Dec 3 2020)(Recompile of 0.8.8 for 4.26): 4_26 - Google Drive

Update 32 (Jun 17 2021)(Recompile of 0.8.8 for UE5EA):
https://drive.google.com/drive/folders/1yDZANZfTkUPkrkEHUn1tDmsCFMeMy6Ik?usp=sharing

Update 33 (Aug 22 2021)(Recompile of 0.8.8 for 4.27): 4_27 - Google Drive

Update 34 (Apr 14 2022)(Recompile of 0.8.8 for 5.0 HOTFIX):

Update 35 (Dec 11 2022)(Recompile of 0.8.8 for 5.1):

Update 36 (Jun 04 2023)(5.2, please read the linked post):

Update 37 (Sep 10 2023)(5.3):

If you’d like to donate to the project, you can donate to the original iTween author at PixelPlacement directly at the bottom of the iTween page : iTween for Unity by Bob Berkebile (pixelplacement)

and/or donate to the team responsible for the Unreal Engine port by sticking around for the post-roll ads in our Youtube tutorials. We hate pre-roll ads too, so we decided to go with post-roll as a form of opt-in donation to the porting team :slight_smile: Video Tutorials

Gladly accepting any and all help and collaboration.

-FAQ-

Q: Why not just use Timeline or Matinee/Sequencer?
A: Timeline and Matinee/Sequencer are fantastic tools, but they only allow “hardcoded” animations, unless we’re dumb and missed something (probably). They must be set deliberately and cannot be changed dynamically during gameplay (so no following moving objects, for example). This system allows for exactly that.

Q: Why won’t my object move?
A: Assuming you followed the above sequence perfectly, you should also make sure the object you want to move is set to “Movable” in the Details pane in the editor. Static objects will not move.

Q: Where is x feature from iTween?
A: It’s still in beta and is being worked on. Most features are implemented but there may be some features still lacking. Give it some time. The plan is to eventually support every feature currently available in iTween, provided we can figure out how to do it in UE. If there’s a feature you really need more than any other, please comment in the thread. :slight_smile:

Q: Can this be used with UMG?
A: Yes! iTween 0.8b and later fully supports Render Transforms for UMG. Move, Scale, Rotate, and Shear all can be tweened.

Q: How about Slate?
A: **Not as of 4.25. Previous versions do support Slate. Previous message: **Yes! Thanks to , iTween supports Slate through C++ in limited capacities. This will be expanded upon in the future. Use STweenableWidget to derive all of your Slate primitives to tween them. This is not currently supported on mobile platforms, so use UMG if you want to tween any UI widgets on iOS or Android.

Q: Can this be used with BP Components?
A: Absolutely. They operate just like actors.

Q: Why doesn’t Ease In and Out Elastic on mobile look like it does on other platforms?
A: Mobile compilers don’t like value assignments in equations and that’s what this EaseType relies on. It’ll work everywhere BUT mobile platforms. If you want a similar effect, it’s best to make a custom curve that mimics it OR run Ease In Elastic then Ease Out Elastic when it finishes.

Q: Do you plan to submit to the marketplace? What will iTween cost?
A: With 4.8, free code plugins are being evaluated on the marketplace. Hopefully soon we’ll be able to put iTween up for all to download. :slight_smile:

Q: Why did you do x this way? This other way is more efficient/smart/user-friendly!
A: Please don’t hesitate to share your thoughts on situations like these! We’d like to think we’re pretty good with the engine, but in the end we’re amateurs trying to help others. Help us help you!

Q: I found a bug… ?
A: Nice ambiguous inflection! You probably did. This is in beta and comes with no guarantees. However, everything happens at runtime and should not permanently affect your game. If you have time, please list any bugs you come across in the thread so we can fix them.

Thank you all, and enjoy!

-Sweet, in association with PixelPlacement


Runtime DataTable : Import and export game data to and from CSV or Google Sheets while your game is running!

GSheets Operator : Interface with Google Sheets, add new and delete old sheets, edit columns and rows, make in-game spreadsheets and more!

easyCSV : Read data from any CSV and put them in an easy-to-access string map!

iTween : Free, smooth, procedural object animation

3 Likes

Hey , this is great news! I’m sure this will come in handy for a lot of UE4 projects. Glad to see the project make the leap over to Unreal. Any plans to add pathing support?

Hey Chance, thank you for the pity reply! :smiley: Yes, pathing is definitely on the short list since it’s something we use frequently in Unity. Speaking for myself, I’ll be finishing the basic stuff tonight into tomorrow. Speaking for the team, our level designer knows the pathing tools in UE4 much better than I do so he’ll probably handle most of that within the week, or at least provide me with some of his understanding of the tools so I can do it myself.

As an aside, our concept artist adores your hair.

You can manipulate the Layout positions of some widgets, anything inside a Canvas Panel can be manipulated, Get the widgets Slot, then cast it to a CanvasPanelSlot, then you’re free to move it, though it’s not terribly easy yet even when you get there, you need to understand what the offsets structure means depending on the current stretching rules.

We’re working on getting render transforms done, once that’s done, every widget no matter what container they are in will have access to perform any 2D transform (relative to their layout position) Woo!

Ha! I need a haircut… Also - not a pity reply! always excited to see this kind of stuff happening.

Oh man, that is fantastic news. I think we’ll wait on UMG tweening for the render transforms update. We’re very excited to see that happen!

I feel you Chance, I need one too. Too much time programming, not enough time making sure I don’t look homeless. Glad to hear you’re happy!

While I have you guys in , I’d like to ask - the current implementation exists from the moment it’s created until the end of the game and ticks a sequence, each branch stopped by a gate. What is the tick overhead for checking a gate, especially dozens of them? Would it be more performant to not tick the master UETween object, but instead instantiate a new object for the specific tweening operation that ticks until it’s finished, then destroy it?

This sounds like a handy tool, even though i’m not 100% sure what it does that we cant do with built-in blueprints. I’ll keep an eye on this and wait for a video demonstration. Good luck!

1 Like

It doesn’t do anything at all that can’t be done with blueprints - it’s simply a consolidation of nodes into an ease-of-use function to simplify R-,V-, and F-Interp functions. Instead of a spaghetti string of nodes all over the place, you simply call a function and plug in stuff like the actor you want to manipulate and the location/rotation/value you want to interpolate to. There is no new functionality - it’s meant to make the functionality that exists a bit easier to use.

Oh, ok. Cool then. :slight_smile:

1 Like

Bump for updates!

Update 1: We’ve totally revamped the system. Now the UETween instance will spawn specialised actors to do specific things that will then destroy themselves when the tween is finished, so no unnecessary Tick overhead! Additionally we’ve decided to go with the Lerp functions instead of Interp functions for the sake of Easing functions. It’s almost feature-complete at this point: Local and World transforms, Ease Types, more accurate Time calculations, a notify system (OnStart, OnTick, OnComplete), pretty much everything iTween can do. The only downside: We’ve only nailed down Move From/To. We’re also not quite there on every iTween feature yet, so sit tight. TO DO: Paths (definitely coming, will use UE4’s built-in Spline Component attached to any actor), orienting to path, axis rotation restriction, delay, looping, and the ability to ignore time dilation/pausing. Literally everything else is complete. Then we have to move on to the rest of the events (Move By, Rotate To, Value To, etc.) and when 4.5 drops, UMG functionality.

FYI , Render Transforms are now in the master branch on github. You could begin to experiment before 4.5 drops.

That I may just do. I personally tend to shy away from the GitHub commits because up until I switched to stables, it took longer to compile my games, which was especially frustrating for iterative changes. If this is no longer an issue, I would love to switch back. If it is still the case though, I’d have to ask: how complete is UMG now in the nightlies? If it’s pretty much there, I may as well keep a side version of the engine on hand.

Update 2: Bob Berkebile, author of iTween, is on board to offer his help and consulting. Since this is now an official project, we’ve decided to stick with the name iTween to make it easier for those porting their games over from Unity to Unreal.

Dude, this is one of best things I’ve heard so far!! =P I’m almost iTween dependent (I’m moving from Unity to Unreal). I’m starting all my new projects in Unreal and I had to do some crazy node setup with timeline to make an generic way to animate my UI and objetcs dynamically =P

Looking forward for this!

Any download link for the most recent version!? If I donate from iTween site will already go to you guys?

Cheers!

Dude, I’m glad to hear somebody can use this! We’d push ahead with this port whether or not anyone else would actually use it because we’re also pretty iTween-dependent, but encouragement is always a great motivator. In fact, the main reason we started this was because we were in the same boat as you - Timeline was too rigid, Interp functions were only Ease-Out, and we couldn’t do any cool effects like elastic without some serious finagling. So we started work on this project.

We’re associated with Bob, the author of iTween for Unity and this is an official UE4 port, but we are separate teams and he’s only consulting for the work done on this. We definitely encourage donations to Bob at PixelPlacement for all of his work on the original system, but he isn’t directly working on the port nor will donations made to him go to us.

That said, our team doesn’t need any donations! Thank you very much for the sentiment though! We’re on track to have a near-1.0 Blueprint release by the end of Sepetember and will continue to work on it for a while to come. Right now we’re around 20% done with the framework, but only one tween type is ready right now, Move From/To (a combination of MoveFrom and MoveTo) and even that is only about 85% done. If you’d like, you can download what we currently have to offer : iTween for UE4 This is the latest version I just now personally zipped up. Keep in mind that this release breaks some functionality with Move By/Rotate To/Rotate By for the sake of the framework overhaul, but Move From/To is mostly there. Documentation hasn’t been updated since the first proof-of-concept release. Just put the “iTween” folder in your Contents\Blueprints folder and follow the tutorial in this thread. We’ll be posting updates every time a node is 100%, just sit tight!

Awesome

Thank you for the download link :wink:

I will make my donation anyway, he deserves!

Cheers!

A video tutorial would be great!

We agree, and as a result video tutorials are first thing on the list once we have all the basic features done.

Little update: Move From/To is 100% done (though the In-Out Elastic Easetype needs some more time in the kitchen, it’s not specific to Move From/To. Move To Path/Move To Curve are being separated out into their own Class BPs since the current Event system won’t allow for array inputs to not have a connection, and it’s probably for the best since the Move From/To Class was getting a bit unmanageable in size.

Barring any unforseen circumstances we’ll be releasing the Move From/To, Move To Path and Move To Curve Classes tonight.

Hey! I loved iTween for unity! Awesome to see it make it to UE4 and I have the perfect project to try it out on!

Cheers,
Oz

Great! Please don’t hesitate to show us all what you can do with iTween (when we get it out the door, that is)!

I ran into a compile error snag that I couldn’t quite track down. Turns out it was a weird engine bug that just required an engine restart. Unforeseen circumstances strike again! I’ll make every effort to get iTween v0.25 out tomorrow, but I can make no promises. This version will include a mostly working Move From/To, Move To Spline, Move To Vector Array, and Float Tick (to update a float over time) with the full extent of options available. If not tomorrow, look for it on Friday.

Cheers, y’all