Animate enemies: client-derived Rukhanka rigs (Werewolf/Kaiju Husks)

Extends the DR-022 player pipeline to Husk enemies. A Husk is an ownerless
interpolated ghost = structurally a remote player, so the new client-only
EnemyAnimationDriveSystem mirrors PlayerAnimationDriveSystem's remote path:
velocity from LocalTransform-delta (prevPos cache, pruned every frame), facing
from LocalTransform.Rotation (AnimParamMath.PlanarForward), maxSpeed from baked
EnemyStats, IsAttacking from the already-replicated AttackWindup telegraph. No
new [GhostField], no server/asmdef/ghost-hash change.

Monster-mash roster: Werewolf (Grunt), Werewolf-Undead (Swarmer), Kaiju (Brute),
built by the reusable, GUID-preserving EnemyRigTools editor tool (materials +
AC_EnemyTopDown + EnemyAttackWindup clip + 3 rigged prefabs). WaveSystem now
preserves the baked variant Scale (was reset to 1 by LocalTransform.FromPosition).

See DR-023. EditMode 208/208; validated in Play (rigs skin, scales replicate,
locomotion + attack telegraph drive correctly).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-06 23:30:03 -07:00
parent 5a59d8e14f
commit 2fcff9a7a1
23 changed files with 8831 additions and 4 deletions
+3 -3
View File
@@ -705,9 +705,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: ProjectM.Authoring::ProjectM.Authoring.WaveDirectorAuthoring
EnemyPrefabs:
- {fileID: 3885353946372160549, guid: 84c92c40b6b720441ac3a78870c0bba4, type: 3}
- {fileID: 3885353946372160549, guid: 9855c5a5d578bb74ba2fb0d41a73a3b9, type: 3}
- {fileID: 3885353946372160549, guid: 1bc4c3736da534a42a7040fcbe9c92d5, type: 3}
- {fileID: 3885353946372160549, guid: a6c2004a3cc32cc44b1bb7a795f86519, type: 3}
- {fileID: 3885353946372160549, guid: f77a36036567c814496e6c59c42b2082, type: 3}
- {fileID: 3885353946372160549, guid: 31d233e9e507acf45a411f8ab0997bed, type: 3}
RingRadius: 16
RingSlots: 10
BaseCount: 4