Wall-climb mesh lean + separate climb/mantle/sprint speeds; reworked rig

PlayerCharacterController:
- Wall lean now moves only the visual model + its paint collider (auto-resolved
  mesh root parenting both renderer and bones), not the CharacterController
  capsule, so the mesh can sink into the wall (wallMaxInset) as well as lean out
  (wallMaxOffset); capsule stays flush.
- Lean eases back to the authored pose when leaving the wall instead of snapping.
- Sprint multiplier now also applies while wall/ceiling climbing.
- Separate wallMantleSpeedMultiplier for pulling up over the top edge,
  independent of the climb speed.

Assets:
- Re-exported paintman_UV.FBX and added Paintman.blend: rescaled armature to
  mesh, merged seam duplicate vertices, fresh automatic weights, inner-thigh
  weight fix (no webbing on leg spread).
- Updated anims, animator controller, font SDF and scene.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 4.8 committed 2026-06-25 20:57:15 +02:00
1 parent cda1373979
commit d867c617df
10 files changed
+15698 -2821

No files matched your search

+118 -132
View File
@@ -565,7 +565,7 @@ MonoBehaviour:
Enabled: 1
DistanceLimit: 0
MinimumOcclusionTime: 0
CameraRadius: 0.2
CameraRadius: 0.07
UseFollowTarget:
Enabled: 0
YOffset: 0
@@ -1341,6 +1341,33 @@ MonoBehaviour:
m_PostInfinity: 2
m_RotationOrder: 4
CustomBlends: {fileID: 0}
--- !u!1 &341947179 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 6583767446015258322, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
m_PrefabInstance: {fileID: 821516643}
m_PrefabAsset: {fileID: 0}
--- !u!95 &341947181
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 341947179}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: db81cb9b04dc81e4bbb493a273d47245, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &347639556
GameObject:
m_ObjectHideFlags: 0
@@ -1840,33 +1867,6 @@ Transform:
m_CorrespondingSourceObject: {fileID: 4009941363576130, guid: a8cba3361c8f7724e8899289f1efa8cc, type: 3}
m_PrefabInstance: {fileID: 830003388}
m_PrefabAsset: {fileID: 0}
--- !u!1 &597997895 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -7694449539802768922, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
m_PrefabInstance: {fileID: 821516643}
m_PrefabAsset: {fileID: 0}
--- !u!95 &597997897
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 597997895}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: db81cb9b04dc81e4bbb493a273d47245, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1001 &607565146
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1994,69 +1994,6 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 29636f40562819649b730c52f1babbcb, type: 3}
--- !u!1 &682237518 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -8278657895335465921, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
m_PrefabInstance: {fileID: 821516643}
m_PrefabAsset: {fileID: 0}
--- !u!114 &682237521
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 682237518}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5fc799adb27d5ea45990b5522b75ddda, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::MeshPainter
brushShader: {fileID: 0}
dilateShader: {fileID: 0}
packMsShader: {fileID: 0}
persistPaint: 1
saveId:
pipette: 0
spray: 0
sprayDots: 24
sprayDotSizeMin: 0.05
sprayDotSizeMax: 0.18
sprayDotAlphaMin: 0.25
sprayDotAlphaMax: 1
useGpu: 1
paintAlbedo: 1
paintMetallicSmoothness: 0
paintOcclusion: 0
paintEmission: 0
brushColor: {r: 0.6, g: 0.6, b: 1, a: 1}
metallic: 1
smoothness: 1
metallicSmoothnessOpacity: 1
occlusion: 1
occlusionOpacity: 1
emissionColor: {r: 1, g: 0.6, b: 0, a: 1}
emissionIntensity: 20
brushSize: 50
brushMasks:
- {fileID: 2800000, guid: d07c01c40cc7be54da0ff3ae52484cd2, type: 3}
- {fileID: 2800000, guid: ccc205272b051834eb39593f647c7bf1, type: 3}
- {fileID: 2800000, guid: 04bc55e2853356e4f999b995d0066b33, type: 3}
- {fileID: 2800000, guid: 25780adbe09da488ba079bc33c4bbf0f, type: 3}
- {fileID: 2800000, guid: 25780adbe09da488ba079bc33c4bbf0f, type: 3}
- {fileID: 2800000, guid: 25780adbe09da488ba079bc33c4bbf0f, type: 3}
activeBrushIndex: 0
brushAlignment: 0
brushRotation: 0
paintOnMoveOnly: 1
paintInterval: 0
previewMode: 2
previewOpacity: 1
textureSize: 1024
baseColor: {r: 0.8, g: 0.8, b: 0.8, a: 1}
paddingTexels: 2
paintCamera: {fileID: 0}
updateColliderEveryFrame: 1
previewShader: {fileID: 0}
--- !u!1 &686187286
GameObject:
m_ObjectHideFlags: 0
@@ -2515,37 +2452,9 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 1141039639}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
@@ -2559,20 +2468,28 @@ PrefabInstance:
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -658204318216070287, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalPosition.x
value: 0.0002354744
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_Name
value: paintman_UV
objectReference: {fileID: 0}
- target: {fileID: 3152786563411696340, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: -7694449539802768922, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
- targetCorrespondingSourceObject: {fileID: 6583767446015258322, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
insertIndex: -1
addedObject: {fileID: 597997897}
- targetCorrespondingSourceObject: {fileID: -8278657895335465921, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
addedObject: {fileID: 341947181}
- targetCorrespondingSourceObject: {fileID: 3763709765074082564, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
insertIndex: -1
addedObject: {fileID: 682237521}
addedObject: {fileID: 1610102374}
m_SourcePrefab: {fileID: 100100000, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
--- !u!1 &829281440
GameObject:
@@ -3258,7 +3175,9 @@ MonoBehaviour:
wallMinAngle: 60
wallGrabMinPush: 0.3
wallClimbSpeedMultiplier: 0.5
wallMantleSpeedMultiplier: 0.5
wallMaxOffset: 0.25
wallMaxInset: 1.2
wallOffsetSensitivity: 0.001
wallRotateSensitivity: 0.2
wallOffsetReturnSpeed: 2
@@ -3267,6 +3186,7 @@ MonoBehaviour:
ceilingGrabDistance: 0.3
wallTopOutBoost: 1.2
cameraOrbit: {fileID: 0}
meshOffsetTarget: {fileID: 0}
--- !u!143 &1129539840
CharacterController:
m_ObjectHideFlags: 0
@@ -3362,13 +3282,13 @@ CharacterController:
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Height: 0.95
m_Height: 1.3
m_Radius: 0.1
m_SlopeLimit: 59
m_StepOffset: 0.15
m_SkinWidth: 0.01
m_MinMoveDistance: 0.001
m_Center: {x: 0, y: 0.49, z: 0}
m_Center: {x: 0, y: 0.66, z: 0}
--- !u!114 &1141039642
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -3383,13 +3303,13 @@ MonoBehaviour:
m_EditorClassIdentifier: Assembly-CSharp::PlayerCharacterController
persistPlayer: 1
playerSaveId:
moveSpeed: 4
sprintSpeedMultiplier: 1.8
moveSpeed: 2
sprintSpeedMultiplier: 3.2
acceleration: 30
deceleration: 45
cameraRelative: 1
cameraTransform: {fileID: 0}
animator: {fileID: 597997897}
animator: {fileID: 341947181}
runningParameter: Running
rotateTowardMovement: 1
rotationSpeed: 360
@@ -3404,7 +3324,9 @@ MonoBehaviour:
wallMinAngle: 60
wallGrabMinPush: 0.3
wallClimbSpeedMultiplier: 0.5
wallMaxOffset: 0.25
wallMantleSpeedMultiplier: 1.5
wallMaxOffset: 0.1
wallMaxInset: 0.2
wallOffsetSensitivity: 0.001
wallRotateSensitivity: 0.2
wallOffsetReturnSpeed: 2
@@ -3413,6 +3335,7 @@ MonoBehaviour:
ceilingGrabDistance: 0.3
wallTopOutBoost: 0.3
cameraOrbit: {fileID: 0}
meshOffsetTarget: {fileID: 0}
--- !u!1 &1238479929
GameObject:
m_ObjectHideFlags: 0
@@ -3884,7 +3807,7 @@ MonoBehaviour:
m_EditorClassIdentifier: Assembly-CSharp::GameModeManager
player: {fileID: 1141039642}
cameraInput: {fileID: 172071431}
painter: {fileID: 682237521}
painter: {fileID: 0}
insect: {fileID: 0}
switchKey: 3
startModeIndex: 0
@@ -3903,6 +3826,69 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1610102371 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3763709765074082564, guid: 554c0bdf86263754d862d7effd04045b, type: 3}
m_PrefabInstance: {fileID: 821516643}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1610102374
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1610102371}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5fc799adb27d5ea45990b5522b75ddda, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::MeshPainter
brushShader: {fileID: 0}
dilateShader: {fileID: 0}
packMsShader: {fileID: 0}
persistPaint: 1
saveId:
pipette: 0
spray: 0
sprayDots: 24
sprayDotSizeMin: 0.05
sprayDotSizeMax: 0.18
sprayDotAlphaMin: 0.25
sprayDotAlphaMax: 1
useGpu: 1
paintAlbedo: 1
paintMetallicSmoothness: 0
paintOcclusion: 0
paintEmission: 0
brushColor: {r: 0.6, g: 0.6, b: 1, a: 1}
metallic: 1
smoothness: 1
metallicSmoothnessOpacity: 1
occlusion: 1
occlusionOpacity: 1
emissionColor: {r: 1, g: 0.6, b: 0, a: 1}
emissionIntensity: 20
brushSize: 50
brushMasks:
- {fileID: 2800000, guid: d07c01c40cc7be54da0ff3ae52484cd2, type: 3}
- {fileID: 2800000, guid: ccc205272b051834eb39593f647c7bf1, type: 3}
- {fileID: 2800000, guid: 04bc55e2853356e4f999b995d0066b33, type: 3}
- {fileID: 2800000, guid: 25780adbe09da488ba079bc33c4bbf0f, type: 3}
- {fileID: 2800000, guid: 25780adbe09da488ba079bc33c4bbf0f, type: 3}
- {fileID: 2800000, guid: 25780adbe09da488ba079bc33c4bbf0f, type: 3}
activeBrushIndex: 0
brushAlignment: 0
brushRotation: 0
paintOnMoveOnly: 1
paintInterval: 0
previewMode: 2
previewOpacity: 1
textureSize: 1024
baseColor: {r: 0.8, g: 0.8, b: 0.8, a: 1}
paddingTexels: 2
paintCamera: {fileID: 0}
updateColliderEveryFrame: 1
previewShader: {fileID: 0}
--- !u!1001 &1673252827
PrefabInstance:
m_ObjectHideFlags: 0
@@ -4790,7 +4776,7 @@ MonoBehaviour:
limitFrameRate: 1
targetFps: 60
disableVSyncWhenLimiting: 1
vSyncCountWhenUnlimited: 0
vSyncCountWhenUnlimited: 2
--- !u!4 &2009475134
Transform:
m_ObjectHideFlags: 0