Hi all I am trying to add a bunch of keys to a sequencer using Python. I’m a bit stumped as what I have done here seems like it should work it spawns an Actor then puts that actor in Sequencer and makes the Tracks and Channels.
It should then add 20 keys to the sequencer each with an updated X from the last one and 100 more frames away from the last.
However when I run it the sequencer window shows no keys have been added. Instead it just moves the actor to X=400 but never makes any keys.
It is weird though because when I print out the keys it seems they exist but this is not reflected in the editor at all.
Code
pos = unreal.Vector(400,400,1)
new_actor = actor_system.spawn_actor_from_class(object_class, pos)
actor_system.select_nothing()
actor_system.set_actor_selection_state(new_actor, True)
ls_system = unreal.get_editor_subsystem(unreal.LevelSequenceEditorSubsystem)
# Add selected actors to current level sequence as possessables
actors = actor_system.get_selected_level_actors()
bindings = ls_system.add_actors(actors)
actor_binding = bindings[0]
print(actor_binding)
print(bindings)
transform_track = actor_binding.add_track(unreal.MovieScene3DTransformTrack)
#anim_track = actor_binding.add_track(unreal.MovieSceneSkeletalAnimationTrack)
# Add section to track to be able to manipulate range, parameters, or properties
transform_section = transform_track.add_section()
transform_channel = transform_section.get_all_channels()[0]
#print(transform_section.get_all_channels())
#print(dir(transform_channel.add_key))
transform_channel.add_key(time=unreal.FrameNumber(100), new_value=400)
for i in range(1,20):
transform_channel.add_key(time=unreal.FrameNumber(100*i), new_value=i*400)
print(transform_channel.get_keys())
The sequencer after running
the output from print(transform_channel.get_keys())
["/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_242'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_243'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_244'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_245'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_246'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_247'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_248'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_249'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_250'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_251'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_252'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_253'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_254'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_255'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_256'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_257'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_258'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_259'", "/Script/SequencerScripting.MovieSceneScriptingDoubleKey'/Engine/Transient.MovieSceneScriptingDoubleKey_260'"]