UE5.3 Build Sequencer batching
You need to import your animation matching your Rig
TODO
Then you need to construct the 'set' of each shot
py
import unreal
UE_ASSET_SUBSYSTEM = unreal.get_editor_subsystem(unreal.AssetEditorSubsystem)
UE_EDITOR_SUBSYSTEM = unreal.get_editor_subsystem(unreal.UnrealEditorSubsystem)
UE_ASSET_TOOLS_HELPER = unreal.AssetToolsHelpers.get_asset_tools()
UE_EDITOR_ASSET_LIBRARY = unreal.EditorAssetLibrary()
# create level sequence
ue_asset_path = "/Game/Shots/yourShot/Set/SQ_SET"
ue_asset_class = unreal.LevelSequence
ue_asset_factory = unreal.LevelSequenceFactoryNew()
split_path = unreal.Paths.split(ue_asset)
dir = split_path[0]
name = split_path[1]
ue_asset = UE_ASSET_TOOLS_HELPER.create_asset(
asset_name=name,
package_path=dir,
asset_class=ue_asset_class,
factory=ue_asset_factory,
)
## Build Sequence Set
subsequence_track = None
UE_ASSET_SUBSYSTEM.close_all_editors_for_asset(ue_asset)
for track in ue_asset.get_master_tracks():
if track.get_class().get_name() == "MovieSceneSubTrack":
subsequence_track = track
if not subsequence_track:
subsequence_track = ue_asset.add_master_track(
unreal.MovieSceneSubTrack
)
if UE_EDITOR_ASSET_LIBRARY.does_asset_exist(asset_path=ue_asset_path):
UE_EDITOR_ASSET_LIBRARY.delete_asset(ue_asset_path)
# TODO
rate = unreal.FrameRate()
rate.denominator = 1
rate.numerator=24 # FPS here
start_frame=
end_frame=
start_time=start_frame * rate.denominator / rate.numerator
endTime = end_frame * rate.denominator / rate.numerator
ue_asset.set_playback_end(end_frame)
ue_asset.set_playback_start(start_frame)
# set the end range before start because the sequencer clamp max value
# of start with the value of end.
ue_asset.set_view_range_end(endTime)
ue_asset.set_view_range_start(startTime)
ue_asset.set_work_range_end(endTime)
ue_asset.set_work_range_start(startTime)