x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Scrubbing Sequencer does not update Blueprint Variables

I've created a very simple blueprint (with one static mesh component) that has as variable AnimatedScale (editable, expose to cinematics) that calls Set Actor Scale 3D in the construction script and on Tick:

construction and event graphs

I've created a simple level and a level sequence. Then clicked Actor to Sequencer, added the Animated Scale track and inserted some keyframes. I would like to see the changes in Animated Scale reflected in the editor as I scrub through the sequence.

The problems:

  1. Even though I see that the variable value is updated in the details panel of the blueprint when I scrub the sequencer timeline, the blueprint does not update (probably since neither the event tick nor construction script is called).

scrubbing sequencer

  1. When simulating (or play in editor) the value in the details panel does not update (nor does the blueprint). It is only after I move a keyframe in the sequencer when simulating that sequencer seems to be able to influence the object.

alt text

I can understand that 1. might be intended behaviour (although I then find it inconsistent that the value changes in the details panel) but 2. seems odd. Is there any (other) way I can see the updates in blueprint variables done by sequencer reflected directly in the scene?

Product Version: UE 4.13
Tags:
more ▼

asked Oct 03 '16 at 01:22 PM in Blueprint Scripting

avatar image

BastiaanGrisel
23 1 2 5

avatar image 1_Lolon_2 Nov 10 '16 at 05:04 PM

I don't see why construct shouldn't be called when the timeline is scrubbed, it would make the sequencer so much easier to use.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

3 answers: sort voted first

You can achieve this functionality by creating C++ base classes for all actors\components you want to be updated in Sequencer.

Make following modifications in the in c++ constructor:

//bWantsBeginPlay = true;
PrimaryComponentTick.bCanEverTick = true; bTickInEditor = true;

Then make new blueprint class inherited from this class.

Now your Event Tick always firing in editor.

more ▼

answered Nov 17 '16 at 06:18 PM

avatar image

hell0w0rld123
111 2 4 6

avatar image BastiaanGrisel Nov 18 '16 at 10:46 AM

Thanks! Scrubbing in sequencer while simulating seems to work as expected in 4.14 (so without having to move a keyframe first).

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

alt text

Blueprint only method.

  • Use Set[variable name] so that you have a setter event which is updated when the value is changed via sequencer

  • Note the setter event needs call in editor set to true

  • Set the variable

  • Call another event (not with call in editor for some reason) that does what you want with the value.

sequencer.png (474.4 kB)
more ▼

answered Mar 29 '17 at 08:18 PM

avatar image

alexgeek
11 5

avatar image tmek Apr 18 '17 at 04:06 AM

This works for me in 4.15. Thank you for sharing this. I've tried so many ways to get something like this to work.

This technique is really handy for two things:

  1. Updating one actor's properties based on another actor's animated properties' automatically without having to animate both. (example below.)

  2. Setting properties with some configurable calculations based on a simple animated input. For example you might want to animate a curve for a property that goes between 0.0 and 1.0 but then have that mapped into a different range based on blueprint min, max variables you can change without touching sequencer.

To clarify what worked for me on 4.15

  1. Enable Blutility in editor preferences.

  2. Make a simple blueprint (I called mine SequenceHelper) and drop it in your level

  3. Edit your SequenceHelper blueprint and add a float variable called "Tick"

  4. Check the "Expose to Cinematics" checkbox for your Tick variable

  5. Add a custom event to SequenceHelper called "SetTick" with a float input called "New Tick".

  6. Add your SequencerHelper BP Actor in your level to your sequence and add a track for "Tick". You don't have to set any keyframes.

If everything is setup right as you scrub through the timeline "SetTick" will get called. Now you can put whatever you want in there.

As an example in the screenshot below I have put a Skysphere reference variable in my SequenceHelper. (which I can set using the eyedropper tool to pick the level's Skysphere). Then I animate the directional light. My SetTick function calls the SkySphere's UpdateSunDirection function on every frame. So they are always in sync during playback or scrubbing without having to animate both seperately.

alt text

avatar image hell0w0rld123 Jul 08 '17 at 01:37 PM

We went little bit different way.

"CustomTick" in actor BP fired by the component which can have tick enabled in editor. Every actor we have derived from parent blueprint which has this functionality enabled by default.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

It all works quite well, there are some parameters that need to be activated: 1. Variable exposed to cinematics 2. Variable instance editable (not sure if it is necessary, haven't really checked without) 3. You have to actually create a blueprint class to control your animation blueprint (and cast variables to) 4. In the blueprint class (can be as simple as an actor) go to class settings and tick these 2 options: alt text

  1. save bp class, go to sequencer and under playback options tick rerun construction scripts: alt text

 

Hope it helps. If not, let me know, I'll check what other global options I've enabled to make it work. I lost 3 hours just clicking around the engine trying to recreate my steps 2 weeks back. Beacause, obviously, I forgot how I did it.

I hope this post pops up when I'm in trouble again. I think I might be a squirrel.

Cheers, Kuba

more ▼

answered Apr 27 '18 at 08:54 PM

avatar image

JaBaPL
21 1 3

avatar image Stitch Jan 12 '19 at 02:16 AM

Thanks that helped me out!

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question