Toon Boom Harmony | Shotgun Toolkit Engine Released

Hi, Thanks for the awesome guide.

I followed all the step, tank cache_app all shows OK. shotgrid console debug mode doesnt show any error. I open the Harmony from shotgrid successfully.

But I just do not see the shotgun panel

I have looked up everywhere to troubleshot but no success. any pointer would be grateful.

Hey @Diego_Garcia_Huerta,

Thanks so much for all of the integrations you’ve created! I notice in the tk-blender docs an image with a tk-storyboardpro integration, though I don’t see it in your github. Have you created a Storyboard Pro engine?

Hi @stavernia ,

I indeed have an engine for story board pro, but was developed for a client so I cannot share the code with the community. I’ve been thinking of re-writing it from scratch but unfortunately I haven’t found the time for this to happen for now.

Cheers

  • Diego
2 Likes

Hi @Diego_Garcia_Huerta

We have been having difficulty installing your Harmony Engine on our systems. We have been looking everywhere and trying to contact you. Would you be able to give a few pointer so we are on the right track?

Please contact me at jshih@portfolio-ent.com
or let me know where to contact you.

Thanks.

Hi @jshih ,

It should be some error in the shotgun logs that could give us more clues. I would start by checking the log folder, to see if there is anything in the log that indicates something is missing:

Another thing might happen is that the version you are running is not taken into account when t comes to copying the scripts at start-up time (this is what creates the new Shotgun menu). This function takes care of copying the scripts, it depends of the version/product you are running, ie. Harmony Premium, Harmony Advanced, is it a beta ? etc…

I would check the about to see what product it is and where it is installed in the filesystem.

Hope this helps,

Cheers,

  • Diego

Hi all!

@Diego_Garcia_Huerta thanks for your efforts getting this up and running way back when. I dived in over the last few days trying to get this to work, but as time and software updates would have it, I doubt this is going to work with the latest versions of Harmony (22.x+).

Since the time when @Diego_Garcia_Huerta developed this (Harmony 16.0), Toon Boom has integrated a python scripting api-- which is great! The need for the whole client/server TCP connection in tk-harmony should be gone I hope, since I could not get it to work.

I’ve been trying to hack this to get it running. I managed to change some values in tk-harmony/startup.py and tk-harmony/startup/bootstrap.py to get the app launcher to show and sgtk to be available-- some of that might need updating due to changes from Toon Boom’s end, but there seems to be a bigger problem.

Harmony 22 is bundling PySide6/Qt6, so any GUI stuff that SGTK tries to do (using PySide2/Qt5) causes the main application to hard-crash. Not surprising really. I’m thinking of trying to rewrite this engine using the new Harmony Python API, and writing some lightweight apps to handle the things that tk-multi-workfiles2, tk-multi-loader, and tk-multi-publish2 would normally be used for, because our Studio is hoping to have Harmony integration sooner than later.

I wonder if there is a clear timeline on when SG will be offering support for PySide6? The VFX Reference Platform would indicate some time between now and the end of 2024? I’ll probably try to update the engine to make sure it works anyway, but PySide6 is a major blocker when it comes to taking advantage of the standard SGTK apps.

Any thoughts?

PySide6/Qt6 should be supported in tk-core v0.20.22 via this commit: SG-30534: First step to supporting PySide6 (#898) Ā· shotgunsoftware/tk-core@07e0d88 Ā· GitHub though not sure what else is missing to make this fully functional.

Hi @Halil, I’ve downloaded the latest tk-core via GitHub and tried from tank.platform.qt6 import QtCore and I get ModuleNotFoundError: No module named 'tank.platform.qt6'. Is that expected to work?

Edit: It seemed the dev descriptor for tk-core wasn’t actually setting the core location for my pipeline config for some reason-- it was still pointing to the core cached from the app store, but I updated the version of tk-core to v0.20.22 and now I get a different error

from tank.platform.qt6 import QtCore
Traceback (most recent call last):
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-multi-pythonconsole\v1.3.1\python\app\input_widget.py", line 246, in execute
    exec(python_code, self._locals, self._locals)
  File "python input", line 5, in <module>
ImportError: cannot import name 'QtCore' from 'tank.platform.qt6' (C:\Users\dashielb\AppData\Roaming\Shotgun\shadowmachine\p418c865.basic.desktop\cfg\install\core\python\tank\platform\qt6\__init__.py)

This happens in both tk-desktop’s python console and inside Harmony’s python script editor. Not sure what the problem is… maybe some kind of version mismatch. Or perhaps tank.platform.qt6 isn’t fully hooked up yet.

With a bunch of hacks to the tk-harmony engine, including importing the modules from PySide6 instead of sgtk.platform.qt*, with the latest version of tk-core, I’m able to get the Toolkit app dialogs to show up without crashing Harmony! Thanks for the nudge @Halil .

2 Likes

The comment of the commit message ā€œFirst step to supporting PySide6ā€ was a bit dubious to be honest, but I guess there is more work to come. Glad you were able to move things along.

2 Likes

Hi everyone,

It has been a long time since I posted last, but I have indeed been working on a python version of the engine for Harmony 22 for quite a while.

I was actually in the middle of handling the conversion of the Qt6 classes when I saw that initial commit in tk_core that @Halil mentions. At this point and with that commit, I think I have a functional engine with all the default tk apps supported but it does need proper testing.

Once the Qt6 commits to tk core (and other tk apps) are released, I will consider making the repo public. Until then, I reckon since it is not that easy for people to set it up in a production environment without having to hack things around (have your own dev version of each framework/tk apps), I’m not ready to provide support for it.

As always, since I’m doing this in my free time, I keep working on it from time to time only.
In the meantime, @Dashielb if you are interested , I would be happy to give you private access to the repo, that way you can give it a go and contribute if you want.

Cheers

  • Diego
3 Likes

Hi Diego!

Awesome if you could share access. My github handle is dashielb1010.

I’d be happy to contribute and test the engine. I’ll be trying to get this working for both Windows and MacOS.

Cheers,
-Dashiel

1 Like