Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move acre to the master branch #266

Open
wants to merge 463 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
463 commits
Select commit Hold shift + click to select a range
b2d0aa9
Skip single assembly check for animation as it was redundant
BigRoy Mar 12, 2020
f13f294
Validate subsets are unique instances
BigRoy Mar 13, 2020
d1c2d1a
Validate UsdModel and UsdShade to only allow specific content.
BigRoy Mar 13, 2020
5745d21
Fix Pyblish Post Collector bug where plug-ins would still run for dea…
BigRoy Mar 13, 2020
e9aa51c
Move Fix Post Collector Bug workaround to global plugins
BigRoy Mar 13, 2020
2a43b72
Allow UsdShade family explicitly for updated shading workspace
BigRoy Mar 13, 2020
9dd3184
Allow to reference and layer Alembic with USD Loaders
BigRoy Mar 16, 2020
cd02e14
Allow to load Alembic camera using USD in Houdini
BigRoy Mar 16, 2020
b022279
Add usdPointcache family to Maya
BigRoy Mar 16, 2020
1b91bf5
Make Validate Instance Subset a global plug-in
BigRoy Mar 16, 2020
166543f
Add support for Python 3
BigRoy Mar 16, 2020
526fa9a
Load USD Multiverse compound without redundant root group
BigRoy Mar 16, 2020
09cb546
Remove redundant top group for GPU cache in Maya
BigRoy Mar 16, 2020
386640f
Add draft for usdCamera with Multiverse 6.3.0
BigRoy Mar 17, 2020
97880d6
Allow setting frame ranges based on published USD subsets
BigRoy Mar 17, 2020
653bf70
Use exact match instead of the confusing "any of these" behavior
BigRoy Mar 18, 2020
f021f68
Allow deprecating usdModel subsets for usdAsset
BigRoy Mar 18, 2020
fcfa8cd
Implement new Author Model usdModel workflow in Houdini
BigRoy Mar 18, 2020
c745f2a
Allow dot in subset name as Avalon subset schema allows
BigRoy Mar 19, 2020
4cb0d34
Validate no errors on the instance
BigRoy Mar 19, 2020
c389684
Validate USD Shade's model variant actually exists
BigRoy Mar 19, 2020
9a5b476
Filter to correct families
BigRoy Mar 19, 2020
00b4b80
Add shading workspace HDA version validator
BigRoy Mar 19, 2020
e4f7e7a
Change label to be more explicit
BigRoy Mar 20, 2020
20b02dc
Allow to fall back on Multiverse 6.3.0+ pxr.Usd library
BigRoy Mar 20, 2020
50997ff
Use time sample to get render product names
BigRoy Mar 24, 2020
75d56c0
Validate USD Render Product Names
BigRoy Mar 24, 2020
8fd935c
Allow to load colorbleed.model Alembic into Maya
BigRoy Mar 27, 2020
4b28747
Collect all instanced children paths correctly
BigRoy Mar 27, 2020
fa9a1d2
Fix instance collector failing on non-dag node in instance
BigRoy Mar 27, 2020
bdf53a3
Reformat code
BigRoy Mar 27, 2020
ad3a8e1
Workaround for $HIPNAME varchange not propagating in 18.0.391
BigRoy Mar 31, 2020
7cf691d
Add validator for backslashes in USD Layer paths.
BigRoy Apr 1, 2020
c754156
Add support in `get_usd_rop_loppath` for usdrender_rop.
BigRoy Apr 1, 2020
6067db6
Make asset "silo" optional for integration
BigRoy Apr 2, 2020
0f1ca22
Allow silo data to be optional if project template does not require it
BigRoy Apr 6, 2020
c4b3171
Draft of new-style publish job schema and using it for publishing ren…
BigRoy Apr 6, 2020
8d89744
Include container node itself for checking input dependencies
BigRoy Apr 6, 2020
c6d4bb2
Implement Houdini Redshift ROP support for rendering
BigRoy Apr 6, 2020
1648ac2
Fix typos
BigRoy Apr 6, 2020
1cdd54b
Fix typos
BigRoy Apr 6, 2020
bd8f526
Ensure the sequence is integrated as a single representation/collection
BigRoy Apr 6, 2020
698e668
Assemble the collection and assert only a single "files" list is present
BigRoy Apr 6, 2020
e45dca9
Make sure all the files exist to avoid unwanted errors
BigRoy Apr 7, 2020
46193be
Correctly rely on the renderpass name as opposed to full subset name
BigRoy Apr 7, 2020
9bbfabf
Remove redundant imports
BigRoy Apr 7, 2020
0b6c6fe
Remove redundant validator in favor of "global" unique subsets validator
BigRoy Apr 7, 2020
613aad6
Also allow arrays in "files" for collections for a representation
BigRoy Apr 7, 2020
c115641
Set up linked Redshift IPR node + set ROP/IPR suffix for clarity to user
BigRoy Apr 7, 2020
b185b08
Add AOV before frame number with Redshift ROP using $AOV variable
BigRoy Apr 7, 2020
d846ee5
Fix product name when $AOV is explicitly in prefix
BigRoy Apr 7, 2020
fed0769
Also save and increment on redshift_rop submission
BigRoy Apr 7, 2020
031d95e
Unify Alembic extraction in Maya to one plug-in.
BigRoy Apr 8, 2020
b2d1336
Refactor filename
BigRoy Apr 8, 2020
697fa95
Match code from removed extract_animation
BigRoy Apr 8, 2020
ba7b365
Allow disabling the writing of cbId attributes globally with CB_MAYA_…
BigRoy Apr 8, 2020
0b22248
Implement quick workaround for project-specific environment overrides
BigRoy Apr 8, 2020
9146d15
Have explicit Alembic Export Attributes collector
BigRoy Apr 9, 2020
9e41902
Add explicit Alembic export validator for USD based project
BigRoy Apr 9, 2020
7f6828c
Fix typo
BigRoy Apr 9, 2020
1dd54ca
Fix typo, correctly get single transform as opposed to list
BigRoy Apr 9, 2020
4bd4987
Improve docstring
BigRoy Apr 10, 2020
52efddd
Refactor 'out_hierarchy' for animation instance to 'outMembersHierarchy'
BigRoy Apr 10, 2020
5ad647a
Correctly capture non-set environment variable
BigRoy Apr 10, 2020
2916447
Write USD with colorbleed.animation
BigRoy Apr 10, 2020
6385a40
Fix bug where start or end frame of zero would publish no animation a…
BigRoy Apr 10, 2020
d6b0727
Refactor extract_usd_camera into extract_usd
BigRoy Apr 10, 2020
6f18973
Allow loading Alembics as Multiverse Compounds
BigRoy Apr 10, 2020
c5b44d3
Decide animation representation with CB_ANIMATION_AS_USD env var
BigRoy Apr 10, 2020
8466849
Add missing import os
BigRoy Apr 10, 2020
ec15c2a
Submit publish job with Redshift ROP renders
BigRoy Apr 14, 2020
b7dffba
Reformat docstring
BigRoy Apr 14, 2020
47a4f94
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Apr 14, 2020
0b54456
Remove plugin in favor of already existing CollectMayaUnits
BigRoy Apr 14, 2020
7d21de3
Optimize code, clarify docstring as to when this can happen, use pair…
BigRoy Apr 14, 2020
505dd4c
Remove redundant and unused code
BigRoy Apr 14, 2020
353b825
Separate out Controller Validators into individual plugins
BigRoy Apr 14, 2020
0f7cfe5
Refactor Plugin label and class to math other rig control validators
BigRoy Apr 14, 2020
4b0ba1b
Refactor filenames to match Plugin class names and labels
BigRoy Apr 14, 2020
8ce2931
Fix Plugin docstrings
BigRoy Apr 14, 2020
891962f
Improve validation with regards to root/assemblies
BigRoy Apr 14, 2020
1f3f7ce
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Apr 14, 2020
f6cdfde
Force str to avoid unicode issues in os.environ with subprocess
BigRoy Apr 17, 2020
6476d3f
Default publish jobs to Active instead of Suspended
BigRoy Apr 17, 2020
e4128ca
Validate mesh has no NGONs for usdModel
BigRoy Apr 17, 2020
5fe04ef
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Apr 17, 2020
6d972ea
Fix stupid typo :)
BigRoy Apr 20, 2020
97bbf28
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Apr 20, 2020
9a48e7f
Add clean_filename helper function
BigRoy Apr 21, 2020
1243bac
Avoid Multiverse export crash on invalid : in filename
BigRoy Apr 21, 2020
f0e1d83
Fix missing import
BigRoy Apr 21, 2020
d9744a1
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Apr 21, 2020
8560e85
Workaround: fix slowdown on polyConstraint on some edge cases
BigRoy May 8, 2020
f7353ae
Allow opening Work Files tool from validator
BigRoy May 8, 2020
49003b0
Potentially allow multiple shaders
BigRoy May 8, 2020
c971899
Add workaround for collecting shader assignments with component assig…
BigRoy May 8, 2020
8560076
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy May 8, 2020
86f8db6
Allow component shader assignments
BigRoy May 8, 2020
4198e56
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy May 8, 2020
2a12150
Add validator for node name clashing with strip namespaces enabled
BigRoy May 13, 2020
1d6bbc6
Add validate match current asset
BigRoy Jun 4, 2020
c5cf9ce
Fix camera extraction
BigRoy Jun 4, 2020
3924643
Validate usd camera scale
BigRoy Jun 5, 2020
af239c3
Tweak launcher actions, add explore here + show render nodes outside …
BigRoy Jun 10, 2020
1b4c395
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Jun 10, 2020
a1b7d15
Validate Multiverse plug-in is a good version
BigRoy Jul 22, 2020
f3269f0
Fix scale query to actually query the camera transform correctly
BigRoy Jul 22, 2020
7f59be5
Add unique node id validator across model instances
BigRoy Sep 1, 2020
2eddfa5
Fix cbId attributes missing on Alembic model publishes
BigRoy Sep 1, 2020
b40f7cc
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Sep 1, 2020
d9a19b0
Fix correctly getting transform node
BigRoy Sep 15, 2020
550fefa
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Sep 15, 2020
b3ceed7
Fix node names becoming invalid on grouping
BigRoy Sep 15, 2020
da331f6
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Sep 15, 2020
ac15ff8
Validate whether V-Ray Frame Buffer region rendering is enabled
BigRoy Sep 15, 2020
a97eab2
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Sep 15, 2020
ad36304
Fix <UDIM> support, improve logging all errors, fix when path folder …
BigRoy Sep 17, 2020
683779c
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Sep 17, 2020
958d94e
Fix <UDIM> support clique pattern plus improve logging
BigRoy Sep 17, 2020
6bf0daa
Ensure full path is collected
BigRoy Sep 17, 2020
dde735d
Remove clique collection since we care about files only anyway
BigRoy Sep 17, 2020
30d1cd8
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Sep 17, 2020
a2a2fc3
Fix incorrectly splitting layername that has "rs_" in the middle.
BigRoy Sep 22, 2020
a301245
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Sep 22, 2020
27bdd16
Include checking the history of nodes for inputs
BigRoy Sep 22, 2020
37a790d
Include history for input collection, move order so it runs as second…
BigRoy Sep 23, 2020
286ed76
Fix actually compare with the right instance's family
BigRoy Sep 24, 2020
7cca1c3
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Sep 24, 2020
00f4e67
Enable extra options on the FBX instance
BigRoy Sep 24, 2020
970296c
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Sep 24, 2020
4dd8e61
Validate published Yeti Rigs turn into a single hierarchy
BigRoy Oct 6, 2020
d7e4e3f
optimization: Use set for members lookup
BigRoy Oct 6, 2020
a28c784
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Oct 6, 2020
5ba4248
Implement FBX export clips/takes using Timeline Bookmarks into single…
BigRoy Oct 12, 2020
20c4aea
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Oct 13, 2020
81b6200
Validate arnold file frame extension naming
BigRoy Oct 26, 2020
cdf49da
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Oct 27, 2020
c1279bd
Add repair to match current asset in Houdini and Maya
BigRoy Dec 12, 2020
b310a16
Ensure Model .ma has no color sets when writeColorSets is disabled
BigRoy Jan 5, 2021
27c8eff
Show warning when writeColorSets is disabled but source model does ha…
BigRoy Jan 5, 2021
ea740ff
Implement FBX scaleFactor in Maya publishes
BigRoy Jan 5, 2021
612cf40
Validate Model Mesh invisible faces
BigRoy Jan 8, 2021
c6e4f3d
Set default useLegacyRenderLayers based on current render settings
BigRoy Jan 22, 2021
ea53e11
Implement get_attr_in_layer support for Render Setup
BigRoy Jan 25, 2021
cd909eb
Correctly retrieve layer output name from Render Setup layer
BigRoy Jan 25, 2021
e169770
Validate the Render Globals setting for 'useLegacyRenderLayers'
BigRoy Jan 25, 2021
45f27b5
Implement scaleFactor support for colorbleed.FBX
BigRoy Jan 25, 2021
43f4124
Implement fix for use of .unexpandedString() on parm's referencing ot…
BigRoy Jan 25, 2021
c24683a
Support Redshift and Arnold light groups
BigRoy Jan 25, 2021
4a3a0ae
Implement repair for match current asset for Maya and Houdini
BigRoy Jan 25, 2021
6cb32be
Validate Redshift Single Beauty AOV
BigRoy Jan 25, 2021
072fc05
Fix refactoring typos
BigRoy Jan 25, 2021
3ebfcdd
Fix single shader validation for shape having multiple connections to…
BigRoy Jan 25, 2021
da10a57
Add repair for Validate Look No Default Shaders
BigRoy Jan 25, 2021
958663a
Consider joints with Draw Style set to None to be invisible too
BigRoy Jan 25, 2021
e744572
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Jan 25, 2021
ad43d19
Implement prototype for look assignment as Render Setup overrides
BigRoy Jan 25, 2021
0f412e5
Implement prototype for look assignment as Render Setup overrides
BigRoy Jan 25, 2021
128bfe5
Merge branch 'usd-houdini' of https://github.com/BigRoy/colorbleed-co…
BigRoy Jan 25, 2021
fbba5b2
Return None when node doesn't exist since then it points nowhere
BigRoy Jan 25, 2021
4bb146a
Fix example code
BigRoy Jan 25, 2021
901ca3b
Merge pull request #4 from BigRoy/usd-houdini
BigRoy Jan 27, 2021
a47d456
Force disable render setup include lights for Deadline
BigRoy Feb 1, 2021
fa1a222
Merge branch 'master' of https://github.com/BigRoy/colorbleed-config …
BigRoy Feb 1, 2021
172ed19
Fix `get_default_layer_value` for Render Setup
BigRoy Feb 1, 2021
18805e6
Merge branch 'master' of https://github.com/BigRoy/colorbleed-config …
BigRoy Feb 1, 2021
ef54716
Allow houdini Alembic camera to persist local user values on update
BigRoy Feb 9, 2021
21a6787
Refactor iter_shader_edits to operate by node id as opposed to nodes
BigRoy Apr 30, 2021
bab7c2d
Add todo for edge case with instanced meshes and make optional
BigRoy Apr 30, 2021
af381ce
Exclude deformSine from node id validation (workaround edge case)
BigRoy Apr 30, 2021
6dab6ee
Allow increment current file to increment mayaBinary
BigRoy Apr 30, 2021
27dacde
Update defaults, add skeletonDefinitions option
BigRoy Apr 30, 2021
49fcc3b
Fix FPS validation for maya fps 23.976
BigRoy Apr 30, 2021
f5f36bd
Add chunkSize submit to deadline option for Redshift ROP
BigRoy Apr 30, 2021
5336a9f
Fix: Actually integrate gpuCaches
BigRoy Apr 30, 2021
e454960
Collect Deadline user correctly for Redshift ROP in Houdini
BigRoy Apr 30, 2021
9cfccd6
Remove check whether it's active since it's an InstancePlugin
BigRoy Apr 30, 2021
7bbd839
Allow custom frames + setup draft code for allowing rendering tools i…
BigRoy Apr 30, 2021
f5b7440
Allow to exclude some instances from publishing + write the inputs da…
BigRoy Apr 30, 2021
8426923
Allow instances to be excluded from publishing + show different icon.
BigRoy Apr 30, 2021
29d3d68
Allow Houdini to load Maya gpuCache Alembics
BigRoy Apr 30, 2021
1777ad9
Allow publishing of Maya gpuCaches
BigRoy Apr 30, 2021
8d8fe74
Allow loading Maya gpuCaches in Maya
BigRoy Apr 30, 2021
2c2cfd3
Collect whether V-Ray renders the master layer or not
BigRoy Apr 30, 2021
1f74020
Allow loading published image sequences into COP2 in Houdini
BigRoy Apr 30, 2021
d4178ab
Allow source to be from a different root folder/disk
BigRoy Apr 30, 2021
763593c
Validate Saver has Saver-relative numbering enabled
BigRoy Apr 30, 2021
153f1cf
Add OpenPype style Fusion Avalon menu
BigRoy Apr 30, 2021
75af653
Go to main take when currently in a take and trying to toggle bypass …
BigRoy Jun 11, 2021
2b3d1a1
For now force Maya Security Tools to be loaded - since I'm lazy
BigRoy Jun 11, 2021
559ea17
Fix polySelectConstraint to be very slow when not in Select Tool + se…
BigRoy Jun 11, 2021
8577bec
Preserve selection order for SelectInvalid since it could influence a…
BigRoy Jun 11, 2021
57c6133
Fix getting values on start frame and end frame for Render Setup when…
BigRoy Jun 11, 2021
3470379
Validate Fusion comp is saved within the current asset (workaround)
BigRoy Jun 11, 2021
5409100
Ensure to correctly recook whether the error is still valid
BigRoy Jun 11, 2021
baa5940
Implement aiStandin Loader
BigRoy Jun 11, 2021
b6d8f10
Implement more file node types (e.g. aiImage) + include changes to Ar…
BigRoy Jun 11, 2021
ffe0a8c
TEMPORARY workaround for maya thinking arnold renders to .gif instead…
BigRoy Jun 11, 2021
3da6c29
Correctly retrieve only cameras - the shapes flag previously still fo…
BigRoy Jun 11, 2021
7cc745e
Fix cameras shape detection + ensure baked camera deletion on errors
BigRoy Jun 11, 2021
0ce24e2
Some new resource node types might not have a color space attribute.
BigRoy Jun 11, 2021
1c774fc
Exclude camera for animation checks too.
BigRoy Jun 11, 2021
2b4647b
Cosmetics
BigRoy Jun 11, 2021
4602ac4
Allow joints as controllers for some rare cases
BigRoy Jun 11, 2021
b5a37b6
Show better outputs/messages for ValidateTransfers
BigRoy Jun 11, 2021
6e8b01a
Improve selection order for the user so Freeze Transform results in l…
BigRoy Jun 11, 2021
468583a
WIP Expected Files implementation based on OpenPype (draft)
BigRoy Jun 11, 2021
5923841
Allow forcing of UUID regeneration on referenced geo for pointcache p…
BigRoy Jun 15, 2021
bac85c4
Refactor to lib_renderproducts and mimic more of a USD Terminology us…
BigRoy Jun 15, 2021
9ac7809
Refactor the Renderman code, improve redshift code
BigRoy Jun 15, 2021
bf78582
Remove non-implemented MentalRay since UnsupportedRendererException w…
BigRoy Jun 15, 2021
ec0e849
Cleanup todo
BigRoy Jun 15, 2021
d968cb2
Fix V-Ray cases
BigRoy Jun 16, 2021
7b7f3c7
Fix Arnold beauty product return correctly for merge AOV cases, also …
BigRoy Jun 16, 2021
e9d29c3
Cosmetics
BigRoy Jun 16, 2021
a062d0c
Refactor LayerMetadata.renderProducts to LayerMetadata.products simil…
BigRoy Jun 17, 2021
2e4b9e2
PEP08 + Cosmetics
BigRoy Jun 17, 2021
3d48f2b
Remove unused RENDERER_NAMES
BigRoy Jun 17, 2021
28a5dc6
Also notify user if any loaded container is for a deprecated Asset or…
BigRoy Jun 22, 2021
7f4fcce
Cosmetics
BigRoy Jun 22, 2021
bcbce23
Cosmetics
BigRoy Jun 22, 2021
5f3a538
Refactor/move Maya Setdress API
BigRoy Jun 22, 2021
a2f465e
Add docstring
BigRoy Jun 22, 2021
f24ff4b
Allow publish job to fail max 3 times
BigRoy Jun 26, 2021
e207be4
Use new lib_renderproducts implementation to get output filenames for…
BigRoy Jun 26, 2021
fbfb38e
Fix class name
BigRoy Jun 29, 2021
171d7c3
Fix context manager not yielding correctly, fixes on_pyblish_instance…
BigRoy Aug 11, 2021
40b773d
Fix instanced meshes not publishing correctly from animation.
BigRoy Sep 30, 2021
5c9e2ef
Python 3 compatibility
BigRoy Dec 14, 2021
70522e6
Auto unload autoloader plug-in in Maya as optimization
BigRoy Dec 14, 2021
508b8fa
Maya 2022 compatibility
BigRoy Dec 14, 2021
3970232
Upon switching referenced content also update namespace and group name
BigRoy Dec 14, 2021
8852db5
Correctly detect V-Ray's glare channel render product
BigRoy Dec 14, 2021
8ee20d9
Support Arnold Rop in Houdini
BigRoy Dec 14, 2021
c4a2756
Add FBX loader
BigRoy Dec 14, 2021
3bab5e9
Correct frame padding detection
BigRoy Dec 14, 2021
b02d3f2
Cosmetics
BigRoy Dec 14, 2021
8b296c6
Fix docstring
BigRoy Dec 14, 2021
696b740
Remove redundant code
BigRoy Dec 14, 2021
14cef91
Fix collect inputs for containers that have only reference node conta…
BigRoy Dec 14, 2021
646dd77
Maya 2022 / Python 3 compatibility
BigRoy Dec 14, 2021
ade0e7b
Quick and dirty warning validator whether .tx files exist for all res…
BigRoy Dec 14, 2021
52c406e
Maya 2022 / Python 3 compatibility
BigRoy Dec 14, 2021
52bab02
Validate rig produces no cycle errors
BigRoy Dec 14, 2021
69ee469
Remove .${AOV} from output path since Arnold doesn't use it
BigRoy Dec 15, 2021
76ee025
Remove comment
BigRoy Dec 15, 2021
fcfd469
Support correct filepath prefix when merge AOVs is enabled
BigRoy Dec 15, 2021
b3f87f0
Implement Houdini Arnold Ass instances
BigRoy Dec 15, 2021
2d1f600
Preserve camera in Maya modelPanels on camera update
BigRoy Dec 16, 2021
76f537e
Support ass family in aiStandin loader
BigRoy Dec 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 32 additions & 6 deletions colorbleed/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import os
import json

