- Camera follower will now track the upper-midsections of VRChat players.

- Camera tracking now has a follow speed setting.
- Camera anchor FOV scaler is now a separate object.
- Camera overlays now overlay properly once again.
- Implemented a much better check for whether a camera was detached.
- Improved code that detects when a game is over, and why it ended.
- Tweaked ending camera animation timing.
This commit is contained in:
2026-03-21 01:02:39 -04:00
parent 6b376463ba
commit 0b6a8440fc
8 changed files with 423 additions and 166 deletions
@@ -19,7 +19,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 28.591, y: -90, z: 0}
value: {x: 43.82, y: -90, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
@@ -71,26 +71,26 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 1, y: 1, z: 0.22346}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
value: {x: 1, y: 1, z: 0.4}
inSlope: {x: 0, y: 0, z: 0.847138}
outSlope: {x: 0, y: 0, z: 0.847138}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.04411765}
- serializedVersion: 3
time: 2
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0.062066503}
outSlope: {x: 0, y: 0, z: 0.062066503}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.08137256}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: Overhead Camera Anchor/Camera Root
path: Overhead Camera Anchor/Camera FOV Scaler
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
@@ -119,7 +119,7 @@ AnimationClip:
isIntCurve: 0
isSerializeReferenceCurve: 0
- serializedVersion: 2
path: 317110899
path: 1531435860
attribute: 3
script: {fileID: 0}
typeID: 4
@@ -245,7 +245,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
value: 28.591
value: 43.82
inSlope: 0
outSlope: 0
tangentMode: 136
@@ -355,7 +355,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path: Overhead Camera Anchor/Camera Root
path: Overhead Camera Anchor/Camera FOV Scaler
classID: 4
script: {fileID: 0}
flags: 0
@@ -385,7 +385,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path: Overhead Camera Anchor/Camera Root
path: Overhead Camera Anchor/Camera FOV Scaler
classID: 4
script: {fileID: 0}
flags: 0
@@ -395,27 +395,27 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
value: 0.22346
inSlope: 0
outSlope: 0
tangentMode: 136
value: 0.4
inSlope: 0.847138
outSlope: 0.847138
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
outWeight: 0.04411765
- serializedVersion: 3
time: 2
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
inSlope: 0.062066503
outSlope: 0.062066503
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
inWeight: 0.08137256
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path: Overhead Camera Anchor/Camera Root
path: Overhead Camera Anchor/Camera FOV Scaler
classID: 4
script: {fileID: 0}
flags: 0
@@ -27,7 +27,7 @@ AnimationClip:
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.5
time: 0.33333334
value: {x: 15.834, y: -90, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: -0.0000085965, y: 0, z: 0}
@@ -62,7 +62,7 @@ AnimationClip:
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.5
time: 0.33333334
value: {x: -15, y: 0.25, z: 1.04}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0.11348749, z: 0}
@@ -96,10 +96,19 @@ AnimationClip:
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 4.5
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: Overhead Camera Anchor/Camera Root
path: Overhead Camera Anchor/Camera FOV Scaler
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
@@ -128,7 +137,7 @@ AnimationClip:
isIntCurve: 0
isSerializeReferenceCurve: 0
- serializedVersion: 2
path: 317110899
path: 1531435860
attribute: 3
script: {fileID: 0}
typeID: 4
@@ -172,7 +181,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
time: 0.33333334
value: -15
inSlope: 0
outSlope: 0
@@ -211,7 +220,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
time: 0.33333334
value: 0.25
inSlope: 0
outSlope: 0.11348749
@@ -250,7 +259,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
time: 0.33333334
value: 1.04
inSlope: 0
outSlope: 0
@@ -289,7 +298,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
time: 0.33333334
value: 15.834
inSlope: 0
outSlope: -0.0000085965
@@ -328,7 +337,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
time: 0.33333334
value: -90
inSlope: 0
outSlope: 0
@@ -367,7 +376,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
time: 0.33333334
value: 0
inSlope: 0
outSlope: 0
@@ -405,11 +414,20 @@ AnimationClip:
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 4.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path: Overhead Camera Anchor/Camera Root
path: Overhead Camera Anchor/Camera FOV Scaler
classID: 4
script: {fileID: 0}
flags: 0
@@ -426,11 +444,20 @@ AnimationClip:
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 4.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path: Overhead Camera Anchor/Camera Root
path: Overhead Camera Anchor/Camera FOV Scaler
classID: 4
script: {fileID: 0}
flags: 0
@@ -447,11 +474,20 @@ AnimationClip:
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 4.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path: Overhead Camera Anchor/Camera Root
path: Overhead Camera Anchor/Camera FOV Scaler
classID: 4
script: {fileID: 0}
flags: 0
@@ -463,7 +499,7 @@ AnimationClip:
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
attribute: m_LocalEulerAngles.z
path: Overhead Camera Anchor
classID: 4
script: {fileID: 0}
@@ -487,7 +523,7 @@ AnimationClip:
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
attribute: m_LocalEulerAngles.x
path: Overhead Camera Anchor
classID: 4
script: {fileID: 0}