better organised file export paths

This commit is contained in:
MustafaJafar 2024-02-08 23:48:24 +02:00
parent f0ea0fb0f2
commit 9285e0bec0
17 changed files with 149 additions and 93 deletions

View file

@ -13,6 +13,7 @@ class CreateAlembicCamera(plugin.HoudiniCreator):
label = "Camera (Abc)"
family = "camera"
icon = "camera"
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
import hou
@ -26,9 +27,14 @@ class CreateAlembicCamera(plugin.HoudiniCreator):
pre_create_data) # type: CreatedInstance
instance_node = hou.node(instance.get("instance_node"))
filepath = "{root}/{subset}/{subset}.abc".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms = {
"filename": hou.text.expandString(
"$HIP/pyblish/{}.abc".format(subset_name)),
"filename": filepath,
"use_sop_path": False,
}

View file

@ -16,6 +16,7 @@ class CreateArnoldAss(plugin.HoudiniCreator):
# however calling HoudiniCreator.create()
# will override it by the value in the project settings
ext = ".ass"
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
import hou
@ -38,11 +39,13 @@ class CreateArnoldAss(plugin.HoudiniCreator):
parm_template_group = instance_node.parmTemplateGroup()
parm_template_group.hideFolder("Properties", True)
instance_node.setParmTemplateGroup(parm_template_group)
filepath = "{}{}".format(
hou.text.expandString("$HIP/pyblish/"),
"{}.$F4{}".format(subset_name, self.ext)
filepath = "{root}/{subset}/{subset}.$F4{ext}".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name,
ext=self.ext
)
parms = {
# Render frame range
"trange": 1,

View file

@ -9,6 +9,7 @@ class CreateArnoldRop(plugin.HoudiniCreator):
label = "Arnold ROP"
family = "arnold_rop"
icon = "magic"
staging_dir = "$HIP/ayon"
# Default extension
ext = "exr"
@ -36,12 +37,13 @@ class CreateArnoldRop(plugin.HoudiniCreator):
instance_node = hou.node(instance.get("instance_node"))
ext = pre_create_data.get("image_format")
filepath = "{renders_dir}{subset_name}/{subset_name}.$F4.{ext}".format(
renders_dir=hou.text.expandString("$HIP/pyblish/renders/"),
subset_name=subset_name,
ext=ext,
filepath = "{root}/{subset}/{subset}.$F4.{ext}".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name,
ext=ext
)
parms = {
# Render frame range
"trange": 1,
@ -52,11 +54,11 @@ class CreateArnoldRop(plugin.HoudiniCreator):
}
if pre_create_data.get("export_job"):
ass_filepath = \
"{export_dir}{subset_name}/{subset_name}.$F4.ass".format(
export_dir=hou.text.expandString("$HIP/pyblish/ass/"),
subset_name=subset_name,
)
ass_filepath = "{root}/{subset}/ass/{subset}.$F4.ass".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms["ar_ass_export_enable"] = 1
parms["ar_ass_file"] = ass_filepath

View file

@ -12,6 +12,7 @@ class CreateBGEO(plugin.HoudiniCreator):
label = "PointCache (Bgeo)"
family = "pointcache"
icon = "gears"
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
@ -29,14 +30,14 @@ class CreateBGEO(plugin.HoudiniCreator):
instance_node = hou.node(instance.get("instance_node"))
file_path = "{}{}".format(
hou.text.expandString("$HIP/pyblish/"),
"{}.$F4.{}".format(
subset_name,
pre_create_data.get("bgeo_type") or "bgeo.sc")
filepath = "{root}/{subset}/{subset}.$F4.{ext}".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name,
ext=pre_create_data.get("bgeo_type") or "bgeo.sc"
)
parms = {
"sopoutput": file_path
"sopoutput": filepath
}
instance_node.parm("trange").set(1)

View file

@ -13,7 +13,7 @@ class CreateCompositeSequence(plugin.HoudiniCreator):
label = "Composite (Image Sequence)"
family = "imagesequence"
icon = "gears"
staging_dir = "$HIP/ayon"
ext = ".exr"
def create(self, subset_name, instance_data, pre_create_data):
@ -28,10 +28,13 @@ class CreateCompositeSequence(plugin.HoudiniCreator):
pre_create_data) # type: CreatedInstance
instance_node = hou.node(instance.get("instance_node"))
filepath = "{}{}".format(
hou.text.expandString("$HIP/pyblish/"),
"{}.$F4{}".format(subset_name, self.ext)
filepath = "{root}/{subset}/{subset}.$F4{ext}".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name,
ext=self.ext
)
parms = {
"trange": 1,
"copoutput": filepath

View file

@ -16,6 +16,7 @@ class CreateHDA(plugin.HoudiniCreator):
family = "hda"
icon = "gears"
maintain_selection = False
staging_dir = "$HIP/ayon"
def _check_existing(self, asset_name, subset_name):
# type: (str) -> bool
@ -56,10 +57,17 @@ class CreateHDA(plugin.HoudiniCreator):
if not to_hda.canCreateDigitalAsset():
raise plugin.OpenPypeCreatorError(
"cannot create hda from node {}".format(to_hda))
# for consistency I'm using {subset} as it's
# the same key used in other creators
filepath = "{root}/{subset}/{subset}.hda".format(
root=hou.text.expandString(self.staging_dir),
subset=node_name
)
hda_node = to_hda.createDigitalAsset(
name=node_name,
hda_file_name="$HIP/{}.hda".format(node_name)
hda_file_name=filepath
)
hda_node.layoutChildren()
elif self._check_existing(asset_name, node_name):

View file

@ -11,6 +11,7 @@ class CreateKarmaROP(plugin.HoudiniCreator):
label = "Karma ROP"
family = "karma_rop"
icon = "magic"
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
import hou # noqa
@ -31,19 +32,20 @@ class CreateKarmaROP(plugin.HoudiniCreator):
ext = pre_create_data.get("image_format")
filepath = "{renders_dir}{subset_name}/{subset_name}.$F4.{ext}".format(
renders_dir=hou.text.expandString("$HIP/pyblish/renders/"),
subset_name=subset_name,
ext=ext,
)
checkpoint = "{cp_dir}{subset_name}.$F4.checkpoint".format(
cp_dir=hou.text.expandString("$HIP/pyblish/"),
subset_name=subset_name
filepath = "{root}/{subset}/{subset}.$F4.{ext}".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name,
ext=ext
)
usd_directory = "{usd_dir}{subset_name}_$RENDERID".format(
usd_dir=hou.text.expandString("$HIP/pyblish/renders/usd_renders/"), # noqa
subset_name=subset_name
checkpoint = "{root}/{subset}/checkpoint/{subset}.$F4.checkpoint".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
usd_directory = "{root}/{subset}/usd_render/{subset}_$RENDERID".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms = {

View file

@ -11,6 +11,7 @@ class CreateMantraIFD(plugin.HoudiniCreator):
label = "Mantra IFD"
family = "mantraifd"
icon = "gears"
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
import hou
@ -25,10 +26,12 @@ class CreateMantraIFD(plugin.HoudiniCreator):
pre_create_data) # type: CreatedInstance
instance_node = hou.node(instance.get("instance_node"))
filepath = "{root}/{subset}/{subset}.$F4.ifd".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
filepath = "{}{}".format(
hou.text.expandString("$HIP/pyblish/"),
"{}.$F4.ifd".format(subset_name))
parms = {
# Render frame range
"trange": 1,

View file

@ -11,6 +11,7 @@ class CreateMantraROP(plugin.HoudiniCreator):
label = "Mantra ROP"
family = "mantra_rop"
icon = "magic"
staging_dir = "$HIP/ayon"
# Default to split export and render jobs
export_job = True
@ -33,11 +34,11 @@ class CreateMantraROP(plugin.HoudiniCreator):
instance_node = hou.node(instance.get("instance_node"))
ext = pre_create_data.get("image_format")
filepath = "{renders_dir}{subset_name}/{subset_name}.$F4.{ext}".format(
renders_dir=hou.text.expandString("$HIP/pyblish/renders/"),
subset_name=subset_name,
ext=ext,
filepath = "{root}/{subset}/{subset}.$F4.{ext}".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name,
ext=ext
)
parms = {
@ -48,11 +49,11 @@ class CreateMantraROP(plugin.HoudiniCreator):
}
if pre_create_data.get("export_job"):
ifd_filepath = \
"{export_dir}{subset_name}/{subset_name}.$F4.ifd".format(
export_dir=hou.text.expandString("$HIP/pyblish/ifd/"),
subset_name=subset_name,
)
ifd_filepath = "{root}/{subset}/ifd/{subset}.$F4.ifd".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms["soho_outputmode"] = 1
parms["soho_diskfile"] = ifd_filepath

View file

@ -13,6 +13,7 @@ class CreatePointCache(plugin.HoudiniCreator):
label = "PointCache (Abc)"
family = "pointcache"
icon = "gears"
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
instance_data.pop("active", None)
@ -27,6 +28,12 @@ class CreatePointCache(plugin.HoudiniCreator):
pre_create_data)
instance_node = hou.node(instance.get("instance_node"))
filepath = "{root}/{subset}/{subset}.abc".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms = {
"use_sop_path": True,
"build_from_path": True,
@ -34,8 +41,7 @@ class CreatePointCache(plugin.HoudiniCreator):
"prim_to_detail_pattern": "cbId",
"format": 2,
"facesets": 0,
"filename": hou.text.expandString(
"$HIP/pyblish/{}.abc".format(subset_name))
"filename": filepath
}
if self.selected_nodes:

View file

@ -11,6 +11,7 @@ class CreateRedshiftProxy(plugin.HoudiniCreator):
label = "Redshift Proxy"
family = "redshiftproxy"
icon = "magic"
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
@ -36,8 +37,13 @@ class CreateRedshiftProxy(plugin.HoudiniCreator):
instance_node = hou.node(instance.get("instance_node"))
filepath = "{root}/{subset}/{subset}.$F4.rs".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms = {
"RS_archive_file": '$HIP/pyblish/{}.$F4.rs'.format(subset_name),
"RS_archive_file": filepath,
}
if self.selected_nodes:

View file

@ -14,6 +14,7 @@ class CreateRedshiftROP(plugin.HoudiniCreator):
family = "redshift_rop"
icon = "magic"
ext = "exr"
staging_dir = "$HIP/ayon"
# Default to split export and render jobs
split_render = True
@ -56,10 +57,12 @@ class CreateRedshiftROP(plugin.HoudiniCreator):
ipr_rop.parm("linked_rop").set(instance_node.path())
ext = pre_create_data.get("image_format")
filepath = "{renders_dir}{subset_name}/{subset_name}.{fmt}".format(
renders_dir=hou.text.expandString("$HIP/pyblish/renders/"),
subset_name=subset_name,
fmt="${aov}.$F4.{ext}".format(aov="AOV", ext=ext)
filepath = "{root}/{subset}/{subset}.${aov}.$F4.{ext}".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name,
aov="AOV",
ext=ext
)
ext_format_index = {"exr": 0, "tif": 1, "jpg": 2, "png": 3}
@ -82,8 +85,11 @@ class CreateRedshiftROP(plugin.HoudiniCreator):
camera = node.path()
parms["RS_renderCamera"] = camera or ""
export_dir = hou.text.expandString("$HIP/pyblish/rs/")
rs_filepath = f"{export_dir}{subset_name}/{subset_name}.$F4.rs"
rs_filepath = "{root}/{subset}/rs/{subset}.$F4.rs".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms["RS_archive_file"] = rs_filepath
if pre_create_data.get("split_render", self.split_render):

View file

@ -14,6 +14,7 @@ class CreateReview(plugin.HoudiniCreator):
label = "Review"
family = "review"
icon = "video-camera"
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
@ -32,9 +33,9 @@ class CreateReview(plugin.HoudiniCreator):
frame_range = hou.playbar.frameRange()
filepath = "{root}/{subset}/{subset}.$F4.{ext}".format(
root=hou.text.expandString("$HIP/pyblish"),
root=hou.text.expandString(self.staging_dir),
subset="`chs(\"subset\")`", # keep dynamic link to subset
ext=pre_create_data.get("image_format") or "png"
ext=pre_create_data.get("image_format", "png")
)
parms = {
@ -134,7 +135,7 @@ class CreateReview(plugin.HoudiniCreator):
def set_colorcorrect_to_default_view_space(self,
instance_node):
"""Set ociocolorspace to the default output space."""
from ayon_core.hosts.houdini.api.colorspace import get_default_display_view_colorspace # noqa
from openpype.hosts.houdini.api.colorspace import get_default_display_view_colorspace # noqa
# set Color Correction parameter to OpenColorIO
instance_node.setParms({"colorcorrect": 2})

View file

@ -15,6 +15,7 @@ class CreateStaticMesh(plugin.HoudiniCreator):
icon = "fa5s.cubes"
default_variants = ["Main"]
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
@ -29,13 +30,14 @@ class CreateStaticMesh(plugin.HoudiniCreator):
instance_node = hou.node(instance.get("instance_node"))
# prepare parms
output_path = hou.text.expandString(
"$HIP/pyblish/{}.fbx".format(subset_name)
filepath = "{root}/{subset}/{subset}.fbx".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms = {
"startnode": self.get_selection(),
"sopoutput": output_path,
"sopoutput": filepath,
# vertex cache format
"vcformat": pre_create_data.get("vcformat"),
"convertunits": pre_create_data.get("convertunits"),

View file

@ -13,6 +13,7 @@ class CreateUSD(plugin.HoudiniCreator):
family = "usd"
icon = "gears"
enabled = False
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
@ -26,8 +27,13 @@ class CreateUSD(plugin.HoudiniCreator):
instance_node = hou.node(instance.get("instance_node"))
filepath = "{root}/{subset}/{subset}.usd".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms = {
"lopoutput": "$HIP/pyblish/{}.usd".format(subset_name),
"lopoutput": filepath,
"enableoutputprocessor_simplerelativepaths": False,
}

View file

@ -14,6 +14,7 @@ class CreateVDBCache(plugin.HoudiniCreator):
label = "VDB Cache"
family = "vdbcache"
icon = "cloud"
staging_dir = "$HIP/ayon"
def create(self, subset_name, instance_data, pre_create_data):
import hou
@ -29,11 +30,14 @@ class CreateVDBCache(plugin.HoudiniCreator):
pre_create_data) # type: CreatedInstance
instance_node = hou.node(instance.get("instance_node"))
file_path = "{}{}".format(
hou.text.expandString("$HIP/pyblish/"),
"{}.$F4.vdb".format(subset_name))
filepath = "{root}/{subset}/{subset}.$F4.vdb".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
parms = {
"sopoutput": file_path,
"sopoutput": filepath,
"initsim": True,
"trange": 1
}

View file

@ -15,6 +15,7 @@ class CreateVrayROP(plugin.HoudiniCreator):
family = "vray_rop"
icon = "magic"
ext = "exr"
staging_dir = "$HIP/ayon"
# Default to split export and render jobs
export_job = True
@ -56,11 +57,11 @@ class CreateVrayROP(plugin.HoudiniCreator):
}
if pre_create_data.get("export_job"):
scene_filepath = \
"{export_dir}{subset_name}/{subset_name}.$F4.vrscene".format(
export_dir=hou.text.expandString("$HIP/pyblish/vrscene/"),
subset_name=subset_name,
)
scene_filepath = "{root}/{subset}/vrscene/{subset}.$F4.vrscene".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name
)
# Setting render_export_mode to "2" because that's for
# "Export only" ("1" is for "Export & Render")
parms["render_export_mode"] = "2"
@ -81,19 +82,13 @@ class CreateVrayROP(plugin.HoudiniCreator):
instance_data["RenderElement"] = pre_create_data.get("render_element_enabled") # noqa
if pre_create_data.get("render_element_enabled", True):
# Vray has its own tag for AOV file output
filepath = "{renders_dir}{subset_name}/{subset_name}.{fmt}".format(
renders_dir=hou.text.expandString("$HIP/pyblish/renders/"),
subset_name=subset_name,
fmt="${aov}.$F4.{ext}".format(aov="AOV",
ext=ext)
)
filepath = "{}{}".format(
hou.text.expandString("$HIP/pyblish/renders/"),
"{}/{}.${}.$F4.{}".format(subset_name,
subset_name,
"AOV",
ext)
filepath = "{root}/{subset}/{subset}.${aov}.$F4.{ext}".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name,
aov="AOV",
ext=ext
)
re_rop = instance_node.parent().createNode(
"vray_render_channels",
node_name=basename + "_render_element"
@ -108,11 +103,12 @@ class CreateVrayROP(plugin.HoudiniCreator):
})
else:
filepath = "{renders_dir}{subset_name}/{subset_name}.{fmt}".format(
renders_dir=hou.text.expandString("$HIP/pyblish/renders/"),
subset_name=subset_name,
fmt="$F4.{ext}".format(ext=ext)
filepath = "{root}/{subset}/{subset}.$F4.{ext}".format(
root=hou.text.expandString(self.staging_dir),
subset=subset_name,
ext=ext
)
parms.update({
"use_render_channels": 0,
"SettingsOutput_img_file_path": filepath