from pyblish import api as pyblish
from avalon import api as avalon
import pyblish.api
import avalon.api

from .launcher_actions import register_launcher_actions
from .lib import collect_container_metadata
Expand All @@ -16,11 +17,36 @@

def install():
print("Registering global plug-ins..")
pyblish.register_plugin_path(PUBLISH_PATH)
avalon.register_plugin_path(avalon.Loader, LOAD_PATH)
pyblish.api.register_plugin_path(PUBLISH_PATH)
avalon.api.register_plugin_path(avalon.api.Loader, LOAD_PATH)

# Register default "local" target
print("Registering pyblish target: local")
pyblish.api.register_target("local")

# Set a Pyblish QML post collector order: pyblish-qml#356
post_collector_order = str(pyblish.api.CollectorOrder + 0.3)
os.environ["PYBLISH_QML_POST_COLLECT"] = post_collector_order

# Try and set project specific environment if it has implemented any
# todo: implement better project-specific settings
template = "{AVALON_PROJECTS}/{AVALON_PROJECT}/resources/pipeline/env.json"
override_path = template.format(**avalon.api.Session)
if os.path.isfile(override_path):
print("Loading project env override: %s" % override_path)
try:
with open(override_path, "r") as f:
override = json.load(f)
override = {str(key): str(value) for key, value in
override.items()}
os.environ.update(override)
except Exception as exc:
print(exc)


