BUG REPORT: Free Transform rotation of a layer-parented CHILD on a motion tween writes corrupt skew/scale channels instead of Rotation_Z (angle destroyed, wrong render)
Product/version: Adobe Animate 24.0.5 (Windows 11). Reproduced across several 24.0.x builds; the responsible code appears unchanged since 22.x.
Setup: Layer A has a motion tween. Layer B (motion tween) is layer-parented to A in the timeline's parenting view. Optionally layer C parented to B (makes the breakage more visible).
Steps:
- Put the playhead mid-span.
- Select the child (B) on stage with the Free Transform tool.
- Rotate it with the corner rotation handle, e.g. ~45°.
Expected: a Rotation_Z keyframe at the playhead frame, identical to typing the same angle into Properties > Transform > Rotate (which works correctly!)
Actual: Animate decomposes the edit into invalid channels in the motion XML: unequal Skew_X/Skew_Y ramps plus large Scale_X/Scale_Y and Motion_X/Y keys. Measured examples (child rotated by exactly 15/30/45/90°): Scale_Y lands at 197%, 342%, 473%, 660% (wildly non-monotonic); skews swing unpredictably. The channel set composes to a non-orthonormal matrix (column norms 1.09 / 1.93 for a 33° rotation), i.e. it is not any valid rotation of the prior state (the user's intended angle is mathematically unrecoverable from the file afterwards).
Consequences:
- The render is wrong, not just stored badly: with a grandchild attached, the grandchild is flung away from the rig and distorted (side-by-side PNGs available: same +45° via Free Transform vs. via a clean Rotation_Z key — the latter renders correctly).
element.rotationon the child reads NaN afterwards.- The junk Skew/Scale keyframes cannot be removed from the native timeline (per-property keys), so users see "keyframes that came from nowhere".
- Because the visible pose sometimes looks nearly right (equal-skew cases and 90° quadrant flips are representable), users keep animating on top of corrupt data and only see the damage later (silent data corruption).
Scope (verified per-operation): only this combination is broken. Moving or scaling a rig child with Free Transform writes clean channels; rotating the rig ROOT writes clean Rotation_Z; rotating a non-parented layer writes clean Rotation_Z; typing a rotation value in Properties on the same child writes clean Rotation_Z. The defect is specifically the stage-gesture inverse-composition path for layer-parented children.
Likely relation to known issues: fixed-issue 22.0.1 "Parenting in motion tween glitches if rotation is applied" is adjacent; community thread "Layer parenting flipped symbols bug" (Oct 2023, td-p/14148730 — "the symbol changes angle on the second frame of the Motion Tween") matches these symptoms.
Ask: route the Free Transform rotation of layer-parented children through the same write path as the Properties-panel rotation from the timeline panel (clean Rotation_Z keys).
Tagging
