nx_movelib.nx
buildroot/runtime/nx_movelib.nx
about
nx_movelib.nx -- MOTION AS DATA (swap+motion census SCOPE B, the operator's headline: a synthetic human wants
a move that isn't in the library -> BUILD it). A MOVE is DATA: keyframes over a loop period, each keyframe = a
per-bone {yaw,pitch} pose. move_gen is a PARAMETRIC generator (data-driven vocabulary, grows by adding a
recipe -- exactly like nx_t2mesh grows objects; NOT neural MDM, which is the S6 rung). move_pose_at interpolates
the keyframes and poses the skeleton via nx_skeleton FK. Both the synthetic human AND the game system draw from
the same library. Angles in rad*4096 (nx_itrig). license_tier: ORIGINAL
dependencies 4 imports · 6 importers
imports: nx_syscalls.nxnx_skeleton.nxnx_itrig.nxnx_figure_render.nx
imported by: nx_creature_motion_gate.nxnx_motion_neural.nxnx_motion_photo_gate.nxnx_motion_video_gate.nxnx_newmoves_gate.nxnx_synth_serve.nx
structs
| none |
consts
| 11 | const MOVE_MAGIC_12868: i64 = 12868 |
| 12 | const MOVE_MAGIC_1200: i64 = 1200 |
| 13 | const MOVE_MAGIC_1600: i64 = 1600 |
| 14 | const MOVE_MAGIC_1400: i64 = 1400 |
| 15 | const MOVE_MAGIC_1800: i64 = 1800 |
| 16 | const MOVE_MAGIC_1500: i64 = 1500 |
| 17 | const MOVE_MAGIC_2000: i64 = 2000 |
| 18 | const MOVE_MAGIC_4096: i64 = 4096 |
| 20 | const MOVE_MAXK: i64 = 8 // max keyframes |
functions
| 22 | func mv_hdr(base: i64) -> *i64 { return base as *i64 } // [0]=nk [1]=period_ms |
| 23 | func mv_time(base: i64) -> *i64 { return (base + 64) as *i64 } // [k] = key time ms |
| 25 | func mv_pose(base: i64, k: i64, b: i64) -> *i64 { return (base + 64 + MOVE_MAXK * 8 + (k * RIG_NB + b) * 16) as *i64 } |
| 26 | func move_bytes() -> i64 { return 64 + MOVE_MAXK * 8 + MOVE_MAXK * RIG_NB * 16 + 64 } |
| 29 | func md_deg(d: i64) -> i64 { return d * MOVE_MAGIC_12868 / 180 } |
| 31 | func mv_zero(base: i64) -> i64 |
| 40 | func mv_set(base: i64, k: i64, b: i64, yaw: i64, pitch: i64) -> i64 { let p: *i64 = mv_pose(base, k, b); p[0] = yaw; p[1] = pitch; return 0 } |
| 42 | func mv_times(base: i64, nk: i64, period: i64) -> i64 |
| 51 | func move_name(id: i64) -> *u8 called by 1: main |
| 64 | func move_id_of(prompt: *u8) -> i64 calls 1: mv_has |
| 86 | func mv_has(s: *u8, kw: *u8) -> i64 called by 1: move_id_of |
| 105 | func move_gen(base: i64, id: i64) -> i64 |
| 202 | func move_pose_at(moveBase: i64, sk: i64, t: i64) -> i64 |