zen: UB is now the Queen angelfish (real model) + fix admin lockout
- Admin lockout: /zen checked blockedForViewer() before auth loaded, so a hard-refresh/
direct-link bounced admins to /play. Now revalidate auth (await refresh if !ready)
BEFORE the gate check.
- UB swap: retired the two-tail koi (ub.glb/ub-split.glb) for the vetted Queen angelfish.
Trimmed the 75.67s baked Take down to just the Idle loop (tools/glb-split/trim-idle.mjs
→ 16MB → 6.9MB) → static/models/ub-angelfish.glb. aquarium.js reworked for the pack's
ONE-mesh/TWO-material layout (…_body opaque single-sided; …_fins opaque alpha-tested,
tunable); animation is the trimmed Idle. Debug tuner (/zen?debug=1) updated: yaw/pitch/
scale + one fins&tail section. Still devgate IN_DEV={'zen'} — admin-only.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,315 @@
|
||||
{
|
||||
"note": "Angelfish Animated Pack 10 (CGTrader). One baked 75.67s/2270-frame Take at 30fps in each GLB. GLB frame = Maya frame + 110. Slice with THREE.AnimationUtils.subclip(clip,name,startFrame,endFrame,30).",
|
||||
"fps": 30,
|
||||
"total_frames": 2270,
|
||||
"clips": {
|
||||
"Swim1_norm": {
|
||||
"glb_frames": [
|
||||
110,
|
||||
185
|
||||
],
|
||||
"seconds": [
|
||||
3.667,
|
||||
6.167
|
||||
],
|
||||
"maya_frames": [
|
||||
0,
|
||||
75
|
||||
]
|
||||
},
|
||||
"Turn_R_in": {
|
||||
"glb_frames": [
|
||||
186,
|
||||
255
|
||||
],
|
||||
"seconds": [
|
||||
6.2,
|
||||
8.5
|
||||
],
|
||||
"maya_frames": [
|
||||
76,
|
||||
145
|
||||
]
|
||||
},
|
||||
"Turn_R_loop": {
|
||||
"glb_frames": [
|
||||
256,
|
||||
330
|
||||
],
|
||||
"seconds": [
|
||||
8.533,
|
||||
11.0
|
||||
],
|
||||
"maya_frames": [
|
||||
146,
|
||||
220
|
||||
]
|
||||
},
|
||||
"Turn_R_out": {
|
||||
"glb_frames": [
|
||||
331,
|
||||
409
|
||||
],
|
||||
"seconds": [
|
||||
11.033,
|
||||
13.633
|
||||
],
|
||||
"maya_frames": [
|
||||
221,
|
||||
299
|
||||
]
|
||||
},
|
||||
"Swim2_Fast": {
|
||||
"glb_frames": [
|
||||
410,
|
||||
450
|
||||
],
|
||||
"seconds": [
|
||||
13.667,
|
||||
15.0
|
||||
],
|
||||
"maya_frames": [
|
||||
300,
|
||||
340
|
||||
]
|
||||
},
|
||||
"Turn_L_in": {
|
||||
"glb_frames": [
|
||||
486,
|
||||
535
|
||||
],
|
||||
"seconds": [
|
||||
16.2,
|
||||
17.833
|
||||
],
|
||||
"maya_frames": [
|
||||
376,
|
||||
425
|
||||
]
|
||||
},
|
||||
"Turn_L_loop": {
|
||||
"glb_frames": [
|
||||
536,
|
||||
610
|
||||
],
|
||||
"seconds": [
|
||||
17.867,
|
||||
20.333
|
||||
],
|
||||
"maya_frames": [
|
||||
426,
|
||||
500
|
||||
]
|
||||
},
|
||||
"Turn_L_out": {
|
||||
"glb_frames": [
|
||||
611,
|
||||
710
|
||||
],
|
||||
"seconds": [
|
||||
20.367,
|
||||
23.667
|
||||
],
|
||||
"maya_frames": [
|
||||
501,
|
||||
600
|
||||
]
|
||||
},
|
||||
"Attack": {
|
||||
"glb_frames": [
|
||||
711,
|
||||
751
|
||||
],
|
||||
"seconds": [
|
||||
23.7,
|
||||
25.033
|
||||
],
|
||||
"maya_frames": [
|
||||
601,
|
||||
641
|
||||
]
|
||||
},
|
||||
"Eat_Swim": {
|
||||
"glb_frames": [
|
||||
752,
|
||||
811
|
||||
],
|
||||
"seconds": [
|
||||
25.067,
|
||||
27.033
|
||||
],
|
||||
"maya_frames": [
|
||||
642,
|
||||
701
|
||||
]
|
||||
},
|
||||
"Eat_Ground": {
|
||||
"glb_frames": [
|
||||
812,
|
||||
852
|
||||
],
|
||||
"seconds": [
|
||||
27.067,
|
||||
28.4
|
||||
],
|
||||
"maya_frames": [
|
||||
702,
|
||||
742
|
||||
]
|
||||
},
|
||||
"Eat_Wall": {
|
||||
"glb_frames": [
|
||||
853,
|
||||
893
|
||||
],
|
||||
"seconds": [
|
||||
28.433,
|
||||
29.767
|
||||
],
|
||||
"maya_frames": [
|
||||
743,
|
||||
783
|
||||
]
|
||||
},
|
||||
"Turn_L_Fast": {
|
||||
"glb_frames": [
|
||||
894,
|
||||
923
|
||||
],
|
||||
"seconds": [
|
||||
29.8,
|
||||
30.767
|
||||
],
|
||||
"maya_frames": [
|
||||
784,
|
||||
813
|
||||
]
|
||||
},
|
||||
"Turn_R_Fast": {
|
||||
"glb_frames": [
|
||||
924,
|
||||
953
|
||||
],
|
||||
"seconds": [
|
||||
30.8,
|
||||
31.767
|
||||
],
|
||||
"maya_frames": [
|
||||
814,
|
||||
843
|
||||
]
|
||||
},
|
||||
"Swim3_Long_Wide": {
|
||||
"glb_frames": [
|
||||
954,
|
||||
1401
|
||||
],
|
||||
"seconds": [
|
||||
31.8,
|
||||
46.7
|
||||
],
|
||||
"maya_frames": [
|
||||
844,
|
||||
1291
|
||||
]
|
||||
},
|
||||
"Swim4_Long_Near": {
|
||||
"glb_frames": [
|
||||
1402,
|
||||
1852
|
||||
],
|
||||
"seconds": [
|
||||
46.733,
|
||||
61.733
|
||||
],
|
||||
"maya_frames": [
|
||||
1292,
|
||||
1742
|
||||
]
|
||||
},
|
||||
"Death1 Sink Start": {
|
||||
"glb_frames": [
|
||||
1853,
|
||||
1930
|
||||
],
|
||||
"seconds": [
|
||||
61.767,
|
||||
64.333
|
||||
],
|
||||
"maya_frames": [
|
||||
1743,
|
||||
1820
|
||||
]
|
||||
},
|
||||
"Death1 Sink Loop": {
|
||||
"glb_frames": [
|
||||
1930,
|
||||
1987
|
||||
],
|
||||
"seconds": [
|
||||
64.333,
|
||||
66.233
|
||||
],
|
||||
"maya_frames": [
|
||||
1820,
|
||||
1877
|
||||
]
|
||||
},
|
||||
"Death2 Float Start": {
|
||||
"glb_frames": [
|
||||
1988,
|
||||
2120
|
||||
],
|
||||
"seconds": [
|
||||
66.267,
|
||||
70.667
|
||||
],
|
||||
"maya_frames": [
|
||||
1878,
|
||||
2010
|
||||
]
|
||||
},
|
||||
"Death2 Float Loop": {
|
||||
"glb_frames": [
|
||||
2121,
|
||||
2210
|
||||
],
|
||||
"seconds": [
|
||||
70.7,
|
||||
73.667
|
||||
],
|
||||
"maya_frames": [
|
||||
2011,
|
||||
2100
|
||||
]
|
||||
},
|
||||
"Jump": {
|
||||
"glb_frames": [
|
||||
2211,
|
||||
2270
|
||||
],
|
||||
"seconds": [
|
||||
73.7,
|
||||
75.667
|
||||
],
|
||||
"maya_frames": [
|
||||
2101,
|
||||
2160
|
||||
]
|
||||
},
|
||||
"Idle": {
|
||||
"glb_frames": [
|
||||
0,
|
||||
109
|
||||
],
|
||||
"seconds": [
|
||||
0.0,
|
||||
3.633
|
||||
],
|
||||
"maya_frames": [
|
||||
-110,
|
||||
-1
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user