I think I’m not understanding a core part of how AYON is working with files.
For reference this is my assumed desired pipeline using USD:
Model in Blender
Texture in Blender
Rig in Blender
Animate in Blender
Layout in Houdini
Effects in Houdini
Render in Houdini
So far I’m able to do steps 1,2 and 5 (haven’t attempted 3,4,6,7 yet), however I’m getting an issue when texturing in blender with an image file, and then trying to load that in houdini or in blender (not in the texturing task). The model is fine however the textures are blank, do I need to store the images somewhere specific for them to be linked to my USD asset? Checking in the USD file it’s looking for the images in /tmp/pyblish_tmp_tu_gi44b/textures/<imageName> which does not exist on disk.
When I open up the file in the texturing task and texture workfile, everything is still there but it seems like this should be carried to the next stage.
Last question for now, is it expected to have a different ‘workfile’ for each task? It seems like it requires me to create a new workfile each time but I’m not sure I’m understanding the flow correctly. Should it really be:
Start modeling by creating a new blender file
Publish, creating a modeling work file + USD asset
Start texturing by creating a new blender file, removing all the defaults, loading in the current USD (only modeling at this point)
Publish, creating a new texturing work file + adding to the USD asset
Repeat for other steps
My default workfile names are something like <project>_<AssetName>_<task>_v001.blend will this always be v001? It seems my workfile will never update to v002 or is that wrong?
I believe these questions are related to USD contribution workflow itself and AYON regardless of the DCC.
Let me drop some facts:
Multi-shot workflow: Not only for shots but also for assets, It allows you to publish products to different AYON contexts (folder paths and tasks) from your current scene. How to leverage it, by simply changing the folder path and task in the publisher!
USD look dev + textures: I’m not sure if textures are transferred to the Asset along the publishing in Blender. But, myself, I prefer to publish my textures to AYON or putting them in a shared location e.g. a library path for my project.
I’m pretty sure this is because you’re exporting USD from Blender which happens to include the materials and textures (and apparently maps those “relative” to the USD file itself). During export we write out to a temporary directory and then publish after.
In this case - you’ve run into a case we haven’t used at all (which is blender lookdev → USD) which is mostly due to there just not having been any requests so far (and no interests among Ynput clients either).
Overall your questions are highly related to Blender itself - and we’d need to write custom logic to support your use cases in Blender, especially because Blender doesn’t “operate in USD” it only imports from and exports to it.
Which means you couldn’t really reference/link the USD model to then only write out the material changes made to it. Or at least, the Blender tooling does not offer anything out of the box like that that I’m aware of.
That leaves us with having to write custom load and export logic to ensure we take that control, which may be quite an extensive implementation change. Doable, I’m sure - but most likely currently through community development first - unless a client on support expresses their needs and would include it in their development hours.
But preferably it’d result in:
USD Model → only include geometry
USD Look/texture → only include materials (exclude the geometry)
Those would combine to become the USD asset which would automatically ‘overlay’ on the geometry, so the USD asset basically contains the model with the look applied.
USD Animation → only include the geometry cache
Then when assembling that in e.g. Houdini you’d overlay the animation over the asset, and you’re good to go.
It may be worth it to create issues on ayon-blender for each individual issue, e.g. the USD export misdirecting the texture paths, etc.
I’m learning how AYON works in order to be able to contribute on development tasks. I want the most basic pipeline to see how it works. At the same time I’m interested in working with USD and finding ways to contribute to Blender as well.
Given this, is it more advisable to:
Only do the modeling in blender, then do everything else in Houdini since that operates in USD, to get to the end of some basic pipeline and quicken my understanding
Create these issues in ayon-blender and start trying to fix them since it’s already something I’ve run into (but maybe this isn’t that useful, since noone is asking for it?), and a way to get busy on programming tasks.
Having them reported already helps tons to have in our backlog and have visibility on. Willingness by the community to develop for it and share back is of course gold !