Houdini 20.5 Nodes Geometry nodes

Character I/O 2.0 geometry node

Packs Character mesh, capture pose and animation, saves them to disk, and loads them back again.

On this page
Since 19.5

The Character I/O SOP is designed to streamline the common operations of packing a character stream, saving it to disk, and giving an option to use the saved sequence rather than the live sequence.

Parameters

Load from Disk

When this is on, the node reads its output from the cached disk files, rather than cooking its input. When you click Save to Disk or Save to Disk in Background (on the Caching tab) to write out the cache files, the node automatically turns this checkbox on.

Reload Geometry

Force a reload of the file. This will also clear any cached data for packed disk primitives (see also the geocache command).

File Path

Determines how the file path is constructed.

Constructed

The node builds up the cache file path(s) from the values of various parameters allowing for features like versioning.

Explicit

Manually write a single expression in the Geometry File parameter field with all the variables you want in the path.

Base Name

When File Path is Constructed, this is the first part of the cache file name. The default is $HIPNAME.$OS (the name of the current scene file without the .hip extension, then a dot, then the name of this node). This is usually sufficient to prevent filename collisions between files/nodes if you give this node an meaningful, unique name (if you have two networks containing nodes both named filecache1, you will get a collision). The drop down menu to the right of the text field has some more possible expressions.

Base Folder

When File Path is Constructed, this is the folder to save the cache files into. The default is $HIP/geo (a folder named geo in the same directory as the current scene file). (When Version is on it adds another directory level inside the base folder.)

Open Directory

Click to show the contents of the Base Folder in the file manager. This can be useful when you want to clean up old cache files.

Version

When File Path is Constructed and the checkbox to the left is on, the node adds a directory level (and filename part) to the cache file path(s) indicating the version. This lets you cache multiple variations of the input network.

Geometry File

Specifies the expression for including all the variables you want in the path. The node uses this file path expression to generate the cache file path(s).

This parameter is only available when File Path is set to Explicit

Rest Frame

When the Rest Geometry, Capture Pose, and Animated Pose are set to Static, this specifies the frame at which to save the inputs to disk.

Rest Geometry Storage

Sets the storage method for the Rest Geometry input.

None

Do not save the Rest Geometry input to disk.

Static

Save the Rest Geometry input to disk at a specific Rest Frame.

Capture Pose Storage

Sets the storage method for the Capture Pose input.

None

Do not save the Capture Pose input to disk.

Static

Save the Capture Pose input to disk at a specific Rest Frame.

Animated Pose Storage

Sets the storage method for the Animated Pose input.

None

Do not save the Animated Pose input to disk.

Static

Save the Animated Pose input to disk at a specific Rest Frame.

MotionClip

Save the Animated Pose input to disk as a MotionClip.

MotionClip

Sample Rate

Sets the rate at which to sample the input animation.

Clip Range

Determines whether to read the MotionClip frame range from the clipinfo detail attribute on the Animated Pose input geometry or set a custom range.

Frame Range

Specifies the custom frame range at which to save the Animated Pose MotionClip to disk.

Pre Behavior

Sets the left end behavior of the clip. This determines how the animation should behave when it is evaluated before the start of the MotionClip.

Clamp

The first and last poses will be extended out indefinitely.

Loop

The animation will repeat from the beginning.

Mirrored Loop

The animation will repeat in reverse.

Post Behavior

Sets the right end behavior of the clip. This determines how the animation should behave when it is evaluated after the end of the MotionClip.

Clamp

The first and last poses will be extended out indefinitely.

Loop

The animation will repeat from the beginning.

Mirrored Loop

The animation will repeat in reverse.

Attributes to Store

A string matching the attributes that you wish to be copied from the input into the MotionClip.

Caching

Save to Disk

Saves the geometry to disk with the last control settings.

Save to Disk in Background

Use a TOP network to cook and save the cache files to disk in a separate background process. This allows you to keep working on other parts of Houdini. The cached frames will show up as they are completed by the other process.

Cancel Cook

Stops all background caching processes, if any exist.

Enable Load from Disk on Save

Whether the node will automatically turn on Load from disk when you click Save to disk or Save to disk in background.

Harden Base Name on Save

When File Path is Constructed and this is on, when you click Save to disk or Save to disk in background the node automatically converts the expression in Base name to a literal string. This prevents the cache from breaking if you duplicate or rename the scene file or node.

Scheduling

