spine-rigc 0.25.1 → 0.25.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/AUTHORING.md +14 -0
- package/docs/FACE.md +25 -0
- package/package.json +1 -1
package/docs/AUTHORING.md
CHANGED
|
@@ -1992,6 +1992,20 @@ one wins today. ⛔ rigc does **not** set the flag for you. The compiler never
|
|
|
1992
1992
|
invents a value that is not in the spec, and a rig whose composition was chosen by
|
|
1993
1993
|
the tool is one nobody can reason about.
|
|
1994
1994
|
|
|
1995
|
+
⚠️ **And below full authority it is a weighting rather than a quieter erasure**
|
|
1996
|
+
([#399](https://github.com/firejune/rigc/issues/399)). An additive slider scales
|
|
1997
|
+
its whole contribution by its own `mix`, so two of them at any pair of mixes are
|
|
1998
|
+
still the sum — which is why `A40` skipping below full authority is right: what
|
|
1999
|
+
happens there is a weighting, not the erasure it refuses. A **non-additive**
|
|
2000
|
+
slider at `mix` α applies `current + (value + setup − current) × α`, a lerp *from
|
|
2001
|
+
the pose it found*, so the earlier slider is not erased — it is attenuated by
|
|
2002
|
+
`1 − α`. `mix × contribution` is not the arithmetic there, so a later dial turned
|
|
2003
|
+
part of the way down takes that share of every earlier slider on the target with
|
|
2004
|
+
it, on every frame, with the gate green — the second reason to write
|
|
2005
|
+
`"additive": true` on **every** slider that shares a target and not only on the
|
|
2006
|
+
later one. `PS130` in `selftest.ts` poses both models rather than quoting the
|
|
2007
|
+
runtime, and [`docs/FACE.md`](FACE.md) §8 is the same rule on a face's two axes.
|
|
2008
|
+
|
|
1995
2009
|
⚠️ **And `"additive": true` is not always available.** Only some timelines support
|
|
1996
2010
|
additive application at all: bone, deform, transform-constraint, path `position`,
|
|
1997
2011
|
physics `wind`/`gravity`, and a slider's own `mix`. A **slot colour, an attachment
|
package/docs/FACE.md
CHANGED
|
@@ -1180,6 +1180,31 @@ breaks the moment the two share a target — in the worked example both `turn` a
|
|
|
1180
1180
|
`tilt` key `headroll`. §7's paragraph on sliders is the mechanism and
|
|
1181
1181
|
`A40_SLIDERS_COMPOSE_ON_A_SHARED_TARGET` is the refusal.
|
|
1182
1182
|
|
|
1183
|
+
✅ **And the space between the two dials is measured rather than inferred**
|
|
1184
|
+
([#399](https://github.com/firejune/rigc/issues/399)). Two additive sliders posed
|
|
1185
|
+
at a grid of *both* values — and over a rotation and a translation, so the claim
|
|
1186
|
+
is not one property's — are the closed-form sum at every cell of it, to float64:
|
|
1187
|
+
each slider maps its own reading to a time by §3.5.2's rule, its animation is read
|
|
1188
|
+
there, and the two contributions add. ⭐ That is a property of the **interior**
|
|
1189
|
+
and not of the corners, which is the whole reason it needed a grid: `PS129` drives
|
|
1190
|
+
the same comparison with an `ease` on one of the two animations, and every corner
|
|
1191
|
+
of the space still reads as correct while most of the inside has moved. ⇒ **a
|
|
1192
|
+
lookup table wants linear keys for a second reason** — not only that the face
|
|
1193
|
+
would drift while the value sat still, but that a curve is invisible to any check
|
|
1194
|
+
that reads an axis at its ends.
|
|
1195
|
+
|
|
1196
|
+
⚠️ **And `mix` below 1 is not what it looks like when the later slider is not
|
|
1197
|
+
additive.** An additive slider scales its whole contribution by its own `mix`, so
|
|
1198
|
+
two of them at any pair of mixes are still the sum — which is why `A40` skipping
|
|
1199
|
+
below full authority is right: what happens there is a weighting, not the erasure
|
|
1200
|
+
it refuses. A **non-additive** slider at `mix` α applies
|
|
1201
|
+
`current + (value + setup − current) × α`, a lerp *from the pose it found*, so the
|
|
1202
|
+
earlier slider is not erased — it is attenuated by `1 − α`. A pitch dial turned
|
|
1203
|
+
halfway down takes that share of the yaw with it, on every frame, with the gate
|
|
1204
|
+
green. ⇒ write `"additive": true` on **every** slider that shares a target and
|
|
1205
|
+
not only on the later one, which is what the paragraph above already asks for and
|
|
1206
|
+
this is the second reason for.
|
|
1207
|
+
|
|
1183
1208
|
✅ **The editor half, measured.** This paragraph said *unknown* until the round
|
|
1184
1209
|
trip was taken with `tools/editor_roundtrip.ts` on a licensed editor (data
|
|
1185
1210
|
version 4.3.26) against a 4.3.13 build of
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "spine-rigc",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.2",
|
|
4
4
|
"description": "Rig compiler for Spine — declarative rig specs in, Spine 4.3 skeleton data out, verified by a spine-core round-trip. Built so AI agents can author rigs and check their own work; the output imports into the Spine editor.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|