@vgai/engine 0.5.0 → 0.5.2
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/package.json +1 -1
- package/schemas/engine-capabilities.json +4 -4
- package/schemas/vgai-game.schema.json +2 -2
- package/src/adapter/authoring.ts +42 -0
- package/src/adapter/index.ts +3 -0
- package/src/adapter/ingest/overlay-apply.ts +50 -6
- package/src/adapter/ingest/scene-capture.ts +51 -2
- package/src/adapter/vgai-scene-game-adapter.ts +24 -0
- package/src/manifest/schema.ts +7 -3
- package/src/runtime/create-runtime.ts +97 -0
- package/src/runtime/game.ts +11 -1
- package/src/scene/asset-ref-check.ts +1 -1
- package/src/scene/scene-loader.ts +2 -2
- package/src/scene/user-data.ts +18 -0
- package/src/world3d-react/behavior.tsx +19 -11
- package/src/world3d-react/r3f-adapter.tsx +8 -0
- package/dist/adapter/adapter-surface.d.ts +0 -30
- package/dist/adapter/adapter-surface.d.ts.map +0 -1
- package/dist/adapter/adapter-surface.js +0 -18
- package/dist/adapter/authoring.d.ts +0 -461
- package/dist/adapter/authoring.d.ts.map +0 -1
- package/dist/adapter/authoring.js +0 -22
- package/dist/adapter/colyseus-networking-adapter.d.ts +0 -43
- package/dist/adapter/colyseus-networking-adapter.d.ts.map +0 -1
- package/dist/adapter/colyseus-networking-adapter.js +0 -38
- package/dist/adapter/first-party-systems.d.ts +0 -38
- package/dist/adapter/first-party-systems.d.ts.map +0 -1
- package/dist/adapter/first-party-systems.js +0 -77
- package/dist/adapter/game-adapter.d.ts +0 -133
- package/dist/adapter/game-adapter.d.ts.map +0 -1
- package/dist/adapter/game-adapter.js +0 -10
- package/dist/adapter/host-context.d.ts +0 -71
- package/dist/adapter/host-context.d.ts.map +0 -1
- package/dist/adapter/host-context.js +0 -16
- package/dist/adapter/index.d.ts +0 -22
- package/dist/adapter/index.d.ts.map +0 -1
- package/dist/adapter/index.js +0 -15
- package/dist/adapter/ingest/game-contract.d.ts +0 -53
- package/dist/adapter/ingest/game-contract.d.ts.map +0 -1
- package/dist/adapter/ingest/game-contract.js +0 -30
- package/dist/adapter/ingest/overlay-applier.d.ts +0 -118
- package/dist/adapter/ingest/overlay-applier.d.ts.map +0 -1
- package/dist/adapter/ingest/overlay-applier.js +0 -132
- package/dist/adapter/ingest/overlay-apply.d.ts +0 -60
- package/dist/adapter/ingest/overlay-apply.d.ts.map +0 -1
- package/dist/adapter/ingest/overlay-apply.js +0 -101
- package/dist/adapter/ingest/overlay-file.d.ts +0 -79
- package/dist/adapter/ingest/overlay-file.d.ts.map +0 -1
- package/dist/adapter/ingest/overlay-file.js +0 -66
- package/dist/adapter/ingest/overlay-report.d.ts +0 -113
- package/dist/adapter/ingest/overlay-report.d.ts.map +0 -1
- package/dist/adapter/ingest/overlay-report.js +0 -103
- package/dist/adapter/ingest/scene-capture.d.ts +0 -97
- package/dist/adapter/ingest/scene-capture.d.ts.map +0 -1
- package/dist/adapter/ingest/scene-capture.js +0 -248
- package/dist/adapter/ingest/upstream-pin.d.ts +0 -47
- package/dist/adapter/ingest/upstream-pin.d.ts.map +0 -1
- package/dist/adapter/ingest/upstream-pin.js +0 -50
- package/dist/adapter/loop-gate-report.d.ts +0 -34
- package/dist/adapter/loop-gate-report.d.ts.map +0 -1
- package/dist/adapter/loop-gate-report.js +0 -37
- package/dist/adapter/rapier-physics-adapter.d.ts +0 -12
- package/dist/adapter/rapier-physics-adapter.d.ts.map +0 -1
- package/dist/adapter/rapier-physics-adapter.js +0 -46
- package/dist/adapter/system-adapter.d.ts +0 -206
- package/dist/adapter/system-adapter.d.ts.map +0 -1
- package/dist/adapter/system-adapter.js +0 -13
- package/dist/adapter/transform.d.ts +0 -18
- package/dist/adapter/transform.d.ts.map +0 -1
- package/dist/adapter/transform.js +0 -1
- package/dist/adapter/vgai-scene-game-adapter.d.ts +0 -108
- package/dist/adapter/vgai-scene-game-adapter.d.ts.map +0 -1
- package/dist/adapter/vgai-scene-game-adapter.js +0 -762
- package/dist/ai/navigation.d.ts +0 -64
- package/dist/ai/navigation.d.ts.map +0 -1
- package/dist/ai/navigation.js +0 -133
- package/dist/animation/anim-graph-types.d.ts +0 -25
- package/dist/animation/anim-graph-types.d.ts.map +0 -1
- package/dist/animation/anim-graph-types.js +0 -1
- package/dist/animation/animation-clock.d.ts +0 -213
- package/dist/animation/animation-clock.d.ts.map +0 -1
- package/dist/animation/animation-clock.js +0 -301
- package/dist/animation/blend-node.d.ts +0 -22
- package/dist/animation/blend-node.d.ts.map +0 -1
- package/dist/animation/blend-node.js +0 -97
- package/dist/animation/camera-ownership.d.ts +0 -250
- package/dist/animation/camera-ownership.d.ts.map +0 -1
- package/dist/animation/camera-ownership.js +0 -169
- package/dist/animation/cinematic-cues.d.ts +0 -200
- package/dist/animation/cinematic-cues.d.ts.map +0 -1
- package/dist/animation/cinematic-cues.js +0 -213
- package/dist/animation/clip-map.d.ts +0 -12
- package/dist/animation/clip-map.d.ts.map +0 -1
- package/dist/animation/clip-map.js +0 -37
- package/dist/animation/gsap-registration.d.ts +0 -119
- package/dist/animation/gsap-registration.d.ts.map +0 -1
- package/dist/animation/gsap-registration.js +0 -92
- package/dist/animation/theatre-clock-binding.d.ts +0 -89
- package/dist/animation/theatre-clock-binding.d.ts.map +0 -1
- package/dist/animation/theatre-clock-binding.js +0 -29
- package/dist/animation/theatre-director.d.ts +0 -242
- package/dist/animation/theatre-director.d.ts.map +0 -1
- package/dist/animation/theatre-director.js +0 -235
- package/dist/animation/theatre-object-binding.d.ts +0 -305
- package/dist/animation/theatre-object-binding.d.ts.map +0 -1
- package/dist/animation/theatre-object-binding.js +0 -351
- package/dist/animation/xstate-animation-binding.d.ts +0 -56
- package/dist/animation/xstate-animation-binding.d.ts.map +0 -1
- package/dist/animation/xstate-animation-binding.js +0 -331
- package/dist/animation/xstate-animation-meta.d.ts +0 -266
- package/dist/animation/xstate-animation-meta.d.ts.map +0 -1
- package/dist/animation/xstate-animation-meta.js +0 -252
- package/dist/assets.d.ts +0 -26
- package/dist/assets.d.ts.map +0 -1
- package/dist/assets.js +0 -55
- package/dist/audio/index.d.ts +0 -4
- package/dist/audio/index.d.ts.map +0 -1
- package/dist/audio/index.js +0 -24
- package/dist/audio/tone-clock-binding.d.ts +0 -75
- package/dist/audio/tone-clock-binding.d.ts.map +0 -1
- package/dist/audio/tone-clock-binding.js +0 -29
- package/dist/audio/tone-context.d.ts +0 -114
- package/dist/audio/tone-context.d.ts.map +0 -1
- package/dist/audio/tone-context.js +0 -39
- package/dist/audio/tone-offline-render.d.ts +0 -90
- package/dist/audio/tone-offline-render.d.ts.map +0 -1
- package/dist/audio/tone-offline-render.js +0 -56
- package/dist/audio/wav-encode.d.ts +0 -38
- package/dist/audio/wav-encode.d.ts.map +0 -1
- package/dist/audio/wav-encode.js +0 -97
- package/dist/character/cloth-sim.d.ts +0 -179
- package/dist/character/cloth-sim.d.ts.map +0 -1
- package/dist/character/cloth-sim.js +0 -334
- package/dist/character/spring-chain.d.ts +0 -135
- package/dist/character/spring-chain.d.ts.map +0 -1
- package/dist/character/spring-chain.js +0 -165
- package/dist/core/game-loop.d.ts +0 -42
- package/dist/core/game-loop.d.ts.map +0 -1
- package/dist/core/game-loop.js +0 -167
- package/dist/core/seeded-random.d.ts +0 -69
- package/dist/core/seeded-random.d.ts.map +0 -1
- package/dist/core/seeded-random.js +0 -121
- package/dist/core/system-runner.d.ts +0 -120
- package/dist/core/system-runner.d.ts.map +0 -1
- package/dist/core/system-runner.js +0 -297
- package/dist/core/types.d.ts +0 -92
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -25
- package/dist/data/data-asset.d.ts +0 -101
- package/dist/data/data-asset.d.ts.map +0 -1
- package/dist/data/data-asset.js +0 -122
- package/dist/data/data-check-core.d.ts +0 -110
- package/dist/data/data-check-core.d.ts.map +0 -1
- package/dist/data/data-check-core.js +0 -178
- package/dist/data/data-ref.d.ts +0 -79
- package/dist/data/data-ref.d.ts.map +0 -1
- package/dist/data/data-ref.js +0 -130
- package/dist/data/vite-plugin-data.d.ts +0 -79
- package/dist/data/vite-plugin-data.d.ts.map +0 -1
- package/dist/data/vite-plugin-data.js +0 -217
- package/dist/dev/console-bridge.d.ts +0 -22
- package/dist/dev/console-bridge.d.ts.map +0 -1
- package/dist/dev/console-bridge.js +0 -71
- package/dist/dev/debug-draw.d.ts +0 -24
- package/dist/dev/debug-draw.d.ts.map +0 -1
- package/dist/dev/debug-draw.js +0 -73
- package/dist/dev/logger.d.ts +0 -30
- package/dist/dev/logger.d.ts.map +0 -1
- package/dist/dev/logger.js +0 -90
- package/dist/dev/performance-profiler.d.ts +0 -60
- package/dist/dev/performance-profiler.d.ts.map +0 -1
- package/dist/dev/performance-profiler.js +0 -181
- package/dist/dev/webgl-gpu-timer.d.ts +0 -8
- package/dist/dev/webgl-gpu-timer.d.ts.map +0 -1
- package/dist/dev/webgl-gpu-timer.js +0 -52
- package/dist/ecs/component-manager.d.ts +0 -205
- package/dist/ecs/component-manager.d.ts.map +0 -1
- package/dist/ecs/component-manager.js +0 -706
- package/dist/ecs/game-component.d.ts +0 -146
- package/dist/ecs/game-component.d.ts.map +0 -1
- package/dist/ecs/game-component.js +0 -141
- package/dist/ecs/hmr-swap-report.d.ts +0 -53
- package/dist/ecs/hmr-swap-report.d.ts.map +0 -1
- package/dist/ecs/hmr-swap-report.js +0 -55
- package/dist/humanoid/bake.operation.d.ts +0 -119
- package/dist/humanoid/bake.operation.d.ts.map +0 -1
- package/dist/humanoid/bake.operation.js +0 -228
- package/dist/humanoid/body.d.ts +0 -101
- package/dist/humanoid/body.d.ts.map +0 -1
- package/dist/humanoid/body.js +0 -530
- package/dist/humanoid/clips.d.ts +0 -62
- package/dist/humanoid/clips.d.ts.map +0 -1
- package/dist/humanoid/clips.js +0 -121
- package/dist/humanoid/compose.d.ts +0 -75
- package/dist/humanoid/compose.d.ts.map +0 -1
- package/dist/humanoid/compose.js +0 -176
- package/dist/humanoid/generate.d.ts +0 -92
- package/dist/humanoid/generate.d.ts.map +0 -1
- package/dist/humanoid/generate.js +0 -124
- package/dist/humanoid/index.d.ts +0 -24
- package/dist/humanoid/index.d.ts.map +0 -1
- package/dist/humanoid/index.js +0 -18
- package/dist/humanoid/schema.d.ts +0 -35
- package/dist/humanoid/schema.d.ts.map +0 -1
- package/dist/humanoid/schema.js +0 -87
- package/dist/humanoid/skeleton.d.ts +0 -103
- package/dist/humanoid/skeleton.d.ts.map +0 -1
- package/dist/humanoid/skeleton.js +0 -289
- package/dist/index.d.ts +0 -37
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -30
- package/dist/input/input-manager.d.ts +0 -945
- package/dist/input/input-manager.d.ts.map +0 -1
- package/dist/input/input-manager.js +0 -2207
- package/dist/input/input-types.d.ts +0 -174
- package/dist/input/input-types.d.ts.map +0 -1
- package/dist/input/input-types.js +0 -1
- package/dist/input/prompt-labels.d.ts +0 -21
- package/dist/input/prompt-labels.d.ts.map +0 -1
- package/dist/input/prompt-labels.js +0 -121
- package/dist/input/rebind-controller.d.ts +0 -59
- package/dist/input/rebind-controller.d.ts.map +0 -1
- package/dist/input/rebind-controller.js +0 -85
- package/dist/input/schema.d.ts +0 -16
- package/dist/input/schema.d.ts.map +0 -1
- package/dist/input/schema.js +0 -228
- package/dist/loader.d.ts +0 -43
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -59
- package/dist/manifest/index.d.ts +0 -5
- package/dist/manifest/index.d.ts.map +0 -1
- package/dist/manifest/index.js +0 -8
- package/dist/manifest/load-file.d.ts +0 -4
- package/dist/manifest/load-file.d.ts.map +0 -1
- package/dist/manifest/load-file.js +0 -14
- package/dist/manifest/load.d.ts +0 -144
- package/dist/manifest/load.d.ts.map +0 -1
- package/dist/manifest/load.js +0 -273
- package/dist/manifest/schema.d.ts +0 -230
- package/dist/manifest/schema.d.ts.map +0 -1
- package/dist/manifest/schema.js +0 -394
- package/dist/physics/collision-system.d.ts +0 -41
- package/dist/physics/collision-system.d.ts.map +0 -1
- package/dist/physics/collision-system.js +0 -64
- package/dist/physics/physics-registry.d.ts +0 -45
- package/dist/physics/physics-registry.d.ts.map +0 -1
- package/dist/physics/physics-registry.js +0 -65
- package/dist/physics/transform-writer.d.ts +0 -16
- package/dist/physics/transform-writer.d.ts.map +0 -1
- package/dist/physics/transform-writer.js +0 -38
- package/dist/physics/trigger-dispatch.d.ts +0 -24
- package/dist/physics/trigger-dispatch.d.ts.map +0 -1
- package/dist/physics/trigger-dispatch.js +0 -80
- package/dist/react/game-state.d.ts +0 -156
- package/dist/react/game-state.d.ts.map +0 -1
- package/dist/react/game-state.js +0 -222
- package/dist/react/root-adapter.d.ts +0 -11
- package/dist/react/root-adapter.d.ts.map +0 -1
- package/dist/react/root-adapter.js +0 -41
- package/dist/react/unmanaged-root-detector.d.ts +0 -12
- package/dist/react/unmanaged-root-detector.d.ts.map +0 -1
- package/dist/react/unmanaged-root-detector.js +0 -45
- package/dist/react/use-data.d.ts +0 -60
- package/dist/react/use-data.d.ts.map +0 -1
- package/dist/react/use-data.js +0 -101
- package/dist/react/use-selection.d.ts +0 -75
- package/dist/react/use-selection.d.ts.map +0 -1
- package/dist/react/use-selection.js +0 -90
- package/dist/render/auto-batcher.d.ts +0 -34
- package/dist/render/auto-batcher.d.ts.map +0 -1
- package/dist/render/auto-batcher.js +0 -140
- package/dist/render/render-batch-system.d.ts +0 -33
- package/dist/render/render-batch-system.d.ts.map +0 -1
- package/dist/render/render-batch-system.js +0 -230
- package/dist/render/render-features.d.ts +0 -47
- package/dist/render/render-features.d.ts.map +0 -1
- package/dist/render/render-features.js +0 -105
- package/dist/render/render-settings.d.ts +0 -36
- package/dist/render/render-settings.d.ts.map +0 -1
- package/dist/render/render-settings.js +0 -51
- package/dist/runtime/create-runtime.d.ts +0 -249
- package/dist/runtime/create-runtime.d.ts.map +0 -1
- package/dist/runtime/create-runtime.js +0 -641
- package/dist/runtime/debug-bridge.d.ts +0 -257
- package/dist/runtime/debug-bridge.d.ts.map +0 -1
- package/dist/runtime/debug-bridge.js +0 -224
- package/dist/runtime/debug-registry.d.ts +0 -288
- package/dist/runtime/debug-registry.d.ts.map +0 -1
- package/dist/runtime/debug-registry.js +0 -513
- package/dist/runtime/frame-selector-cache.d.ts +0 -41
- package/dist/runtime/frame-selector-cache.d.ts.map +0 -1
- package/dist/runtime/frame-selector-cache.js +0 -65
- package/dist/runtime/game.d.ts +0 -496
- package/dist/runtime/game.d.ts.map +0 -1
- package/dist/runtime/game.js +0 -741
- package/dist/runtime/gameplay-rng-trap.d.ts +0 -48
- package/dist/runtime/gameplay-rng-trap.d.ts.map +0 -1
- package/dist/runtime/gameplay-rng-trap.js +0 -96
- package/dist/runtime/input-router.d.ts +0 -78
- package/dist/runtime/input-router.d.ts.map +0 -1
- package/dist/runtime/input-router.js +0 -171
- package/dist/runtime/mount-game.d.ts +0 -129
- package/dist/runtime/mount-game.d.ts.map +0 -1
- package/dist/runtime/mount-game.js +0 -152
- package/dist/runtime/mount-manifest.d.ts +0 -173
- package/dist/runtime/mount-manifest.d.ts.map +0 -1
- package/dist/runtime/mount-manifest.js +0 -297
- package/dist/runtime/render-audio-control.d.ts +0 -110
- package/dist/runtime/render-audio-control.d.ts.map +0 -1
- package/dist/runtime/render-audio-control.js +0 -111
- package/dist/runtime/render-control.d.ts +0 -291
- package/dist/runtime/render-control.d.ts.map +0 -1
- package/dist/runtime/render-control.js +0 -264
- package/dist/runtime/render-seed.d.ts +0 -57
- package/dist/runtime/render-seed.d.ts.map +0 -1
- package/dist/runtime/render-seed.js +0 -74
- package/dist/runtime/state-bridge.d.ts +0 -61
- package/dist/runtime/state-bridge.d.ts.map +0 -1
- package/dist/runtime/state-bridge.js +0 -63
- package/dist/runtime/types.d.ts +0 -253
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/runtime/types.js +0 -1
- package/dist/scene/asset-loaders.d.ts +0 -79
- package/dist/scene/asset-loaders.d.ts.map +0 -1
- package/dist/scene/asset-loaders.js +0 -141
- package/dist/scene/asset-paths.d.ts +0 -11
- package/dist/scene/asset-paths.d.ts.map +0 -1
- package/dist/scene/asset-paths.js +0 -108
- package/dist/scene/asset-ref-check.d.ts +0 -88
- package/dist/scene/asset-ref-check.d.ts.map +0 -1
- package/dist/scene/asset-ref-check.js +0 -214
- package/dist/scene/asset-registry.d.ts +0 -38
- package/dist/scene/asset-registry.d.ts.map +0 -1
- package/dist/scene/asset-registry.js +0 -66
- package/dist/scene/collider-dimensions.d.ts +0 -63
- package/dist/scene/collider-dimensions.d.ts.map +0 -1
- package/dist/scene/collider-dimensions.js +0 -98
- package/dist/scene/component-registry.d.ts +0 -22
- package/dist/scene/component-registry.d.ts.map +0 -1
- package/dist/scene/component-registry.js +0 -37
- package/dist/scene/defaults.d.ts +0 -252
- package/dist/scene/defaults.d.ts.map +0 -1
- package/dist/scene/defaults.js +0 -151
- package/dist/scene/geometries/index.d.ts +0 -8
- package/dist/scene/geometries/index.d.ts.map +0 -1
- package/dist/scene/geometries/index.js +0 -7
- package/dist/scene/geometries/terrain.d.ts +0 -2
- package/dist/scene/geometries/terrain.d.ts.map +0 -1
- package/dist/scene/geometries/terrain.js +0 -37
- package/dist/scene/geometry-registry.d.ts +0 -24
- package/dist/scene/geometry-registry.d.ts.map +0 -1
- package/dist/scene/geometry-registry.js +0 -20
- package/dist/scene/instance-registry.d.ts +0 -36
- package/dist/scene/instance-registry.d.ts.map +0 -1
- package/dist/scene/instance-registry.js +0 -55
- package/dist/scene/instancers/grid.d.ts +0 -2
- package/dist/scene/instancers/grid.d.ts.map +0 -1
- package/dist/scene/instancers/grid.js +0 -36
- package/dist/scene/instancers/index.d.ts +0 -8
- package/dist/scene/instancers/index.d.ts.map +0 -1
- package/dist/scene/instancers/index.js +0 -7
- package/dist/scene/light-camera-factory.d.ts +0 -23
- package/dist/scene/light-camera-factory.d.ts.map +0 -1
- package/dist/scene/light-camera-factory.js +0 -68
- package/dist/scene/material-factory.d.ts +0 -17
- package/dist/scene/material-factory.d.ts.map +0 -1
- package/dist/scene/material-factory.js +0 -197
- package/dist/scene/material-registry.d.ts +0 -40
- package/dist/scene/material-registry.d.ts.map +0 -1
- package/dist/scene/material-registry.js +0 -44
- package/dist/scene/materials/index.d.ts +0 -8
- package/dist/scene/materials/index.d.ts.map +0 -1
- package/dist/scene/materials/index.js +0 -7
- package/dist/scene/materials/water.d.ts +0 -2
- package/dist/scene/materials/water.d.ts.map +0 -1
- package/dist/scene/materials/water.js +0 -54
- package/dist/scene/parse.d.ts +0 -23
- package/dist/scene/parse.d.ts.map +0 -1
- package/dist/scene/parse.js +0 -179
- package/dist/scene/particles-factory.d.ts +0 -33
- package/dist/scene/particles-factory.d.ts.map +0 -1
- package/dist/scene/particles-factory.js +0 -282
- package/dist/scene/scene-apply.d.ts +0 -109
- package/dist/scene/scene-apply.d.ts.map +0 -1
- package/dist/scene/scene-apply.js +0 -370
- package/dist/scene/scene-diff-schema.d.ts +0 -285
- package/dist/scene/scene-diff-schema.d.ts.map +0 -1
- package/dist/scene/scene-diff-schema.js +0 -92
- package/dist/scene/scene-diff-types.d.ts +0 -40
- package/dist/scene/scene-diff-types.d.ts.map +0 -1
- package/dist/scene/scene-diff-types.js +0 -14
- package/dist/scene/scene-loader.d.ts +0 -167
- package/dist/scene/scene-loader.d.ts.map +0 -1
- package/dist/scene/scene-loader.js +0 -1211
- package/dist/scene/scene-query.d.ts +0 -11
- package/dist/scene/scene-query.d.ts.map +0 -1
- package/dist/scene/scene-query.js +0 -63
- package/dist/scene/scene-types.d.ts +0 -10
- package/dist/scene/scene-types.d.ts.map +0 -1
- package/dist/scene/scene-types.js +0 -8
- package/dist/scene/scene-version.d.ts +0 -26
- package/dist/scene/scene-version.d.ts.map +0 -1
- package/dist/scene/scene-version.js +0 -34
- package/dist/scene/schema/animation.d.ts +0 -8
- package/dist/scene/schema/animation.d.ts.map +0 -1
- package/dist/scene/schema/animation.js +0 -42
- package/dist/scene/schema/audio.d.ts +0 -13
- package/dist/scene/schema/audio.d.ts.map +0 -1
- package/dist/scene/schema/audio.js +0 -22
- package/dist/scene/schema/camera.d.ts +0 -28
- package/dist/scene/schema/camera.d.ts.map +0 -1
- package/dist/scene/schema/camera.js +0 -17
- package/dist/scene/schema/collider.d.ts +0 -40
- package/dist/scene/schema/collider.d.ts.map +0 -1
- package/dist/scene/schema/collider.js +0 -55
- package/dist/scene/schema/entity-ref.d.ts +0 -31
- package/dist/scene/schema/entity-ref.d.ts.map +0 -1
- package/dist/scene/schema/entity-ref.js +0 -61
- package/dist/scene/schema/entity.d.ts +0 -1036
- package/dist/scene/schema/entity.d.ts.map +0 -1
- package/dist/scene/schema/entity.js +0 -153
- package/dist/scene/schema/environment.d.ts +0 -425
- package/dist/scene/schema/environment.d.ts.map +0 -1
- package/dist/scene/schema/environment.js +0 -357
- package/dist/scene/schema/index.d.ts +0 -37
- package/dist/scene/schema/index.d.ts.map +0 -1
- package/dist/scene/schema/index.js +0 -19
- package/dist/scene/schema/instances.d.ts +0 -14
- package/dist/scene/schema/instances.d.ts.map +0 -1
- package/dist/scene/schema/instances.js +0 -28
- package/dist/scene/schema/joint.d.ts +0 -23
- package/dist/scene/schema/joint.d.ts.map +0 -1
- package/dist/scene/schema/joint.js +0 -23
- package/dist/scene/schema/light.d.ts +0 -38
- package/dist/scene/schema/light.d.ts.map +0 -1
- package/dist/scene/schema/light.js +0 -26
- package/dist/scene/schema/material.d.ts +0 -199
- package/dist/scene/schema/material.d.ts.map +0 -1
- package/dist/scene/schema/material.js +0 -103
- package/dist/scene/schema/mesh.d.ts +0 -48
- package/dist/scene/schema/mesh.d.ts.map +0 -1
- package/dist/scene/schema/mesh.js +0 -82
- package/dist/scene/schema/particles.d.ts +0 -2178
- package/dist/scene/schema/particles.d.ts.map +0 -1
- package/dist/scene/schema/particles.js +0 -321
- package/dist/scene/schema/physics.d.ts +0 -56
- package/dist/scene/schema/physics.d.ts.map +0 -1
- package/dist/scene/schema/physics.js +0 -37
- package/dist/scene/schema/scene-file.d.ts +0 -303
- package/dist/scene/schema/scene-file.d.ts.map +0 -1
- package/dist/scene/schema/scene-file.js +0 -256
- package/dist/scene/schema/shadow.d.ts +0 -28
- package/dist/scene/schema/shadow.d.ts.map +0 -1
- package/dist/scene/schema/shadow.js +0 -20
- package/dist/scene/schema/spline.d.ts +0 -25
- package/dist/scene/schema/spline.d.ts.map +0 -1
- package/dist/scene/schema/spline.js +0 -15
- package/dist/scene/schema/tuples.d.ts +0 -12
- package/dist/scene/schema/tuples.d.ts.map +0 -1
- package/dist/scene/schema/tuples.js +0 -14
- package/dist/scene/user-data.d.ts +0 -185
- package/dist/scene/user-data.d.ts.map +0 -1
- package/dist/scene/user-data.js +0 -144
- package/dist/setup/setup-audio.d.ts +0 -20
- package/dist/setup/setup-audio.d.ts.map +0 -1
- package/dist/setup/setup-audio.js +0 -41
- package/dist/setup/setup-particles.d.ts +0 -17
- package/dist/setup/setup-particles.d.ts.map +0 -1
- package/dist/setup/setup-particles.js +0 -16
- package/dist/setup/setup-physics.d.ts +0 -25
- package/dist/setup/setup-physics.d.ts.map +0 -1
- package/dist/setup/setup-physics.js +0 -51
- package/dist/setup/setup-renderer.d.ts +0 -69
- package/dist/setup/setup-renderer.d.ts.map +0 -1
- package/dist/setup/setup-renderer.js +0 -363
- package/dist/tools/define-tool.d.ts +0 -130
- package/dist/tools/define-tool.d.ts.map +0 -1
- package/dist/tools/define-tool.js +0 -96
- package/dist/world2d/authoring-2d.d.ts +0 -80
- package/dist/world2d/authoring-2d.d.ts.map +0 -1
- package/dist/world2d/authoring-2d.js +0 -195
- package/dist/world2d/capture-to-scene2d.d.ts +0 -5
- package/dist/world2d/capture-to-scene2d.d.ts.map +0 -1
- package/dist/world2d/capture-to-scene2d.js +0 -49
- package/dist/world2d/collision-2d.d.ts +0 -52
- package/dist/world2d/collision-2d.d.ts.map +0 -1
- package/dist/world2d/collision-2d.js +0 -70
- package/dist/world2d/components-2d.d.ts +0 -47
- package/dist/world2d/components-2d.d.ts.map +0 -1
- package/dist/world2d/components-2d.js +0 -77
- package/dist/world2d/index.d.ts +0 -34
- package/dist/world2d/index.d.ts.map +0 -1
- package/dist/world2d/index.js +0 -32
- package/dist/world2d/ingest-iframe-2d.d.ts +0 -82
- package/dist/world2d/ingest-iframe-2d.d.ts.map +0 -1
- package/dist/world2d/ingest-iframe-2d.js +0 -166
- package/dist/world2d/ingest2d.d.ts +0 -97
- package/dist/world2d/ingest2d.d.ts.map +0 -1
- package/dist/world2d/ingest2d.js +0 -40
- package/dist/world2d/physics2d-registry.d.ts +0 -24
- package/dist/world2d/physics2d-registry.d.ts.map +0 -1
- package/dist/world2d/physics2d-registry.js +0 -38
- package/dist/world2d/pixi-game-adapter.d.ts +0 -107
- package/dist/world2d/pixi-game-adapter.d.ts.map +0 -1
- package/dist/world2d/pixi-game-adapter.js +0 -210
- package/dist/world2d/pixi-surface.d.ts +0 -39
- package/dist/world2d/pixi-surface.d.ts.map +0 -1
- package/dist/world2d/pixi-surface.js +0 -47
- package/dist/world2d/scene-capture-2d.d.ts +0 -43
- package/dist/world2d/scene-capture-2d.d.ts.map +0 -1
- package/dist/world2d/scene-capture-2d.js +0 -92
- package/dist/world2d/scene2d-loader.d.ts +0 -27
- package/dist/world2d/scene2d-loader.d.ts.map +0 -1
- package/dist/world2d/scene2d-loader.js +0 -275
- package/dist/world2d/schema/entity2d.d.ts +0 -102
- package/dist/world2d/schema/entity2d.d.ts.map +0 -1
- package/dist/world2d/schema/entity2d.js +0 -119
- package/dist/world2d/schema/physics2d.d.ts +0 -46
- package/dist/world2d/schema/physics2d.d.ts.map +0 -1
- package/dist/world2d/schema/physics2d.js +0 -45
- package/dist/world2d/schema/sprite.d.ts +0 -42
- package/dist/world2d/schema/sprite.d.ts.map +0 -1
- package/dist/world2d/schema/sprite.js +0 -63
- package/dist/world2d/schema/tilemap.d.ts +0 -15
- package/dist/world2d/schema/tilemap.d.ts.map +0 -1
- package/dist/world2d/schema/tilemap.js +0 -19
- package/dist/world2d/schema/tuples2d.d.ts +0 -20
- package/dist/world2d/schema/tuples2d.d.ts.map +0 -1
- package/dist/world2d/schema/tuples2d.js +0 -19
- package/dist/world2d/system-adapters-2d.d.ts +0 -16
- package/dist/world2d/system-adapters-2d.d.ts.map +0 -1
- package/dist/world2d/system-adapters-2d.js +0 -37
- package/dist/world2d/transform-writer-2d.d.ts +0 -16
- package/dist/world2d/transform-writer-2d.d.ts.map +0 -1
- package/dist/world2d/transform-writer-2d.js +0 -22
- package/dist/world2d/types.d.ts +0 -59
- package/dist/world2d/types.d.ts.map +0 -1
- package/dist/world2d/types.js +0 -1
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Package-contributed Project Command for baking the procedural humanoid into
|
|
3
|
-
* ordinary project assets. The editor discovers this module through
|
|
4
|
-
* @vgai/engine's package.json; the editor itself contains no humanoid branch.
|
|
5
|
-
*/
|
|
6
|
-
import { createHash } from 'node:crypto';
|
|
7
|
-
import { readFile, realpath } from 'node:fs/promises';
|
|
8
|
-
import { dirname, resolve, sep } from 'node:path';
|
|
9
|
-
import { GLTFExporter } from 'three/addons/exporters/GLTFExporter.js';
|
|
10
|
-
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
|
|
11
|
-
import { z } from 'zod';
|
|
12
|
-
import { createHumanoidClipLibrary, retargetClipToHumanoid } from './clips';
|
|
13
|
-
import { generateHumanoid } from './generate';
|
|
14
|
-
import { HumanoidParamsSchema } from './schema';
|
|
15
|
-
const InputSchema = z.object({
|
|
16
|
-
name: z
|
|
17
|
-
.string()
|
|
18
|
-
.regex(/^[a-z0-9][a-z0-9-_]{0,63}$/)
|
|
19
|
-
.default('humanoid')
|
|
20
|
-
.describe('Stable lowercase asset name used for the generated GLB, prefab, and provenance files.'),
|
|
21
|
-
params: HumanoidParamsSchema.default(HumanoidParamsSchema.parse({})).describe('Procedural body proportions.'),
|
|
22
|
-
clipSource: z
|
|
23
|
-
.string()
|
|
24
|
-
.optional()
|
|
25
|
-
.describe('Optional project-public GLB path containing Mixamo-named clips. When supplied, Idle, Walk, and Run are retargeted and baked into the generated humanoid GLB.'),
|
|
26
|
-
clipNames: z
|
|
27
|
-
.array(z.string())
|
|
28
|
-
.min(1)
|
|
29
|
-
.default(['Idle', 'Walk', 'Run'])
|
|
30
|
-
.describe('Exact standard clip names to retarget from clipSource.'),
|
|
31
|
-
dryRun: z
|
|
32
|
-
.boolean()
|
|
33
|
-
.default(false)
|
|
34
|
-
.describe('Generate and validate the complete output batch without writing project files.'),
|
|
35
|
-
});
|
|
36
|
-
const OutputFileSchema = z.object({
|
|
37
|
-
path: z.string(),
|
|
38
|
-
bytes: z.number(),
|
|
39
|
-
mediaType: z.string().optional(),
|
|
40
|
-
role: z.enum(['asset', 'prefab', 'provenance', 'other']).optional(),
|
|
41
|
-
});
|
|
42
|
-
const ResultSchema = z.object({
|
|
43
|
-
model: z.string(),
|
|
44
|
-
prefab: z.string(),
|
|
45
|
-
provenance: z.string(),
|
|
46
|
-
vertexCount: z.number(),
|
|
47
|
-
clips: z.array(z.string()),
|
|
48
|
-
files: z.array(OutputFileSchema),
|
|
49
|
-
totalBytes: z.number(),
|
|
50
|
-
dryRun: z.boolean(),
|
|
51
|
-
});
|
|
52
|
-
function installNodeThreePolyfills() {
|
|
53
|
-
const target = globalThis;
|
|
54
|
-
if (!target['self'])
|
|
55
|
-
target['self'] = globalThis;
|
|
56
|
-
if (!target['ProgressEvent']) {
|
|
57
|
-
target['ProgressEvent'] = class {
|
|
58
|
-
type;
|
|
59
|
-
constructor(type, init = {}) {
|
|
60
|
-
this.type = type;
|
|
61
|
-
Object.assign(this, init);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
if (!target['createImageBitmap']) {
|
|
66
|
-
target['createImageBitmap'] = async () => ({ close() { } });
|
|
67
|
-
}
|
|
68
|
-
if (!target['FileReader']) {
|
|
69
|
-
target['FileReader'] = class {
|
|
70
|
-
result = null;
|
|
71
|
-
onloadend = null;
|
|
72
|
-
readAsArrayBuffer(blob) {
|
|
73
|
-
void blob.arrayBuffer().then((value) => {
|
|
74
|
-
this.result = value;
|
|
75
|
-
this.onloadend?.();
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
readAsDataURL(blob) {
|
|
79
|
-
void blob.arrayBuffer().then((value) => {
|
|
80
|
-
this.result = `data:${blob.type || 'application/octet-stream'};base64,${Buffer.from(value).toString('base64')}`;
|
|
81
|
-
this.onloadend?.();
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
async function resolvePublicFile(projectRoot, path) {
|
|
88
|
-
const relativePath = path.replace(/^\//, '');
|
|
89
|
-
const publicRoot = await realpath(resolve(projectRoot, 'public'));
|
|
90
|
-
const candidate = await realpath(resolve(publicRoot, relativePath));
|
|
91
|
-
if (candidate !== publicRoot && !candidate.startsWith(`${publicRoot}${sep}`)) {
|
|
92
|
-
throw new Error(`clipSource must resolve inside the project's public/ directory: ${path}`);
|
|
93
|
-
}
|
|
94
|
-
return candidate;
|
|
95
|
-
}
|
|
96
|
-
async function loadRetargetedClips(projectRoot, sourcePath, names, rig) {
|
|
97
|
-
installNodeThreePolyfills();
|
|
98
|
-
const absolute = await resolvePublicFile(projectRoot, sourcePath);
|
|
99
|
-
const bytes = await readFile(absolute);
|
|
100
|
-
const arrayBuffer = bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
101
|
-
const gltf = await new GLTFLoader().parseAsync(arrayBuffer, `${dirname(absolute)}${sep}`);
|
|
102
|
-
const library = createHumanoidClipLibrary(gltf.animations);
|
|
103
|
-
const clips = names.map((name) => {
|
|
104
|
-
const clip = retargetClipToHumanoid(library.get(name), rig);
|
|
105
|
-
clip.name = name;
|
|
106
|
-
return clip;
|
|
107
|
-
});
|
|
108
|
-
gltf.scene.traverse((object) => {
|
|
109
|
-
const mesh = object;
|
|
110
|
-
mesh.geometry?.dispose();
|
|
111
|
-
for (const material of Array.isArray(mesh.material)
|
|
112
|
-
? mesh.material
|
|
113
|
-
: mesh.material
|
|
114
|
-
? [mesh.material]
|
|
115
|
-
: []) {
|
|
116
|
-
material.dispose();
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
return { clips, sourceSha256: createHash('sha256').update(bytes).digest('hex') };
|
|
120
|
-
}
|
|
121
|
-
async function exportGlb(root, animations) {
|
|
122
|
-
installNodeThreePolyfills();
|
|
123
|
-
const result = await new Promise((resolveResult, reject) => {
|
|
124
|
-
new GLTFExporter().parse(root, (value) => {
|
|
125
|
-
if (value instanceof ArrayBuffer)
|
|
126
|
-
resolveResult(value);
|
|
127
|
-
else
|
|
128
|
-
reject(new Error('GLTFExporter returned JSON while binary output was requested.'));
|
|
129
|
-
}, reject, {
|
|
130
|
-
binary: true,
|
|
131
|
-
animations,
|
|
132
|
-
onlyVisible: false,
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
return new Uint8Array(result);
|
|
136
|
-
}
|
|
137
|
-
export const operation = {
|
|
138
|
-
name: 'project.humanoid.bake',
|
|
139
|
-
summary: 'Bake a procedural humanoid into an ordinary GLB asset and prefab.',
|
|
140
|
-
description: 'Generates VGAI’s skinned procedural humanoid from body parameters. Optionally retargets ' +
|
|
141
|
-
'Mixamo-named clips from a project-public GLB, then atomically writes the generated GLB, ' +
|
|
142
|
-
'a normal .prefab.json referencing it, and reproducibility provenance. Use the prefab as ' +
|
|
143
|
-
'the authored scene object; do not regenerate the visible body every gameplay run. The ' +
|
|
144
|
-
'baked body keeps the multicolored engineering-reference material: it is not a styled ' +
|
|
145
|
-
'production character. A prominent player character should receive an intentional, ' +
|
|
146
|
-
'project-owned material/composition treatment unless that reference look is deliberate.',
|
|
147
|
-
input: InputSchema,
|
|
148
|
-
result: ResultSchema,
|
|
149
|
-
errors: [],
|
|
150
|
-
requires: { project: true },
|
|
151
|
-
host: 'node',
|
|
152
|
-
mutates: true,
|
|
153
|
-
supportsDryRun: true,
|
|
154
|
-
longRunning: true,
|
|
155
|
-
permission: {
|
|
156
|
-
risk: 'write',
|
|
157
|
-
summary: 'Writes or replaces generated model, prefab, and provenance files under public/.',
|
|
158
|
-
},
|
|
159
|
-
async impl(input, ctx) {
|
|
160
|
-
if (!ctx.projectRoot || !ctx.projectOutputs) {
|
|
161
|
-
throw new Error('project.humanoid.bake requires a project root and generated-output writer.');
|
|
162
|
-
}
|
|
163
|
-
if (ctx.signal?.aborted)
|
|
164
|
-
throw new Error('project.humanoid.bake was cancelled.');
|
|
165
|
-
const rig = generateHumanoid(input.params);
|
|
166
|
-
try {
|
|
167
|
-
const loaded = input.clipSource
|
|
168
|
-
? await loadRetargetedClips(ctx.projectRoot, input.clipSource, input.clipNames, rig)
|
|
169
|
-
: { clips: [], sourceSha256: null };
|
|
170
|
-
const glb = await exportGlb(rig.root, loaded.clips);
|
|
171
|
-
const base = input.name;
|
|
172
|
-
const model = `public/models/generated/${base}.glb`;
|
|
173
|
-
const prefab = `public/prefabs/generated/${base}.prefab.json`;
|
|
174
|
-
const provenance = `public/models/generated/${base}.provenance.json`;
|
|
175
|
-
const modelUrl = `/models/generated/${base}.glb`;
|
|
176
|
-
const prefabDocument = {
|
|
177
|
-
version: 1,
|
|
178
|
-
name: base,
|
|
179
|
-
root: {
|
|
180
|
-
name: base,
|
|
181
|
-
mesh: { type: 'gltf', src: modelUrl },
|
|
182
|
-
...(loaded.clips.length > 0 ? { animation: {} } : {}),
|
|
183
|
-
shadow: { enabled: true },
|
|
184
|
-
},
|
|
185
|
-
};
|
|
186
|
-
const provenanceDocument = {
|
|
187
|
-
version: 1,
|
|
188
|
-
generator: '@vgai/engine:project.humanoid.bake',
|
|
189
|
-
params: rig.params,
|
|
190
|
-
clipSource: input.clipSource ?? null,
|
|
191
|
-
clipSourceSha256: loaded.sourceSha256,
|
|
192
|
-
clips: loaded.clips.map((clip) => clip.name),
|
|
193
|
-
modelSha256: createHash('sha256').update(glb).digest('hex'),
|
|
194
|
-
};
|
|
195
|
-
const output = await ctx.projectOutputs.write([
|
|
196
|
-
{
|
|
197
|
-
path: model,
|
|
198
|
-
content: glb,
|
|
199
|
-
mediaType: 'model/gltf-binary',
|
|
200
|
-
role: 'asset',
|
|
201
|
-
},
|
|
202
|
-
{
|
|
203
|
-
path: prefab,
|
|
204
|
-
content: `${JSON.stringify(prefabDocument, null, 2)}\n`,
|
|
205
|
-
mediaType: 'application/json',
|
|
206
|
-
role: 'prefab',
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
path: provenance,
|
|
210
|
-
content: `${JSON.stringify(provenanceDocument, null, 2)}\n`,
|
|
211
|
-
mediaType: 'application/json',
|
|
212
|
-
role: 'provenance',
|
|
213
|
-
},
|
|
214
|
-
], { dryRun: input.dryRun });
|
|
215
|
-
return {
|
|
216
|
-
model,
|
|
217
|
-
prefab,
|
|
218
|
-
provenance,
|
|
219
|
-
vertexCount: rig.vertexCount,
|
|
220
|
-
clips: loaded.clips.map((clip) => clip.name),
|
|
221
|
-
...output,
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
finally {
|
|
225
|
-
rig.dispose();
|
|
226
|
-
}
|
|
227
|
-
},
|
|
228
|
-
};
|
package/dist/humanoid/body.d.ts
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The procedural humanoid BODY: entirely procedural three.js geometry
|
|
3
|
-
* (capsules + one pelvis box via `CapsuleGeometry`/`BoxGeometry`, merged with
|
|
4
|
-
* `BufferGeometryUtils.mergeGeometries` into ONE `SkinnedMesh`). No imported
|
|
5
|
-
* mesh anywhere. Promoted from the accepted Phase-1 PoC
|
|
6
|
-
* (`packages/engine/e2e/humanoid-skin-proof/procedural-body.ts`) and
|
|
7
|
-
* parameterized by body dimensions — with all-default dims the output is
|
|
8
|
-
* bit-identical to the PoC body.
|
|
9
|
-
*
|
|
10
|
-
* Skin binding is **analytic per-segment with smooth 2-bone joint blending**:
|
|
11
|
-
* every body part is generated along one bone segment (proximal joint →
|
|
12
|
-
* distal joint, both known a priori from the rest pose), so each vertex's
|
|
13
|
-
* normalized position `t` along the bone axis is exact — no nearest-bone
|
|
14
|
-
* search, no heuristic falloff radius. Vertices in the interior of a segment
|
|
15
|
-
* bind 100% to that segment's bone; vertices inside a blend zone at either
|
|
16
|
-
* end split weight smoothstep-wise with the adjacent bone, reaching 50/50 at
|
|
17
|
-
* (and past) the joint itself. This is the standard cure for the two classic
|
|
18
|
-
* rigid-binding artifacts: gaps/interpenetration at elbows/knees (fixed by
|
|
19
|
-
* the overshoot + 50/50 blend across the joint) and hard shading creases
|
|
20
|
-
* (fixed by the smoothstep ramp). Because the blend zone is derived from the
|
|
21
|
-
* ACTUAL joint positions of the (possibly rescaled) skeleton, weights stay
|
|
22
|
-
* correct as body proportions change. Two influences per vertex is enough
|
|
23
|
-
* for a capsule-limb body; the vertex format still uses the standard 4-wide
|
|
24
|
-
* skinIndex/skinWeight attributes, zero-padded, exactly as GLTF skins do.
|
|
25
|
-
*/
|
|
26
|
-
import * as THREE from 'three';
|
|
27
|
-
import type { BuiltSkeleton } from './skeleton';
|
|
28
|
-
/** The head capsule's reference radius — `generate.ts` feeds this (× headSize)
|
|
29
|
-
* to the skeleton height normalization as the crown padding. */
|
|
30
|
-
export declare const HEAD_CAPSULE_RADIUS: number;
|
|
31
|
-
/** Body dimension multipliers, resolved by `generate.ts` from the params. */
|
|
32
|
-
export interface HumanoidBodyDims {
|
|
33
|
-
/** The skeleton's uniform height factor — every base metre scales by this. */
|
|
34
|
-
heightFactor: number;
|
|
35
|
-
limbThickness: number;
|
|
36
|
-
torsoGirth: number;
|
|
37
|
-
headSize: number;
|
|
38
|
-
hipWidth: number;
|
|
39
|
-
}
|
|
40
|
-
export declare const smoothstep: (x: number) => number;
|
|
41
|
-
/** Blend-zone length as a fraction of a segment (≈10 cm at reference scale,
|
|
42
|
-
* clamped to 20–50% of the segment) — shared verbatim by the body generator
|
|
43
|
-
* and `skinToHumanoid` so clothing gets the SAME joint blend as the body. */
|
|
44
|
-
export declare const blendZone: (len: number, heightFactor: number) => number;
|
|
45
|
-
/** One merged-body part's vertex range + the bones its weights may reference —
|
|
46
|
-
* the segment-adjacency contract the unit tests verify. */
|
|
47
|
-
export interface HumanoidBodyPart {
|
|
48
|
-
name: string;
|
|
49
|
-
/** skinIndex values every non-zero-weight influence in the range must use. */
|
|
50
|
-
boneIndices: readonly number[];
|
|
51
|
-
vertexStart: number;
|
|
52
|
-
vertexCount: number;
|
|
53
|
-
}
|
|
54
|
-
export interface HumanoidBody {
|
|
55
|
-
mesh: THREE.SkinnedMesh;
|
|
56
|
-
skeleton: THREE.Skeleton;
|
|
57
|
-
vertexCount: number;
|
|
58
|
-
parts: readonly HumanoidBodyPart[];
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Build the whole body as ONE merged `SkinnedMesh` in the rig root's space
|
|
62
|
-
* (the skeleton's rest pose), and bind it. Callers must have called
|
|
63
|
-
* `updateMatrixWorld(true)` on the armature's parent after adding the bone
|
|
64
|
-
* hierarchy, so every bone's `matrixWorld` is its rest pose —
|
|
65
|
-
* `new THREE.Skeleton(bones)` captures the inverse bind matrices from
|
|
66
|
-
* exactly those.
|
|
67
|
-
*/
|
|
68
|
-
export declare function buildHumanoidBody(rig: BuiltSkeleton, dims: HumanoidBodyDims, material?: THREE.Material): HumanoidBody;
|
|
69
|
-
/** One skin-binding segment of the standard body, resolved against a concrete
|
|
70
|
-
* rest pose: the analytic per-segment data `skinToHumanoid` shares with the
|
|
71
|
-
* body generator so arbitrary clothing geometry deforms EXACTLY like the
|
|
72
|
-
* body part underneath it. Not part of the public module surface. */
|
|
73
|
-
export interface HumanoidBindingSegment {
|
|
74
|
-
/** Primary bone row (the skinIndex value). */
|
|
75
|
-
bone: number;
|
|
76
|
-
/** Blend-partner rows near t=0 / t=1 (-1 = rigid end). */
|
|
77
|
-
proximal: number;
|
|
78
|
-
distal: number;
|
|
79
|
-
/** Proximal joint rest position, model-space metres. */
|
|
80
|
-
p0: THREE.Vector3;
|
|
81
|
-
/** Unit axis p0→p1 (p1 = distal joint) and the joint-to-joint length. */
|
|
82
|
-
axis: THREE.Vector3;
|
|
83
|
-
len: number;
|
|
84
|
-
/** Normalized blend-zone length (the body's own `blendZone` value). */
|
|
85
|
-
blend: number;
|
|
86
|
-
/** The body part's surface radius, metres — nearest-segment selection
|
|
87
|
-
* measures distance to the SURFACE so loose clothing picks the part it
|
|
88
|
-
* visually covers, not merely the closest bone axis. */
|
|
89
|
-
radius: number;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Resolve the body's segment map (plus one synthetic rigid pelvis segment —
|
|
93
|
-
* the pelvis box binds 100% to Hips, and belts/skirts must get the same
|
|
94
|
-
* anchor to stay congruent with it) against a concrete rest pose.
|
|
95
|
-
* Parameterized on lookups rather than `BuiltSkeleton` because the compose
|
|
96
|
-
* path recovers rest joints from `Skeleton.boneInverses` (bones may be
|
|
97
|
-
* mid-animation by then), while the generator reads live rest matrices.
|
|
98
|
-
* `jointAt` must return a FRESH Vector3 per call (results are mutated here).
|
|
99
|
-
*/
|
|
100
|
-
export declare function computeBindingSegments(jointAt: (name: string) => THREE.Vector3, indexOf: (name: string) => number, dims: HumanoidBodyDims): HumanoidBindingSegment[];
|
|
101
|
-
//# sourceMappingURL=body.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/humanoid/body.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAuShD;iEACiE;AACjE,eAAO,MAAM,mBAAmB,QACmC,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,MAGtC,CAAC;AAEF;;8EAE8E;AAC9E,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,cAAc,MAAM,KAAG,MACJ,CAAC;AAuI3D;4DAC4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACpC;AAeD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,gBAAgB,EACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,GACxB,YAAY,CA0Dd;AAID;;;sEAGsE;AACtE,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC;IAClB,yEAAyE;IACzE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd;;6DAEyD;IACzD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,OAAO,EACxC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EACjC,IAAI,EAAE,gBAAgB,GACrB,sBAAsB,EAAE,CAwC1B"}
|