@sixjames1000 If you aren't sure, start with Pyblish, and then discover what else you need. Odds are it is enough. It'll help you get assets out of e.g. Maya and onto disk, and if you format them right and arrange their files neatly you may be able to rely on just the regular file browser and standard import/referencing for your loading purposes.
Avalon comes in when you have more advanced requirements, when the file browser isn't enough and when creating assets involves too much boilerplate. Avalon has plug-ins similar to Pyblish but for creating new assets and for loading them into e.g. Maya, with similar kinds of options and customisations. If creating and loading isn't something you struggle with, then you probably don't need that level of complexity.
Hi all! How's it going. Hope everyone keeping sane and safe :)
I've been quiet for a bit while we change our pipeline to Maya (which is awesome news), but in the meantime I'm moving my Python 2.7 tools to 3.7.8 version to meet the new standarization and I'm hoping with Maya 2022 Python 3 I can basically just keep everything neat.
Anyway... So I'm running tests within a Virtual Environment with Python 3.7.8 and PyQt5 5.15 and have a couple of questions and unfortunately issues, please.
Using Python @ 'D:\WORK - Personal\AO\Tools\pyblish\venv\Scripts\python.exe' Using PyQt5 @ 'D:/WORK - Personal/AO/Tools/Pyblish/venv/lib/site-packages/PyQt5' Targets: default Process finished with exit code 0
So I feel a bit stuck for the moemnt and not sure if I should persuse point 1, when it seems that it can work as per point 2 with the demo.
Thanks very much guys :)
print(sys.executable)from within a plugin
Had a look at the TA.org thread and checked the executables and seems to be ok. The only difference I have with versions is that I'm running Python 3.7.8 instead of 3.7.3
Also tried running this within Cinema with the following:
from pyblish_qml import api, show api.register_python_executable(r"C:\Program Files\Python37\python.exe") api.register_pyqt5(r"D:\Git\pyblish_test\venv\Lib\site-packages\PyQt5") show()
Traceback (most recent call last): File "scriptmanager", line 4, in <module> File "C:\Users\anjosa\AppData\Roaming\Python\Python37\site-packages\pyblish_qml\api.py", line 1, in <module> from .host import ( File "C:\Users\anjosa\AppData\Roaming\Python\Python37\site-packages\pyblish_qml\host.py", line 701, in <module> host = QtHost() File "C:\Users\anjosa\AppData\Roaming\Python\Python37\site-packages\pyblish_qml\host.py", line 284, in __init__ from .vendor.Qt import QtWidgets, QtCore, QtGui File "C:\Users\anjosa\AppData\Roaming\Python\Python37\site-packages\pyblish_qml\vendor\Qt.py", line 1874, in <module> _install() File "C:\Users\anjosa\AppData\Roaming\Python\Python37\site-packages\pyblish_qml\vendor\Qt.py", line 1852, in _install our_submodule = getattr(Qt, name) AttributeError: 'module' object has no attribute 'QtGui'
Quick questions about saving metadata into Maya file for Pyblish to use.
One of the situations we have to sort with Pyblish is to allow the user to override specific plugins, as we have a few scenes that depending on the context may not necessarily have to meet the usual strict conditions that we have set.
In Cinema 4D I manage to have this overridden by injecting some data into the document, where I can use getters and setters, without causing problems to the files.
For Maya I'm not absolutely sure about how to proceed with this after a bit of googling. Would be interesting to know how you deal with this scenario, if you experienced it, please?
Perhaps there's another workflow for overriding the plugins as shown in the documentation (https://learn.pyblish.com/14-data), just don't quite understand if this is a solution to store the data into the context?
If not, I'm thinking at the moment to have other 3 solutions (that I'm aware of):
fileInfo- This command is not editable so it poses a problem if needing to update the data.
Thank you all in advance guys! :)
hiddenFromOutlinerattribute on native Maya nodes.
cmds.optionVarmechainism. That's how user preferences are stored in the users
~/maya/userPrefsfolder. You could access it from plug-ins.
publishingMetadataor the like. It helps with debugging things too, and you can put things in there that you want artists to access, to customise their publishing experience. Like
instanceToggled event/callback - does it allow to return False / True on whether the callback succeeded? We might have some particular cases where toggling in the UI might need to be blocked when the host is in a state where it's currently not allowing the instance state to be modified.
E.g. a node in Houdini is currently bypassed (disabled) and the Pyblish UI shows it turned off. The user wants to enable it in the Pyblish UI, which in turn triggers our
instanceToggled callback which tries to disable the bypassed state of the Houdini node. However, when the user is currently inside a Take in Houdini all nodes are locked for editing and this change is disallowed.
Any thoughts on this? :)
instance.data["active"]state in the callback :O or is it
publish? I always forget which was the latest.
In this case, why not let users use the disabled state of nodes to indicate whether or not they want to publish it?
This is actually the case. The UI takes whatever is in the scene. It's just "eased" for the artist to allow them to toggle the instance in the UI. Either way, their change propagates and gets stored with the source file. So the work file has the correct state for the node whether it should publish or not.