v0.3.0
Adds optional Kimodo constraints for guided motion generation, end-to-end (#10).
Added
- Constraints (JSON passthrough) — new Constraints File (
*.json) and Constraints JSON (inline, wins when non-empty) node parameters. They are two sources for the same JSON payload, where each dict'stypeselects the kind, so all constraint types are supported (root 2D path/waypoints, full-body keyframes, end-effector hand/foot targets). Interoperates with JSON exported from the Kimodo demo. - Geometry-driven root path — a new optional Root Path / Waypoints input. Connect a curve or points and the node builds a
root2dconstraint from the geometry: points with an integerframeattribute become sparse waypoints (you control the timing); otherwise the points are spread evenly across the clip as a denser path. Houdini world XZ maps 1:1 to Kimodo's space, so it's coordinate-consistent with the node's own output. The geometry-derived constraint is appended to any JSON constraints.
Server
GenerateRequestgains aconstraintsfield; the resident model is called withconstraint_lst(post-processing already on). Constraints are folded into the cache key, so a new constraint set triggers a fresh generation. Empty constraints reproduce the previous behaviour exactly.
Docs
- Help card, README, setup guide and HDA README (EN + zh-TW) document the parameters, the input, the JSON format and Kimodo's coordinate space.
Follow-up
- Houdini-native full-body / end-effector authoring (pose the rig, keyframe → constraint) tracked in #11.
Full Changelog: v0.2.1...v0.3.0