@origingame/engine 0.4.0 → 0.5.0
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/dist/web/origin-engine.d.ts +8 -5
- package/dist/web/origin-engine.js +39 -19
- package/dist/web/origin-engine_bg.wasm +0 -0
- package/dist/web/origin-engine_bg.wasm.d.ts +6 -5
- package/dist/web-publish/origin-engine-lanes.js +49 -29
- package/dist/web-publish/origin-engine-lanes_bg.wasm +0 -0
- package/dist/web-publish/origin-engine.d.ts +8 -5
- package/dist/web-publish/origin-engine.js +39 -19
- package/dist/web-publish/origin-engine_bg.wasm +0 -0
- package/dist/web-publish/origin-engine_bg.wasm.d.ts +6 -5
- package/dist/web-publish-2d/origin-engine-lanes.js +49 -29
- package/dist/web-publish-2d/origin-engine-lanes_bg.wasm +0 -0
- package/dist/web-publish-2d/origin-engine.d.ts +8 -5
- package/dist/web-publish-2d/origin-engine.js +39 -19
- package/dist/web-publish-2d/origin-engine_bg.wasm +0 -0
- package/dist/web-publish-2d/origin-engine_bg.wasm.d.ts +6 -5
- package/knowledge/looks/catalogue.json +123 -2
- package/knowledge/package.json +1 -1
- package/knowledge/scaffold/origin-engine.json +2 -2
- package/knowledge/scaffold/template/package.json +1 -1
- package/knowledge/scaffold/template/project.ogt +1 -1
- package/knowledge/scripts/validate.ts +69 -6
- package/knowledge/skills/og-audio/SKILL.md +31 -5
- package/knowledge/skills/og-build/SKILL.md +44 -4
- package/knowledge/skills/og-core/SKILL.md +4 -3
- package/knowledge/skills/og-feel/SKILL.md +9 -1
- package/knowledge/skills/og-game/SKILL.md +199 -16
- package/knowledge/skills/og-platform-sdk/SKILL.md +6 -0
- package/knowledge/skills/og-taste/SKILL.md +7 -0
- package/knowledge/skills/og-ui/SKILL.md +24 -0
- package/knowledge/wiki/ai.md +20 -20
- package/knowledge/wiki/anim.md +526 -60
- package/knowledge/wiki/atmosphere.md +13 -13
- package/knowledge/wiki/audio.md +160 -20
- package/knowledge/wiki/camera.md +13 -13
- package/knowledge/wiki/commands.md +11 -11
- package/knowledge/wiki/debug.md +13 -13
- package/knowledge/wiki/game.md +8 -8
- package/knowledge/wiki/i18n.md +7 -7
- package/knowledge/wiki/index.md +25 -1
- package/knowledge/wiki/input.md +47 -47
- package/knowledge/wiki/load.md +76 -50
- package/knowledge/wiki/math.md +102 -102
- package/knowledge/wiki/nav.md +34 -34
- package/knowledge/wiki/net.md +10 -10
- package/knowledge/wiki/path.md +14 -14
- package/knowledge/wiki/physics.md +111 -100
- package/knowledge/wiki/platform.md +44 -44
- package/knowledge/wiki/probe.md +86 -86
- package/knowledge/wiki/reflect.md +17 -17
- package/knowledge/wiki/render.md +245 -176
- package/knowledge/wiki/rng.md +14 -14
- package/knowledge/wiki/shapes.md +26 -26
- package/knowledge/wiki/stream.md +15 -15
- package/knowledge/wiki/system.md +8 -8
- package/knowledge/wiki/systems.md +2 -2
- package/knowledge/wiki/terrain.md +19 -19
- package/knowledge/wiki/tilemap.md +13 -13
- package/knowledge/wiki/time.md +4 -4
- package/knowledge/wiki/timeline.md +14 -14
- package/knowledge/wiki/transform.md +8 -8
- package/knowledge/wiki/tween.md +17 -17
- package/knowledge/wiki/ui.md +243 -243
- package/knowledge/wiki/video.md +5 -5
- package/knowledge/wiki/world.md +36 -36
- package/package.json +4 -4
- package/schema/api.schema.json +639 -11
- package/shell/page.ts +4 -0
- package/src/generated/abi.ts +3 -0
- package/src/index.ts +11 -0
- package/src/node/device.ts +5 -2
- package/src/node/polish.ts +34 -15
- package/src/node/run.ts +23 -6
- package/src/runtime.ts +1 -0
- package/src/web/gl-state.ts +907 -0
- package/src/web/worker.ts +6 -0
- package/types/bindings.json +823 -349
- package/types/index.d.ts +650 -15
package/knowledge/wiki/anim.md
CHANGED
|
@@ -18,7 +18,7 @@ module anim {
|
|
|
18
18
|
# declarations follow, each quoted below
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
<sub>`api.ogt` line
|
|
21
|
+
<sub>`api.ogt` line 7761</sub>
|
|
22
22
|
|
|
23
23
|
## Contents
|
|
24
24
|
|
|
@@ -43,18 +43,30 @@ module anim {
|
|
|
43
43
|
| [`og.AnimationGraph`](#record-AnimationGraph) | component | Runs a blend-tree graph (og.anim.graph) on a skeleton: its layers' state machines pick motions by the parameters p0...p7, which the graph names in `param` order (`param speed` is p0, the next `param` is p1, ...). |
|
|
44
44
|
| [`og.Blendshapes`](#record-Blendshapes) | component | Morph-target weights of the skeleton entity's mesh, in the order of the glTF mesh's targets. With `source` clips the playing clips' weight channels write them; with `component` game code does. |
|
|
45
45
|
| [`og.IkChain`](#record-IkChain) | component | An inverse-kinematics constraint on a skeleton, applied after its clips and graph: the chain of `bones` bones ending at joint `tip` turns so the tip reaches `target`. Put it on its own entity (a skeleton can have many chains); chains apply in query order. |
|
|
46
|
+
| [`og.LookAt`](#record-LookAt) | component | An aim constraint on a skeleton, applied after its clips, graph and IK chains: `joint` turns so its `axis` points at `target` and its `upAxis` leans towards `up` (three.js Object3D.lookAt: +Z at the target, +Y up). The direction is held within maxYaw and maxPitch of the animated forward; with `bones` above 1 the joint's parents share the turn. Put it on its own entity (a head, the eyes, a turret's barrel); constraints apply in query order, and og.JointLimit clamps the joints it turns. |
|
|
47
|
+
| [`og.JointLimit`](#record-JointLimit) | component | How far a joint may turn from its rest rotation when og.anim's solvers (og.IkChain, og.LookAt, og.FootLock) turn it: a swing of `axis` within a cone and a twist about it within a range. A hinge (a knee, an elbow) is `axis` along the hinge, `swing` 0 (or a little play) and the bend range as twistMin...twistMax. Put it on its own entity, one per joint; the animated pose itself is never clamped. |
|
|
48
|
+
| [`og.FootLock`](#record-FootLock) | component | Foot locking: while the playing clips plant `foot` (within 5 mm of its lowest in each clip, the notion retargeting uses, weighed across blends and cross-fades: planted when the planting clips hold at least half the pose), the foot stays where it touched the ground, through clip blends and root motion, its leg bent by two-bone IK and the foot keeping its animated orientation; when the clips lift it, the foot rejoins its animation over `release`. Put it on its own entity, one per foot; locks apply after root motion and before og.IkChain, in query order, and og.JointLimit clamps the leg. The lock is world state (the `og.anim` state block). |
|
|
49
|
+
| [`SpringSpace`](#type-SpringSpace) | enum | Where a spring bone's tails move. |
|
|
50
|
+
| [`SpringSpace()`](#column-SpringSpace) | column kind | A SpringSpace field: the variant's index. |
|
|
51
|
+
| [`og.SpringBone`](#record-SpringBone) | component | A spring (jiggle) bone chain, three-vrm's VRMSpringBone: `joint` and its `bones` - 1 parents swing after their parents' motion. Each joint's tail (the next joint of the chain; for the last joint its first child, or its parent bone continued at the same length) is a point pulled towards where the animated pose puts it by a damped spring (`frequency`, `damping`), under `gravity`, held at the bone's length, and the joint turns to point at it. Applied after og.IkChain and og.LookAt, top joint first; put it on its own entity (a tail, an ear, a strand of hair, a single jiggling node), one per chain. Deterministic under the fixed tick; the tails' positions and velocities are world state (the `og.anim` state block), so a restore continues a swing exactly. A changed chain (another skeleton, length or space) restarts at the animated pose. |
|
|
52
|
+
| [`SpringColliderShape`](#type-SpringColliderShape) | enum | The shape of a spring collider. |
|
|
53
|
+
| [`SpringColliderShape()`](#column-SpringColliderShape) | column kind | A SpringColliderShape field: the variant's index. |
|
|
54
|
+
| [`og.SpringCollider`](#record-SpringCollider) | component | A collider spring bones are kept out of, three-vrm's VRMSpringBoneCollider: a sphere or a capsule riding on a joint of a skeleton (a head, a chest, an upper arm), so hair, ears and tails do not swing through the body. Each tick, after a tail of an og.SpringBone of the same skeleton has stepped and before its joint turns, the tail is pushed out of every collider whose `layers` meet the spring's `colliders` (in query order) to `radius` plus the spring's `radius`, keeping its bone's length. Put it on its own entity, one per shape; colliders follow the pose as it is when a chain is swung, so one on a joint an earlier chain swung follows that swing. |
|
|
46
55
|
| [`og.AnimationEvent`](#record-AnimationEvent) | event | A named marker of a clip that playback passed in the last tick (read in the tick after it fired, like every event). Cross-fades and blends fire every contributing clip's markers. |
|
|
47
56
|
| [`ClipInfo`](#type-ClipInfo) | struct | One clip of a loaded animation. |
|
|
48
57
|
| [`Animation`](#type-Animation) | struct | What og.load.animation registered from a model's `#anim` blob. |
|
|
49
58
|
| [`GraphDesc`](#type-GraphDesc) | desc struct | A blend-tree graph to register. |
|
|
50
59
|
| [`og.anim.graph`](#fn-graph) | function | Register a blend-tree graph for AnimationGraph.asset. Its `clip` lines are resolved by name against `clips`. |
|
|
51
|
-
| [`Rig`](#type-Rig) | handle | A humanoid map from og.load.rig (a cooked `.ogt` of `type rig`): the naming scheme a skeleton's node names follow
|
|
60
|
+
| [`Rig`](#type-Rig) | handle | A humanoid map from og.load.rig (a cooked `.ogt` of `type rig`): the naming scheme a skeleton's node names follow, the standard bones it names outright and, with `footHeight`, how high its ankles stand above the ground. |
|
|
61
|
+
| [`Rig()`](#column-Rig) | column kind | A Rig handle field (0 is none): a humanoid map og.load.rig answered. |
|
|
52
62
|
| [`HumanBone`](#type-HumanBone) | struct | One standard humanoid bone of a skeleton. |
|
|
53
63
|
| [`Humanoid`](#type-Humanoid) | struct | Which node of a skeleton is each standard humanoid bone (what retargeting maps). |
|
|
54
64
|
| [`HumanoidDesc`](#type-HumanoidDesc) | desc struct | A skeleton and, optionally, the rig that says how its bones are named. |
|
|
55
65
|
| [`og.anim.humanoid`](#fn-humanoid) | function | The standard humanoid bones of a skeleton, as retargeting sees them: to check a rig before retargeting onto it. |
|
|
56
66
|
| [`RetargetDesc`](#type-RetargetDesc) | desc struct | A clip made for one skeleton, to play on another (other proportions, rest pose or bone names). |
|
|
57
|
-
| [`og.anim.retarget`](#fn-retarget) | function | A new clip for `target` from a clip of `source`: each animated humanoid bone turns as the source's does from its rest pose (after a rest correction, so a T-pose drives an A-pose and other bone frames agree), the target keeps its bone lengths, the hips travel the source's distance scaled by the leg ratio (root motion kept, hip height scaled), and with footIk the feet land where the source's do, scaled. Same name, duration and markers. The cook does the same for a model's `animation { library }` import setting; this is for clips chosen at run time. |
|
|
67
|
+
| [`og.anim.retarget`](#fn-retarget) | function | A new clip for `target` from a clip of `source`: each animated humanoid bone turns as the source's does from its rest pose (after a rest correction, so a T-pose drives an A-pose and other bone frames agree; fingers turn from their hand, so a hand pose holds whatever the arm does), the target keeps its bone lengths, the hips travel the source's distance scaled by the leg ratio (root motion kept, hip height scaled), and with footIk the feet land where the source's do, scaled, on the ground each rig's `footHeight` names (else its rest pose's foot heights). The target's twist bones (unmapped nodes named `twist`, or Rigify's `DEF-….001`, on an upper or lower arm or leg) take a share of their segment's twist by how far along it they sit. Same name, duration and markers. The cook does the same for a model's `animation { library }` import setting; this is for clips chosen at run time. |
|
|
68
|
+
| [`MirrorDesc`](#type-MirrorDesc) | desc struct | A clip to play on the other side of the skeleton it was made for. |
|
|
69
|
+
| [`og.anim.mirror`](#fn-mirror) | function | A new clip that plays `clip` on the other side: every frame reflected in the skeleton's x = 0 plane, each node taking its counterpart's motion (a left swing becomes the right's), rotations moved in model space so left and right bone frames need not mirror each other, root motion's sideways travel and turns flipped. Assumes a symmetric rest pose; a sided node without a counterpart keeps its rest pose. Same name, duration and markers (markers keep their names). Mirroring twice gives the clip back. A clip known ahead needs no call: a graph's `clip` line with `mirror true` plays it mirrored, and the cook's `animation { mirror "<clip>" }` writes the mirrored clip into the model. |
|
|
58
70
|
| [`FlipbookSheet`](#type-FlipbookSheet) | handle | A sprite sheet's frames and clips (a cooked `.ogt` of `type flipbook`), from og.load.flipbook. |
|
|
59
71
|
| [`FlipbookSheet()`](#column-FlipbookSheet) | column kind | A FlipbookSheet handle field. |
|
|
60
72
|
| [`FlipMode`](#type-FlipMode) | enum | How a flipbook clip runs past its last frame. |
|
|
@@ -106,7 +118,7 @@ fn graph {
|
|
|
106
118
|
}
|
|
107
119
|
```
|
|
108
120
|
|
|
109
|
-
<sub>`api.ogt` line
|
|
121
|
+
<sub>`api.ogt` line 8300</sub>
|
|
110
122
|
|
|
111
123
|
<a id="fn-humanoid"></a>
|
|
112
124
|
|
|
@@ -136,13 +148,13 @@ fn humanoid {
|
|
|
136
148
|
}
|
|
137
149
|
```
|
|
138
150
|
|
|
139
|
-
<sub>`api.ogt` line
|
|
151
|
+
<sub>`api.ogt` line 8335</sub>
|
|
140
152
|
|
|
141
153
|
<a id="fn-retarget"></a>
|
|
142
154
|
|
|
143
155
|
### `og.anim.retarget`
|
|
144
156
|
|
|
145
|
-
A new clip for `target` from a clip of `source`: each animated humanoid bone turns as the source's does from its rest pose (after a rest correction, so a T-pose drives an A-pose and other bone frames agree), the target keeps its bone lengths, the hips travel the source's distance scaled by the leg ratio (root motion kept, hip height scaled), and with footIk the feet land where the source's do, scaled. Same name, duration and markers. The cook does the same for a model's `animation { library }` import setting; this is for clips chosen at run time.
|
|
157
|
+
A new clip for `target` from a clip of `source`: each animated humanoid bone turns as the source's does from its rest pose (after a rest correction, so a T-pose drives an A-pose and other bone frames agree; fingers turn from their hand, so a hand pose holds whatever the arm does), the target keeps its bone lengths, the hips travel the source's distance scaled by the leg ratio (root motion kept, hip height scaled), and with footIk the feet land where the source's do, scaled, on the ground each rig's `footHeight` names (else its rest pose's foot heights). The target's twist bones (unmapped nodes named `twist`, or Rigify's `DEF-….001`, on an upper or lower arm or leg) take a share of their segment's twist by how far along it they sit. Same name, duration and markers. The cook does the same for a model's `animation { library }` import setting; this is for clips chosen at run time.
|
|
146
158
|
|
|
147
159
|
```ts
|
|
148
160
|
og.anim.retarget(world: World, desc?: RetargetDesc): Result<ClipInfo>
|
|
@@ -159,14 +171,44 @@ Binding symbol `og_anim_retarget` · publish builds: kept
|
|
|
159
171
|
|
|
160
172
|
```ogt
|
|
161
173
|
fn retarget {
|
|
162
|
-
doc "A new clip for `target` from a clip of `source`: each animated humanoid bone turns as the source's does from its rest pose (after a rest correction, so a T-pose drives an A-pose and other bone frames agree), the target keeps its bone lengths, the hips travel the source's distance scaled by the leg ratio (root motion kept, hip height scaled), and with footIk the feet land where the source's do, scaled. Same name, duration and markers. The cook does the same for a model's `animation { library }` import setting; this is for clips chosen at run time."
|
|
174
|
+
doc "A new clip for `target` from a clip of `source`: each animated humanoid bone turns as the source's does from its rest pose (after a rest correction, so a T-pose drives an A-pose and other bone frames agree; fingers turn from their hand, so a hand pose holds whatever the arm does), the target keeps its bone lengths, the hips travel the source's distance scaled by the leg ratio (root motion kept, hip height scaled), and with footIk the feet land where the source's do, scaled, on the ground each rig's `footHeight` names (else its rest pose's foot heights). The target's twist bones (unmapped nodes named `twist`, or Rigify's `DEF-….001`, on an upper or lower arm or leg) take a share of their segment's twist by how far along it they sit. Same name, duration and markers. The cook does the same for a model's `animation { library }` import setting; this is for clips chosen at run time."
|
|
163
175
|
param world World "The world whose animation owns the skeletons and the clip."
|
|
164
176
|
param desc RetargetDesc "The clip, the two skeletons and their rigs."
|
|
165
177
|
returns Result.ClipInfo "The new clip (what AnimationPlayer.clip takes). Refused for an unregistered clip, skeleton or rig, a skeleton without recognisable hips (name them in a `type rig` file), or a rig naming a missing node."
|
|
166
178
|
}
|
|
167
179
|
```
|
|
168
180
|
|
|
169
|
-
<sub>`api.ogt` line
|
|
181
|
+
<sub>`api.ogt` line 8355</sub>
|
|
182
|
+
|
|
183
|
+
<a id="fn-mirror"></a>
|
|
184
|
+
|
|
185
|
+
### `og.anim.mirror`
|
|
186
|
+
|
|
187
|
+
A new clip that plays `clip` on the other side: every frame reflected in the skeleton's x = 0 plane, each node taking its counterpart's motion (a left swing becomes the right's), rotations moved in model space so left and right bone frames need not mirror each other, root motion's sideways travel and turns flipped. Assumes a symmetric rest pose; a sided node without a counterpart keeps its rest pose. Same name, duration and markers (markers keep their names). Mirroring twice gives the clip back. A clip known ahead needs no call: a graph's `clip` line with `mirror true` plays it mirrored, and the cook's `animation { mirror "<clip>" }` writes the mirrored clip into the model.
|
|
188
|
+
|
|
189
|
+
```ts
|
|
190
|
+
og.anim.mirror(world: World, desc?: MirrorDesc): Result<ClipInfo>
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
| Parameter | Type | Optional | Doc |
|
|
194
|
+
|---|---|---|---|
|
|
195
|
+
| `world` | `World` | no | The world whose animation owns the skeleton and the clip. |
|
|
196
|
+
| `desc` | `MirrorDesc` | yes | The clip and its skeleton. |
|
|
197
|
+
|
|
198
|
+
**Returns** `Result<ClipInfo>`: The new clip (what AnimationPlayer.clip takes). Refused for an unregistered clip or skeleton.
|
|
199
|
+
|
|
200
|
+
Binding symbol `og_anim_mirror` · publish builds: kept
|
|
201
|
+
|
|
202
|
+
```ogt
|
|
203
|
+
fn mirror {
|
|
204
|
+
doc "A new clip that plays `clip` on the other side: every frame reflected in the skeleton's x = 0 plane, each node taking its counterpart's motion (a left swing becomes the right's), rotations moved in model space so left and right bone frames need not mirror each other, root motion's sideways travel and turns flipped. Assumes a symmetric rest pose; a sided node without a counterpart keeps its rest pose. Same name, duration and markers (markers keep their names). Mirroring twice gives the clip back. A clip known ahead needs no call: a graph's `clip` line with `mirror true` plays it mirrored, and the cook's `animation { mirror \"<clip>\" }` writes the mirrored clip into the model."
|
|
205
|
+
param world World "The world whose animation owns the skeleton and the clip."
|
|
206
|
+
param desc MirrorDesc "The clip and its skeleton."
|
|
207
|
+
returns Result.ClipInfo "The new clip (what AnimationPlayer.clip takes). Refused for an unregistered clip or skeleton."
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
<sub>`api.ogt` line 8369</sub>
|
|
170
212
|
|
|
171
213
|
<a id="fn-clip"></a>
|
|
172
214
|
|
|
@@ -197,7 +239,7 @@ fn clip {
|
|
|
197
239
|
}
|
|
198
240
|
```
|
|
199
241
|
|
|
200
|
-
<sub>`api.ogt` line
|
|
242
|
+
<sub>`api.ogt` line 8454</sub>
|
|
201
243
|
|
|
202
244
|
<a id="fn-clip-2"></a>
|
|
203
245
|
|
|
@@ -228,7 +270,7 @@ fn clip {
|
|
|
228
270
|
}
|
|
229
271
|
```
|
|
230
272
|
|
|
231
|
-
<sub>`api.ogt` line
|
|
273
|
+
<sub>`api.ogt` line 8462</sub>
|
|
232
274
|
|
|
233
275
|
<a id="fn-clip-3"></a>
|
|
234
276
|
|
|
@@ -259,7 +301,7 @@ fn clip {
|
|
|
259
301
|
}
|
|
260
302
|
```
|
|
261
303
|
|
|
262
|
-
<sub>`api.ogt` line
|
|
304
|
+
<sub>`api.ogt` line 8470</sub>
|
|
263
305
|
|
|
264
306
|
<a id="fn-rig2dInfo"></a>
|
|
265
307
|
|
|
@@ -289,7 +331,7 @@ fn rig2dInfo {
|
|
|
289
331
|
}
|
|
290
332
|
```
|
|
291
333
|
|
|
292
|
-
<sub>`api.ogt` line
|
|
334
|
+
<sub>`api.ogt` line 8580</sub>
|
|
293
335
|
|
|
294
336
|
<a id="fn-skeleton2dBoxes"></a>
|
|
295
337
|
|
|
@@ -319,7 +361,7 @@ fn skeleton2dBoxes {
|
|
|
319
361
|
}
|
|
320
362
|
```
|
|
321
363
|
|
|
322
|
-
<sub>`api.ogt` line
|
|
364
|
+
<sub>`api.ogt` line 8594</sub>
|
|
323
365
|
|
|
324
366
|
## Components, resources and events
|
|
325
367
|
|
|
@@ -356,7 +398,7 @@ component Skeleton {
|
|
|
356
398
|
}
|
|
357
399
|
```
|
|
358
400
|
|
|
359
|
-
<sub>`api.ogt` line
|
|
401
|
+
<sub>`api.ogt` line 7845</sub>
|
|
360
402
|
|
|
361
403
|
<a id="record-AnimationPlayer"></a>
|
|
362
404
|
|
|
@@ -418,7 +460,7 @@ component AnimationPlayer {
|
|
|
418
460
|
}
|
|
419
461
|
```
|
|
420
462
|
|
|
421
|
-
<sub>`api.ogt` line
|
|
463
|
+
<sub>`api.ogt` line 7860</sub>
|
|
422
464
|
|
|
423
465
|
<a id="record-AnimationGraph"></a>
|
|
424
466
|
|
|
@@ -494,7 +536,7 @@ component AnimationGraph {
|
|
|
494
536
|
}
|
|
495
537
|
```
|
|
496
538
|
|
|
497
|
-
<sub>`api.ogt` line
|
|
539
|
+
<sub>`api.ogt` line 7899</sub>
|
|
498
540
|
|
|
499
541
|
<a id="record-Blendshapes"></a>
|
|
500
542
|
|
|
@@ -567,7 +609,7 @@ component Blendshapes {
|
|
|
567
609
|
}
|
|
568
610
|
```
|
|
569
611
|
|
|
570
|
-
<sub>`api.ogt` line
|
|
612
|
+
<sub>`api.ogt` line 7947</sub>
|
|
571
613
|
|
|
572
614
|
<a id="record-IkChain"></a>
|
|
573
615
|
|
|
@@ -638,7 +680,325 @@ component IkChain {
|
|
|
638
680
|
}
|
|
639
681
|
```
|
|
640
682
|
|
|
641
|
-
<sub>`api.ogt` line
|
|
683
|
+
<sub>`api.ogt` line 7995</sub>
|
|
684
|
+
|
|
685
|
+
<a id="record-LookAt"></a>
|
|
686
|
+
|
|
687
|
+
### `og.LookAt` (component)
|
|
688
|
+
|
|
689
|
+
An aim constraint on a skeleton, applied after its clips, graph and IK chains: `joint` turns so its `axis` points at `target` and its `upAxis` leans towards `up` (three.js Object3D.lookAt: +Z at the target, +Y up). The direction is held within maxYaw and maxPitch of the animated forward; with `bones` above 1 the joint's parents share the turn. Put it on its own entity (a head, the eyes, a turret's barrel); constraints apply in query order, and og.JointLimit clamps the joints it turns.
|
|
690
|
+
|
|
691
|
+
Token `og.LookAt`, registered under the schema name `og.LookAt`; its value type is `LookAt`.
|
|
692
|
+
|
|
693
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
694
|
+
|---|---|---|---|---|---|---|
|
|
695
|
+
| `skeleton` | `Entity` | `0` | — | — | — | The entity with the og.Skeleton this constraint turns. |
|
|
696
|
+
| `joint` | `number` | `0` | ≥ 0 | — | — | The joint that aims (an index into the skin's joints): the head, an eye. |
|
|
697
|
+
| `bones` | `number` | `1` | 1 … 8 | — | — | How many joints share the turn: `joint` and its parents (3 spreads a look over neck, chest and spine), each parent taking an even share and `joint` the rest. |
|
|
698
|
+
| `target` | `Vector3` | `{ x: 0, y: 0, z: 0 }` | — | `m` | — | The point to look at, in `space`. |
|
|
699
|
+
| `space` | `IkSpace` | `"world"` | — | — | — | What `target` and `up` are relative to: world (the frame the skeleton entity's og.Transform is in) or model. |
|
|
700
|
+
| `axis` | `Vector3` | `{ x: 0, y: 0, z: 1 }` | — | — | — | The joint's forward, in its own frame: the axis turned onto the target. |
|
|
701
|
+
| `upAxis` | `Vector3` | `{ x: 0, y: 1, z: 0 }` | — | — | — | The joint's up, in its own frame: yaw turns about it, pitch towards it, and it rolls towards `up`. |
|
|
702
|
+
| `up` | `Vector3` | `{ x: 0, y: 1, z: 0 }` | — | — | — | The up hint, a direction in `space` the joint's `upAxis` leans to (three.js Object3D.up); the zero vector keeps the animated roll. |
|
|
703
|
+
| `maxYaw` | `number` | `3.1416` | 0 … 3.1416 | `rad` | tunable | The largest turn about `upAxis`, left or right of the animated forward. |
|
|
704
|
+
| `maxPitch` | `number` | `1.5708` | 0 … 1.5708 | `rad` | tunable | The largest turn towards or away from `upAxis`, from the animated forward. |
|
|
705
|
+
| `weight` | `number` | `1` | 0 … 1 | — | tunable | How much of the turn is applied (0 = the animated pose, 1 = aimed). |
|
|
706
|
+
| `clamped` | `boolean` | `false` | — | — | read only | Written: the target lay outside maxYaw or maxPitch, so the joint aims at the nearest direction inside them. |
|
|
707
|
+
|
|
708
|
+
```ogt
|
|
709
|
+
component LookAt {
|
|
710
|
+
doc "An aim constraint on a skeleton, applied after its clips, graph and IK chains: `joint` turns so its `axis` points at `target` and its `upAxis` leans towards `up` (three.js Object3D.lookAt: +Z at the target, +Y up). The direction is held within maxYaw and maxPitch of the animated forward; with `bones` above 1 the joint's parents share the turn. Put it on its own entity (a head, the eyes, a turret's barrel); constraints apply in query order, and og.JointLimit clamps the joints it turns."
|
|
711
|
+
field skeleton Entity "The entity with the og.Skeleton this constraint turns."
|
|
712
|
+
field joint u32 "The joint that aims (an index into the skin's joints): the head, an eye." {
|
|
713
|
+
min 0
|
|
714
|
+
}
|
|
715
|
+
field bones u32 "How many joints share the turn: `joint` and its parents (3 spreads a look over neck, chest and spine), each parent taking an even share and `joint` the rest." {
|
|
716
|
+
default 1
|
|
717
|
+
min 1
|
|
718
|
+
max 8
|
|
719
|
+
}
|
|
720
|
+
field target Vector3 "The point to look at, in `space`." {
|
|
721
|
+
unit m
|
|
722
|
+
}
|
|
723
|
+
field space IkSpace "What `target` and `up` are relative to: world (the frame the skeleton entity's og.Transform is in) or model."
|
|
724
|
+
field axis Vector3 "The joint's forward, in its own frame: the axis turned onto the target." {
|
|
725
|
+
default 0 0 1
|
|
726
|
+
}
|
|
727
|
+
field upAxis Vector3 "The joint's up, in its own frame: yaw turns about it, pitch towards it, and it rolls towards `up`." {
|
|
728
|
+
default 0 1 0
|
|
729
|
+
}
|
|
730
|
+
field up Vector3 "The up hint, a direction in `space` the joint's `upAxis` leans to (three.js Object3D.up); the zero vector keeps the animated roll." {
|
|
731
|
+
default 0 1 0
|
|
732
|
+
}
|
|
733
|
+
field maxYaw f32 "The largest turn about `upAxis`, left or right of the animated forward." {
|
|
734
|
+
default 3.1416
|
|
735
|
+
min 0
|
|
736
|
+
max 3.1416
|
|
737
|
+
unit rad
|
|
738
|
+
tunable true
|
|
739
|
+
}
|
|
740
|
+
field maxPitch f32 "The largest turn towards or away from `upAxis`, from the animated forward." {
|
|
741
|
+
default 1.5708
|
|
742
|
+
min 0
|
|
743
|
+
max 1.5708
|
|
744
|
+
unit rad
|
|
745
|
+
tunable true
|
|
746
|
+
}
|
|
747
|
+
field weight f32 "How much of the turn is applied (0 = the animated pose, 1 = aimed)." {
|
|
748
|
+
default 1
|
|
749
|
+
min 0
|
|
750
|
+
max 1
|
|
751
|
+
tunable true
|
|
752
|
+
}
|
|
753
|
+
field clamped bool "Written: the target lay outside maxYaw or maxPitch, so the joint aims at the nearest direction inside them." {
|
|
754
|
+
readonly true
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
<sub>`api.ogt` line 8039</sub>
|
|
760
|
+
|
|
761
|
+
<a id="record-JointLimit"></a>
|
|
762
|
+
|
|
763
|
+
### `og.JointLimit` (component)
|
|
764
|
+
|
|
765
|
+
How far a joint may turn from its rest rotation when og.anim's solvers (og.IkChain, og.LookAt, og.FootLock) turn it: a swing of `axis` within a cone and a twist about it within a range. A hinge (a knee, an elbow) is `axis` along the hinge, `swing` 0 (or a little play) and the bend range as twistMin...twistMax. Put it on its own entity, one per joint; the animated pose itself is never clamped.
|
|
766
|
+
|
|
767
|
+
Token `og.JointLimit`, registered under the schema name `og.JointLimit`; its value type is `JointLimit`.
|
|
768
|
+
|
|
769
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
770
|
+
|---|---|---|---|---|---|---|
|
|
771
|
+
| `skeleton` | `Entity` | `0` | — | — | — | The entity with the og.Skeleton whose joint this limits. |
|
|
772
|
+
| `joint` | `number` | `0` | ≥ 0 | — | — | The limited joint (an index into the skin's joints). |
|
|
773
|
+
| `axis` | `Vector3` | `{ x: 0, y: 1, z: 0 }` | — | — | — | The twist axis in the joint's rest frame: along the bone for a ball joint, along the hinge for a hinge. |
|
|
774
|
+
| `swing` | `number` | `3.1416` | 0 … 3.1416 | `rad` | tunable | The cone half-angle the axis may swing away from its rest direction (0 locks it: a hinge; pi is free). |
|
|
775
|
+
| `twistMin` | `number` | `-3.1416` | -3.1416 … 3.1416 | `rad` | tunable | The least twist about `axis` from rest (a hinge's bend one way). |
|
|
776
|
+
| `twistMax` | `number` | `3.1416` | -3.1416 … 3.1416 | `rad` | tunable | The most twist about `axis` from rest (a hinge's bend the other way). |
|
|
777
|
+
|
|
778
|
+
```ogt
|
|
779
|
+
component JointLimit {
|
|
780
|
+
doc "How far a joint may turn from its rest rotation when og.anim's solvers (og.IkChain, og.LookAt, og.FootLock) turn it: a swing of `axis` within a cone and a twist about it within a range. A hinge (a knee, an elbow) is `axis` along the hinge, `swing` 0 (or a little play) and the bend range as twistMin...twistMax. Put it on its own entity, one per joint; the animated pose itself is never clamped."
|
|
781
|
+
field skeleton Entity "The entity with the og.Skeleton whose joint this limits."
|
|
782
|
+
field joint u32 "The limited joint (an index into the skin's joints)." {
|
|
783
|
+
min 0
|
|
784
|
+
}
|
|
785
|
+
field axis Vector3 "The twist axis in the joint's rest frame: along the bone for a ball joint, along the hinge for a hinge." {
|
|
786
|
+
default 0 1 0
|
|
787
|
+
}
|
|
788
|
+
field swing f32 "The cone half-angle the axis may swing away from its rest direction (0 locks it: a hinge; pi is free)." {
|
|
789
|
+
default 3.1416
|
|
790
|
+
min 0
|
|
791
|
+
max 3.1416
|
|
792
|
+
unit rad
|
|
793
|
+
tunable true
|
|
794
|
+
}
|
|
795
|
+
field twistMin f32 "The least twist about `axis` from rest (a hinge's bend one way)." {
|
|
796
|
+
default -3.1416
|
|
797
|
+
min -3.1416
|
|
798
|
+
max 3.1416
|
|
799
|
+
unit rad
|
|
800
|
+
tunable true
|
|
801
|
+
}
|
|
802
|
+
field twistMax f32 "The most twist about `axis` from rest (a hinge's bend the other way)." {
|
|
803
|
+
default 3.1416
|
|
804
|
+
min -3.1416
|
|
805
|
+
max 3.1416
|
|
806
|
+
unit rad
|
|
807
|
+
tunable true
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
```
|
|
811
|
+
|
|
812
|
+
<sub>`api.ogt` line 8088</sub>
|
|
813
|
+
|
|
814
|
+
<a id="record-FootLock"></a>
|
|
815
|
+
|
|
816
|
+
### `og.FootLock` (component)
|
|
817
|
+
|
|
818
|
+
Foot locking: while the playing clips plant `foot` (within 5 mm of its lowest in each clip, the notion retargeting uses, weighed across blends and cross-fades: planted when the planting clips hold at least half the pose), the foot stays where it touched the ground, through clip blends and root motion, its leg bent by two-bone IK and the foot keeping its animated orientation; when the clips lift it, the foot rejoins its animation over `release`. Put it on its own entity, one per foot; locks apply after root motion and before og.IkChain, in query order, and og.JointLimit clamps the leg. The lock is world state (the `og.anim` state block).
|
|
819
|
+
|
|
820
|
+
Token `og.FootLock`, registered under the schema name `og.FootLock`; its value type is `FootLock`.
|
|
821
|
+
|
|
822
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
823
|
+
|---|---|---|---|---|---|---|
|
|
824
|
+
| `skeleton` | `Entity` | `0` | — | — | — | The entity with the og.Skeleton whose foot this holds. |
|
|
825
|
+
| `foot` | `number` | `0` | ≥ 0 | — | — | The foot joint (an index into the skin's joints); the two bones above it are the leg that bends. |
|
|
826
|
+
| `weight` | `number` | `1` | 0 … 1 | — | tunable | How much of the lock is applied (0 = the animated foot, 1 = held). |
|
|
827
|
+
| `release` | `number` | `0.15` | 0 … 2 | `s` | tunable | Seconds the foot takes to rejoin its animation once lifted (0: at once). |
|
|
828
|
+
| `maxDistance` | `number` | `0.5` | ≥ 0 | `m` | tunable | Farther than this from where the animation puts the foot, the lock lets go (a leg cannot stretch). |
|
|
829
|
+
| `planted` | `boolean` | `false` | — | — | read only | Written: the playing clips plant the foot this tick. |
|
|
830
|
+
| `locked` | `boolean` | `false` | — | — | read only | Written: the foot is held at its lock this tick. |
|
|
831
|
+
|
|
832
|
+
```ogt
|
|
833
|
+
component FootLock {
|
|
834
|
+
doc "Foot locking: while the playing clips plant `foot` (within 5 mm of its lowest in each clip, the notion retargeting uses, weighed across blends and cross-fades: planted when the planting clips hold at least half the pose), the foot stays where it touched the ground, through clip blends and root motion, its leg bent by two-bone IK and the foot keeping its animated orientation; when the clips lift it, the foot rejoins its animation over `release`. Put it on its own entity, one per foot; locks apply after root motion and before og.IkChain, in query order, and og.JointLimit clamps the leg. The lock is world state (the `og.anim` state block)."
|
|
835
|
+
field skeleton Entity "The entity with the og.Skeleton whose foot this holds."
|
|
836
|
+
field foot u32 "The foot joint (an index into the skin's joints); the two bones above it are the leg that bends." {
|
|
837
|
+
min 0
|
|
838
|
+
}
|
|
839
|
+
field weight f32 "How much of the lock is applied (0 = the animated foot, 1 = held)." {
|
|
840
|
+
default 1
|
|
841
|
+
min 0
|
|
842
|
+
max 1
|
|
843
|
+
tunable true
|
|
844
|
+
}
|
|
845
|
+
field release f32 "Seconds the foot takes to rejoin its animation once lifted (0: at once)." {
|
|
846
|
+
default 0.15
|
|
847
|
+
min 0
|
|
848
|
+
max 2
|
|
849
|
+
unit s
|
|
850
|
+
tunable true
|
|
851
|
+
}
|
|
852
|
+
field maxDistance f32 "Farther than this from where the animation puts the foot, the lock lets go (a leg cannot stretch)." {
|
|
853
|
+
default 0.5
|
|
854
|
+
min 0
|
|
855
|
+
unit m
|
|
856
|
+
tunable true
|
|
857
|
+
}
|
|
858
|
+
field planted bool "Written: the playing clips plant the foot this tick." {
|
|
859
|
+
readonly true
|
|
860
|
+
}
|
|
861
|
+
field locked bool "Written: the foot is held at its lock this tick." {
|
|
862
|
+
readonly true
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
```
|
|
866
|
+
|
|
867
|
+
<sub>`api.ogt` line 8120</sub>
|
|
868
|
+
|
|
869
|
+
<a id="record-SpringBone"></a>
|
|
870
|
+
|
|
871
|
+
### `og.SpringBone` (component)
|
|
872
|
+
|
|
873
|
+
A spring (jiggle) bone chain, three-vrm's VRMSpringBone: `joint` and its `bones` - 1 parents swing after their parents' motion. Each joint's tail (the next joint of the chain; for the last joint its first child, or its parent bone continued at the same length) is a point pulled towards where the animated pose puts it by a damped spring (`frequency`, `damping`), under `gravity`, held at the bone's length, and the joint turns to point at it. Applied after og.IkChain and og.LookAt, top joint first; put it on its own entity (a tail, an ear, a strand of hair, a single jiggling node), one per chain. Deterministic under the fixed tick; the tails' positions and velocities are world state (the `og.anim` state block), so a restore continues a swing exactly. A changed chain (another skeleton, length or space) restarts at the animated pose.
|
|
874
|
+
|
|
875
|
+
Token `og.SpringBone`, registered under the schema name `og.SpringBone`; its value type is `SpringBone`.
|
|
876
|
+
|
|
877
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
878
|
+
|---|---|---|---|---|---|---|
|
|
879
|
+
| `skeleton` | `Entity` | `0` | — | — | — | The entity with the og.Skeleton whose joints this swings. |
|
|
880
|
+
| `joint` | `number` | `0` | ≥ 0 | — | — | The chain's last joint (an index into the skin's joints): the tip of a tail, an ear. |
|
|
881
|
+
| `bones` | `number` | `1` | 1 … 16 | — | — | How many joints swing: `joint` and its parents (1 is the joint alone). |
|
|
882
|
+
| `frequency` | `number` | `3` | 0 … 30 | `hz` | tunable | How fast a tail springs back to its animated place: the spring's natural frequency (0: no spring, it only hangs and swings). |
|
|
883
|
+
| `damping` | `number` | `0.3` | 0 … 2 | — | tunable | The damping ratio: 0 swings on, 1 settles without overshooting (critical damping). |
|
|
884
|
+
| `tipFrequency` | `number` | `1` | 0 … 4 | — | tunable | The last joint's frequency as a multiple of `frequency`, the joints between in proportion along the chain (1: every joint alike; 0.25: the tip springs back four times slower than the top, a soft strand on a stiff root). |
|
|
885
|
+
| `tipDamping` | `number` | `1` | 0 … 4 | — | tunable | The last joint's damping ratio as a multiple of `damping`, the joints between in proportion along the chain (1: every joint alike). |
|
|
886
|
+
| `gravity` | `Vector3` | `{ x: 0, y: 0, z: 0 }` | — | `mps2` | — | An acceleration on every tail, in `space` (three-vrm's gravityDir times gravityPower): (0, -9.8, 0) makes a chain droop. |
|
|
887
|
+
| `space` | `SpringSpace` | `"world"` | — | — | — | Where the tails move: world (the frame the skeleton entity's og.Transform is in, so the chain lags behind the entity's motion) or model (only the animation moves it). |
|
|
888
|
+
| `weight` | `number` | `1` | 0 … 1 | — | tunable | How much of the swing is applied (0 = the animated pose, 1 = the spring's). |
|
|
889
|
+
| `radius` | `number` | `0` | ≥ 0 | `m` | tunable | The tails' radius against og.SpringCollider (three-vrm's hitRadius): a tail stays this far outside every collider it meets (0: a point). |
|
|
890
|
+
| `colliders` | `number` | `4294967295` | — | — | — | The og.SpringCollider layers the tails are pushed out of, as bits: a collider on the same skeleton counts when its `layers` meet these. |
|
|
891
|
+
| `lag` | `number` | `0` | — | `m` | read only | Written: the farthest a tail is from its animated place this tick. |
|
|
892
|
+
|
|
893
|
+
```ogt
|
|
894
|
+
component SpringBone {
|
|
895
|
+
doc "A spring (jiggle) bone chain, three-vrm's VRMSpringBone: `joint` and its `bones` - 1 parents swing after their parents' motion. Each joint's tail (the next joint of the chain; for the last joint its first child, or its parent bone continued at the same length) is a point pulled towards where the animated pose puts it by a damped spring (`frequency`, `damping`), under `gravity`, held at the bone's length, and the joint turns to point at it. Applied after og.IkChain and og.LookAt, top joint first; put it on its own entity (a tail, an ear, a strand of hair, a single jiggling node), one per chain. Deterministic under the fixed tick; the tails' positions and velocities are world state (the `og.anim` state block), so a restore continues a swing exactly. A changed chain (another skeleton, length or space) restarts at the animated pose."
|
|
896
|
+
field skeleton Entity "The entity with the og.Skeleton whose joints this swings."
|
|
897
|
+
field joint u32 "The chain's last joint (an index into the skin's joints): the tip of a tail, an ear." {
|
|
898
|
+
min 0
|
|
899
|
+
}
|
|
900
|
+
field bones u32 "How many joints swing: `joint` and its parents (1 is the joint alone)." {
|
|
901
|
+
default 1
|
|
902
|
+
min 1
|
|
903
|
+
max 16
|
|
904
|
+
}
|
|
905
|
+
field frequency f32 "How fast a tail springs back to its animated place: the spring's natural frequency (0: no spring, it only hangs and swings)." {
|
|
906
|
+
default 3
|
|
907
|
+
min 0
|
|
908
|
+
max 30
|
|
909
|
+
unit hz
|
|
910
|
+
tunable true
|
|
911
|
+
}
|
|
912
|
+
field damping f32 "The damping ratio: 0 swings on, 1 settles without overshooting (critical damping)." {
|
|
913
|
+
default 0.3
|
|
914
|
+
min 0
|
|
915
|
+
max 2
|
|
916
|
+
tunable true
|
|
917
|
+
}
|
|
918
|
+
field tipFrequency f32 "The last joint's frequency as a multiple of `frequency`, the joints between in proportion along the chain (1: every joint alike; 0.25: the tip springs back four times slower than the top, a soft strand on a stiff root)." {
|
|
919
|
+
default 1
|
|
920
|
+
min 0
|
|
921
|
+
max 4
|
|
922
|
+
tunable true
|
|
923
|
+
}
|
|
924
|
+
field tipDamping f32 "The last joint's damping ratio as a multiple of `damping`, the joints between in proportion along the chain (1: every joint alike)." {
|
|
925
|
+
default 1
|
|
926
|
+
min 0
|
|
927
|
+
max 4
|
|
928
|
+
tunable true
|
|
929
|
+
}
|
|
930
|
+
field gravity Vector3 "An acceleration on every tail, in `space` (three-vrm's gravityDir times gravityPower): (0, -9.8, 0) makes a chain droop." {
|
|
931
|
+
unit mps2
|
|
932
|
+
}
|
|
933
|
+
field space SpringSpace "Where the tails move: world (the frame the skeleton entity's og.Transform is in, so the chain lags behind the entity's motion) or model (only the animation moves it)."
|
|
934
|
+
field weight f32 "How much of the swing is applied (0 = the animated pose, 1 = the spring's)." {
|
|
935
|
+
default 1
|
|
936
|
+
min 0
|
|
937
|
+
max 1
|
|
938
|
+
tunable true
|
|
939
|
+
}
|
|
940
|
+
field radius f32 "The tails' radius against og.SpringCollider (three-vrm's hitRadius): a tail stays this far outside every collider it meets (0: a point)." {
|
|
941
|
+
min 0
|
|
942
|
+
unit m
|
|
943
|
+
tunable true
|
|
944
|
+
}
|
|
945
|
+
field colliders u32 "The og.SpringCollider layers the tails are pushed out of, as bits: a collider on the same skeleton counts when its `layers` meet these." {
|
|
946
|
+
default 4294967295
|
|
947
|
+
}
|
|
948
|
+
field lag f32 "Written: the farthest a tail is from its animated place this tick." {
|
|
949
|
+
readonly true
|
|
950
|
+
unit m
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
```
|
|
954
|
+
|
|
955
|
+
<sub>`api.ogt` line 8166</sub>
|
|
956
|
+
|
|
957
|
+
<a id="record-SpringCollider"></a>
|
|
958
|
+
|
|
959
|
+
### `og.SpringCollider` (component)
|
|
960
|
+
|
|
961
|
+
A collider spring bones are kept out of, three-vrm's VRMSpringBoneCollider: a sphere or a capsule riding on a joint of a skeleton (a head, a chest, an upper arm), so hair, ears and tails do not swing through the body. Each tick, after a tail of an og.SpringBone of the same skeleton has stepped and before its joint turns, the tail is pushed out of every collider whose `layers` meet the spring's `colliders` (in query order) to `radius` plus the spring's `radius`, keeping its bone's length. Put it on its own entity, one per shape; colliders follow the pose as it is when a chain is swung, so one on a joint an earlier chain swung follows that swing.
|
|
962
|
+
|
|
963
|
+
Token `og.SpringCollider`, registered under the schema name `og.SpringCollider`; its value type is `SpringCollider`.
|
|
964
|
+
|
|
965
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
966
|
+
|---|---|---|---|---|---|---|
|
|
967
|
+
| `skeleton` | `Entity` | `0` | — | — | — | The entity with the og.Skeleton whose spring bones this keeps out. |
|
|
968
|
+
| `joint` | `number` | `0` | ≥ 0 | — | — | The joint the collider rides on (an index into the skin's joints). |
|
|
969
|
+
| `shape` | `SpringColliderShape` | `"sphere"` | — | — | — | A sphere about `offset`, or a capsule from `offset` to `tail`. |
|
|
970
|
+
| `offset` | `Vector3` | `{ x: 0, y: 0, z: 0 }` | — | `m` | — | The sphere's centre, or the capsule's first end, in the joint's frame. |
|
|
971
|
+
| `tail` | `Vector3` | `{ x: 0, y: 0, z: 0 }` | — | `m` | — | The capsule's other end, in the joint's frame (a sphere ignores it). |
|
|
972
|
+
| `radius` | `number` | `0.1` | ≥ 0 | `m` | tunable | The radius, in metres of the skeleton's model space (the joint's own scale does not apply). |
|
|
973
|
+
| `layers` | `number` | `1` | — | — | — | The layers this collider is on, as bits (a spring bone's `colliders` picks them). |
|
|
974
|
+
|
|
975
|
+
```ogt
|
|
976
|
+
component SpringCollider {
|
|
977
|
+
doc "A collider spring bones are kept out of, three-vrm's VRMSpringBoneCollider: a sphere or a capsule riding on a joint of a skeleton (a head, a chest, an upper arm), so hair, ears and tails do not swing through the body. Each tick, after a tail of an og.SpringBone of the same skeleton has stepped and before its joint turns, the tail is pushed out of every collider whose `layers` meet the spring's `colliders` (in query order) to `radius` plus the spring's `radius`, keeping its bone's length. Put it on its own entity, one per shape; colliders follow the pose as it is when a chain is swung, so one on a joint an earlier chain swung follows that swing."
|
|
978
|
+
field skeleton Entity "The entity with the og.Skeleton whose spring bones this keeps out."
|
|
979
|
+
field joint u32 "The joint the collider rides on (an index into the skin's joints)." {
|
|
980
|
+
min 0
|
|
981
|
+
}
|
|
982
|
+
field shape SpringColliderShape "A sphere about `offset`, or a capsule from `offset` to `tail`."
|
|
983
|
+
field offset Vector3 "The sphere's centre, or the capsule's first end, in the joint's frame." {
|
|
984
|
+
unit m
|
|
985
|
+
}
|
|
986
|
+
field tail Vector3 "The capsule's other end, in the joint's frame (a sphere ignores it)." {
|
|
987
|
+
unit m
|
|
988
|
+
}
|
|
989
|
+
field radius f32 "The radius, in metres of the skeleton's model space (the joint's own scale does not apply)." {
|
|
990
|
+
default 0.1
|
|
991
|
+
min 0
|
|
992
|
+
unit m
|
|
993
|
+
tunable true
|
|
994
|
+
}
|
|
995
|
+
field layers u32 "The layers this collider is on, as bits (a spring bone's `colliders` picks them)." {
|
|
996
|
+
default 1
|
|
997
|
+
}
|
|
998
|
+
}
|
|
999
|
+
```
|
|
1000
|
+
|
|
1001
|
+
<sub>`api.ogt` line 8239</sub>
|
|
642
1002
|
|
|
643
1003
|
<a id="record-AnimationEvent"></a>
|
|
644
1004
|
|
|
@@ -669,7 +1029,7 @@ event AnimationEvent {
|
|
|
669
1029
|
}
|
|
670
1030
|
```
|
|
671
1031
|
|
|
672
|
-
<sub>`api.ogt` line
|
|
1032
|
+
<sub>`api.ogt` line 8263</sub>
|
|
673
1033
|
|
|
674
1034
|
<a id="record-Flipbook"></a>
|
|
675
1035
|
|
|
@@ -725,7 +1085,7 @@ component Flipbook {
|
|
|
725
1085
|
}
|
|
726
1086
|
```
|
|
727
1087
|
|
|
728
|
-
<sub>`api.ogt` line
|
|
1088
|
+
<sub>`api.ogt` line 8392</sub>
|
|
729
1089
|
|
|
730
1090
|
<a id="record-FlipbookEvent"></a>
|
|
731
1091
|
|
|
@@ -752,7 +1112,7 @@ event FlipbookEvent {
|
|
|
752
1112
|
}
|
|
753
1113
|
```
|
|
754
1114
|
|
|
755
|
-
<sub>`api.ogt` line
|
|
1115
|
+
<sub>`api.ogt` line 8423</sub>
|
|
756
1116
|
|
|
757
1117
|
<a id="record-Skeleton2D"></a>
|
|
758
1118
|
|
|
@@ -808,7 +1168,7 @@ component Skeleton2D {
|
|
|
808
1168
|
}
|
|
809
1169
|
```
|
|
810
1170
|
|
|
811
|
-
<sub>`api.ogt` line
|
|
1171
|
+
<sub>`api.ogt` line 8487</sub>
|
|
812
1172
|
|
|
813
1173
|
<a id="record-Skeleton2DEvent"></a>
|
|
814
1174
|
|
|
@@ -839,7 +1199,7 @@ event Skeleton2DEvent {
|
|
|
839
1199
|
}
|
|
840
1200
|
```
|
|
841
1201
|
|
|
842
|
-
<sub>`api.ogt` line
|
|
1202
|
+
<sub>`api.ogt` line 8517</sub>
|
|
843
1203
|
|
|
844
1204
|
<a id="record-IkTarget2D"></a>
|
|
845
1205
|
|
|
@@ -890,7 +1250,7 @@ component IkTarget2D {
|
|
|
890
1250
|
}
|
|
891
1251
|
```
|
|
892
1252
|
|
|
893
|
-
<sub>`api.ogt` line
|
|
1253
|
+
<sub>`api.ogt` line 8528</sub>
|
|
894
1254
|
|
|
895
1255
|
## Types
|
|
896
1256
|
|
|
@@ -906,7 +1266,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
906
1266
|
handle SkeletonAsset "A rig: a glTF's nodes in topological order with their rest transforms, and its skins (joints and inverse bind matrices)."
|
|
907
1267
|
```
|
|
908
1268
|
|
|
909
|
-
<sub>`api.ogt` line
|
|
1269
|
+
<sub>`api.ogt` line 7767</sub>
|
|
910
1270
|
|
|
911
1271
|
<a id="type-ClipAsset"></a>
|
|
912
1272
|
|
|
@@ -920,7 +1280,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
920
1280
|
handle ClipAsset "An animation clip, resampled at the cook's rate, with its markers."
|
|
921
1281
|
```
|
|
922
1282
|
|
|
923
|
-
<sub>`api.ogt` line
|
|
1283
|
+
<sub>`api.ogt` line 7768</sub>
|
|
924
1284
|
|
|
925
1285
|
<a id="type-GraphAsset"></a>
|
|
926
1286
|
|
|
@@ -934,7 +1294,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
934
1294
|
handle GraphAsset "A blend-tree graph (`type animgraph`) whose clip references were resolved to clip handles."
|
|
935
1295
|
```
|
|
936
1296
|
|
|
937
|
-
<sub>`api.ogt` line
|
|
1297
|
+
<sub>`api.ogt` line 7769</sub>
|
|
938
1298
|
|
|
939
1299
|
<a id="type-RootMotion"></a>
|
|
940
1300
|
|
|
@@ -959,7 +1319,7 @@ enum RootMotion {
|
|
|
959
1319
|
}
|
|
960
1320
|
```
|
|
961
1321
|
|
|
962
|
-
<sub>`api.ogt` line
|
|
1322
|
+
<sub>`api.ogt` line 7792</sub>
|
|
963
1323
|
|
|
964
1324
|
<a id="type-BlendshapeSource"></a>
|
|
965
1325
|
|
|
@@ -982,7 +1342,7 @@ enum BlendshapeSource {
|
|
|
982
1342
|
}
|
|
983
1343
|
```
|
|
984
1344
|
|
|
985
|
-
<sub>`api.ogt` line
|
|
1345
|
+
<sub>`api.ogt` line 7806</sub>
|
|
986
1346
|
|
|
987
1347
|
<a id="type-IkSolver"></a>
|
|
988
1348
|
|
|
@@ -1005,7 +1365,7 @@ enum IkSolver {
|
|
|
1005
1365
|
}
|
|
1006
1366
|
```
|
|
1007
1367
|
|
|
1008
|
-
<sub>`api.ogt` line
|
|
1368
|
+
<sub>`api.ogt` line 7819</sub>
|
|
1009
1369
|
|
|
1010
1370
|
<a id="type-IkSpace"></a>
|
|
1011
1371
|
|
|
@@ -1028,7 +1388,53 @@ enum IkSpace {
|
|
|
1028
1388
|
}
|
|
1029
1389
|
```
|
|
1030
1390
|
|
|
1031
|
-
<sub>`api.ogt` line
|
|
1391
|
+
<sub>`api.ogt` line 7832</sub>
|
|
1392
|
+
|
|
1393
|
+
<a id="type-SpringSpace"></a>
|
|
1394
|
+
|
|
1395
|
+
### `SpringSpace` (enum)
|
|
1396
|
+
|
|
1397
|
+
Where a spring bone's tails move.
|
|
1398
|
+
|
|
1399
|
+
A string: one of the variants below. The zero value is `"world"`.
|
|
1400
|
+
|
|
1401
|
+
| Variant | Doc |
|
|
1402
|
+
|---|---|
|
|
1403
|
+
| `"world"` | The frame the skeleton entity's og.Transform is written in: the chain lags behind the entity's motion (walking, root motion, a jump). |
|
|
1404
|
+
| `"model"` | The skeleton's model space: only the animation moves the chain (a teleport or a vehicle carrying the entity does not). |
|
|
1405
|
+
|
|
1406
|
+
```ogt
|
|
1407
|
+
enum SpringSpace {
|
|
1408
|
+
doc "Where a spring bone's tails move."
|
|
1409
|
+
variant world "The frame the skeleton entity's og.Transform is written in: the chain lags behind the entity's motion (walking, root motion, a jump)."
|
|
1410
|
+
variant model "The skeleton's model space: only the animation moves the chain (a teleport or a vehicle carrying the entity does not)."
|
|
1411
|
+
}
|
|
1412
|
+
```
|
|
1413
|
+
|
|
1414
|
+
<sub>`api.ogt` line 8153</sub>
|
|
1415
|
+
|
|
1416
|
+
<a id="type-SpringColliderShape"></a>
|
|
1417
|
+
|
|
1418
|
+
### `SpringColliderShape` (enum)
|
|
1419
|
+
|
|
1420
|
+
The shape of a spring collider.
|
|
1421
|
+
|
|
1422
|
+
A string: one of the variants below. The zero value is `"sphere"`.
|
|
1423
|
+
|
|
1424
|
+
| Variant | Doc |
|
|
1425
|
+
|---|---|
|
|
1426
|
+
| `"sphere"` | A ball of `radius` about `offset`. |
|
|
1427
|
+
| `"capsule"` | A capsule of `radius` about the segment from `offset` to `tail`. |
|
|
1428
|
+
|
|
1429
|
+
```ogt
|
|
1430
|
+
enum SpringColliderShape {
|
|
1431
|
+
doc "The shape of a spring collider."
|
|
1432
|
+
variant sphere "A ball of `radius` about `offset`."
|
|
1433
|
+
variant capsule "A capsule of `radius` about the segment from `offset` to `tail`."
|
|
1434
|
+
}
|
|
1435
|
+
```
|
|
1436
|
+
|
|
1437
|
+
<sub>`api.ogt` line 8226</sub>
|
|
1032
1438
|
|
|
1033
1439
|
<a id="type-ClipInfo"></a>
|
|
1034
1440
|
|
|
@@ -1055,7 +1461,7 @@ struct ClipInfo {
|
|
|
1055
1461
|
}
|
|
1056
1462
|
```
|
|
1057
1463
|
|
|
1058
|
-
<sub>`api.ogt` line
|
|
1464
|
+
<sub>`api.ogt` line 8274</sub>
|
|
1059
1465
|
|
|
1060
1466
|
<a id="type-Animation"></a>
|
|
1061
1467
|
|
|
@@ -1082,7 +1488,7 @@ struct Animation {
|
|
|
1082
1488
|
}
|
|
1083
1489
|
```
|
|
1084
1490
|
|
|
1085
|
-
<sub>`api.ogt` line
|
|
1491
|
+
<sub>`api.ogt` line 8284</sub>
|
|
1086
1492
|
|
|
1087
1493
|
<a id="type-GraphDesc"></a>
|
|
1088
1494
|
|
|
@@ -1106,21 +1512,21 @@ struct GraphDesc {
|
|
|
1106
1512
|
}
|
|
1107
1513
|
```
|
|
1108
1514
|
|
|
1109
|
-
<sub>`api.ogt` line
|
|
1515
|
+
<sub>`api.ogt` line 8293</sub>
|
|
1110
1516
|
|
|
1111
1517
|
<a id="type-Rig"></a>
|
|
1112
1518
|
|
|
1113
1519
|
### `Rig` (handle)
|
|
1114
1520
|
|
|
1115
|
-
A humanoid map from og.load.rig (a cooked `.ogt` of `type rig`): the naming scheme a skeleton's node names follow
|
|
1521
|
+
A humanoid map from og.load.rig (a cooked `.ogt` of `type rig`): the naming scheme a skeleton's node names follow, the standard bones it names outright and, with `footHeight`, how high its ankles stand above the ground.
|
|
1116
1522
|
|
|
1117
1523
|
A generational handle: a number the engine hands out. A dead handle is an error value, never a crash.
|
|
1118
1524
|
|
|
1119
1525
|
```ogt
|
|
1120
|
-
handle Rig "A humanoid map from og.load.rig (a cooked `.ogt` of `type rig`): the naming scheme a skeleton's node names follow
|
|
1526
|
+
handle Rig "A humanoid map from og.load.rig (a cooked `.ogt` of `type rig`): the naming scheme a skeleton's node names follow, the standard bones it names outright and, with `footHeight`, how high its ankles stand above the ground."
|
|
1121
1527
|
```
|
|
1122
1528
|
|
|
1123
|
-
<sub>`api.ogt` line
|
|
1529
|
+
<sub>`api.ogt` line 8307</sub>
|
|
1124
1530
|
|
|
1125
1531
|
<a id="type-HumanBone"></a>
|
|
1126
1532
|
|
|
@@ -1130,18 +1536,18 @@ One standard humanoid bone of a skeleton.
|
|
|
1130
1536
|
|
|
1131
1537
|
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
1132
1538
|
|---|---|---|---|---|---|---|
|
|
1133
|
-
| `bone` | `string` | `""` | — | — | — | The standard bone: hips, spine, chest, upperChest, neck, head, then leftShoulder, leftUpperArm, leftLowerArm, leftHand, the right arm, leftUpperLeg, leftLowerLeg, leftFoot, leftToes and the right leg. |
|
|
1539
|
+
| `bone` | `string` | `""` | — | — | — | The standard bone: hips, spine, chest, upperChest, neck, head, then leftShoulder, leftUpperArm, leftLowerArm, leftHand, the right arm, leftUpperLeg, leftLowerLeg, leftFoot, leftToes and the right leg, then each hand's fingers (VRM 1.0 names): leftThumbMetacarpal, leftThumbProximal, leftThumbDistal, leftIndexProximal, leftIndexIntermediate, leftIndexDistal, the same for Middle, Ring and Little, and the right hand's. |
|
|
1134
1540
|
| `node` | `string` | `""` | — | — | — | The skeleton node that is that bone. |
|
|
1135
1541
|
|
|
1136
1542
|
```ogt
|
|
1137
1543
|
struct HumanBone {
|
|
1138
1544
|
doc "One standard humanoid bone of a skeleton."
|
|
1139
|
-
field bone String "The standard bone: hips, spine, chest, upperChest, neck, head, then leftShoulder, leftUpperArm, leftLowerArm, leftHand, the right arm, leftUpperLeg, leftLowerLeg, leftFoot, leftToes and the right leg."
|
|
1545
|
+
field bone String "The standard bone: hips, spine, chest, upperChest, neck, head, then leftShoulder, leftUpperArm, leftLowerArm, leftHand, the right arm, leftUpperLeg, leftLowerLeg, leftFoot, leftToes and the right leg, then each hand's fingers (VRM 1.0 names): leftThumbMetacarpal, leftThumbProximal, leftThumbDistal, leftIndexProximal, leftIndexIntermediate, leftIndexDistal, the same for Middle, Ring and Little, and the right hand's."
|
|
1140
1546
|
field node String "The skeleton node that is that bone."
|
|
1141
1547
|
}
|
|
1142
1548
|
```
|
|
1143
1549
|
|
|
1144
|
-
<sub>`api.ogt` line
|
|
1550
|
+
<sub>`api.ogt` line 8316</sub>
|
|
1145
1551
|
|
|
1146
1552
|
<a id="type-Humanoid"></a>
|
|
1147
1553
|
|
|
@@ -1162,7 +1568,7 @@ struct Humanoid {
|
|
|
1162
1568
|
}
|
|
1163
1569
|
```
|
|
1164
1570
|
|
|
1165
|
-
<sub>`api.ogt` line
|
|
1571
|
+
<sub>`api.ogt` line 8322</sub>
|
|
1166
1572
|
|
|
1167
1573
|
<a id="type-HumanoidDesc"></a>
|
|
1168
1574
|
|
|
@@ -1186,7 +1592,7 @@ struct HumanoidDesc {
|
|
|
1186
1592
|
}
|
|
1187
1593
|
```
|
|
1188
1594
|
|
|
1189
|
-
<sub>`api.ogt` line
|
|
1595
|
+
<sub>`api.ogt` line 8328</sub>
|
|
1190
1596
|
|
|
1191
1597
|
<a id="type-RetargetDesc"></a>
|
|
1192
1598
|
|
|
@@ -1220,7 +1626,31 @@ struct RetargetDesc {
|
|
|
1220
1626
|
}
|
|
1221
1627
|
```
|
|
1222
1628
|
|
|
1223
|
-
<sub>`api.ogt` line
|
|
1629
|
+
<sub>`api.ogt` line 8342</sub>
|
|
1630
|
+
|
|
1631
|
+
<a id="type-MirrorDesc"></a>
|
|
1632
|
+
|
|
1633
|
+
### `MirrorDesc` (desc struct)
|
|
1634
|
+
|
|
1635
|
+
A clip to play on the other side of the skeleton it was made for.
|
|
1636
|
+
|
|
1637
|
+
A desc: every field may be omitted and takes its default; `{}` is valid.
|
|
1638
|
+
|
|
1639
|
+
| Field | Type | Default | Range | Unit | Notes | Doc |
|
|
1640
|
+
|---|---|---|---|---|---|---|
|
|
1641
|
+
| `clip` | `ClipAsset` | `0` | — | — | — | The clip, made for `skeleton`. |
|
|
1642
|
+
| `skeleton` | `SkeletonAsset` | `0` | — | — | — | The skeleton the clip was made for (og.load.animation's `skeleton`); its left and right nodes are paired by name, the side tokens every rig naming scheme writes swapped (LeftArm and RightArm, thigh.L and thigh.R, J_Bip_L_ and J_Bip_R_, calf_l and calf_r). |
|
|
1643
|
+
|
|
1644
|
+
```ogt
|
|
1645
|
+
struct MirrorDesc {
|
|
1646
|
+
doc "A clip to play on the other side of the skeleton it was made for."
|
|
1647
|
+
desc true
|
|
1648
|
+
field clip ClipAsset "The clip, made for `skeleton`."
|
|
1649
|
+
field skeleton SkeletonAsset "The skeleton the clip was made for (og.load.animation's `skeleton`); its left and right nodes are paired by name, the side tokens every rig naming scheme writes swapped (LeftArm and RightArm, thigh.L and thigh.R, J_Bip_L_ and J_Bip_R_, calf_l and calf_r)."
|
|
1650
|
+
}
|
|
1651
|
+
```
|
|
1652
|
+
|
|
1653
|
+
<sub>`api.ogt` line 8362</sub>
|
|
1224
1654
|
|
|
1225
1655
|
<a id="type-FlipbookSheet"></a>
|
|
1226
1656
|
|
|
@@ -1234,7 +1664,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
1234
1664
|
handle FlipbookSheet "A sprite sheet's frames and clips (a cooked `.ogt` of `type flipbook`), from og.load.flipbook."
|
|
1235
1665
|
```
|
|
1236
1666
|
|
|
1237
|
-
<sub>`api.ogt` line
|
|
1667
|
+
<sub>`api.ogt` line 8376</sub>
|
|
1238
1668
|
|
|
1239
1669
|
<a id="type-FlipMode"></a>
|
|
1240
1670
|
|
|
@@ -1259,7 +1689,7 @@ enum FlipMode {
|
|
|
1259
1689
|
}
|
|
1260
1690
|
```
|
|
1261
1691
|
|
|
1262
|
-
<sub>`api.ogt` line
|
|
1692
|
+
<sub>`api.ogt` line 8385</sub>
|
|
1263
1693
|
|
|
1264
1694
|
<a id="type-FlipbookClipInfo"></a>
|
|
1265
1695
|
|
|
@@ -1290,7 +1720,7 @@ struct FlipbookClipInfo {
|
|
|
1290
1720
|
}
|
|
1291
1721
|
```
|
|
1292
1722
|
|
|
1293
|
-
<sub>`api.ogt` line
|
|
1723
|
+
<sub>`api.ogt` line 8431</sub>
|
|
1294
1724
|
|
|
1295
1725
|
<a id="type-FlipbookInfo"></a>
|
|
1296
1726
|
|
|
@@ -1321,7 +1751,7 @@ struct FlipbookInfo {
|
|
|
1321
1751
|
}
|
|
1322
1752
|
```
|
|
1323
1753
|
|
|
1324
|
-
<sub>`api.ogt` line
|
|
1754
|
+
<sub>`api.ogt` line 8443</sub>
|
|
1325
1755
|
|
|
1326
1756
|
<a id="type-Rig2D"></a>
|
|
1327
1757
|
|
|
@@ -1335,7 +1765,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
|
|
|
1335
1765
|
handle Rig2D "A 2D rig (a cooked `.ogt` of `type rig2d`): bones, slots, region, mesh, bounding-box and child-armature attachments, IK constraints, child armatures and clips, from og.load.rig2d."
|
|
1336
1766
|
```
|
|
1337
1767
|
|
|
1338
|
-
<sub>`api.ogt` line
|
|
1768
|
+
<sub>`api.ogt` line 8478</sub>
|
|
1339
1769
|
|
|
1340
1770
|
<a id="type-Rig2DClipInfo"></a>
|
|
1341
1771
|
|
|
@@ -1364,7 +1794,7 @@ struct Rig2DClipInfo {
|
|
|
1364
1794
|
}
|
|
1365
1795
|
```
|
|
1366
1796
|
|
|
1367
|
-
<sub>`api.ogt` line
|
|
1797
|
+
<sub>`api.ogt` line 8557</sub>
|
|
1368
1798
|
|
|
1369
1799
|
<a id="type-Rig2DInfo"></a>
|
|
1370
1800
|
|
|
@@ -1397,7 +1827,7 @@ struct Rig2DInfo {
|
|
|
1397
1827
|
}
|
|
1398
1828
|
```
|
|
1399
1829
|
|
|
1400
|
-
<sub>`api.ogt` line
|
|
1830
|
+
<sub>`api.ogt` line 8568</sub>
|
|
1401
1831
|
|
|
1402
1832
|
<a id="type-Skeleton2DBox"></a>
|
|
1403
1833
|
|
|
@@ -1420,7 +1850,7 @@ struct Skeleton2DBox {
|
|
|
1420
1850
|
}
|
|
1421
1851
|
```
|
|
1422
1852
|
|
|
1423
|
-
<sub>`api.ogt` line
|
|
1853
|
+
<sub>`api.ogt` line 8587</sub>
|
|
1424
1854
|
|
|
1425
1855
|
## Column kinds
|
|
1426
1856
|
|
|
@@ -1435,6 +1865,9 @@ Each is a factory, `SkeletonAsset(value?, options?)`, that makes one field of a
|
|
|
1435
1865
|
| <a id="column-BlendshapeSource"></a>`BlendshapeSource` | `BlendshapeSource` | `Uint32Array` | 1 | A BlendshapeSource field: the variant's index. |
|
|
1436
1866
|
| <a id="column-IkSolver"></a>`IkSolver` | `IkSolver` | `Uint32Array` | 1 | An IkSolver field: the variant's index. |
|
|
1437
1867
|
| <a id="column-IkSpace"></a>`IkSpace` | `IkSpace` | `Uint32Array` | 1 | An IkSpace field: the variant's index. |
|
|
1868
|
+
| <a id="column-SpringSpace"></a>`SpringSpace` | `SpringSpace` | `Uint32Array` | 1 | A SpringSpace field: the variant's index. |
|
|
1869
|
+
| <a id="column-SpringColliderShape"></a>`SpringColliderShape` | `SpringColliderShape` | `Uint32Array` | 1 | A SpringColliderShape field: the variant's index. |
|
|
1870
|
+
| <a id="column-Rig"></a>`Rig` | `Rig` | `Uint32Array` | 2 | A Rig handle field (0 is none): a humanoid map og.load.rig answered. |
|
|
1438
1871
|
| <a id="column-FlipbookSheet"></a>`FlipbookSheet` | `FlipbookSheet` | `Uint32Array` | 2 | A FlipbookSheet handle field. |
|
|
1439
1872
|
| <a id="column-Rig2D"></a>`Rig2D` | `Rig2D` | `Uint32Array` | 2 | A Rig2D handle field. |
|
|
1440
1873
|
|
|
@@ -1447,7 +1880,7 @@ column SkeletonAsset {
|
|
|
1447
1880
|
}
|
|
1448
1881
|
```
|
|
1449
1882
|
|
|
1450
|
-
<sub>`api.ogt` line
|
|
1883
|
+
<sub>`api.ogt` line 7771</sub>
|
|
1451
1884
|
|
|
1452
1885
|
```ogt
|
|
1453
1886
|
column ClipAsset {
|
|
@@ -1458,7 +1891,7 @@ column ClipAsset {
|
|
|
1458
1891
|
}
|
|
1459
1892
|
```
|
|
1460
1893
|
|
|
1461
|
-
<sub>`api.ogt` line
|
|
1894
|
+
<sub>`api.ogt` line 7778</sub>
|
|
1462
1895
|
|
|
1463
1896
|
```ogt
|
|
1464
1897
|
column GraphAsset {
|
|
@@ -1469,7 +1902,7 @@ column GraphAsset {
|
|
|
1469
1902
|
}
|
|
1470
1903
|
```
|
|
1471
1904
|
|
|
1472
|
-
<sub>`api.ogt` line
|
|
1905
|
+
<sub>`api.ogt` line 7785</sub>
|
|
1473
1906
|
|
|
1474
1907
|
```ogt
|
|
1475
1908
|
column RootMotion {
|
|
@@ -1480,7 +1913,7 @@ column RootMotion {
|
|
|
1480
1913
|
}
|
|
1481
1914
|
```
|
|
1482
1915
|
|
|
1483
|
-
<sub>`api.ogt` line
|
|
1916
|
+
<sub>`api.ogt` line 7799</sub>
|
|
1484
1917
|
|
|
1485
1918
|
```ogt
|
|
1486
1919
|
column BlendshapeSource {
|
|
@@ -1491,7 +1924,7 @@ column BlendshapeSource {
|
|
|
1491
1924
|
}
|
|
1492
1925
|
```
|
|
1493
1926
|
|
|
1494
|
-
<sub>`api.ogt` line
|
|
1927
|
+
<sub>`api.ogt` line 7812</sub>
|
|
1495
1928
|
|
|
1496
1929
|
```ogt
|
|
1497
1930
|
column IkSolver {
|
|
@@ -1502,7 +1935,7 @@ column IkSolver {
|
|
|
1502
1935
|
}
|
|
1503
1936
|
```
|
|
1504
1937
|
|
|
1505
|
-
<sub>`api.ogt` line
|
|
1938
|
+
<sub>`api.ogt` line 7825</sub>
|
|
1506
1939
|
|
|
1507
1940
|
```ogt
|
|
1508
1941
|
column IkSpace {
|
|
@@ -1513,7 +1946,40 @@ column IkSpace {
|
|
|
1513
1946
|
}
|
|
1514
1947
|
```
|
|
1515
1948
|
|
|
1516
|
-
<sub>`api.ogt` line
|
|
1949
|
+
<sub>`api.ogt` line 7838</sub>
|
|
1950
|
+
|
|
1951
|
+
```ogt
|
|
1952
|
+
column SpringSpace {
|
|
1953
|
+
doc "A SpringSpace field: the variant's index."
|
|
1954
|
+
array Uint32Array
|
|
1955
|
+
stride 1
|
|
1956
|
+
value SpringSpace
|
|
1957
|
+
}
|
|
1958
|
+
```
|
|
1959
|
+
|
|
1960
|
+
<sub>`api.ogt` line 8159</sub>
|
|
1961
|
+
|
|
1962
|
+
```ogt
|
|
1963
|
+
column SpringColliderShape {
|
|
1964
|
+
doc "A SpringColliderShape field: the variant's index."
|
|
1965
|
+
array Uint32Array
|
|
1966
|
+
stride 1
|
|
1967
|
+
value SpringColliderShape
|
|
1968
|
+
}
|
|
1969
|
+
```
|
|
1970
|
+
|
|
1971
|
+
<sub>`api.ogt` line 8232</sub>
|
|
1972
|
+
|
|
1973
|
+
```ogt
|
|
1974
|
+
column Rig {
|
|
1975
|
+
doc "A Rig handle field (0 is none): a humanoid map og.load.rig answered."
|
|
1976
|
+
array Uint32Array
|
|
1977
|
+
stride 2
|
|
1978
|
+
value Rig
|
|
1979
|
+
}
|
|
1980
|
+
```
|
|
1981
|
+
|
|
1982
|
+
<sub>`api.ogt` line 8309</sub>
|
|
1517
1983
|
|
|
1518
1984
|
```ogt
|
|
1519
1985
|
column FlipbookSheet {
|
|
@@ -1524,7 +1990,7 @@ column FlipbookSheet {
|
|
|
1524
1990
|
}
|
|
1525
1991
|
```
|
|
1526
1992
|
|
|
1527
|
-
<sub>`api.ogt` line
|
|
1993
|
+
<sub>`api.ogt` line 8378</sub>
|
|
1528
1994
|
|
|
1529
1995
|
```ogt
|
|
1530
1996
|
column Rig2D {
|
|
@@ -1535,4 +2001,4 @@ column Rig2D {
|
|
|
1535
2001
|
}
|
|
1536
2002
|
```
|
|
1537
2003
|
|
|
1538
|
-
<sub>`api.ogt` line
|
|
2004
|
+
<sub>`api.ogt` line 8480</sub>
|