Skip to content

animation: [EPIC] Entity attachment & weapon animation package — bone sockets, viewmodel, recoil, muzzle VFX #169

Description

@shadow-kernel

Vision

A character must be able to HOLD things — and the things must feel real. Today an entity cannot be attached to an animated bone at all: AnimationService evaluates clips and uploads GPU skinning palettes (52-byte vertex, root SRV t5), but no system maps a child entity onto a bone's world transform per frame. That blocks the most fundamental game pattern there is: a character holding a flashlight, a pistol with recoil, muzzle flash, smoke and ejected shells — all moving 100% in sync with the hand through every animation.

This epic delivers the full pipeline: bone sockets (engine), attachment API (scripts), socket authoring UI (editor), bone-masked animation layers (hold weapon while walking), synced dual-entity clips (character reload + weapon reload as one), first-person viewmodel rendering (no wall clipping, own FOV), camera shake/kick primitives, and a complete weapon sample in the Horror Starter template wiring it all together with Physics.Raycast, animation events, audio containers and the light-flicker API. Muzzle smoke gets a billboard-lite version now and the full GPU-particle upgrade in v3.3.

Scope

  • animation: bone socket system — entities attach to skeleton bones and follow animation exactly
  • scripting: runtime attachment API — Attach/Detach/GetBoneTransform
  • editor: socket authoring — bone picker, offset gizmo, live preview
  • animation: bone-masked layers — upper-body override/additive (weapon hold + walk)
  • animation: synced multi-entity clips — character + weapon animation pairs
  • rendering: first-person viewmodel layer — separate FOV, no geometry clipping
  • scripting: camera shake + procedural kick/sway primitives
  • templates: weapon sample — pistol with recoil, muzzle flash, shells, ammo/reload (project scripts)
  • rendering: weapon VFX full package (v3.3 — particle smoke, tracers, shell physics)

Success Criteria

  • A skinned character walks while aiming a pistol; the pistol never detaches or lags a single frame — in editor play mode AND the shipped .vpak game (RuntimeDirty verified).
  • Firing: recoil kick + muzzle flash + light pulse + smoke + shell + bang + hit-scan — all triggered from ONE animation event, all in project scripts.
  • First-person arms/weapon never clip through walls and render with their own FOV.

The full task list will be linked here after the child issues are created.

Task List

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0-criticalBlocker – ohne das geht Game-Dev nicht weiterarea:animationSkelett-Animation, Keyframes, State Machinesarea:renderingRenderer, Lichter, Schatten, Post-FX, Shaderhorror-blockerEssenziell BEVOR die Horror-Game-Entwicklung startetsize:XLMehrere Wochen / Epic aufteilentype:epicÜbergeordnetes Sammel-Issue mit Task-Liste

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions