DTH Character Studio
Download

Custom morphs#

A ROM section in Preset mode runs a DTH release asset as it ships. Switch it to Custom and you list the morphs yourself. This page continues Your first character, which does exactly that for its Full Body Morphs (FBM) section.

Import from an existing Daz scene#

A section already posed on a Daz timeline doesn't have to be typed in again. Import from Daz scene reads those keyed frames and turns each one into a pose row.

Click it, then pick a scene — or drag the .duf straight from Explorer onto the button. The studio checks the scene first:

Check Why
Exactly one figure The scan picks the figure itself, so a second one makes it a coin toss.
The character's own generation A G8 scan imports morph names that belong to another skeleton.
Animation on the timeline The keyed frames are what there is to read. This is the opposite of the check when you add a scene, which wants an empty timeline for the ROM script to fill.

A failed check blocks the scan and says why, with the usual "Scan anyway" escape if you know better.

Start scan hands the scene to Daz Studio — the same job runner DTH Export uses, so it needs the Runner plugin installed (Installation). Daz opens the scene, scans it with no dialogs and the studio takes you straight to the frame-range picker. It looks like nothing is happening in Daz: that is the point — the run opens no windows, and it clears the scene again when it finishes. If Daz wasn't already running it is started minimized, so the scan never takes over your screen. Cancel scan takes the job back if you change your mind.

Scans you already made stay listed in the same dialog, newest first. That is deliberate: one scan of a scene can feed several ROM sections, so importing FBM after RET should not send you back to Daz. Browse still takes any CSV you curated yourself, and running Scan_Frames by hand in Daz (Scripts › DTH-Character-Studio) still works and lands in the same list.

Each pose row has two name fields with very different jobs:

Note

An import fixes the names for you. Daz property labels are prose — Torso Muscular, !Breast Large, Shape NAVEL FOR PEAR — so a scanned section used to arrive as a grid of rows flagged red, with dozens of names to retype by hand. Import from Daz scene now strips what Houdini rejects: Torso Muscular becomes TorsoMuscular, which reads the same and passes. Nothing is lost — the raw Daz property stays on the morph and is still what the Parameter name column shows, so each row says exactly which morph it drives. This applies to what the studio derives on import, not to what you type: a name you enter is still flagged rather than silently rewritten.

A pose row can also drive its one output from several Daz morphs at once — expand its morphs toggle.

Expanded pose rows: a single-morph row, and rows combining several morphs into one output
Expanded pose rows — a plain single-morph row on top, and two rows combining several morphs into one output below.

Every entry in that expanded list carries its own:

Why Auto is on by default. ROM morphs and base-shape morphs are allowed to overlap. A "shaped" variant of a character — its own scene, built partly from FBM morphs the ROM also walks — is a perfectly normal thing to make, and you shouldn't have to think about it. With Auto on, a morph the open scene already dials to, say, 100% sawtooths back to that value around its pose instead of being flattened to 0, so the ROM stops erasing the base shape on every neighbouring frame. A morph the scene does not dial reads 0 at frame 0 anyway, so for every non-overlapping morph — which is most of them — Auto changes nothing at all. Turn it off only when you want a fixed Base (or a hard reset to 0) regardless of what the scene is doing.

Combining several morphs into one output — why you'd do it#

Combining bakes a shape that only exists as a combination of dials — or a controller plus its corrective — into a single clean morph for Houdini and Unreal: all the listed morphs are keyed together on that one frame and blend into the output named in Name. Add morph adds more; the trash icon removes one (a pose always keeps at least one).

Bone scale — morphs that scale bones (reference skeletons)#

Some morphs also scale bones (Torso Length, Proportion Height, and the like). Generated morphs can only move vertices, and Daz's FBX export doesn't carry bone scales — the body would reshape while the skeleton stays put. Such frames need a reference-skeleton FBX: an export carrying the morph and its bone scale, which the Houdini PoseAsset points at for that frame (its Reference FBX File input).

Tick Bone scale on the pose row and the studio handles that end to end: the frame is handed to the DTH Exporter Plugin, which writes the FBX into a Reference Skeletons subfolder of your export directory, and the PoseAsset CSV gets that FBX's absolute path filled in — Houdini finds it with nothing to type.

the Bone scale toggle on a pose row
Tick Bone scale on a bone-scaling morph — its reference-skeleton FBX is exported and referenced for you.

 

Note

Bone scale only acts when the export actually runs — that's when the studio drives the exporter. Turn Run the export with the ROM script off (and don't run the split Export_… script) and the studio generates the ROM only, so a ticked Bone scale is simply a no-op — you export the reference skeletons yourself. Turn the export back on and it becomes live, no re-ticking needed.

Only GEN and FBM poses can be reference frames — the two categories DazToHue supports reference skeletons in. DTH's own Guide To Creating Custom ROMs describes the feature in depth.

Section & group tools — suffixes, mirroring, reordering, inserting#

Each section header has its Enable switch and Mode (Preset / Custom) select. In Preset mode you can pick the exact DTH release asset (when several match); a red no G9 asset chip (naming the character's generation) appears when the active release ships nothing for it. The JCM section's Custom mode takes a path to your own pose preset (.duf), loaded as the base ROM exactly like a DTH asset.

Grouped sections carry per-group settings in their header:

  • driver bone(s) — the bones driving the group's poses (JCM/GEN/PHY).
  • Generation / Calculate from / Suffix — how Houdini computes the group's morphs (Default / Individual / Additive / Cumulative / Advanced Additive), what deltas are measured against (Rest Pose / Animation Frame), and the side suffix (Left / Centre / Right → _l / _r appended automatically).
  • Mirror right — on a Left group, appends a mirrored right-side copy of the whole group in one click.
  • The frame chip shows the group's computed range live (frames 104–107).

Inside a group: drag rows to reorder (frames simply renumber — they're never stored), and the small + next to a frame number inserts an empty pose before or after it.

Finding a morph's internal Daz name#

The Parameter name the studio asks for is the parameter's internal name, which usually differs from the slider's label (label Body Tone → internal body_bs_BodyTone). The comfortable way is the studio's autocomplete — one unattended scan (Tools → Scan & index) covers every generation, and from then on each Parameter name field suggests matches as you type. The manual route via Parameter Settings (right screenshot) still works for a single name.

A morph's internal Daz name        Looking up a morph's internal name in Daz
Left: a morph's internal name differs from its slider label. Right: the manual route via Parameter Settings.