tag

#animation

18 items (3 guides · 15 fixes)

guides
guide
Agent animation authoring: numbers for correctness, screenshots for the read, the owner for taste

The division of labor for authoring s&box animation with agents: the owner authors hero poses in the Animate studio, agents build the motion around them against a numeric definition of done, and the owner taste-gates frames, never live sessions. Covers the pose-to-pose synthesis pattern, numeric acceptance, and the sequence-time traps that break freeze-at-end logic.

guide
Character-mounted assets and live-tuning their placement

The method for hanging custom models off the player rig -- gadgets, backpacks, held items -- with three mount styles off one skeleton, and a live slider panel that dumps C#-ready constants for paste-back.

guide
First-person viewmodel and the third-person/first-person camera split

The method for a CS/Rust-style two-view split off one player rig: third person shows the world model, first person hides it and shows a camera-attached viewmodel (arms + held item). Covers hysteresis, tag-based per-view exclusion, the ShadowRenderType correction, and viewmodel composition.

fixes
26.07.08e
"Character facing derived from velocity flips 180 degrees on every pendulum reversal"

Deriving a visual's facing from horizontal velocity causes 180-degree snaps on any momentum reversal. Lock facing to an attach-time azimuth for pendulums and oscillators.

26.07.15
"Citizen held-item pose map: HoldType, aim, and IK hand targets"

HoldType shapes arm+fingers, body aim tilts via SetLookDirection (the aim_body_pitch/yaw floats are readback-only), and an IK hand target OWNS hand position, overriding the holdtype arm pose. Move the IK target to place a held item, use holdtype only for the fist.

26.07.15a
"Components.Get misses a SkinnedModelRenderer on a child object"

Components.Get<SkinnedModelRenderer>() only searches the same GameObject: a renderer on a child returns null, silently no-oping every Set() call.

26.07.08e
"Cross-fade animations WITHOUT an AnimGraph"

Set Sequence.Blending = true once: per-clip fade_in/fade_out times in the vmdl shape the blend; no AnimGraph required.

26.07.15a
"CSS @keyframes and animation shorthand work in razor SCSS"

CSS @keyframes plus the animation: shorthand are supported in s&box razor SCSS, so a spinner or looping effect is pure CSS -- do not drive it from a per-frame BuildHash re-render.

26.07.08e
"Foot-sliding on locomotion: pace clips by their authored stride, not the controller's top speed"

Foot-slide happens when PlaybackRate is tied to movement top speed instead of the clip's own authored stride distance.

26.07.08e
"Keep quaternion keys hemisphere-continuous"

Converting euler poses per-key can land on q vs -q. The interpolation takes a violent 360-degree detour. Negate the quat if dot(prev, new) < 0.

26.08.05
"Ragdoll a scripted-rig NPC with pure engine physics"

PhysicsShapeList + PhysicsJointList in the vmdl + ModelPhysics toggle. No collapse clips, no SetBoneTransform. On current builds ModelPhysics.PhysicsGroup reads NULL: enumerate ModelPhysics.Bodies directly and resolve bones by name→index.

26.07.08e
"Retargeting free Mixamo mocap onto a custom rig"

Transfer rest-delta rotations parent-relative (not world): avoid the forward-hunch bug and never transform_apply scale on Mixamo armatures.

26.07.08e
"Rigging an AI-generated (rigless) character mesh"

Bone-heat auto-weights fail on AI meshes. Use scripted geodesic (along-surface) weights, then FBX + animated vmdl.

26.07.08e
"Sequence-only rig: land hands on a moved prop by reseating the visual, not IK"

When a clip already poses hands in a grip and the prop moves/rescales, offset the rendered visual child instead of using IK or SetBoneTransform -- sequence-only rigs have no AnimGraph.

26.07.22
"Set UseAnimGraph = false before writing Sequence.Name, or the write no-ops"

Direct citizen sequence playback needs no AnimGraph, but SkinnedModelRenderer.UseAnimGraph must be set false BEFORE the first Sequence.Name write, or the write silently no-ops while the model's own animgraph keeps driving the pose. The citizen model exposes 466 sequences (raw directional locomotion + IdlePose family), enough for a full movement set with no rig work.

26.07.08e
"The bone-name `.` → `_` compiler trap"

Model compiler rewrites upper_arm.L → upper_arm_L; physics KV3 that still says .L makes limb bodies unknown while the torso works.

26.07.08e
"The FBX export recipe that actually works"

Default −Z/Y axes, bake_space_transform, no leaf bones, X/Z bone axes, mesh FBX + per-clip armature FBX; scale via ScaleAndMirror 0.3937.

26.08.05
"Why SetBoneTransform / SetIk silently do nothing"

SetIk is AnimGraph-gated; SetBoneTransform is unsound on clip-keyed bones. Use proxy props, whole-visual motion, or commit to AnimGraph.

Want to know when new guides or fixes drop? Join the community to help build this out. Report gotchas, flag outdated fixes, or just lurk.

Join the Discord