def uninstall():
print("Deregistering global plug-ins..")
pyblish.deregister_plugin_path(PUBLISH_PATH)
avalon.deregister_plugin_path(avalon.Loader, LOAD_PATH)
pyblish.api.deregister_plugin_path(PUBLISH_PATH)
avalon.api.deregister_plugin_path(avalon.api.Loader, LOAD_PATH)

pyblish.api.deregister_target("local")
179 changes: 179 additions & 0 deletions colorbleed/fusion/menu.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
import os
import sys

from Qt import QtWidgets, QtCore

from .pipeline import (
publish
)

from avalon import api
from avalon.tools import (
creator,
loader,
sceneinventory,
workfiles
)


def load_stylesheet():
path = os.path.join(os.path.dirname(__file__), "menu_style.qss")
if not os.path.exists(path):
print("Unable to load stylesheet, file not found in resources")
return ""

with open(path, "r") as file_stream:
stylesheet = file_stream.read()
return stylesheet


class Spacer(QtWidgets.QWidget):
def __init__(self, height, *args, **kwargs):
super(self.__class__, self).__init__(*args, **kwargs)

self.setFixedHeight(height)

real_spacer = QtWidgets.QWidget(self)
real_spacer.setObjectName("Spacer")
real_spacer.setFixedHeight(height)

