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

Swift, you have 57 posts and I feel like at least half of them are in this thread. You are truly one of, if I may play favourites, favourites!

Yes, the interval is able to be changed dynamically. After you create you iTween Event, just call “SetTimerInterval(float interval)” on the event. In Blueprints, you can call it by dragging out from the Return Value pin when you create an iTween operation then search for “interval.” In C++, each iTween Function returns an iTweenEvent object. When you call one, assign it to an AiTweenEvent* variable, then call “SetTimerInterval(float interval)” on that variable pointer.

Hello,

I’ve got a little question.
I’m using iTween 0.8.1b with unrealengine version 4.6.1.
I installed itween only as blueprint user.

for testing i’ve setup a pawn with only a staticmesh

in the eventgraph i simply did an EventBeginPlay that calls Actor Move From/To.
Actor to move = self
location From = get actor location
location to = random vector
the rest of the variables are default.

When i hit play, nothing happens; the actor doesn’t move…

Could you please tell me what i’n doing wrong?

Tnx in advance.
Greetz,
G

P.s. Great tool!

Haha I’d agree with you there. ^^; I’m truly honored to hear that :)!!

Awesome :D, one of the reasons I’ve been so looking forward to my next project is so I could begin playing with the iTween events again and that desire has increased 10fold with this new feature you’ve added, can’t wait to dig into it and I’m excited to see your plugin develop even further :D! Keep up the incredible work and ingenious additions :D.

From the sound of your post the issue is that you have set it up on begin play. iTweens need to be setup on the event tick node, not begin play. That should solve your issue unless something else is going on. A screenshot if possible would help if that doesn’t solve it.

Can’t wait to see what other crazy macros and implementations you can come up with, Swift!

I do have to disagree with you , though. Tweens can be set up from any event on the event graph, so Event Begin Play is a perfectly valid place to call a tween. In fact, calling from Tick is probably not a good idea unless you’re doing an Update operation, like Actor Move Update or Component Scale Update.

gpvd, like SwiftIllusion said a screenshot is definitely helpful for us to help troubleshoot your issue. Also check to make sure that your mesh is set to Movable and not Static, as Static objects cannot be moved at runtime.

Think i’m doing something horribly wrong (maybe some initial setup?)
Tnx for looking into it.

Edit, just set it back from tick event to on begin play. Still nothing.
Checked and pawn is set to movable.
Also, when i hit play and then stop , ue crashes…

Can’t wait for the opportunity to share the crazy usage cases I’ll be using iTween to help with :D.

Sorry that’s what I meant - it needs tick when moving an actor via Actor Move as I believed they were using from their comment.

I believe your issue might be that you have your actor moving in parent space.
This means, in theory, the get actor location is returning 0,0,0 consistently and so it’s not moving to the randomized co-ordinates you’ve given in world space?
Or it would be trying to reach a location it can’t get to because you’re constantly trying to change it’s co-ordinate in parent space, it would never reach its destination.
At least that’s the only idea I could personally come up with as why it might be having issues based on your screenshot.

Well, finally got it working; somehow…

Used ActorMoveUpdate, connected to event tick and that worked.
But i’m confused now, so could you give me a basic example on how to setup a move tween for an actor (or pawn)
, using ActorMoveFrom/To (Full) and post a picture of it?
Think i’m a slow learner and 1 pic could save the day for me :wink:

Many tnx in advance

Based on the video tutorial made for the older version - YouTube - Actor move from/to should be run as a single event, i.e. begin play would be where you’d use it, or in the case of pressing an input button, etc. And MoveUpdate is the new MoveTick? from the video, I think (not much experience with new version), which should be used continuously via the tick as you have done. Not sure if that helps any more but glad you’ve at least got it working now :).

Sure, I can do that for you. But if I may ask:

-Are you running any other plugins? Alex Ledge Climbing System sometimes does not play nice with iTween.
-Does your pawn have any other logic on it? It doesn’t appear to, but anything acting upon an actor’s transform that runs after iTween will nullify iTween’s operations.
-Does a PlayerController act upon this pawn?
-Does it still not move if you set a vector directly, rather than the random vector?
-Have you tried setting the interval directly? Try setting TimerInterval to something like 0.033. In case something is overriding the Tick function, this should combat that.
-Have you removed any engine logic from your project to keep file size down? This can sometimes interfere with iTween.
-Forgive me for the dumb question, but is the pawn placed in the world? Is its static Mesh set to use a static mesh or is it empty? Is the static mesh itself set to Movable on the components page? I know these sound really basic but even I forget sometimes to actually place blueprints on which I’m working :stuck_out_tongue:
-In my tests I found that sometimes the random vector was very far away, and in trying to reach that destination in the time allotted it moved too fast to be seen. I doubt this is the issue since you’ve experienced it over and over, but it’s a possibility.
-If all else fails, can you check for me if this problem occurs in a new, clean project on your system?

Your picture appears to be correctly set up, so it’s got to be something else.

Yep, Update is the new Tick because A) iTween in Unity calls it MoveUpdate and I wanted to keep as much consistency as possible and B) I wanted to discourage the use of Tick in favour of Timers. :slight_smile:

Ahhh awesome, sounds perfect :D, love the attention to even the node title methodology :), just like the change “-Loop Type “Once” changed to “Play Once” to avoid confusion that “Once” made the tween play twice.” which I didn’t mention before but had actually sent me for a loop myself when trying to understand it xD, Play Once works much better :).

Ha, well I’m glad these grammatical changes matter to someone other than myself!

I really want to change “OnTweenDataTick” to “OnTweenDataUpdate” but if I do it’ll corrupt blueprints that implement iTInterface so… we’re stuck with that then :stuck_out_tongue:

