mpfb_get_macro_details
Reads a MakeHuman character's current macro sliders—gender, age, muscle, race weights and more—without changing anything, so you can plan relative phenotype edits.
Instructions
Read a MakeHuman character's macro details - its phenotype sliders: gender, age, muscle, weight, proportions, height, cupsize, firmness and the three race weights. Changes nothing.
Call this before mpfb_set_macro_details: that tool leaves unnamed
sliders alone, so knowing the current values is what makes a relative
change ("a bit older") possible. An unresolvable name, nothing active,
or an object with no basemesh among its relatives each come back as
found: false with a message, not as an error.
result carries:
macro_details: the current values in MPFB's own nested shape (gender,age, ..., plusraceholdingasian,caucasianandafrican).mpfb_set_macro_detailsreturns the same shape but takes its arguments flat:race.asianis set asrace_asian.default_macro_details: what MPFB considers neutral - every slider 0.5, every race weight 0.33.race_sumandrace_normalized: the three race weights are independent 0.0-1.0 properties and MPFB does not normalize them. The default sums to 0.99; settingrace_asianto 1.0 and leaving the others alone builds a character from weights summing to 1.66, which is legal and probably not what was wanted.macro_target_stackandmacro_target_count: what those values mean in target terms, each entry carrying thetarget_fragmentMPFB loads from disk and theshapekey_nameit becomes. Neither is a name any tool accepts as input; they explain the shape, they do not address it.current_macro_shapekeys: the macro shape keys actually on the mesh now, under the names they are stored with - the same vocabulary asmacro_target_stack'sshapekey_name, so the two can be compared directly. If they disagree, the properties were changed without a recalculation andmpfb_set_macro_detailswill repair it.macro_driftis that comparison made for you, weights included.current_macro_shapekeys_decodedis the same list in MPFB's readable form, for reading rather than comparing.has_shapekeysandis_human_project: a mesh tagged as a basemesh but never built by MPFB reads back a full set of macro properties that mean nothing. These two are how that is told apart.basemesh_name,subject_nameandsubject_resolved_by("name" or "active").
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||