Changed logic to obtain min and max frame of sequences

This commit is contained in:
Simone Barbieri 2022-02-17 16:34:18 +00:00
parent 9e72081875
commit d11a871bb1
2 changed files with 55 additions and 12 deletions

View file

@ -24,11 +24,6 @@ class CameraLoader(api.Loader):
return asset_doc.get("data")
def _set_sequence_hierarchy(self, seq_i, seq_j, data_i, data_j):
if data_i:
seq_i.set_display_rate(unreal.FrameRate(data_i.get("fps"), 1.0))
seq_i.set_playback_start(data_i.get("frameStart"))
seq_i.set_playback_end(data_i.get("frameEnd") + 1)
tracks = seq_i.get_master_tracks()
track = None
for t in tracks:
@ -140,6 +135,33 @@ class CameraLoader(api.Loader):
asset_class=unreal.LevelSequence,
factory=unreal.LevelSequenceFactoryNew()
)
asset_data = io.find_one({
"type": "asset",
"name": h.split('/')[-1]
})
id = asset_data.get('_id')
start_frames = []
end_frames = []
elements = list(
io.find({"type": "asset", "data.visualParent": id}))
for e in elements:
start_frames.append(e.get('data').get('clipIn'))
end_frames.append(e.get('data').get('clipOut'))
elements.extend(io.find({
"type": "asset",
"data.visualParent": e.get('_id')
}))
scene.set_display_rate(
unreal.FrameRate(asset_data.get('data').get("fps"), 1.0))
scene.set_playback_start(min(start_frames))
scene.set_playback_end(max(end_frames))
sequences.append(scene)
else:
for e in existing_sequences:

View file

@ -1,4 +1,4 @@
import os
import os, sys
import json
from pathlib import Path
@ -84,12 +84,6 @@ class LayoutLoader(api.Loader):
return asset_doc.get("data")
def _set_sequence_hierarchy(self, seq_i, seq_j, data_i, data_j, map_paths):
# Set data for the parent sequence
if data_i:
seq_i.set_display_rate(unreal.FrameRate(data_i.get("fps"), 1.0))
seq_i.set_playback_start(data_i.get("frameStart"))
seq_i.set_playback_end(data_i.get("frameEnd") + 1)
# Get existing sequencer tracks or create them if they don't exist
tracks = seq_i.get_master_tracks()
subscene_track = None
@ -547,6 +541,33 @@ class LayoutLoader(api.Loader):
asset_class=unreal.LevelSequence,
factory=unreal.LevelSequenceFactoryNew()
)
asset_data = io.find_one({
"type": "asset",
"name": h.split('/')[-1]
})
id = asset_data.get('_id')
start_frames = []
end_frames = []
elements = list(
io.find({"type": "asset", "data.visualParent": id}))
for e in elements:
start_frames.append(e.get('data').get('clipIn'))
end_frames.append(e.get('data').get('clipOut'))
elements.extend(io.find({
"type": "asset",
"data.visualParent": e.get('_id')
}))
scene.set_display_rate(
unreal.FrameRate(asset_data.get('data').get("fps"), 1.0))
scene.set_playback_start(min(start_frames))
scene.set_playback_end(max(end_frames))
sequences.append(scene)
else:
for e in existing_sequences: