Skip to content

pre_fusion_launch_menu_hook

FusionLaunchMenuHook

Bases: PreLaunchHook

Launch AYON menu on start of Fusion

Source code in client/ayon_fusion/hooks/pre_fusion_launch_menu_hook.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class FusionLaunchMenuHook(PreLaunchHook):
    """Launch AYON menu on start of Fusion"""
    app_groups = ["fusion"]
    order = 9

    def execute(self):
        # Prelaunch hook is optional
        settings = self.data["project_settings"]["fusion"]
        if not settings["hooks"]["FusionLaunchMenuHook"]["enabled"]:
            return

        variant = self.application.name
        if variant.isnumeric():
            version = int(variant)
            if version < 18:
                print("Skipping launch of OpenPype menu on Fusion start "
                      "because Fusion version below 18.0 does not support "
                      "/execute argument on launch. "
                      f"Version detected: {version}")
                return
        else:
            print(f"Application variant is not numeric: {variant}. "
                  "Validation for Fusion version 18+ for /execute "
                  "prelaunch argument skipped.")

        path = os.path.join(FUSION_ADDON_ROOT,
                            "deploy",
                            "MenuScripts",
                            "launch_menu.py").replace("\\", "/")
        script = f"fusion:RunScript('{path}')"
        self.launch_context.launch_args.extend(["/execute", script])