layout = QtWidgets.QVBoxLayout(self)
layout.setContentsMargins(0, 0, 0, 0)
layout.addWidget(real_spacer)

self.setLayout(layout)


class Menu(QtWidgets.QWidget):
def __init__(self, *args, **kwargs):
super(self.__class__, self).__init__(*args, **kwargs)

self.setObjectName("AvalonMenu")

self.setWindowFlags(
QtCore.Qt.Window
| QtCore.Qt.CustomizeWindowHint
| QtCore.Qt.WindowTitleHint
| QtCore.Qt.WindowCloseButtonHint
| QtCore.Qt.WindowStaysOnTopHint
)
self.render_mode_widget = None
self.setWindowTitle("Avalon")

asset_label = QtWidgets.QLabel("Context", self)
asset_label.setStyleSheet("""QLabel {
font-size: 14px;
font-weight: 600;
color: #ffaf24;
}""")
asset_label.setAlignment(QtCore.Qt.AlignHCenter)

workfiles_btn = QtWidgets.QPushButton("Workfiles", self)
create_btn = QtWidgets.QPushButton("Create...", self)
load_btn = QtWidgets.QPushButton("Load...", self)
publish_btn = QtWidgets.QPushButton("Publish...", self)
inventory_btn = QtWidgets.QPushButton("Manage...", self)
#rendermode_btn = QtWidgets.QPushButton("Set render mode", self)

