Review of Curves from Unreal to Houdini

   1678   0   0
User Avatar
Member
337 posts
Joined: June 2013
Offline
Curves from Unreal to Houdini
Let me know if I'm missing anything

What I am looking for to have featured:
A) Curve Matching: Have Houdini Engine send to Houdini the curve I see in Unreal or sufficient elements to reconstruct it precisely either as Polygon or Bezier.
B) Attributes: Have arbitrary point AND primitive attributes set on the curves sent to Houdini to drive Houdini setups.

Unreal Project with HDAs [drive.google.com]

Initial assessment:
Overall the whole workflow seems finicky and not artist friendly.
A) Possible to match curves in Houdini, with specific curve inputs/options.
B) Custom attributes for prim or point seem to be impossible to have, only v@scale and p@rot might be hijacked, although p@rot with its conversion from euler(vector3 in Unreal) to orient(vector4 in Houdini), seems to be useless for that purpose.

Breakdown for each curve input type:

World Outliner Input, with Spline Actors (WOI) :
A) Curves Matching:
1) Polyline is accomplished by setting "Unreal Spline Resolution" to 0. The problem is that I don't see a way to have this parameter defaulting to 0, which means the artist will have to do it for each new asset instance and each World Outliner Input.

2) A true Bezier can't be accomplished, only a resampled version can be obtained with a fair value in "Unreal Spline Resolution" that doesn't respect the Unreal Spline CPs. If Houdini Engine would get Arrive and Leave Tangent this could be sorted if one gets just the CPs.

B) Attributes:
3) "Unreal Spline Resolution" resampling of Bezier will destroy the pinpoint values of CPs and to preserve them this has to be set to 0 but the curve will be a Polyline then.

4) Editing the Unreal Spline scale and rotation is not artist friendly and doesn't use gizmos, that is, selecting the spline points of either the Actor or the Spline Component and using the Scale gizmo will not change the Scale attribute. In order to do this one has to go to the spline component, select the point, go to details and change the Spline Point Scale (Not the Actor Scale). Very finicky but I guess outside of Houdini Engine's scope.


Curve Input (CI):
A) Curve Matching:
Easy to match curves, Bezier or Polyline or NURBS, generated by this input option if one considers how Bezier Primitive in Houdini accounts for handle points, etc. I can then resample it myself (since even Resample by Polygon Edge does a poor job on Beziers) and get pin-point match of the CPs I see in Unreal.

B) Attributes:
1) Easy for Polylines, but Beziers it will require extra work to have the interpolation of values occur only between CPs and ignore the handles. Doable though.
2) But... Unlike the Spline Actors, Curve Input only allows to change the attributes through the gizmos for which there is no numeric display nor visual cue when manipulating them, so one has to guess. More over and maybe more importantly, there is no numeric input, so artists can't just precisely adjust the values which makes it impossible to have precise integer or fractional values. :/


Curve SOP (CS):
A) Curve Matching. While it's easy to match Houdini curves considering how the Curve SOP operates, it necessitates a Curve SOP instance per intended curve and it needs to have some points already to be manipulated.
B) Doesn't support scale and rotation Attributes which makes this option wholly invalid.

Extra:
Questions (Q):
1) When a "World Outline Input" has multiple objects listed they seem to get sorted in Houdini not by alphabetic order(their name in the Input list) but the order of creation in the Unreal Outliner. Is this confirmed? Can the order be changed?
2) Why do I witness Recooking changing the name of the Outliner HDA instance at times and Rebuilding changing the name every time?


Suggestions (S):
1) Add a s@name attribute to prims that match their source World Outliner name.
2) "Curve Input" would be instantly better and preferred over "World Outline Input" if there was a way to numerically insert values for the attributes and not just have the viewport gizmos do it.
3) Maybe there might be some multiparm workflow that can be done to emulate per point, per curve attribute values by using parameters in the HDA itself, read them in Houdini and bind them to the curves. I just wish there was a built in workflow or templates for it.
4) In general allow to define more of the default parameters that the HDA will be instantiated, so that the artist is more focused on drawing the curve and tweak the results that setting correct defaults for tools that require it.

Cheers
Edited by probiner - May 26, 2022 07:30:56
  • Quick Links