port: the rest() flash defect reaches all four splashes I ship; the port survives it
The Decoder censused rest()'s dwell fallback from the file side: 2305 elements have no plateau, 1697 of those get a visible pose, and in GP_TITLE all four visible fires are on the splash screens this port ships. Confirmed in my export. Refinement to their description: they named the [0:a0 15:a255 30:a212 45:a0] shape, but palogo_gamearts_eff and palogo_seta_eff hold 255 through t=30, so their fallback lands on the flash PEAK rather than its decay. Same defect, worse pose. The port ships the right frame and there is now a number for it. Publisher splash against the committed oracle capture: timeline (shipped) RMSE 2.17 / 0.01% differing; --pose=rest 9.05 / 0.75% -- 75x the differing area on a screen I ship. So the rule added to verify-screen's header after the title_jp mistake generalises, and is demonstrated against an oracle rather than argued. What did need fixing: ScreenView logged '(transparent at rest)' for every skipped element whatever instant it posed, so it said that about palogo_sqex_eff, whose resting alpha is 212. That is the same rest-versus-posed-instant confusion that cost a wrong conclusion, pre-printed in the log. It now names the instant. Controlled both ways: timeline says 'at t=6' and skips the flash, --pose=rest still says 'at rest' and draws it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
@@ -640,7 +640,22 @@ func _draw() -> void:
|
||||
else pose_at(element, time_units)
|
||||
var colour := modulate_of(pose)
|
||||
if colour.a <= 0.0:
|
||||
skipped.append("%s (transparent at rest)" % id)
|
||||
# 🔴 THIS LINE USED TO SAY "at rest" WHATEVER INSTANT IT HAD POSED.
|
||||
#
|
||||
# On the timeline path the pose is `pose_at(time_units)`, not
|
||||
# `rest`, and on the screens where those differ the message named a
|
||||
# pose it had not looked at. `palogo_sqex_eff` on the publisher
|
||||
# splash is `[0:a0 15:a255 30:a212 45:a0]` -- a flash whose `rest`
|
||||
# alpha is **212**. The port skips it correctly at the settled
|
||||
# instant and then reported "transparent at rest" about a resting
|
||||
# pose that is four-fifths opaque.
|
||||
#
|
||||
# ⚠️ That is not cosmetic. The rest-versus-posed-instant confusion is
|
||||
# exactly what made me score a `--pose=rest` frame against a capture
|
||||
# and write up a drift that did not exist (DECISIONS.md). A log line
|
||||
# that erases the distinction is the same error, pre-printed.
|
||||
skipped.append("%s (transparent %s)" % [id,
|
||||
"at rest" if pose_mode == Pose.REST else "at t=%.0f" % time_units])
|
||||
continue
|
||||
var pivot := _vec(element.get("pivot", [0, 0]))
|
||||
var pos := _vec(pose.get("pos", [0, 0]))
|
||||
|
||||
Reference in New Issue
Block a user