layout = QtWidgets.QVBoxLayout(self)
layout.setContentsMargins(10, 20, 10, 20)

layout.addWidget(asset_label)

layout.addWidget(Spacer(15, self))

layout.addWidget(workfiles_btn)

layout.addWidget(Spacer(15, self))

layout.addWidget(create_btn)
layout.addWidget(load_btn)
layout.addWidget(publish_btn)
layout.addWidget(inventory_btn)

#layout.addWidget(Spacer(15, self))

#layout.addWidget(rendermode_btn)

self.setLayout(layout)

self.asset_label = asset_label

self.resize(250, 100)

workfiles_btn.clicked.connect(self.on_workfile_clicked)
create_btn.clicked.connect(self.on_create_clicked)
publish_btn.clicked.connect(self.on_publish_clicked)
load_btn.clicked.connect(self.on_load_clicked)
inventory_btn.clicked.connect(self.on_inventory_clicked)
#rendermode_btn.clicked.connect(self.on_rendermode_clicked)

self._callbacks = []
self.register_callback("taskChanged", self.on_task_changed)
self.on_task_changed()

def on_task_changed(self):
# Update current context label
label = api.Session["AVALON_ASSET"]
self.asset_label.setText(label)

def register_callback(self, name, fn):

# Create a wrapper callback that we only store
# for as long as we want it to persist as callback
callback = lambda *args: fn()
self._callbacks.append(callback)
api.on(name, callback)

