tosijs-3d 0.10.13 → 0.10.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/dist/b3d-aircraft.js +2 -2
- package/dist/b3d-biped.d.ts +28 -27
- package/dist/b3d-biped.d.ts.map +1 -1
- package/dist/b3d-biped.js +36 -35
- package/dist/b3d-biped.js.map +1 -1
- package/dist/b3d-exploder.js +2 -2
- package/dist/b3d-galaxy.js +2 -2
- package/dist/b3d-hud.js +1 -1
- package/dist/b3d-launcher.js +1 -1
- package/dist/b3d-library.js +1 -1
- package/dist/b3d-light-shafts.js +2 -2
- package/dist/b3d-lightning.js +1 -1
- package/dist/b3d-moon.d.ts.map +1 -1
- package/dist/b3d-moon.js +3 -2
- package/dist/b3d-moon.js.map +1 -1
- package/dist/b3d-panel.d.ts.map +1 -1
- package/dist/b3d-panel.js +11 -10
- package/dist/b3d-panel.js.map +1 -1
- package/dist/b3d-physics.js +2 -2
- package/dist/b3d-planet.js +2 -2
- package/dist/b3d-sound.js +2 -2
- package/dist/b3d-ssao.d.ts +6 -3
- package/dist/b3d-ssao.d.ts.map +1 -1
- package/dist/b3d-ssao.js +6 -3
- package/dist/b3d-ssao.js.map +1 -1
- package/dist/b3d-terrain.js +4 -4
- package/dist/b3d-warhead.js +1 -1
- package/dist/biome-chart.js +1 -1
- package/dist/control-input.d.ts +5 -3
- package/dist/control-input.d.ts.map +1 -1
- package/dist/control-input.js +1 -1
- package/dist/control-input.js.map +1 -1
- package/dist/frame-panel.d.ts +8 -0
- package/dist/frame-panel.d.ts.map +1 -1
- package/dist/frame-panel.js +35 -28
- package/dist/frame-panel.js.map +1 -1
- package/dist/galaxy-data.d.ts +2 -2
- package/dist/game-controller.d.ts +2 -1
- package/dist/game-controller.d.ts.map +1 -1
- package/dist/game-controller.js +9 -5
- package/dist/game-controller.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/land-and-sky.js +2 -2
- package/dist/landform.d.ts +2 -3
- package/dist/landform.d.ts.map +1 -1
- package/dist/landform.js.map +1 -1
- package/dist/playground.js +3 -3
- package/dist/retarget-babylon.d.ts.map +1 -1
- package/dist/retarget-babylon.js +34 -6
- package/dist/retarget-babylon.js.map +1 -1
- package/dist/retarget.d.ts +5 -1
- package/dist/retarget.d.ts.map +1 -1
- package/dist/retarget.js +85 -21
- package/dist/retarget.js.map +1 -1
- package/dist/rig-recipe-babylon.d.ts +27 -0
- package/dist/rig-recipe-babylon.d.ts.map +1 -0
- package/dist/rig-recipe-babylon.js +170 -0
- package/dist/rig-recipe-babylon.js.map +1 -0
- package/dist/rig-recipe.d.ts +72 -0
- package/dist/rig-recipe.d.ts.map +1 -0
- package/dist/rig-recipe.js +107 -0
- package/dist/rig-recipe.js.map +1 -0
- package/dist/rig-tool.d.ts +53 -0
- package/dist/rig-tool.d.ts.map +1 -0
- package/dist/rig-tool.js +1164 -0
- package/dist/rig-tool.js.map +1 -0
- package/dist/scene-schemas.d.ts +2 -2
- package/dist/scene-schemas.js +2 -2
- package/dist/spring-chain-babylon.d.ts +5 -0
- package/dist/spring-chain-babylon.d.ts.map +1 -1
- package/dist/spring-chain-babylon.js +11 -0
- package/dist/spring-chain-babylon.js.map +1 -1
- package/dist/svg-icons.d.ts +12 -0
- package/dist/svg-icons.d.ts.map +1 -1
- package/dist/svg-icons.js +12 -11
- package/dist/svg-icons.js.map +1 -1
- package/dist/svg-texture.d.ts +8 -0
- package/dist/svg-texture.d.ts.map +1 -1
- package/dist/svg-texture.js +21 -0
- package/dist/svg-texture.js.map +1 -1
- package/dist/tosi-b3d.d.ts +19 -2
- package/dist/tosi-b3d.d.ts.map +1 -1
- package/dist/tosi-b3d.js +255 -102
- package/dist/tosi-b3d.js.map +1 -1
- package/dist/touch-gesture.d.ts +11 -0
- package/dist/touch-gesture.d.ts.map +1 -1
- package/dist/touch-gesture.js +24 -0
- package/dist/touch-gesture.js.map +1 -1
- package/dist/touch-orbit.d.ts +3 -1
- package/dist/touch-orbit.d.ts.map +1 -1
- package/dist/touch-orbit.js +81 -28
- package/dist/touch-orbit.js.map +1 -1
- package/dist/virtual-gamepad.js +1 -1
- package/dist/widgets3d.d.ts +24 -8
- package/dist/widgets3d.d.ts.map +1 -1
- package/dist/widgets3d.js +73 -33
- package/dist/widgets3d.js.map +1 -1
- package/package.json +2 -2
- package/static/attributes.json +10 -10
- package/static/attributes.txt +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,46 @@ All notable changes to **tosijs-3d**. This project is pre-1.0 (`0.x`), so minor
|
|
|
6
6
|
versions may carry breaking peer-dependency changes — each is called out in a
|
|
7
7
|
**⚠️ Breaking** block in its version section below, with what a consumer must do.
|
|
8
8
|
|
|
9
|
+
## 0.10.15
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **The rig tool** (`/rig-tool/`, `tosijs-3d/rig-tool`; Tonio). Load a demo character (the weasels and the space marine are rigged from markers on the spot, as the auto-rig page does, and a weasel's tail is a spring from the start) or your own GLB, check which bone plays each role (fingers included), set the arm space, hang spring chains on it (a new strand with a tube, such as a ponytail, or bones the model already has, such as a tail), and try any UAL clip beside the mannequin, scaled to the character. It opens in the rest pose with a dot on each role's bone: tap a dot, then the body, to give the role a bone (or hang a spring chain there); drag a strand's root and tip to place it. Save the result as a **rig recipe** (JSON), load it back, or copy it; the working recipe is kept per model in the browser. The element's `.rig` (`recipe`, `applied`, `load`) lets a page or an editor drive it.
|
|
14
|
+
- **Rig recipes**: `RigRecipe`, `validateRigRecipe` (headless, says what is wrong and where) and `strandDirection` in `rig-recipe`, and `applyRigRecipe(scene, root, skeleton, recipe)`, which puts a saved recipe on the same model in a game: the skeleton read with the recipe's roles, ready for `retargetClip`, and the springs live.
|
|
15
|
+
|
|
16
|
+
- **Panning in the default view controls** (Tonio). Shift-drag pans with a mouse, a trackpad's two-finger drag pans (a pinch still zooms), and right-drag and ctrl-drag pan by the same rule as touch: the point you grabbed follows the pointer, at any zoom. `touchOrbit(camera, { trackpadPan: false })` leaves the wheel to Babylon. A trackpad and a mouse wheel send the same event, so `wheelClassifier` (in `touch-gesture`) tells them apart by heuristic: a pinch carries `ctrlKey`, a mouse notch is big, a trackpad moves sideways or starts small. A wheel over a panel is still the panel's.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **Panels no longer blink when they rebuild.** A frame panel is an SVG drawn into its texture asynchronously, so a new plane is blank until that draw lands; on a headset (and a 4× throttled laptop: seven blank frames per rebuild) every refresh flashed. A rebuild now puts the new element into the SAME plane, and the texture keeps its old picture until the new one is drawn. This applies to the settings panel in a headset, the flat in-scene settings panel, and system panels (`frame-panel`'s new `setSvg`, `SvgTexture.setElement`).
|
|
21
|
+
- **The system bar and pinned flat panels are reconciled, not all rebuilt**, when the set of panels changes: the unchanged ones keep their mesh.
|
|
22
|
+
- **A rebuilt settings panel keeps its scroll position**: flat in the scene, in the HTML overlay, and in a headset.
|
|
23
|
+
- **Retargeted characters keep their heads and hands** (Tonio). Where a bone with no joint below it points (a head, a hand) was measured through the mesh's world matrix, which is wrong under a scaled armature: omnidude's (Mixamo, 0.01) all landed by the origin, so every clip played his head upside down and twisted his hands. It is now measured through each bone's inverse bind matrix and up the rest chain, as the bones are.
|
|
24
|
+
- **Fingers and thumbs are retargeted.** `humanoidRoles` finds each finger's three joints across UE, Mixamo and Rigify spellings (never the tip's end bone or a metacarpal), so a clip's grip comes across instead of the fingers staying splayed at rest. A hand is aimed along a finger both rigs have, so the wrist's twist comes across too.
|
|
25
|
+
- **A settings-panel rebuild waits for the press to end**, so `refreshScenePanel()` during a slider drag no longer cuts the drag off (`panel3d`'s new read-only `pressing`).
|
|
26
|
+
|
|
27
|
+
Size: barrel (min, packages external) 1167.3 KB raw / 399.6 KB gz, +0.8% on 0.10.14 (the rig recipe and retarget's finger roles; the rig tool is a subpath, outside the barrel).
|
|
28
|
+
|
|
29
|
+
## 0.10.14
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- **A press during a system panel's content swap is no longer lost** (#111 follow-up, ensemble). Setting `el.svg = next` on an open panel closed and reopened it, which left a moment with no plane: a click landing then went nowhere (ensemble's host-actions test failed one run in four after a store refresh swapped every panel's content), and `contentToClient` returned null. A framed panel (the default title bar) now swaps the content under the same frame, so the plane, texture, spot and focus stay. `panelopen` still goes to the old content (close) and the new (open). A press already down in the old content ends there rather than releasing onto the new. `chrome="none"` panels still close and reopen.
|
|
34
|
+
- **The docs a consumer reads describe what the code does** (#116, ensemble). `select3d`'s JSDoc called it "a compact cycler, no dropdown" five releases after it became a select that opens a list (it steps only with no host). A sweep of every behaviour change in this CHANGELOG against the shipped docs found 33 more, fixed against the code:
|
|
35
|
+
- The settings panel is the owl's in-scene panel, not a gear and an HTML overlay (about 20 pages, and the `scenePanel` property).
|
|
36
|
+
- `gameController`'s key map: the wheel zooms (the d-pad axis), the arrows look, the mouse buttons are listed, `mouseLook` defaults to `'off'`.
|
|
37
|
+
- `b3dBiped`: the camera defaults in its table, `invertLookY` is off by default, `jumpSpeed` has no wind-up, `wadeDepth`'s swim thresholds (in at 1.3 ×, out at 1 ×).
|
|
38
|
+
- SSAO runs in a headset with `on` and the default `projected` method (three type docs and a console warning said never).
|
|
39
|
+
- `slider3d`'s peek readout sits beside the label; `panel3d`'s gap is 4.
|
|
40
|
+
- Frame-panel presets are angular, and frame panels can show flat; `b3d-moon` lights the night; planets have no separate sea sphere; the loadout is on the system bar; `lookX`/`lookY` persist on foot; `gamepadFade` ignores the pointer; the aircraft's `maxSpeed` is full lever; `GulleyOptions.heading` is degrees; `iconGlyph` takes composed and mirrored names; `biomeLapseRate`'s auto value is a fixed 0.004.
|
|
41
|
+
- Two doc comments had come loose from their declarations (`iconGlyph`'s sat on a private constant, `wadeDepth`'s on the wrong attribute), so the `.d.ts` documented the wrong thing.
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
|
|
45
|
+
- **`titled3d(…).setContent(next)`**: other content under the same title bar, in place (the old content goes back where it came from).
|
|
46
|
+
|
|
47
|
+
Size: barrel (min, packages external) 1158.6 KB raw / 396.5 KB gz, +0.05% on 0.10.13.
|
|
48
|
+
|
|
9
49
|
## 0.10.13
|
|
10
50
|
|
|
11
51
|
### Fixed
|
package/dist/b3d-aircraft.js
CHANGED
|
@@ -60,7 +60,7 @@ const targets = [...air, ...ground]
|
|
|
60
60
|
const kills = div({ class: 'kills' }, `Targets down: 0 / ${targets.length}`)
|
|
61
61
|
// WEATHER, to fly in: a storm cell over the whole arena (storminess shakes
|
|
62
62
|
// the airframe) and the scene's wind (it carries you; blowing east, across
|
|
63
|
-
// your starting heading, so you crab). Both on the
|
|
63
|
+
// your starting heading, so you crab). Both on the settings panel.
|
|
64
64
|
const storm = b3dWeatherCell({ x: 0, z: 0, radius: 3000, storminess: 0 })
|
|
65
65
|
const turb = div({ class: 'turb' }, 'turbulence 0.00')
|
|
66
66
|
let down = 0
|
|
@@ -210,7 +210,7 @@ turns the pilot's head in the cockpit, springs back on release).
|
|
|
210
210
|
| `library` | `''` | Library type to source mesh from |
|
|
211
211
|
| `meshName` | `''` | Node name to instantiate from library |
|
|
212
212
|
| `enterable` | `false` | Whether a biped can enter |
|
|
213
|
-
| `maxSpeed` | `50` |
|
|
213
|
+
| `maxSpeed` | `50` | Top speed at full lever, **military** thrust (m/s). A released trigger leaves the lever where it was, so speed settles wherever that lever meets drag |
|
|
214
214
|
| `afterburnerSpeed` | `75` | Speed ceiling while the throttle is held past `maxSpeed`; releasing bleeds back to `maxSpeed`. ≤ `maxSpeed` disables afterburner. |
|
|
215
215
|
| `acceleration` | `12` | Throttle / lean authority (speed change rate) |
|
|
216
216
|
| `vtolSpeed` | `6` | Forward ground speed splitting hover (below) from plane (above). 0 = pure aeroplane, no hover regime. |
|
package/dist/b3d-biped.d.ts
CHANGED
|
@@ -94,16 +94,6 @@ export declare class B3dBiped extends B3dControllable {
|
|
|
94
94
|
aimMaxYaw: number;
|
|
95
95
|
/** How far up/down the look can go, degrees. */
|
|
96
96
|
maxLookPitch: number;
|
|
97
|
-
/**
|
|
98
|
-
* Invert the right stick's vertical. **On by default** — Tonio's call, and
|
|
99
|
-
* the conventional one for a third-person camera: pushing the stick away
|
|
100
|
-
* from you tips the view DOWN, the way a physical camera head works. Set
|
|
101
|
-
* `'off'` for the direct mapping.
|
|
102
|
-
*
|
|
103
|
-
* A string enum rather than a boolean because an absent boolean attribute
|
|
104
|
-
* is false, so a default-true boolean can never turn on (and tosijs now
|
|
105
|
-
* throws on one) — see CLAUDE.md.
|
|
106
|
-
*/
|
|
107
97
|
/**
|
|
108
98
|
* How far in FRONT of the head bone the first-person eye sits, in metres.
|
|
109
99
|
*
|
|
@@ -112,6 +102,15 @@ export declare class B3dBiped extends B3dControllable {
|
|
|
112
102
|
* which is what makes a too-large value feel like floating.
|
|
113
103
|
*/
|
|
114
104
|
eyeForward: number;
|
|
105
|
+
/**
|
|
106
|
+
* Invert the right stick's vertical. **Off by default**: pushing the stick
|
|
107
|
+
* up looks (and aims) up. `'on'` gives the inverted, aircraft-style mapping,
|
|
108
|
+
* where pushing the stick away tips the view down.
|
|
109
|
+
*
|
|
110
|
+
* A string enum rather than a boolean because an absent boolean attribute
|
|
111
|
+
* is false, so a default-true boolean can never turn on (and tosijs now
|
|
112
|
+
* throws on one) — see CLAUDE.md.
|
|
113
|
+
*/
|
|
115
114
|
invertLookY: "on" | "off";
|
|
116
115
|
/**
|
|
117
116
|
* Never let the follow camera drop below this above the character's feet.
|
|
@@ -121,10 +120,10 @@ export declare class B3dBiped extends B3dControllable {
|
|
|
121
120
|
*/
|
|
122
121
|
cameraMinHeight: number;
|
|
123
122
|
/**
|
|
124
|
-
* Upward speed
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
123
|
+
* Upward speed at take-off, m/s. The jump is instant (no wind-up), and the
|
|
124
|
+
* physics decides it: the start, loop and land clips each play for as long
|
|
125
|
+
* as they are true, so the jump is never a consequence of whatever the
|
|
126
|
+
* animator exported.
|
|
128
127
|
*/
|
|
129
128
|
jumpSpeed: number;
|
|
130
129
|
/** Fraction of walking speed while sneaking. */
|
|
@@ -143,6 +142,17 @@ export declare class B3dBiped extends B3dControllable {
|
|
|
143
142
|
* A string enum rather than a boolean because a boolean attribute cannot
|
|
144
143
|
* default to true, and the useful default here is "strafing off".
|
|
145
144
|
*/
|
|
145
|
+
/**
|
|
146
|
+
* **How high a ledge the character can pull itself onto, metres.** Below
|
|
147
|
+
* `STEP_UP` (0.5) the walking code just steps up; above this it is a wall.
|
|
148
|
+
*
|
|
149
|
+
* `2.2` is a touch over shoulder height on a 1.83 m rig — a decent mantle
|
|
150
|
+
* for someone athletic. Lower it for a heavier or clumsier character; that
|
|
151
|
+
* is the mobility half of the skill dial AI-DESIGN argues for, and it costs
|
|
152
|
+
* nothing to expose because the band it defines is read from geometry
|
|
153
|
+
* rather than painted onto it.
|
|
154
|
+
*/
|
|
155
|
+
climbReach: number;
|
|
146
156
|
/**
|
|
147
157
|
* **How deep the water gets before you swim, as a fraction of standing
|
|
148
158
|
* height.** Below this you wade — feet on the bottom, walking; above it
|
|
@@ -158,20 +168,11 @@ export declare class B3dBiped extends B3dControllable {
|
|
|
158
168
|
* fraction tracks that for free. Metres would be right for a fact about the
|
|
159
169
|
* WORLD; the two are easy to confuse and worth keeping apart.
|
|
160
170
|
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
171
|
+
* Hysteresis, so the boundary does not flicker: you START swimming a bit
|
|
172
|
+
* deeper than this (1.3 × `wadeDepth`, about 0.59 of your height at the
|
|
173
|
+
* default) and stop once the water drops back to `wadeDepth` itself; see
|
|
174
|
+
* `buoyancy.isSwimming`.
|
|
163
175
|
*/
|
|
164
|
-
/**
|
|
165
|
-
* **How high a ledge the character can pull itself onto, metres.** Below
|
|
166
|
-
* `STEP_UP` (0.5) the walking code just steps up; above this it is a wall.
|
|
167
|
-
*
|
|
168
|
-
* `2.2` is a touch over shoulder height on a 1.83 m rig — a decent mantle
|
|
169
|
-
* for someone athletic. Lower it for a heavier or clumsier character; that
|
|
170
|
-
* is the mobility half of the skill dial AI-DESIGN argues for, and it costs
|
|
171
|
-
* nothing to expose because the band it defines is read from geometry
|
|
172
|
-
* rather than painted onto it.
|
|
173
|
-
*/
|
|
174
|
-
climbReach: number;
|
|
175
176
|
wadeDepth: number;
|
|
176
177
|
strafing: string;
|
|
177
178
|
/**
|
package/dist/b3d-biped.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"b3d-biped.d.ts","sourceRoot":"","sources":["../src/b3d-biped.ts"],"names":[],"mappings":"AAkOA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EACL,OAAO,EAKR,MAAM,gBAAgB,CAAA;AAyBvB,OAAO,EAQL,KAAK,GAAG,EAET,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAWxE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,qBAAa,SAAS;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;gBAEN,IAAI,EAAE,aAAa;IAQ/B,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE;CAGzD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,GAAE,aAAa,EAAO,GAAG,SAAS,EAAE,CAuE3E;AAmCD,qBAAa,QAAS,SAAQ,eAAe;IAC3C,MAAM,CAAC,gBAAgB,SAAmB;IAElC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,OAAO,CAAA;IAEvB,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;QA8CnB,0DAA0D;;QAE1D;;;;;;;;;;;;;;;;WAgBG;gBACc,IAAI,GAAG,KAAK;QAC7B,+EAA+E;;QAiB/E,8DAA8D;;QAE9D,gDAAgD;;
|
|
1
|
+
{"version":3,"file":"b3d-biped.d.ts","sourceRoot":"","sources":["../src/b3d-biped.ts"],"names":[],"mappings":"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"}
|
package/dist/b3d-biped.js
CHANGED
|
@@ -190,10 +190,10 @@ preview.append(
|
|
|
190
190
|
| `forwardSpeed` | `2` | Walk speed |
|
|
191
191
|
| `runSpeed` | `5` | Sprint speed |
|
|
192
192
|
| `backwardSpeed` | `1` | Backward speed |
|
|
193
|
-
| `cameraHeightOffset` | `
|
|
194
|
-
| `cameraTargetHeight` | `
|
|
195
|
-
| `cameraMinFollowDistance` | `
|
|
196
|
-
| `cameraMaxFollowDistance` | `
|
|
193
|
+
| `cameraHeightOffset` | `2` | Camera height above target |
|
|
194
|
+
| `cameraTargetHeight` | `1.4` | Height of the point the camera looks at |
|
|
195
|
+
| `cameraMinFollowDistance` | `4` | Closest follow distance |
|
|
196
|
+
| `cameraMaxFollowDistance` | `10` | Furthest follow distance |
|
|
197
197
|
|
|
198
198
|
## Animations
|
|
199
199
|
|
|
@@ -473,16 +473,6 @@ export class B3dBiped extends B3dControllable {
|
|
|
473
473
|
aimMaxYaw: 90,
|
|
474
474
|
/** How far up/down the look can go, degrees. */
|
|
475
475
|
maxLookPitch: 70,
|
|
476
|
-
/**
|
|
477
|
-
* Invert the right stick's vertical. **On by default** — Tonio's call, and
|
|
478
|
-
* the conventional one for a third-person camera: pushing the stick away
|
|
479
|
-
* from you tips the view DOWN, the way a physical camera head works. Set
|
|
480
|
-
* `'off'` for the direct mapping.
|
|
481
|
-
*
|
|
482
|
-
* A string enum rather than a boolean because an absent boolean attribute
|
|
483
|
-
* is false, so a default-true boolean can never turn on (and tosijs now
|
|
484
|
-
* throws on one) — see CLAUDE.md.
|
|
485
|
-
*/
|
|
486
476
|
/*
|
|
487
477
|
NOT INVERTED, which is a changed default and the direct cause of a bug
|
|
488
478
|
report: "when I fire it just fires into my feet".
|
|
@@ -506,6 +496,15 @@ export class B3dBiped extends B3dControllable {
|
|
|
506
496
|
* which is what makes a too-large value feel like floating.
|
|
507
497
|
*/
|
|
508
498
|
eyeForward: 0.13,
|
|
499
|
+
/**
|
|
500
|
+
* Invert the right stick's vertical. **Off by default**: pushing the stick
|
|
501
|
+
* up looks (and aims) up. `'on'` gives the inverted, aircraft-style mapping,
|
|
502
|
+
* where pushing the stick away tips the view down.
|
|
503
|
+
*
|
|
504
|
+
* A string enum rather than a boolean because an absent boolean attribute
|
|
505
|
+
* is false, so a default-true boolean can never turn on (and tosijs now
|
|
506
|
+
* throws on one) — see CLAUDE.md.
|
|
507
|
+
*/
|
|
509
508
|
invertLookY: 'off',
|
|
510
509
|
/**
|
|
511
510
|
* Never let the follow camera drop below this above the character's feet.
|
|
@@ -515,10 +514,10 @@ export class B3dBiped extends B3dControllable {
|
|
|
515
514
|
*/
|
|
516
515
|
cameraMinHeight: 0.5,
|
|
517
516
|
/**
|
|
518
|
-
* Upward speed
|
|
519
|
-
*
|
|
520
|
-
*
|
|
521
|
-
*
|
|
517
|
+
* Upward speed at take-off, m/s. The jump is instant (no wind-up), and the
|
|
518
|
+
* physics decides it: the start, loop and land clips each play for as long
|
|
519
|
+
* as they are true, so the jump is never a consequence of whatever the
|
|
520
|
+
* animator exported.
|
|
522
521
|
*/
|
|
523
522
|
jumpSpeed: 4.5,
|
|
524
523
|
/** Fraction of walking speed while sneaking. */
|
|
@@ -537,6 +536,17 @@ export class B3dBiped extends B3dControllable {
|
|
|
537
536
|
* A string enum rather than a boolean because a boolean attribute cannot
|
|
538
537
|
* default to true, and the useful default here is "strafing off".
|
|
539
538
|
*/
|
|
539
|
+
/**
|
|
540
|
+
* **How high a ledge the character can pull itself onto, metres.** Below
|
|
541
|
+
* `STEP_UP` (0.5) the walking code just steps up; above this it is a wall.
|
|
542
|
+
*
|
|
543
|
+
* `2.2` is a touch over shoulder height on a 1.83 m rig — a decent mantle
|
|
544
|
+
* for someone athletic. Lower it for a heavier or clumsier character; that
|
|
545
|
+
* is the mobility half of the skill dial AI-DESIGN argues for, and it costs
|
|
546
|
+
* nothing to expose because the band it defines is read from geometry
|
|
547
|
+
* rather than painted onto it.
|
|
548
|
+
*/
|
|
549
|
+
climbReach: 2.2,
|
|
540
550
|
/**
|
|
541
551
|
* **How deep the water gets before you swim, as a fraction of standing
|
|
542
552
|
* height.** Below this you wade — feet on the bottom, walking; above it
|
|
@@ -552,20 +562,11 @@ export class B3dBiped extends B3dControllable {
|
|
|
552
562
|
* fraction tracks that for free. Metres would be right for a fact about the
|
|
553
563
|
* WORLD; the two are easy to confuse and worth keeping apart.
|
|
554
564
|
*
|
|
555
|
-
*
|
|
556
|
-
*
|
|
565
|
+
* Hysteresis, so the boundary does not flicker: you START swimming a bit
|
|
566
|
+
* deeper than this (1.3 × `wadeDepth`, about 0.59 of your height at the
|
|
567
|
+
* default) and stop once the water drops back to `wadeDepth` itself; see
|
|
568
|
+
* `buoyancy.isSwimming`.
|
|
557
569
|
*/
|
|
558
|
-
/**
|
|
559
|
-
* **How high a ledge the character can pull itself onto, metres.** Below
|
|
560
|
-
* `STEP_UP` (0.5) the walking code just steps up; above this it is a wall.
|
|
561
|
-
*
|
|
562
|
-
* `2.2` is a touch over shoulder height on a 1.83 m rig — a decent mantle
|
|
563
|
-
* for someone athletic. Lower it for a heavier or clumsier character; that
|
|
564
|
-
* is the mobility half of the skill dial AI-DESIGN argues for, and it costs
|
|
565
|
-
* nothing to expose because the band it defines is read from geometry
|
|
566
|
-
* rather than painted onto it.
|
|
567
|
-
*/
|
|
568
|
-
climbReach: 2.2,
|
|
569
570
|
wadeDepth: 0.45,
|
|
570
571
|
strafing: 'off',
|
|
571
572
|
/**
|
|
@@ -2369,10 +2370,10 @@ export class B3dBiped extends B3dControllable {
|
|
|
2369
2370
|
mid-torso, so measuring from it asks "how deep would it be if I
|
|
2370
2371
|
stood with my feet where my chest is".
|
|
2371
2372
|
|
|
2372
|
-
Scaled so `wadeDepth` lands
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
as the fraction it is.
|
|
2373
|
+
Scaled so `wadeDepth` lands on `isSwimming`'s 0.5 EXIT threshold:
|
|
2374
|
+
you start swimming at 1.3 × wadeDepth (its 0.65 entry) and stop at
|
|
2375
|
+
wadeDepth, which keeps that model's tested hysteresis while letting
|
|
2376
|
+
the threshold be stated as the fraction it is.
|
|
2376
2377
|
*/
|
|
2377
2378
|
submergedFraction(groundY, standHeight, surfaceY) /
|
|
2378
2379
|
(2 * Math.max(0.05, attrs.wadeDepth))
|