# Combat VFX source assets

| Asset / creator | Original page | License | Use |
|---|---|---|---|
| Particle Pack / Kenney | https://kenney.nl/assets/particle-pack | CC0 | smoke_04 and dirt_01: impact dust, dark red contact debris, full-body phase-two wisps and shockwave dust |
| Unity Hit VFX Volume 2 / HighPixel | https://opengameart.org/content/unity-hit-vfx-volume-2 | CC0 | SparkHit1, RingHit and Spark: short contact burst, deflection streaks, flying sparks, phase embers and the radial ground-shockwave ring |

Original downloads, Unity package and hashes remain in ExternalAssets/VFX. Native package assets are preserved outside Assets; this Unity 6 project builds its own URP materials and pooled particle layers through CombatVfxAssets.Build(). Five source textures are used. HitEffects places effects on the actual simulation contact tick, including guard, parry, posture break and critical impact. An armored Hit/HyperArmorAbsorb event pair produces one composite effect.

After the phase-transition roar finishes, wisps and embers follow eleven body anchors spanning the hips, chest, head, both arms, hands and legs. The ground-slam ring and dust begin on the actual GroundSlam event, including a missed or evaded shockwave. GrabImpact uses the paired impact tick. Restart clears these layers; pausing freezes their particle clocks. The full-body aura and shockwave composition are project-authored uses of the acquired textures, rather than separately acquired prefabs.

The shader, timing, particle behavior, color choices, flash and camera response are authored for this game. They are not extracted from another game. Run tools/acquire-duel-vfx.py to reproduce acquisition and texture selection.

The final ground wave displays the original HighPixel RingHit texture on a dedicated horizontal MeshRenderer at radius 12m/diameter 24m. A subtle red circular interior keeps the effect visible from nearby cameras, while its edge marks the actual damage boundary. It fades over 0.75 seconds, pauses with combat and clears on restart. Earlier mesh-particle geometry checks did not establish visibility; final gameplay and overhead captures in `Captures/final-visible-ground-ring` visibly confirm this replacement. The acquired texture and license are unchanged.
