Skip to content

Commit 192fed9

Browse files
authored
Merge pull request #13 from GPLgithub/master
Fixes for UE api changes
2 parents 18f39fd + ed33a70 commit 192fed9

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

hooks/tk-multi-publish2/basic/collector.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ def collect_selected_assets(self, parent_item):
171171
sequence_edits = None
172172
# Iterate through the selected assets and get their info and add them as items to be published
173173
for asset in unreal_sg.selected_assets:
174-
if asset.asset_class == "LevelSequence":
174+
if asset.asset_class_path.asset_name == "LevelSequence":
175175
if sequence_edits is None:
176176
sequence_edits = self.retrieve_sequence_edits()
177177
self.collect_level_sequence(parent_item, asset, sequence_edits)
@@ -180,8 +180,8 @@ def collect_selected_assets(self, parent_item):
180180
parent_item,
181181
# :class:`Name` instances, we cast them to strings otherwise
182182
# string operations fail down the line..
183-
"%s" % asset.object_path,
184-
"%s" % asset.asset_class,
183+
"%s" % unreal_sg.object_path(asset),
184+
"%s" % asset.asset_class_path.asset_name,
185185
"%s" % asset.asset_name,
186186
)
187187

@@ -255,7 +255,8 @@ def collect_level_sequence(self, parent_item, asset, sequence_edits):
255255
:param sequence_edits: A dictionary with :class:`unreal.LevelSequence as keys and
256256
lists of :class:`SequenceEdit` as values.
257257
"""
258-
level_sequence = unreal.load_asset(asset.object_path)
258+
unreal_sg = sgtk.platform.current_engine().unreal_sg_engine
259+
level_sequence = unreal.load_asset(unreal_sg.object_path(asset))
259260
for edits_path in self.get_all_paths_from_sequence(level_sequence, sequence_edits):
260261
# Reverse the path to have it from top master sequence to the shot.
261262
edits_path.reverse()
@@ -284,12 +285,13 @@ def retrieve_sequence_edits(self):
284285
lists of :class:`SequenceEdit`.
285286
"""
286287
sequence_edits = defaultdict(list)
287-
288+
unreal_sg = sgtk.platform.current_engine().unreal_sg_engine
289+
level_sequence_class = unreal.TopLevelAssetPath("/Script/LevelSequence", "LevelSequence")
288290
asset_helper = unreal.AssetRegistryHelpers.get_asset_registry()
289291
# Retrieve all Level Sequence assets
290-
all_level_sequences = asset_helper.get_assets_by_class("LevelSequence")
292+
all_level_sequences = asset_helper.get_assets_by_class(level_sequence_class)
291293
for lvseq_asset in all_level_sequences:
292-
lvseq = unreal.load_asset(lvseq_asset.object_path, unreal.LevelSequence)
294+
lvseq = unreal.load_asset(unreal_sg.object_path(lvseq_asset), unreal.LevelSequence)
293295
# Check shots
294296
for track in lvseq.find_master_tracks_by_type(unreal.MovieSceneCinematicShotTrack):
295297
for section in track.get_sections():

python/tk_unreal/unreal_sg_engine.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def _get_context_url(self, engine):
148148
# Asset must be loaded to read the metadata from item
149149
# Note that right-clicking on an asset in the Unreal Content Browser already loads item
150150
# But a load could be triggered if the context is from a selected actor
151-
loaded_asset = unreal.EditorAssetLibrary.load_asset(selected_asset.object_path)
151+
loaded_asset = unreal.EditorAssetLibrary.load_asset(self.object_path(selected_asset))
152152
elif selected_actor:
153153
# Get the asset that is associated with the selected actor
154154
assets = self.get_referenced_assets(selected_actor)
@@ -235,6 +235,20 @@ def shutdown(self):
235235
QtWidgets.QApplication.instance().quit()
236236
QtWidgets.QApplication.processEvents()
237237

238+
@staticmethod
239+
def object_path(asset_data):
240+
"""
241+
Return the object path for the given asset_data.
242+
243+
:param asset_data: A :class:`AssetData` instance.
244+
:returns: A string.
245+
"""
246+
# The attribute is not available anymore from
247+
# UE 5.1
248+
if hasattr(asset_data, "object_path"):
249+
return asset_data.object_path
250+
return "%s.%s" % (asset_data.package_name, asset_data.asset_name)
251+
238252
"""
239253
Menu generation functionality for Unreal (based on the 3ds max Menu Generation implementation)
240254

0 commit comments

Comments
 (0)