diff --git a/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py b/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py index f8e1062e38..92cee414fd 100644 --- a/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py @@ -13,6 +13,26 @@ from ayon_maya.api.lib import ( from maya import cmds +@contextlib.contextmanager +def preserve_time_units(): + """Preserve current frame, frame range and fps""" + frame = cmds.currentTime(query=True) + fps = cmds.currentUnit(query=True, time=True) + start = cmds.playbackOptions(query=True, minTime=True) + end = cmds.playbackOptions(query=True, maxTime=True) + anim_start = cmds.playbackOptions(query=True, animationStartTime=True) + anim_end = cmds.playbackOptions(query=True, animationEndTime=True) + try: + yield + finally: + cmds.currentUnit(time=fps, updateAnimation=False) + cmds.currentTime(frame) + cmds.playbackOptions(minTime=start, + maxTime=end, + animationStartTime=anim_start, + animationEndTime=anim_end) + + @contextlib.contextmanager def preserve_modelpanel_cameras(container, log=None): """Preserve camera members of container in the modelPanels. @@ -348,6 +368,15 @@ class MayaUSDReferenceLoader(ReferenceLoader): ]) options["file_type"] = self.file_type - return super(MayaUSDReferenceLoader, self).process_reference( - context, name, namespace, options - ) + # Maya USD import reference has the tendency to change the time slider + # range and current frame, so we force revert it after + with preserve_time_units(): + return super(MayaUSDReferenceLoader, self).process_reference( + context, name, namespace, options + ) + + def update(self, container, context): + # Maya USD import reference has the tendency to change the time slider + # range and current frame, so we force revert it after + with preserve_time_units(): + super(MayaUSDReferenceLoader, self).update(container, context) diff --git a/server_addon/maya/package.py b/server_addon/maya/package.py index 274f74869b..0331fb2fb6 100644 --- a/server_addon/maya/package.py +++ b/server_addon/maya/package.py @@ -1,6 +1,6 @@ name = "maya" title = "Maya" -version = "0.2.0" +version = "0.2.1" ayon_required_addons = { "core": ">0.3.2",