Page 1 of 1

Fusion 8 external Python scripting stumbling blocks

PostPosted: Thu Jun 23, 2016 10:28 pm
by Mike Aquino
Hi all,

I've done previous external python scripting for Fusion pipeline integration, but that was a while ago and was with Fusion 6.x ... where I did something like this:

Code: Select all
    import PeyeonScript as eyeon
    fusion = eyeon.scriptapp("Fusion")
    comp = fusion.NewComp()
    # ...


I'm now tasked with Fusion pipeline integration, but with Fusion 8 ... and I'm hitting stumbling blocks with trying to create similar external python script interaction with a running Fusion instance.

From the little information available, I understand that the PeyeonScript module functionality is now built in to the Fusion 8 install and is supposed to be accessed through a BlackmagicFusion python module, as per a recent post on this forum:

This is installed by the Fusion Studio installer, assuming Python is already present.

However the module is now called 'BlackmagicFusion'

eg:

import BlackmagicFusion as bmd

Any python (or otherwise) scripts executed with fuscript exe directly, as opposed to python exe, will already have this loaded.

Love, Light and Peace,
- Peter Loveday


So, I tried that and python was not able to find that module. I looked in the Python 2.7 install area in its Lib\site-packages area and couldn't find any such module. I also looked around in the Fusion 8 Program Files install area and was not able to find any path that I could add to the PYTHONPATH that would allow me to import the module.

I then tried running python via "FuScript.exe", using the "-l python2" option. A script run this way will have a "bmd" module available, and that module has a function ".scriptapp()" ... so I tried this:

Code: Select all
    fusion = bmd.scriptapp("Fusion")
    print( fusion )  # this outputs: None


... but that just gave me a fusion object of None. So progress stops there.

And Fusion is running on my Desktop ... executing "bmd.pinghosts()" returned information that indicated that a running Fusion instance was found.

Has anyone successfully run an external python script that connects and interacts with a running Fusion 8 instance? Is this functionality only part of the paid "Studio" version of Fusion 8?

Any assistance or insight would be greatly appreciated ... many thanks!

Re: Fusion 8 external Python scripting stumbling blocks

PostPosted: Fri Jun 24, 2016 1:03 am
by Peter Loveday
Yes, external scripting (python or otherwise) is a Studio feature, and only the studio installer will add the python module (as it will not work with the non-studio version)

Re: Fusion 8 external Python scripting stumbling blocks

PostPosted: Fri Jun 24, 2016 2:36 am
by Haryanto
External scripting should be "Studio" only.

but scripting from within Fusion itself (in Console) should be working fine for both free & studio versions.

Re: Fusion 8 external Python scripting stumbling blocks

PostPosted: Fri Jun 24, 2016 4:08 pm
by Mike Aquino
Great, much thanks for confirming that external scripting is a Studio version feature.

My client will be obtaining some licenses of Fusion 8 Studio shortly that I'll be able to continue my tools R&D with.

Thanks for the help!