ok, a little update;

tested it in a new project and works like a charm!
(just setup an actor and attached actor move to on begin play)

So, itween is currently colliding with ‘something’ in my project.

The only external plugin i have installed is VictoryPlugin.

As i mentioned before i’m getting crashes when using itween and i don’t know if this is important to know but the message contains :
“Critical Error LandscapeHeightfieldCollisionComponent”

I’ll investigate further and let you know…

Ah, landscape. Mixed results with that. User Redsett solved his problem by deleting “LandscapeGizmoActiveActor.”

I’m not sure if you and Redsett are experiencing the same thing, but you might try that. I have to finish some other work today, but tonight I will look into landscapes and how they prevent iTween’s normal functions.

If you don’t mind, do you have a version of your project you can package and send to me so I have a test case? If not, that’s fine, but if you could provide it would help development a lot. If you can, PM it to me. Thanks!

Does your map run in Standalone? It’s possible the crash only occurs with PIE.

I’m sorry, but i cant sent you the project,
However some update:

Removing LandscapeGizmoActiveActor did not solve it.
I now get the message on PlayerState…

This is the message on LandscapeGizmoActiveActor:

Unknown exception - code 00000001
(first/second chance not available)

Fatal error: [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.6\Engine\Source\Developer\MessageLog\Private\Model\MessageLogListingModel.cpp]
[Line: 70]
Critical Error LandscapeHeightfieldCollisionComponent //Game//Maps//UEDPIE_0_Example_Map.

KERNELBASE + 37901 bytes
UE4Editor_Core + 3092349 bytes
UE4Editor_Core + 1597391
bytes
UE4Editor_MessageLog + 260693 bytes
UE4Editor_MessageLog + 260943 bytes
UE4Editor_Core + 1035877 bytes
UE4Editor_UnrealEd + 4299894 bytes
UE4Editor_UnrealEd + 1807402
bytes
UE4Editor_UnrealEd + 6686342 bytes
UE4Editor!FEngineLoop::Tick() + 3876 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\launchengineloop.cpp:2214]
UE4Editor!GuardedMain() + 479 bytes
[d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\launch.cpp:131]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() + 249 bytes
[d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__tmainCRTStartup() + 329 bytes
[f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]

and this on PlayerState:

Unknown exception - code 00000001
(first/second chance not available)

Fatal error: [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.6\Engine\Source\Developer\MessageLog\Private\Model\MessageLogListingModel.cpp] [Line: 70]

Critical Error PlayerState //Game//Maps//UEDPIE_0_Example_Map.Example_Map:PersistentLevel

KERNELBASE + 37901 bytes
UE4Editor_Core + 3092349 bytes
UE4Editor_Core + 1597391 bytes
UE4Editor_MessageLog + 260693 bytes
UE4Editor_MessageLog + 260943 bytes
UE4Editor_Core + 1035877 bytes
UE4Editor_UnrealEd + 4299894 bytes
UE4Editor_UnrealEd + 1807402 bytes
UE4Editor_UnrealEd + 6686342 bytes
UE4Editor!FEngineLoop::Tick() + 3876 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\launchengineloop.cpp:2214]
UE4Editor!GuardedMain() + 479 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\launch.cpp:131]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() + 249 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]

Maybe this helps the investigation somewhat?

It absolutely does, thank you! PlayerState is the same error ALCS throws.

Does your project utilize a PlayerState blueprint? If you were to create a new level in your project whose Game Mode did not use a PlayerState, does the error still occur?

Hello again,

I just tested with a new project;

Created new blueprint project based of sidescroller, including starter content.
Installed itween as blueprint only.
Added an actor, added a static mesh component to it
, and set the actor up in blueprint with adding the itween move actor to on begin play.
Hit play and it worked.

  • Added landscape;
    added a material (m_brick_hewn_stone)
    no variables changed.
    hit create.
    hit build to build the lightning etc.
    Hit play and… Crashed.

  • Restarted the project.
    removed landscape and landscape gizmo.
    Saved all and exit.

    Restarted the project.
    Hit play and it works again.

What i also observed whas; when it works, i see the iTaux actor in the scene.
When i start play wth the landscape include no iTaux actor in the scene.

This is the crash report:

Unknown exception - code 00000001 (first/second chance not available)

Fatal error: [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.6\Engine\Source\Developer\MessageLog\Private\Model\MessageLogListingModel.cpp] [Line: 70]
Critical
Error PlayerState //Game//Maps//UEDPIE_0_Example_Map.Example_Map:PersistentLevel

KERNELBASE + 37901 bytes
UE4Editor_Core + 3092349 bytes
UE4Editor_Core + 1597391 bytes
UE4Editor_MessageLog + 260693 bytes
UE4Editor_MessageLog + 260943 bytes
UE4Editor_Core + 1035877 bytes
UE4Editor_UnrealEd + 4299894 bytes
UE4Editor_UnrealEd + 1807402 bytes
UE4Editor_UnrealEd + 6686342 bytes
UE4Editor!FEngineLoop::Tick() + 3876 bytes
[d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\launchengineloop.cpp:2214]
UE4Editor!GuardedMain() + 479 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\launch.cpp:131]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() + 249 bytes
[d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]

Thank you for that invaluable feedback, gpvd! Detailed Repro and investigation, you’re a dev’s dream end user!

So clearly there’s an issue to be sorted with regards to the landscape system. Time to dive into the source code.

tnx for the compliment!
One thing though; In my own project i also removed the landscape, restarted and played; but still crashes.
So it looks landscape related in a clean project, but in my case still no solution.

I hope that you’ll find the issue.