Skip to content

DTH Character Studio v0.88.1

Choose a tag to compare

@polynaut polynaut released this 22 Aug 05:31
Immutable release. Only release title and notes can be modified.
5908d69

What's changed

  • Finished rows leave the DTH Export run list. A job that completes wears its tick for a beat — long enough to be seen — then fades, drifts aside and collapses, and the rows still to come close up over it. The list is a queue readout, and on a run into several Houdini projects the work still ahead used to scroll out of its five-row box behind work that was already over. A failed row never retires. It is the one row that has to catch the eye after the run has moved on, and disposing of failures beside successes would be exactly the lie its red edge exists to prevent. Row numbers count the whole run, retired rows included, so a row's ordinal never changes under the reader.
  • A Houdini project holding two DazToHue networks in ONE subnet now reports both of them, not one twice. The scan resolved a node's network by its parent and took the first daztohueimport child it found there — right for a subnet with one network, wrong for /obj/DazToHue holding two side by side, where both export nodes answered with the first import's name and the dedupe collapsed them. The DTH Export dialog showed such a project as writing a single export set; the run list showed both all along, because it names nodes by their own network box. Resolution is per NODE now, walking its inputs upstream to its own import node, with the parent's sole import as a fallback and an honest "cannot tell" when a node is unwired in an ambiguous parent. The same correction lands on the PoseAsset CSV pairing (both CSVs in such a project were checked against the first network's .dth) and on the run's own node targeting. Stored scans are re-earned automatically: SCAN_ANSWER_VERSION goes to 9, because the old answer is a legitimate value — "this project writes one set" — and would otherwise be served forever.
  • A Houdini project that failed no longer ticks itself off. The run's task list could only read a failure out of the per-network memo — so the commonest .hip there is, one holding a single DazToHue network, rendered its row positionally: "the queue has passed it" was the whole verdict, and a failed export came out struck through and green beside the projects that worked. The same held for a project that could not START, whose scan-named rows never had a run behind them at all. Both positional paths now take the leg's own verdict — the same run-report entry whose count already decides that the row is finished, so the two cannot disagree. Where the memo knows which network failed, it still wins: one red row among the ones that worked, not a project painted red.
  • A Daz or Houdini export leg that dies silently can no longer report as a success. - Export-landed guard: after the Daz batch finishes, each scene's export set is judged from the disk before the Houdini leg consumes it — a 0-byte .dth, a missing manifest, or the export sweep's .dthprev backups still standing (the signature of a script Daz's engine killed mid-export) now fails that scene loudly and drops it from the Houdini continuation, instead of cooking the corpse into a green checkmark. A scene that failed OUT LOUD — a failed Runner row, or a script that reported its own failure — now drops out of that continuation as well: its export folder looks landed only because the failure path put the previous export back, and handing it on imported last week's character under this run's checkmark. "Skip Daz — use last exports" gets the same verdict: its readiness test was "a .dth is there", which a 0-byte corpse passes — the mode whose whole input is what happens to be on disk now refuses to run Houdini over a dead export, and says which scene and why. - The export backup sweep finishes its job again (runtime v100): the .dthprev step that restores the previous export on failure and purges it on success was listing through a directory handle read before its own renames, so it did neither — a successful export kept every backup it made, and a failed one never got the previous set back. Refresh assets regenerates the installed scripts. Because a script from the previous runtime still leaves its backups behind, leftover backups are now reported as a warning rather than treated as proof the export failed; the .dth decides. - Honest Houdini death reporting: a headless export that exits without a word is reported as "Houdini exited during <its last step>" instead of quoting a stale load-time warning as the cause; the hython exit code — previously discarded by the fire-and-forget spawn — rides along (hex spelling included for Windows crash statuses).