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

Bug: Houdini Publish error when publishing Bgeo Bgeo.Sc (single Frame / Frame Range) #6178

Open
2 tasks done
Lyon-Rosenblatt-Ynput opened this issue Jan 29, 2024 · 1 comment
Assignees
Labels
host: Houdini type: bug Something isn't working

Comments

@Lyon-Rosenblatt-Ynput
Copy link

Lyon-Rosenblatt-Ynput commented Jan 29, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

when Publishing Bgeo sequence from Houdini the Integrate Hero Version errors do to missing Values.

File "/home/workh/Ynput/dev/OpenPype/openpype/plugins/publish/integrate_hero_version.py", line 363, in integrate_instance
head, tail = _template_filled.split(frame_splitter)
ValueError: not enough values to unpack (expected 2, got 1)

When Publishing Bgeo in Single Frame mode. publish deletes the .bgeo / bgeo.sc extensions from the files that are stored in the Vxxx and hero folders.
The Work file Export is fine tho.

Expected Behavior:

Expected behavior would be that the Export copies/published the right files into the Vxxx and Hero founders
i would also expect that hero integration would get the right Data in order to process the integration on sequence files.

Version

3.18.5

What platform you are running OpenPype on?

Windows, Linux / RedHat

Steps To Reproduce:

For Sequence

  1. Open Houdini Create some points
  2. Create a Bgeo export from the Create menu
  3. Set the Export to single Frame
  4. Look into the error logs and go to Integrate Hero Version

For Single Frame Export
3. set frame range ENUM (Valid Frame Range) to (Current)
4. Publish
5. Look into Hero/Vxxx foulder // the file extension will be . instead of .bgeo.sc / .bgeo

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

------------------------------------- Frame Range --------------------------------------

File "/home/workh/Ynput/dev/OpenPype/openpype/plugins/publish/integrate_hero_version.py", line 363, in integrate_instance
    head, tail = _template_filled.split(frame_splitter)
 ValueError: not enough values to unpack (expected 2, got 1)


------------------------------------- Single --------------------------------------
DEBUG: Integrating source files to destination ...
DEBUG: Checking file ... /home/workh/Documents/AyonUsd/Usd_Base/Assets/sim_r42/work/test_sim_r42/pyblish/pointcacheGustaf.1126.bgeo.sc -> /home/workh/Documents/AyonUsd/Usd_Base/Assets/sim_r42/publish/pointcache/pointcacheGustaf/v005/UB_sim_r42_pointcacheGustaf_v005.
DEBUG: Copying file ... /home/workh/Documents/AyonUsd/Usd_Base/Assets/sim_r42/work/test_sim_r42/pyblish/pointcacheGustaf.1126.bgeo.sc -> /home/workh/Documents/AyonUsd/Usd_Base/Assets/sim_r42/publish/pointcache/pointcacheGustaf/v005/UB_sim_r42_pointcacheGustaf_v005.

Additional context:

No response

[cuID:OP-8055]

@MustafaJafar
Copy link
Contributor

As far as this issue is consisting of two parts:

  1. Set Houdini hero version template (as the default hero version is doesn't include frames by default <.{@frame}> )
  2. A bug with publishing the current frame in Bgeo which has nothing to do with the hero version (I hope.)

Regards the hero version template:

you can either update the default hero version or create a new hero version for houdini.

you will need to add hero_ prefix when using custom hero template.

image

image


Bgeo Current frame bug.

Publishing the current frame was not favored as from pipeline perspective there is no clue what is the intended frame to publish. That's why we added this logic

def get_frame_data(node, log=None):
"""Get the frame data: `frameStartHandle`, `frameEndHandle`
and `byFrameStep`.
This function uses Houdini node's `trange`, `t1, `t2` and `t3`
parameters as the source of truth for the full inclusive frame
range to render, as such these are considered as the frame
range including the handles.
The non-inclusive frame start and frame end without handles
can be computed by subtracting the handles from the inclusive
frame range.
Args:
node (hou.Node): ROP node to retrieve frame range from,
the frame range is assumed to be the frame range
*including* the start and end handles.
Returns:
dict: frame data for `frameStartHandle`, `frameEndHandle`
and `byFrameStep`.
"""
if log is None:
log = self.log
data = {}
if node.parm("trange") is None:
log.debug(
"Node has no 'trange' parameter: {}".format(node.path())
)
return data
if node.evalParm("trange") == 0:
data["frameStartHandle"] = hou.intFrame()
data["frameEndHandle"] = hou.intFrame()
data["byFrameStep"] = 1.0
log.info(
"Node '{}' has 'Render current frame' set.\n"
"Asset Handles are ignored.\n"
"frameStart and frameEnd are set to the "
"current frame.".format(node.path())
)
else:
data["frameStartHandle"] = int(node.evalParm("f1"))
data["frameEndHandle"] = int(node.evalParm("f2"))
data["byFrameStep"] = node.evalParm("f3")
return data

@BigRoy mentioned that many times in different discussions I'll put their links for reference later.

When publishing, there are 3 cases:

  1. Set Frame Range [Start, End]
    image
    Frame Range in loader is set properly to start, end
    image

  2. Set Frame Range [Frame, Frame]
    image
    Frame Range is set properly to the given frame.
    image

  3. Use Current Frame.
    image
    Frame Range is set to the current frame
    image

Where is the Bug ?

I believe the bug in getting the extension of the bego file.


Thanks for pointing that out!
I'll update the Houdini docs as soon as possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
host: Houdini type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants