* feat(particles): bind emitters to bones and emit from skinned mesh
Add ParticleEmitter Attach/SkinSource components so VFX can follow
AnimPose bones (with plane/scale projection) and sample CPU-skinned
vertices for character-surface effects. Expose AnimSkin skinned-position
cache to scripts and cover with unit tests.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(particles): use ComponentRef correctly for Attach/SkinSource
attach()/skinSource() return ecs::ComponentRef, not raw pointers.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>