Spent the night hacking away with no success.
The script is supposed to create a camera and sequence and add random position keyframes for 500 frames.
Any ideas as to how I can fix this up?
import unreal
import random
# Get the Level Sequence Editor subsystem and the Asset Tools
asset_tools = unreal.AssetToolsHelpers.get_asset_tools()
ls_editor_system = unreal.get_editor_subsystem(unreal.LevelSequenceEditorSubsystem)
# Create a new Level Sequence
level_sequence = asset_tools.create_asset(
asset_name="NewLevelSequence",
package_path="/Game",
asset_class=unreal.LevelSequence,
factory=unreal.LevelSequenceFactoryNew()
)
# Open the Level Sequence in Sequencer
unreal.LevelSequenceEditorBlueprintLibrary.open_level_sequence(level_sequence)
# Set the sequence resolution to 30 fps (you can adjust as needed)
frame_rate = unreal.FrameRate(numerator=30, denominator=1)
level_sequence.set_display_rate(frame_rate)
level_sequence.set_playback_start(0)
level_sequence.set_playback_end(500)
# Create a Cine Camera Actor as a spawnable in the Level Sequence
camera_binding_proxy, out_actor = ls_editor_system.create_camera(spawnable=True)
camera_binding_id = camera_binding_proxy.get_id()
# Add a transform track to the Cine Camera Actor binding
transform_track = camera_binding_proxy.add_track(unreal.MovieScene3DTransformTrack)
# Add a transform section to the transform track
transform_section = transform_track.add_section()
transform_section.set_range(0, 500)
# Set random positions for each frame using the transform track
for frame_number in range(0, 501):
frame_time = unreal.FrameTime(frame_number=unreal.FrameNumber(frame_number))
random_location = unreal.Vector(
random.uniform(-100, 100),
random.uniform(-100, 100),
random.uniform(-100, 100),
)
# Add a Transform keyframe at each frame time with the random position
transform_section.add_key(frame_time, random_location)
# Refresh Sequencer to update changes
unreal.LevelSequenceEditorBlueprintLibrary.refresh_current_level_sequence()