def deregister_all_callbacks(self):
self._callbacks[:] = []

def on_workfile_clicked(self):
print("Clicked Workfile")
workfiles.show()

def on_create_clicked(self):
print("Clicked Create")
creator.show()

def on_publish_clicked(self):
print("Clicked Publish")
publish()

def on_load_clicked(self):
print("Clicked Load")
loader.show(use_context=True)

def on_inventory_clicked(self):
print("Clicked Inventory")
sceneinventory.show()

def on_rendermode_clicked(self):
from avalon import style
print("Clicked Set Render Mode")
if self.render_mode_widget is None:
window = set_rendermode.SetRenderMode()
window.setStyleSheet(style.load_stylesheet())
window.show()
self.render_mode_widget = window
else:
self.render_mode_widget.show()

def closeEvent(self, event):
self.deregister_all_callbacks()
super(Menu, self).closeEvent(event)


def launch_menu():
app = QtWidgets.QApplication(sys.argv)
app.setQuitOnLastWindowClosed(False)

menu = Menu()

stylesheet = load_stylesheet()
menu.setStyleSheet(stylesheet)

menu.show()

sys.exit(app.exec_())

29 changes: 29 additions & 0 deletions colorbleed/fusion/menu_style.qss
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
QWidget {
background-color: #282828;
border-radius: 3;
}

