Add pose-switching system with continuous hold and sprint reset

New PlayerPose ScriptableObject (AnimationClip + ceiling Y-offset) and
PlayerPoseController that drives poses via a PlayableGraph, overriding the
Animator controller. Poses are held continuously (idle, moving, on wall/
ceiling) so cycle and sprint changes show immediately. Sprinting in any
state resets to pose 0. Non-keyed bones fall back to a captured rest pose
so empty/partial clips apply fully. Ceiling Y-offset is folded into the
controller's single mesh-offset writer.

PlayerCharacterController gains IsIdle / IsSprinting / IsOnCeiling /
AnimatorOverridden accessors and SetPoseLocalYOffset; SetAnimatorRunning is
guarded while a pose owns the Animator. Removed obsolete Paintman.controller.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 4.8 committed 2026-06-26 08:21:28 +02:00
1 parent d867c617df
commit c41fb398e4
18 files changed
+649 -465

No files matched your search

+22 -1
View File
@@ -1356,7 +1356,7 @@ Animator:
m_GameObject: {fileID: 341947179}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: db81cb9b04dc81e4bbb493a273d47245, type: 2}
m_Controller: {fileID: 0}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
@@ -3240,6 +3240,7 @@ GameObject:
- component: {fileID: 1141039639}
- component: {fileID: 1141039641}
- component: {fileID: 1141039642}
- component: {fileID: 1141039643}
m_Layer: 0
m_Name: Player (Variant 1)
m_TagString: Player
@@ -3336,6 +3337,26 @@ MonoBehaviour:
wallTopOutBoost: 0.3
cameraOrbit: {fileID: 0}
meshOffsetTarget: {fileID: 0}
--- !u!114 &1141039643
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1141039638}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 324ce9a23e6a5144096a195460dd567f, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::PlayerPoseController
persistPose: 1
poseSaveId:
poses:
- {fileID: 11400000, guid: 3b59c882f27d0d04a82d2db251af1728, type: 2}
- {fileID: 11400000, guid: 1545cfba9b5e06d41ae72c7ec766baaf, type: 2}
- {fileID: 11400000, guid: 649ecccdabb7ef9438addcec6663b037, type: 2}
defaultPoseIndex: 0
cycleKey: 17
--- !u!1 &1238479929
GameObject:
m_ObjectHideFlags: 0