14 Commits
Author SHA1 Message Date
西风逍遥游andCursor Agent 0aac74ff2d feat(animation): IAnimPoseSource layered mixer + additive reference (#403)
* feat(animation): unify layered poses via IAnimPoseSource

Allow AnimLayerMixer base/layers to consume AnimPlayer, AnimGraph, or
AnimStateMachine through a shared pose-source interface, add explicit
bind/identity additive references on mixer and graph, keep disabled layers
advancing, and cover the path with unit tests plus a layered-animation example.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* docs(animation): document getAdditiveReference and getBasePlayer

Source quality requires every new Squirrel binding to appear in
docs/usr/modules/animation.md; fill the two NEW gaps from the layered
mixer / additive-reference APIs.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* feat(examples): layered-animation demo with three KayKit clips

Replace the procedural stick figure with KayKit Knight + Walking_A,
Melee_1H_Attack_Chop, and Hit_A. Show each clip alone and the
AnimLayerMixer result (walk base, spine-masked attack override,
additive hit) side by side.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-09-15 10:59:05 +08:00
西风逍遥游 f2917d4632 feat(asset): add eva and evpack asset pipeline 2026-08-30 13:43:28 +08:00
西风逍遥游 52a9fe1b30 feat(animation): add marker-based locomotion sync 2026-08-25 19:43:07 +08:00
西风逍遥游 aa37a8bbf1 Merge latest dev into codex/animation-mainstream 2026-08-24 23:06:31 +08:00
西风逍遥游 3ab3139057 feat(avatar): mature runtime animation integration 2026-08-24 22:15:41 +08:00
西风逍遥游 a31e28bc4b feat(animation): add weighted aim and two-bone IK 2026-08-24 21:16:40 +08:00
西风逍遥游 aadc861f34 perf(animation): eliminate steady-state pose allocations 2026-08-24 21:13:45 +08:00
西风逍遥游 9b5c3ec645 feat(animation): add root motion and clip notifies 2026-08-24 21:05:29 +08:00
西风逍遥游 6de518e002 feat(animation): add composable runtime pose graph 2026-08-24 21:01:17 +08:00
西风逍遥游 54dea0d561 feat: state hot reload for scripts and state machines
Adds a capture -> reload -> restore pipeline so code/asset changes can be hot-applied without resetting running state:

- common: StateValue (JSON-compatible state tree) + IStateProvider capability interface.
- devtools: Snapshot v2 (script roots + native provider section, v1 compatible, strict rejection of non-data roots), ReloadSession (begin/commit/abort), eve.dev script API (stateRoots / beginStateReload / commitStateReload / abortStateReload).
- load.nut: three-phase soft reload (capture -> dofile -> restore) with migrate_instance / remap_instances helpers and eve_before_reload / eve_after_reload hooks.
- dialogue + AnimStateMachine: IStateProvider for phase/vars/rng and params/current state.
- animation: AnimClip::adopt + AnimClipRegistry + 'animclip' IAssetReloader so .eva content reloads keep clip identity.
- rpg + card: IStateProvider for casting/cooldowns and card phases.
- Tests: stateValue, snapshot v2/strict, reload script protocol, dialogue, animation state machine + reload, rpg/card state roundtrips.
2026-08-21 19:46:25 +08:00
西风逍遥游andCursor Agent fc13b994d2 feat(animation): add AnimTrail motion trail drawing (#41)
Record timed samples (manual points or bone world projection), fade by
duration, and draw dotted trajectories via Graphics for animation FX.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-12 17:36:14 +08:00
西风逍遥游andCursor Agent 3154c8d838 feat(animation): 控制论程序动画(二阶动力学 / 弹簧 / PD) (#18)
基于公开控制论路线为动画模组增加程序动画表示:
- AnimControlMath:二阶 LTI(f/ζ/r)、Juckett 闭式阻尼弹簧、单位质量 PD 增益
- ControlAnim:命名标量通道的连续目标跟踪
- ControlPose:骨骼姿态二阶/弹簧/PD 跟踪,含 per-bone 权重
- Squirrel 工厂 newControlAnim / newControlPose 与文档、单测

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-10 19:36:16 +08:00
西风逍遥游andCursor Agent b96cf3ea48 feat(animation): 3D 骨骼播放支持(状态机 + Motion Matching) (#14)
* feat(animation): add 3D skeletal playback with state machine and motion matching

Extend eve.Animation beyond tweens with AnimSkeleton/AnimClip/AnimPose,
AnimPlayer cross-fade playback, AnimStateMachine (float/bool/trigger),
and MotionDatabase + MotionMatcher feature search. Includes tests and docs.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* test(animation): Mixamo Idle/Run/Jump fixtures for state machine and motion matching

Import Assimp/ModelData and compact .eva clips; bake planar root motion for
in-place Mixamo run; add integration tests and convert_mixamo tool. Logical
state switches immediately on transition while pose still cross-fades.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* test(animation): expand state machine and motion matching coverage

Add bool/compound conditions, float ops, trigger consume, player pause,
three-speed matching, EVA round-trip, and Mixamo run-jump-idle / stability
cases after merging main.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(animation): avoid zeroerr ambiguous || in state machine CHECK

Wrap the compound boolean in parentheses so CHECK does not overload
operator|| against Expression (broke Linux/macOS/Windows CI).

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-10 15:00:30 +08:00
Cursor Agentand西风逍遥游 b844782606 feat: add animation module with property tweening
Introduce eve.Animation / Tween for interpolating named float properties,
including relative setDelta/setDeltaAngle, easing, delay, repeat, and yoyo.
Wire EVAnimation into the build, SDK install, and unit tests.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
2026-08-08 11:20:29 +00:00