TOP Scheduler Override

This parameter overrides the TOP scheduler for this node.

Save Filters

Save filters for the Rest Geometry, Capture Pose, and Animated Pose.

Delete Attributes

A space separated list of attributes to delete from the geometry before saving it. If you know there are attributes on the input geometry you don’t need in the rest of the network, you can decrease the cache file size and make cache loading faster by preventing the attributes from being included in the cache. The names will match at any level (vertex, point, primitive, or detail). The node will never delete the P (position) point attribute. You can use patterns, for example * ^v to delete all attributes except P and v.

Delete Groups

A space separated list of groups to delete from the geometry before saving it. This can be useful with simulation data, where there can be groups in the output you will never use. You can decrease the cache file size and make cache loading faster by preventing these groups from being included in the cache.

Number of Casts

If you know you don’t need full precision for certain attributes in the input, this multi-parm lets you convert the attributes to lower-precision types before saving the geometry. This can make the cache files smaller and faster to load (depending on how many uses of the attribute there are). Set the number or click the plus or minus buttons to set the number of conversions to do.

See the Attribute Cast SOP help for more information.

Class

In a “cast” multiparm instance, the level (vertex, point, primitive, or detail) of the attribute(s) you want to convert to lower precision to save space.

Attributes

In a “cast” multiparm instance, a space-separated list of attributes at the given level (set by the Class parameter above) you want to convert to lower precision to save space.

Precision

In a “cast” multiparm instance, the precision to convert the matching attributes down to, to save space.

Advanced

Scripts

A script command can be specified for execution at the various execution points. The expression language selected for the parameter determines whether this command are hscript or python statements.

Prior to execution, this node is automatically set as the global current node.

To run statements from a file instead, specify the path to the file with either a .cmd extension (when the language is set to Hscript), or .py extension (when the language is set to Python). Additional arguments to the script can also be supplied, they will be parsed in a shell-like manner.

Pre-Render Script

Run this script before any rendering.

Post-Write Script

Run this HScript after each frame’s data has finished writing to disk. This is always after the corresponding Post-Frame Script and always before the Post-Render script, but the order otherwise is undefined. When Save in Background is enabled this allows delaying script actions until the file has finished saving.

Post-Render Script

Run this script after all rendering.

Path

The expressions in these parameters allow an expert user to customize exactly how the node generates a cache file path. However, editing the expressions can easily break the operation of the node. The basic parameters include a lot of room for customization, so we recommend that you do not try to customize these expressions. However, they are available if, for example, they are necessary to conform with studio-wide conventions.

Version String

Contains an expression that generates the “version” part of the path, including a v prefix. Do not edit this expression.

Cache Folder

Contains an expression that generates the parent directory path for cache files. Do not edit this expression.

Cache Name

Contains an expression that generates the filename for cache files. Do not edit this expression.

Descriptive Label

Contains an expression that generates the descriptive text displayed next to this node (below the name and badges) in the network editor. This is set to output the cache filename pattern. Do not edit this expression.

Output File

Contains an expression that generates the resolved, full path of the cache file for the current frame. Do not edit this expression.

Inputs

Rest Geometry

The character’s rest geometry.

Typically, this will contain polygons with the boneCapture point capture attribute, which can be deformed using the Joint Deform SOP.

Capture Pose

The character’s capture pose.

Each joint in the skeleton is represented by a point, where the P and transform (matrix3) attributes contain the joint’s transform. The point’s name attribute contains the joint’s name, and is matched up with the capture paths in the rest geometry’s boneCapture attribute when deforming the skin. The skeleton’s hierarchy is represented by two-point polygons between the points for each child joint and its parent.

Animated Pose

The character’s animated pose, which is represented in the same manner as the Capture Pose.

Outputs

Rest Geometry

The character’s rest geometry.

Typically, this will contain polygons with the boneCapture point capture attribute, which can be deformed using the Joint Deform SOP.

Capture Pose

The character’s capture pose.

Each joint in the skeleton is represented by a point, where the P and transform (matrix3) attributes contain the joint’s transform. The point’s name attribute contains the joint’s name, and is matched up with the capture paths in the rest geometry’s boneCapture attribute when deforming the skin. The skeleton’s hierarchy is represented by two-point polygons between the points for each child joint and its parent.

Animated Pose

The character’s animated pose, which is represented in the same manner as the Capture Pose.

See also

Geometry nodes