QPushButton {
border: 1px solid #090909;
background-color: #201f1f;
color: #ffffff;
padding: 5;
}

QPushButton:focus {
background-color: "#171717";
color: #d0d0d0;
}

QPushButton:hover {
background-color: "#171717";
color: #e64b3d;
}

#PypeMenu {
border: 1px solid #fef9ef;
}

#Spacer {
background-color: #282828;
}
68 changes: 68 additions & 0 deletions colorbleed/fusion/pipeline.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import os
import sys

import avalon.api
import avalon.fusion

import pyblish_lite


def publish():

def _install_pyblish_qml_settings():

from pyblish_qml import settings

sys.stdout.write("Applying Pyblish QML settings..\n")

if settings.ContextLabel == settings.ContextLabelDefault:
settings.ContextLabel = "Fusion"
if settings.WindowTitle == settings.WindowTitleDefault:
settings.WindowTitle = "Pyblish (Fusion)"

def _install_pyblish_lite_settings():

from pyblish_lite import settings

sys.stdout.write("Applying Pyblish Lite settings..\n")
settings.ContextLabel = "Fusion"
settings.WindowTitle = "Pyblish (Fusion)"
# Customize the width and height of the window
settings.WindowSize = (600, 650)

def _set_current_working_dir():
# Set current working directory next to comp

comp = avalon.fusion.get_current_comp()
if comp is None:
raise RuntimeError("Fusion 'comp' variable not set. "
"Are you running this as Comp script?")

filename = comp.MapPath(comp.GetAttrs()["COMPS_FileName"])
if filename and os.path.exists(filename):
cwd = os.path.dirname(filename)
else:
# Fallback to Avalon projects root
# for unsaved files.
cwd = os.environ["AVALON_PROJECTS"]

os.chdir(cwd)

print("Starting Pyblish setup..")

# Install avalon
avalon.api.install(avalon.fusion)

# force current working directory to NON FUSION path
# os.getcwd will return the binary folder of Fusion in this case
_set_current_working_dir()

# install fusion title
_install_pyblish_lite_settings()

# Run QML in modal mode so it keeps listening to the
# server in the main thread and keeps this process
# open until QML finishes.
print("Running pyblish_lite.show()..")
#pyblish_qml.show(modal=True)
pyblish_lite.show()
Loading