Timelines in Actor Components!

The title says it all. This seems like a relatively small request, and could save me and probably many others a lot of time.

Sorry if this was already out there somewhere, I couldn’t find a request for it, other than in the question above.

Thanks!

Is it bad to bump your own request, to get acknowledged by epic? :slight_smile: I would just like to know how to get this ‘enhancement’ (maybe break/fix) onto someone’s list… It is currently NOT POSSIBLE to put a Timeline into the event graph of an Actor Component. You can have Delays… but no Timelines.

Here’s why it’s important to get timelines working in actor components: if you want to have a modular enemy move system, the natural choice is actor components. I used an actor component for a drag-and-drop enemy shooting system. It would be great to be able to do the same thing with the movement system… If you want your enemies to move based on a timeline, that timeline should be IN the movement Actor Component. Right now we have to do weird workarounds to keep the timeline in another bp/class and pull from there, as opposed to just having the timeline in the graph where it’s being used.

Anyways i hope i’m not the only person doing this. Anyone out there care about this? haha

2 Likes

no it isn’t. two years later, still no timeline in actor component. it creates somewhat problematic situation for me.

1 Like

Timeline is UActorComponent itself. I’d safely assume that you never gonna get the ability to put one component into another :wink:

Try using curve assets in your scripts. I know, there’s no firing events there :wink:

1 Like

Actually at its core timelines are structs. The component implementation is for blueprints but you can use an FTimeline inside a component if you do it in C++.

2 Likes

Hello, for anyone who has the same question, in c++, you can actually have the pointer to the timeline component, all callback functions and the creation and all the setup code within another actor component, all you have to do is create it within BeginPlay of the other component, using NewObject with owning actor as owner, and register it, and you can also tick the timeline from components tick.
It will essentially live on the owning actor but get created and accessed thought the other actor component.
I wanted to encapsulate all code into components and it seems like a quick workaround.

I want to see this feature added to blueprints as well!!! I dont unerstand why this has not been implemented…Would be an awesome feature to have, I think the components system is great, but seems like everytime I go to use them, I run into some stupid thing preventing me from using them.

I found a construct object node, but cannot construct a timeline component inside a component. This is a major issue. Now I cannot use components to control various movements behavior for my platforms. Would be nice to have a different node available for timelines fo components in blueprints if this is possible in C++

I see that practice of opening old thread without reading it is still alive :wink:
You can’t place the component inside another component. The Actor is the only type of object designed to handle components. That’s UE4 architecture (as graph below presents, this how relations between objects look like). There won’t be a “different node”.

What Clazzid described above is a workaround, and quite a bad one. (although he nicely explain how it works). It shouldn’t be typically used or even needed.
Timelines aren’t the only way to animate stuff. We got also:

  • timers
  • curve assets
  • Sequencer

Timeline is a bit cancer of UE4 - so easy to use, so people rely on it too much. Having many separate components just for animating few values sometimes during actor life isn’t the best practice.

1 Like

Well, I did read it, and I read where someone mentioned that a timeline is not a base class of component but is at heart a structure. I am trying to make a simple movin platform BP where I can set the start and end points for a spline, then alter the spline in editor and set variables fo speed etc. It’s a continuous moving platform so, if someone has a better solution im all ears. Unfortunately, I tried adelay andgot VISUAL smooth movment of platform with a 0.2 delay, but then my physics actor (player pawn) gets shot into the air when platform moves up an down, an this isnt resolved unless i update at a tick interval.

1 Like

@blindminds

Yes, the Timeline component is merely a convenient wrapper for editing curves right inside blueprint + generating output pins for every curve track. It’s something created at the beginning of UE4 where there was no such thing like Sequencer. Not sure if Curve assets were there… It’s convenient, but you can easily script curve-based update of values without it.

Option A) Try storing your curve in Curve Asset and update values on Tick or Timer.
https://docs.unrealengine.com/en-US/Gameplay/HowTo/UseTimers/Blueprints/index.html

UE4Editor_aTda7aumv0.png

Option B) You don’t need a curve if you need a simple math interpolation, to get nice ease in and ease out on start and finish of animation. Might try nodes called Lerp (from “linear interpolation”). Not that nice to fine-tune curve, so might be not what you need :wink:

5 Likes

Still would be great to have timelines in Actor Components. It’s just needed to make work clean to have things in components and there’s no logical reason to do not have timelines in Components.

There is. You can’t embed components into another component.
Timeline Component already requires a lot of special code in blueprint modules, even in Kismet Compiler.

It would have to be refactored to a struct with its own manager, in some ways similar to how Timer works. But this wouldn’t be a component anymore :wink:

1 Like

This plugin add ability to add timeline to component Component Timeline in Code Plugins - UE Marketplace

2 Likes

3 Likes