Skinning Converter is a Houdini Digital Asset (HDA) that can convert any non-changing topology deforming mesh sequence into a bone based animation. The user gets control over a couple of parameters, which allows the user to get their desired result.


Direct Conversion

If you have a deforming mesh sequence, and would like to convert it to a bone-based animation, simply plug it into the first input of the tool. The interface provides a couple of parameters to tweak in order to achieve the desired result.

Global Settings

The "Convert to Bones" button will convert the input mesh sequence.

The user is able to change the frame range to bake, which by default is set to frame-range start-end.

The capturing method can be configured to either use Biharmonic Capturing, or Proximity Capture. It is recommended to use Biharmonic Capturing over Proximity Capture, due to the higher level of quality capture. You could however use Proximity Capture, to improve the speed of the capturing process.

The capture frame determines what frame will be used to determine the capture pose. It is recommended to use your first frame.

Max Bone Influences controls by how many bones a point can be influenced. Higher values could mean smoother results, but also increases overhead in engine.

Bone Placement Control

The Bone Placement Control tab allows you to choose between two methods of generating bone placements. Uniform and Adaptive.

Uniform will simply distribute the bones uniformly over your mesh. This is useful when quick results are desired. When dealing with sequences that don't have specific regions where you want more detail to be conserved, this is the best way to go.

Adaptive will analyze the motion of your mesh sequence, and focus bone density in the regions it deems most important based on the provided ruleset. (Area Deformation, Curvature , Velocity) The user can then use the "Primary" bones slider to control the number of bones in the focus areas.


Input Bones

The tool also allows you to feed custom bone positions through the second input. This allows you to build custom methods for determining where bones should be placed. Note that the tool will lock the transforms at the specified capturing frame.

Drawn Bones

The tool also features a really useful feature, where you can hand paint bones on the mesh to get very accurate placements. Simply select the tool in your network, and hit enter to go into painting mode. The tool will then show you strokes at the bottom of the tool, where you can also remove them again. To exit this mode, simply hit escape.


Error Visualisation

The "Error Visualisation" tab allows you to quickly debug regions on your conversion result that do not match the input mesh sequence. Green means it is identical, yellow is near identical, and red is off. 

The Converted Output field references the converted output mesh, which will be compared to the source using one of two methods. Maximum Error, and Accumulated Error. Maximum will show you the max error of all frames at any given time. The coloring will happen based on the error tolerance you specify. This allows you to configure how accurate the conversion has to be, and the tool will show you how close you are. The tool does not just color the mesh, but also returns attributes storing these values. This means you could automate the improvement process.

Accumulated error method will accumulate the difference of all points between source and result, also based on the specified error tolerance. Once again in world units.


CREATED BY

PAUL AMBROSIUSSEN

Paul Ambrosiussen is currently a Technical Artist and Game Tools Developer at SideFX Software. He finished his BASc in International Game Architecture and Design at NHTV University of Applied Sciences in Breda. Paul enjoys writing tools to support effective art-pipelines, and maintaining tool / workflow quality for the artists he is assisting. His goal is to help others create amazing things in a better, faster and more flexible way. He creates tutorials, gives live lectures, attends events, and presents custom workshops to customers.

More from Paul Ambrosiussen

COMMENTS

  • ztyqaz111 9 months, 2 weeks ago  | 

    Very useful!
    Can i create bones from different topology mesh sequence?

    • ztyqaz111 9 months, 2 weeks ago  | 

      sop_polydeform&SKINNING CONVERTER i found it!

      • Ambrosiussen 9 months, 2 weeks ago  | 

        Hi!

        Glad to hear you found a solution!
        If you have questions, feel free to send me a DM.

        Paul

  • dedeks3000 8 months, 1 week ago  | 

    Great Video !

  • Matt Vitalone 7 months, 4 weeks ago  | 

    This tool looks great. We have an in-house Maya tool that does this, but it seemed like something that Houdini would naturally be better at.

  • DiegoM 7 months, 3 weeks ago  | 

    Hello! Is there some way to change the size of the visualization spheres? I have some really dense geometry and I have areas that are being covered up entirely by the spheres. Thank you!

    • Ambrosiussen 7 months, 3 weeks ago  | 

      Hey DiegoM,

      Unfortunately not without diving into the tool and adding one line of code. I will add it to my to-do list though :)
      If you want to quickly make the edit yourself, simply dive into the tool, and just above the "Copy to Points" marked in orange, put an attribute wrangle (set to run over points).. In that wrangle, simply write "@pscale = 0.1;" 0.1 meaning 10% of current size, so change it to whatever you need.

      Paul

  • Walter Low 5 months, 2 weeks ago  | 

    How do i export it for a game engine once i am done with the process of converting?

    • Ambrosiussen 5 months, 2 weeks ago  | 

      Hi Walter,

      You can use the Filmbox ROP to export an FBX file containing all the data you need.

      Paul

      • waltz 5 months, 2 weeks ago  | 

        Thanks for the prompt response Paul ;)

  • Alain2131 5 months, 2 weeks ago  | 

    Hey Paul, awesome tool ! Very usefull and easy to use, thanks a lot !
    Is there a possibility to have the same for rigging wires ? I tried to use the tool on a bunch of wires (even separated wires), and the result is bad :(

    • Ambrosiussen 5 months, 2 weeks ago  | 

      Hey!

      The tool works less successfully on surfaces that have a lot of small motion on them.
      What you could try is using the "custom bone input" on the tool, and feed the tool points that lie in the center of the wire. (Like a spine)
      Let me know if that works for you!

      Paul

      • Alain2131 5 months, 2 weeks ago  | 

        Hey Paul,
        thanks for the fast reply !
        Actually, this is exactly what I did ! Sadly, weird results occured, see https://image.ibb.co/e4zqWc/wire_rigging.jpg.

        • Ambrosiussen 5 months, 2 weeks ago  | 

          Hmm yeah that's what I figured. :/
          You could either try to increase the number of bones. (Probably dont want to do that)
          Or use the VAT tool.

          • Alain2131 5 months, 2 weeks ago  | 

            Indeed, can't have too much bones.
            Thanks, will look into it !
            Awesome tool nonetheless, still a life-saver !

  • Doomhammer 1 month, 3 weeks ago  | 

    Is this compatible with Apprentice, or is it only Indie and above?
    I've tried updating the GameDevelopmentToolset to the latest that shows up in dev (currently 1.15) and it doesn't appear in the shelf or the node list even after several attempts / reloads.

Please log in to leave a comment.