@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,235 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* D4 — the Theatre "Director" convention (spec §10 D4, §5.3, §3.2).
|
|
3
|
-
*
|
|
4
|
-
* A `Director` is an ordinary Theatre Sheet Object, authored with Theatre's
|
|
5
|
-
* NATIVE `types.stringLiteral`/`types.boolean` vocabulary exactly as shown in
|
|
6
|
-
* spec §5.3 — this module never wraps or renames that API. It is a
|
|
7
|
-
* *convention* (a documented, stable shape) plus a thin binding, not a new
|
|
8
|
-
* animation format:
|
|
9
|
-
*
|
|
10
|
-
* ```ts
|
|
11
|
-
* import { types } from '@theatre/core';
|
|
12
|
-
* const director = sheet.object('Director', {
|
|
13
|
-
* activeCamera: types.stringLiteral('wide', { wide: 'wide', close: 'close', gameplay: 'gameplay' }),
|
|
14
|
-
* shot: types.stringLiteral('opening', { opening: 'opening', reveal: 'reveal', ending: 'ending' }),
|
|
15
|
-
* letterbox: types.boolean(false),
|
|
16
|
-
* // extensible: any additional directorial prop is carried through verbatim
|
|
17
|
-
* // as `DirectorState.extras`, e.g.:
|
|
18
|
-
* blendSeconds: types.number(0, { range: [0, Infinity] }),
|
|
19
|
-
* });
|
|
20
|
-
* ```
|
|
21
|
-
*
|
|
22
|
-
* `activeCamera`/`shot`/`letterbox` are required by the convention (spec §10
|
|
23
|
-
* D4 AC: "covers active camera, shot ID, letterbox, and optional directorial
|
|
24
|
-
* properties"). Anything else declared on the same Theatre object (exposure,
|
|
25
|
-
* grade, a blend-duration prop, ...) is an "optional directorial property" —
|
|
26
|
-
* it is read and surfaced verbatim through `DirectorState.extras`, never
|
|
27
|
-
* hardcoded here, which is what keeps the convention extensible without
|
|
28
|
-
* VGAI inventing a schema for it.
|
|
29
|
-
*
|
|
30
|
-
* ## Binding: pull-based, same lockstep pattern as D2/D3
|
|
31
|
-
*
|
|
32
|
-
* `bindDirectorToClock` follows exactly the `theatre-clock-binding.ts` /
|
|
33
|
-
* `theatre-object-binding.ts` pattern: it reads the Director object's
|
|
34
|
-
* pull-based `sheetObject.value` on every canonical-clock crossing (never
|
|
35
|
-
* Theatre's own batched `onValuesChange` push channel — see those modules'
|
|
36
|
-
* doc comments for why that would desync from a synchronous `clock.seek()`).
|
|
37
|
-
* Default phase is `'preRender'`, the same default `bindObject3DTransform`/
|
|
38
|
-
* `bindCameraLens` use, so — via `PHASE_ORDER`, not registration order — the
|
|
39
|
-
* Director always reads a sequence position that `bindClockToTheatreSequence`
|
|
40
|
-
* (registered at `'animation'`, which runs earlier) has already set for this
|
|
41
|
-
* crossing, regardless of which binding a caller sets up first.
|
|
42
|
-
*
|
|
43
|
-
* ## Seeking updates Director without firing gameplay cues
|
|
44
|
-
*
|
|
45
|
-
* This binding has NO concept of "seek" vs "advance" — unlike
|
|
46
|
-
* `CueRunner` (D5, `cinematic-cues.ts`), which deliberately distinguishes the
|
|
47
|
-
* two (via its own `seek()`/`advance()` wrapper methods) so a
|
|
48
|
-
* `firesDuringSeek: false` cue can be skipped on scrub. A Director value is
|
|
49
|
-
* *visual/directorial state*, not a gameplay consequence (spec §3.2: "Theatre
|
|
50
|
-
* carries visual/directorial values; ordinary TypeScript cues carry gameplay
|
|
51
|
-
* consequences") — it should always reflect the clock's current time,
|
|
52
|
-
* however the clock got there. Composing the two on the SAME
|
|
53
|
-
* `AnimationClock` (Director bound directly to the clock; cues bound through
|
|
54
|
-
* a `CueRunner` wrapping the same clock) is exactly what makes "seek updates
|
|
55
|
-
* Director but does not spuriously fire gameplay cues" fall out for free: a
|
|
56
|
-
* `CueRunner.seek(t)` call moves the one shared clock, which both this
|
|
57
|
-
* binding (always reacts) and the cue runner (gates on `firesDuringSeek`)
|
|
58
|
-
* observe on the same crossing. See `theatre-director.test.ts`'s
|
|
59
|
-
* "composes with D5" suite for the proof.
|
|
60
|
-
*
|
|
61
|
-
* ## Camera-ownership hook — the D6 seam
|
|
62
|
-
*
|
|
63
|
-
* Discrete `activeCamera` changes are exactly the moments a *camera
|
|
64
|
-
* ownership* system (D6, not built in this unit) needs to know about, to cut
|
|
65
|
-
* or blend the live gameplay camera to the Director's declared shot. This
|
|
66
|
-
* module does not own or perform any camera mutation — it only DETECTS a
|
|
67
|
-
* change in the Director's `activeCamera` value across successive
|
|
68
|
-
* evaluations and reports it through `onActiveCameraChange`
|
|
69
|
-
* (`CameraOwnershipHook`), a minimal, one-directional seam:
|
|
70
|
-
*
|
|
71
|
-
* - fired once per detected `activeCamera` transition (never for a
|
|
72
|
-
* no-op/unchanged evaluation, including a re-seek to the same time or a
|
|
73
|
-
* seek that stays within the same shot's camera);
|
|
74
|
-
* - the FIRST evaluation after bind is treated as an "assignment", not a
|
|
75
|
-
* "cut from something" — `previousCameraKey` is `null` and `mode` is
|
|
76
|
-
* forced to `'cut'` (there is nothing to blend FROM yet; D6 is expected
|
|
77
|
-
* to use this event to perform its initial camera capture/placement);
|
|
78
|
-
* - `mode`/`blendSeconds` are derived from an optional extra numeric prop on
|
|
79
|
-
* the SAME Director object (`blendSecondsKey`, default `'blendSeconds'`)
|
|
80
|
-
* — a positive value at the moment of the transition means `'blend'`
|
|
81
|
-
* (with that duration), anything else means `'cut'`. This is the "expose
|
|
82
|
-
* enough for a consumer to cut or blend" seam named in the D4 AC; the
|
|
83
|
-
* ACTUAL blend implementation (interpolating the live camera pose over
|
|
84
|
-
* `blendSeconds`) is D6's job, not this module's.
|
|
85
|
-
*
|
|
86
|
-
* ### `blendSeconds` MUST be authored as HOLD keyframes
|
|
87
|
-
*
|
|
88
|
-
* `blendSeconds` is read at the EXACT moment `activeCamera` is detected to
|
|
89
|
-
* change, whatever clock time that happens to land on. If `blendSeconds` is
|
|
90
|
-
* authored as an ordinary interpolating (bezier) track, a transition
|
|
91
|
-
* detected at a time that isn't exactly a keyframe position reads whatever
|
|
92
|
-
* partially-interpolated value the bezier curve has reached AT THAT MOMENT —
|
|
93
|
-
* not the value actually authored FOR that transition. Concretely: a cut
|
|
94
|
-
* authored at `t=3` with `blendSeconds=0`, followed by a blend authored at
|
|
95
|
-
* `t=6` with `blendSeconds=1.5`, makes the track interpolate from `0` to
|
|
96
|
-
* `1.5` across `[3, 6)`. If the `activeCamera` transition at `t=3` is first
|
|
97
|
-
* *observed* at some later non-keyframe time inside that span (e.g. a coarse
|
|
98
|
-
* seek from `t=2` straight to `t=4.5`, skipping past `t=3` without an
|
|
99
|
-
* intermediate evaluation), `blendSeconds` at `t=4.5` reads a nonzero,
|
|
100
|
-
* partially-interpolated value — misreporting an authored CUT as a partial
|
|
101
|
-
* BLEND.
|
|
102
|
-
*
|
|
103
|
-
* The fix is to author `blendSeconds` keyframes as Theatre HOLD keyframes
|
|
104
|
-
* (`connectedRight: false`, optionally also `type: 'hold'`) rather than the
|
|
105
|
-
* default interpolating bezier keyframes. `connectedRight: false` makes
|
|
106
|
-
* Theatre's own sequence evaluator hold the LEFT keyframe's value constant
|
|
107
|
-
* across the entire span up to (not including) the next keyframe, then snap
|
|
108
|
-
* — never partially interpolate. With `blendSeconds` authored this way, its
|
|
109
|
-
* value at ANY time within `[3, 6)` reads exactly `0` (the cut authored at
|
|
110
|
-
* `t=3`), and only reads `1.5` once the clock reaches `t=6` (the blend
|
|
111
|
-
* authored there) — correct regardless of which non-keyframe time a
|
|
112
|
-
* transition happens to first be observed at. See
|
|
113
|
-
* `fixtures/theatre-director-proof.theatre-project.json` (its `blendSeconds`
|
|
114
|
-
* track uses `connectedRight: false` on every keyframe) and
|
|
115
|
-
* `theatre-director.test.ts`'s "playback grid" suite, which proves this by
|
|
116
|
-
* evaluating a fine-grained, non-keyframe-aligned time grid across the whole
|
|
117
|
-
* span and asserting the reported `mode` never drifts from what was
|
|
118
|
-
* authored at the keyframe that produced the transition.
|
|
119
|
-
*
|
|
120
|
-
* D6 will most likely implement `CameraOwnershipHook` as (roughly) "capture
|
|
121
|
-
* gameplay camera pose once on the first `mode: 'cut'` event; on each
|
|
122
|
-
* subsequent event, cut or blend the owned camera to the shot named by
|
|
123
|
-
* `cameraKey`". Nothing above depends on that implementation existing —
|
|
124
|
-
* `onActiveCameraChange` is optional and this module works with no hook
|
|
125
|
-
* attached at all (Director values are still readable via `getState()`).
|
|
126
|
-
*
|
|
127
|
-
* ## Read API (SDK/CLI seam, B5)
|
|
128
|
-
*
|
|
129
|
-
* `readDirectorState` is a pure, synchronous read of whatever a Director
|
|
130
|
-
* Theatre object's CURRENT value is — no clock/binding required. It is what
|
|
131
|
-
* a later `cinematic.*` SDK/CLI operation (B5) would call to inspect Director
|
|
132
|
-
* state (e.g. "what shot is authored at time t") without needing to spin up
|
|
133
|
-
* a full runtime binding. `TheatreDirectorBinding.getState()` is the
|
|
134
|
-
* clock-driven equivalent — it returns the value read at bind time until the
|
|
135
|
-
* FIRST clock crossing occurs (not "the most recent crossing" — before any
|
|
136
|
-
* crossing there IS no crossing yet), and the value as of the most recent
|
|
137
|
-
* crossing thereafter.
|
|
138
|
-
*
|
|
139
|
-
* Authoring `Director` keyframes in Theatre Studio is a dev-only workflow
|
|
140
|
-
* (spec §10 D2: "Theatre Studio is available only in authoring/development
|
|
141
|
-
* contexts"); the committed project-state JSON is the source of truth this
|
|
142
|
-
* module reads in production — nothing here imports the Theatre Studio
|
|
143
|
-
* package (see `theatre-binding.test.ts`'s repo-wide grep proof of that).
|
|
144
|
-
*/
|
|
145
|
-
/** Thrown when a Theatre object does not conform to the Director convention. */
|
|
146
|
-
export class TheatreDirectorError extends Error {
|
|
147
|
-
objectKey;
|
|
148
|
-
constructor(message, objectKey) {
|
|
149
|
-
super(message);
|
|
150
|
-
this.objectKey = objectKey;
|
|
151
|
-
this.name = 'TheatreDirectorError';
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
const REQUIRED_DIRECTOR_KEYS = new Set(['activeCamera', 'shot', 'letterbox']);
|
|
155
|
-
/**
|
|
156
|
-
* Pure, synchronous read of a Director Theatre object's CURRENT value.
|
|
157
|
-
* No clock/binding involved — suitable for one-shot inspection (the later
|
|
158
|
-
* SDK/CLI read path, B5) as well as being the function
|
|
159
|
-
* `bindDirectorToClock` itself calls on every crossing.
|
|
160
|
-
*
|
|
161
|
-
* @throws {TheatreDirectorError} if the object's value does not conform to
|
|
162
|
-
* the Director convention (missing/mistyped `activeCamera`/`shot`/`letterbox`).
|
|
163
|
-
*/
|
|
164
|
-
export function readDirectorState(sheetObject) {
|
|
165
|
-
const raw = sheetObject.value;
|
|
166
|
-
const objectKey = sheetObject.address.objectKey;
|
|
167
|
-
const activeCamera = raw['activeCamera'];
|
|
168
|
-
if (typeof activeCamera !== 'string') {
|
|
169
|
-
throw new TheatreDirectorError(`[readDirectorState] Director object "${objectKey}" is missing a string "activeCamera" prop — ` +
|
|
170
|
-
`declare it with types.stringLiteral(...) (spec §5.3/§10 D4)`, objectKey);
|
|
171
|
-
}
|
|
172
|
-
const shot = raw['shot'];
|
|
173
|
-
if (typeof shot !== 'string') {
|
|
174
|
-
throw new TheatreDirectorError(`[readDirectorState] Director object "${objectKey}" is missing a string "shot" prop — ` +
|
|
175
|
-
`declare it with types.stringLiteral(...) (spec §5.3/§10 D4)`, objectKey);
|
|
176
|
-
}
|
|
177
|
-
const letterbox = raw['letterbox'];
|
|
178
|
-
if (typeof letterbox !== 'boolean') {
|
|
179
|
-
throw new TheatreDirectorError(`[readDirectorState] Director object "${objectKey}" is missing a boolean "letterbox" prop — ` +
|
|
180
|
-
`declare it with types.boolean(...) (spec §5.3/§10 D4)`, objectKey);
|
|
181
|
-
}
|
|
182
|
-
const extras = {};
|
|
183
|
-
for (const key of Object.keys(raw)) {
|
|
184
|
-
if (!REQUIRED_DIRECTOR_KEYS.has(key))
|
|
185
|
-
extras[key] = raw[key];
|
|
186
|
-
}
|
|
187
|
-
return { activeCamera, shot, letterbox, extras: Object.freeze(extras) };
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Bind a Director Theatre Sheet Object to `clock`: on every crossing, read
|
|
191
|
-
* its current value (`readDirectorState`) and, if `activeCamera` changed
|
|
192
|
-
* since the last evaluation, report the transition through
|
|
193
|
-
* `onActiveCameraChange` (the D6 seam). Returns a disposer and a `getState()`
|
|
194
|
-
* read API. See the module doc comment for the full contract.
|
|
195
|
-
*/
|
|
196
|
-
export function bindDirectorToClock(clock, sheetObject, options = {}) {
|
|
197
|
-
const phase = options.phase ?? 'preRender';
|
|
198
|
-
const blendSecondsKey = options.blendSecondsKey ?? 'blendSeconds';
|
|
199
|
-
let state = readDirectorState(sheetObject);
|
|
200
|
-
let previousCameraKey = null;
|
|
201
|
-
let hasEvaluatedOnClock = false;
|
|
202
|
-
function evaluate() {
|
|
203
|
-
state = readDirectorState(sheetObject);
|
|
204
|
-
const changed = !hasEvaluatedOnClock || state.activeCamera !== previousCameraKey;
|
|
205
|
-
if (changed) {
|
|
206
|
-
const blendRaw = state.extras[blendSecondsKey];
|
|
207
|
-
const blendSeconds = hasEvaluatedOnClock && typeof blendRaw === 'number' && blendRaw > 0 ? blendRaw : 0;
|
|
208
|
-
const mode = blendSeconds > 0 ? 'blend' : 'cut';
|
|
209
|
-
options.onActiveCameraChange?.({
|
|
210
|
-
cameraKey: state.activeCamera,
|
|
211
|
-
previousCameraKey: hasEvaluatedOnClock ? previousCameraKey : null,
|
|
212
|
-
mode,
|
|
213
|
-
blendSeconds,
|
|
214
|
-
shot: state.shot,
|
|
215
|
-
});
|
|
216
|
-
previousCameraKey = state.activeCamera;
|
|
217
|
-
hasEvaluatedOnClock = true;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
const handle = clock.subscribe(phase, () => {
|
|
221
|
-
evaluate();
|
|
222
|
-
});
|
|
223
|
-
let disposed = false;
|
|
224
|
-
return {
|
|
225
|
-
getState() {
|
|
226
|
-
return state;
|
|
227
|
-
},
|
|
228
|
-
dispose() {
|
|
229
|
-
if (disposed)
|
|
230
|
-
return;
|
|
231
|
-
disposed = true;
|
|
232
|
-
handle.dispose();
|
|
233
|
-
},
|
|
234
|
-
};
|
|
235
|
-
}
|
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
import type { ISheetObject, UnknownShorthandCompoundProps } from '@theatre/core';
|
|
2
|
-
import type { Container } from 'pixi.js';
|
|
3
|
-
import type { BloomEffect, VignetteEffect } from 'postprocessing';
|
|
4
|
-
import type * as THREE from 'three';
|
|
5
|
-
import type { SystemPhaseName } from '../core/types';
|
|
6
|
-
import type { AnimationClock } from './animation-clock';
|
|
7
|
-
/**
|
|
8
|
-
* D3 — stable binding from a Theatre Sheet Object to a `THREE.Object3D`/
|
|
9
|
-
* camera (spec §10 D3, §5.3). This is the "thin integration code" the spec
|
|
10
|
-
* calls for: it reads a Theatre object's pull-based `.value` on every clock
|
|
11
|
-
* crossing and writes the (small, fixed) set of known sub-props straight
|
|
12
|
-
* onto the target's real Three.js properties. It is deliberately NOT a
|
|
13
|
-
* generic/arbitrary property-path evaluator — the only shapes understood are
|
|
14
|
-
* the ones declared below (`TransformProps`, `CameraLensProps`), matching
|
|
15
|
-
* "No arbitrary unsafe property-path evaluator is introduced" (D3 AC).
|
|
16
|
-
*
|
|
17
|
-
* Reads `sheetObject.value` rather than subscribing to Theatre's
|
|
18
|
-
* `onValuesChange` push channel — see `theatre-clock-binding.ts`'s module doc
|
|
19
|
-
* for why: `.value` is synchronously fresh immediately after
|
|
20
|
-
* `sequence.position` is set, while `onValuesChange` is batched on Theatre's
|
|
21
|
-
* own raf-driven ticker and is not delivered 1:1 with each synchronous clock
|
|
22
|
-
* seek (it may coalesce several writes into one notification, or — headless,
|
|
23
|
-
* no-raf — never fire at all).
|
|
24
|
-
*
|
|
25
|
-
* Object identity: a Theatre Sheet Object always carries both its stable,
|
|
26
|
-
* readable Theatre name (`sheetObject.address.objectKey`) and, since the
|
|
27
|
-
* caller supplies the bound `THREE.Object3D` directly, that object's own
|
|
28
|
-
* engine identity (`Object3D.uuid`/`.name`/`userData['entityId']`) — both are
|
|
29
|
-
* inspectable from the object references the binding already holds; nothing
|
|
30
|
-
* further to thread through.
|
|
31
|
-
*
|
|
32
|
-
* ## Remaining D3 channels: quaternion/material/light/post-processing/UI/Pixi
|
|
33
|
-
*
|
|
34
|
-
* The rest of the D3 AC's channel list (spec §10 D3: "Position,
|
|
35
|
-
* rotation/quaternion, scale, camera lens, material/light, post-processing,
|
|
36
|
-
* and selected UI properties have tested bindings") is implemented below,
|
|
37
|
-
* each as its own small, explicit, TYPED helper — never a generic
|
|
38
|
-
* property-path evaluator:
|
|
39
|
-
*
|
|
40
|
-
* - `bindObject3DQuaternion` — `Object3D.quaternion`, authored as a plain
|
|
41
|
-
* `{x,y,z,w}` compound (see `QuaternionProps`'s doc for the interpolation
|
|
42
|
-
* caveat and why the binding always normalizes).
|
|
43
|
-
* - `bindMaterialProperties` — `color`/`opacity`/`emissiveIntensity`/
|
|
44
|
-
* `roughness`/`metalness` on a real `THREE.Material`, feature-detecting
|
|
45
|
-
* which sub-props the concrete material subtype actually has.
|
|
46
|
-
* - `bindLightProperties` — `intensity`/`color` on a real `THREE.Light`.
|
|
47
|
-
* - `bindBloomEffect` / `bindVignetteEffect` — `intensity`/`opacity` and
|
|
48
|
-
* `offset`/`darkness` on real `postprocessing` `BloomEffect`/
|
|
49
|
-
* `VignetteEffect` instances (the SAME package `setup-renderer.ts` already
|
|
50
|
-
* wires into the engine's composer — no new post-processing stack).
|
|
51
|
-
* - `bindDomElementStyle` — `opacity`/`translateX`/`translateY` on a
|
|
52
|
-
* DOM-style-writable target (`DomStyleTarget`, a narrow structural
|
|
53
|
-
* interface a real `HTMLElement` satisfies with no adapter).
|
|
54
|
-
* - `bindPixiContainerTransform` — `x`/`y`/`rotation`/`scaleX`/`scaleY`/
|
|
55
|
-
* `alpha` on a real `PIXI.Container`/`PIXI.Sprite`.
|
|
56
|
-
*
|
|
57
|
-
* All of the above are proven against REAL target objects in
|
|
58
|
-
* `theatre-object-binding-d3.test.ts` — `BloomEffect`/`VignetteEffect`/
|
|
59
|
-
* `PIXI.Container`/`PIXI.Sprite` all construct and expose plain,
|
|
60
|
-
* synchronously-settable properties with no WebGL/canvas/renderer required,
|
|
61
|
-
* so nothing here is a mock of the underlying library. The one channel that
|
|
62
|
-
* genuinely cannot construct real headlessly in THIS repo's `environment:
|
|
63
|
-
* 'node'` vitest lane (`vitest.config.ts` — no DOM) is a real `HTMLElement`;
|
|
64
|
-
* `bindDomElementStyle` is typed against the narrow `DomStyleTarget`
|
|
65
|
-
* structural interface instead of full `HTMLElement`, and its test exercises
|
|
66
|
-
* a plain object literal shaped like one — the exact same binding code path
|
|
67
|
-
* a real `HTMLElement`/React-overlay ref runs through in a browser or a
|
|
68
|
-
* jsdom-backed test. Nothing here is deferred.
|
|
69
|
-
*/
|
|
70
|
-
/** Thrown when a binding is constructed with a missing/falsy target. */
|
|
71
|
-
export declare class TheatreBindingError extends Error {
|
|
72
|
-
readonly objectKey: string;
|
|
73
|
-
constructor(message: string, objectKey: string);
|
|
74
|
-
}
|
|
75
|
-
export interface Vector3Like {
|
|
76
|
-
x: number;
|
|
77
|
-
y: number;
|
|
78
|
-
z: number;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* The fixed shape a Theatre object must expose (as a subset) to drive an
|
|
82
|
-
* `Object3D`'s transform. Author it with e.g.
|
|
83
|
-
* `sheet.object('Hero', { position: { x: 0, y: 0, z: 0 }, rotation: { x: 0, y: 0, z: 0 }, scale: { x: 1, y: 1, z: 1 } })`.
|
|
84
|
-
* `rotation` is Euler angles in radians, XYZ order (matches `THREE.Euler`'s default).
|
|
85
|
-
*/
|
|
86
|
-
export interface TransformProps {
|
|
87
|
-
position?: Vector3Like;
|
|
88
|
-
rotation?: Vector3Like;
|
|
89
|
-
scale?: Vector3Like;
|
|
90
|
-
}
|
|
91
|
-
export interface TheatreObjectBindingOptions {
|
|
92
|
-
/**
|
|
93
|
-
* Which `AnimationClock` phase to apply values in. Defaults to
|
|
94
|
-
* `'preRender'` — the documented home for camera placement/material tick
|
|
95
|
-
* (`ARCHITECTURE.md`), and guaranteed by `PHASE_ORDER` to run after the
|
|
96
|
-
* `'animation'`-phase default of `bindClockToTheatreSequence`, so the
|
|
97
|
-
* sheet's sequence position is always current by the time this reads
|
|
98
|
-
* `sheetObject.value`, regardless of registration order.
|
|
99
|
-
*/
|
|
100
|
-
phase?: SystemPhaseName;
|
|
101
|
-
}
|
|
102
|
-
export interface TheatreObjectBinding {
|
|
103
|
-
/** Removes the clock evaluator. The target keeps whatever value it last had. */
|
|
104
|
-
dispose(): void;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Bind a Theatre Sheet Object's `position`/`rotation`/`scale` sub-props (any
|
|
108
|
-
* subset) to a `THREE.Object3D`. Whichever of the three keys are present on
|
|
109
|
-
* `sheetObject.value` are applied; missing keys are left untouched on the
|
|
110
|
-
* target.
|
|
111
|
-
*
|
|
112
|
-
* @throws {TheatreBindingError} if `target` is null/undefined at bind time.
|
|
113
|
-
*/
|
|
114
|
-
export declare function bindObject3DTransform<Props extends UnknownShorthandCompoundProps>(clock: AnimationClock, sheetObject: ISheetObject<Props>, target: THREE.Object3D | null | undefined, options?: TheatreObjectBindingOptions): TheatreObjectBinding;
|
|
115
|
-
/**
|
|
116
|
-
* The fixed shape a Theatre object must expose (as a subset) to drive a
|
|
117
|
-
* `THREE.PerspectiveCamera`'s lens. Author it with e.g.
|
|
118
|
-
* `sheet.object('Lens', { fov: 50, near: 0.1, far: 1000 })`.
|
|
119
|
-
*/
|
|
120
|
-
export interface CameraLensProps {
|
|
121
|
-
fov?: number;
|
|
122
|
-
near?: number;
|
|
123
|
-
far?: number;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Bind a Theatre Sheet Object's `fov`/`near`/`far` sub-props (any subset) to
|
|
127
|
-
* a `THREE.PerspectiveCamera`'s lens, calling `updateProjectionMatrix()`
|
|
128
|
-
* whenever any of them change.
|
|
129
|
-
*
|
|
130
|
-
* @throws {TheatreBindingError} if `camera` is null/undefined at bind time.
|
|
131
|
-
*/
|
|
132
|
-
export declare function bindCameraLens<Props extends UnknownShorthandCompoundProps>(clock: AnimationClock, sheetObject: ISheetObject<Props>, camera: THREE.PerspectiveCamera | null | undefined, options?: TheatreObjectBindingOptions): TheatreObjectBinding;
|
|
133
|
-
export interface QuaternionLike {
|
|
134
|
-
x: number;
|
|
135
|
-
y: number;
|
|
136
|
-
z: number;
|
|
137
|
-
w: number;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* The fixed shape a Theatre object must expose to drive an `Object3D`'s
|
|
141
|
-
* rotation as a quaternion — an alternative to `TransformProps.rotation`'s
|
|
142
|
-
* Euler angles for cases that need to avoid gimbal lock or author a rotation
|
|
143
|
-
* that doesn't decompose cleanly into per-axis Euler angles. Author it with
|
|
144
|
-
* e.g. `sheet.object('Hero', { quaternion: { x: 0, y: 0, z: 0, w: 1 } })` —
|
|
145
|
-
* the authored shape is Theatre's plain shorthand-compound of the SAME four
|
|
146
|
-
* fields `THREE.Quaternion` itself exposes (`x`/`y`/`z`/`w`); there is no
|
|
147
|
-
* VGAI-invented quaternion encoding.
|
|
148
|
-
*
|
|
149
|
-
* Theatre has no native quaternion/slerp track type — it interpolates each
|
|
150
|
-
* of `x`/`y`/`z`/`w` LINEARLY and independently, so a value read strictly
|
|
151
|
-
* BETWEEN two authored keyframes is a component-wise lerp, not a slerp, and
|
|
152
|
-
* is not guaranteed to be exactly unit length. `bindObject3DQuaternion`
|
|
153
|
-
* always calls `.normalize()` immediately after `.set(...)`, so the applied
|
|
154
|
-
* rotation is never a scaled/denormalized quaternion even mid-interpolation
|
|
155
|
-
* — but normalizing a lerp is not the same curve a true slerp would trace.
|
|
156
|
-
* For continuous cinematic rotation, prefer authoring dense keyframes (exact
|
|
157
|
-
* at each keyframe, close between nearby ones), or use
|
|
158
|
-
* `TransformProps.rotation`'s Euler channel instead (also only lerped
|
|
159
|
-
* per-axis by Theatre, but with no unit-length concern at all).
|
|
160
|
-
*/
|
|
161
|
-
export interface QuaternionProps {
|
|
162
|
-
quaternion?: QuaternionLike;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Bind a Theatre Sheet Object's `quaternion` sub-prop to a `THREE.Object3D`'s
|
|
166
|
-
* `.quaternion`. See `QuaternionProps`'s doc for the authored shape and its
|
|
167
|
-
* interpolation caveat.
|
|
168
|
-
*
|
|
169
|
-
* @throws {TheatreBindingError} if `target` is null/undefined at bind time.
|
|
170
|
-
*/
|
|
171
|
-
export declare function bindObject3DQuaternion<Props extends UnknownShorthandCompoundProps>(clock: AnimationClock, sheetObject: ISheetObject<Props>, target: THREE.Object3D | null | undefined, options?: TheatreObjectBindingOptions): TheatreObjectBinding;
|
|
172
|
-
export interface ColorLike {
|
|
173
|
-
r: number;
|
|
174
|
-
g: number;
|
|
175
|
-
b: number;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* A small, fixed, TYPED subset of `THREE.Material` properties — NOT an
|
|
179
|
-
* arbitrary property-path evaluator. `color` mirrors Theatre's own native
|
|
180
|
-
* `types.rgba(...)` value shape (`{r,g,b,a}`, 0-1 floats) minus alpha (use
|
|
181
|
-
* the separate `opacity` field, which is what `THREE.Material.opacity`
|
|
182
|
-
* itself already is). `emissiveIntensity`/`roughness`/`metalness` only exist
|
|
183
|
-
* on `THREE.MeshStandardMaterial`-family materials; `bindMaterialProperties`
|
|
184
|
-
* feature-detects each with an `in` check and silently skips any sub-prop
|
|
185
|
-
* the target material doesn't have (mirroring `bindObject3DTransform`'s
|
|
186
|
-
* "whichever subset is present" contract) rather than throwing.
|
|
187
|
-
*/
|
|
188
|
-
export interface MaterialProps {
|
|
189
|
-
color?: ColorLike;
|
|
190
|
-
opacity?: number;
|
|
191
|
-
emissiveIntensity?: number;
|
|
192
|
-
roughness?: number;
|
|
193
|
-
metalness?: number;
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Bind a Theatre Sheet Object's `color`/`opacity`/`emissiveIntensity`/
|
|
197
|
-
* `roughness`/`metalness` sub-props (any subset the target material
|
|
198
|
-
* supports) to a `THREE.Material`.
|
|
199
|
-
*
|
|
200
|
-
* @throws {TheatreBindingError} if `target` is null/undefined at bind time.
|
|
201
|
-
*/
|
|
202
|
-
export declare function bindMaterialProperties<Props extends UnknownShorthandCompoundProps>(clock: AnimationClock, sheetObject: ISheetObject<Props>, target: THREE.Material | null | undefined, options?: TheatreObjectBindingOptions): TheatreObjectBinding;
|
|
203
|
-
/** A small, fixed, TYPED subset of `THREE.Light` properties. */
|
|
204
|
-
export interface LightProps {
|
|
205
|
-
intensity?: number;
|
|
206
|
-
color?: ColorLike;
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Bind a Theatre Sheet Object's `intensity`/`color` sub-props (any subset)
|
|
210
|
-
* to a `THREE.Light`.
|
|
211
|
-
*
|
|
212
|
-
* @throws {TheatreBindingError} if `target` is null/undefined at bind time.
|
|
213
|
-
*/
|
|
214
|
-
export declare function bindLightProperties<Props extends UnknownShorthandCompoundProps>(clock: AnimationClock, sheetObject: ISheetObject<Props>, target: THREE.Light | null | undefined, options?: TheatreObjectBindingOptions): TheatreObjectBinding;
|
|
215
|
-
/** A small, fixed, TYPED subset of `postprocessing`'s `BloomEffect` properties. */
|
|
216
|
-
export interface BloomEffectProps {
|
|
217
|
-
intensity?: number;
|
|
218
|
-
/** Effect blend opacity (`BloomEffect.blendMode.opacity.value`), 0-1. */
|
|
219
|
-
opacity?: number;
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Bind a Theatre Sheet Object's `intensity`/`opacity` sub-props (any subset)
|
|
223
|
-
* to a real `postprocessing` `BloomEffect` — the SAME `postprocessing` npm
|
|
224
|
-
* package the engine's own composer pipeline already uses directly
|
|
225
|
-
* (`setup-renderer.ts`), not a new post-processing stack.
|
|
226
|
-
*
|
|
227
|
-
* @throws {TheatreBindingError} if `effect` is null/undefined at bind time.
|
|
228
|
-
*/
|
|
229
|
-
export declare function bindBloomEffect<Props extends UnknownShorthandCompoundProps>(clock: AnimationClock, sheetObject: ISheetObject<Props>, effect: BloomEffect | null | undefined, options?: TheatreObjectBindingOptions): TheatreObjectBinding;
|
|
230
|
-
/** A small, fixed, TYPED subset of `postprocessing`'s `VignetteEffect` properties. */
|
|
231
|
-
export interface VignetteEffectProps {
|
|
232
|
-
offset?: number;
|
|
233
|
-
darkness?: number;
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Bind a Theatre Sheet Object's `offset`/`darkness` sub-props (any subset) to
|
|
237
|
-
* a real `postprocessing` `VignetteEffect` — same package/no-wrapper note as
|
|
238
|
-
* `bindBloomEffect` above.
|
|
239
|
-
*
|
|
240
|
-
* @throws {TheatreBindingError} if `effect` is null/undefined at bind time.
|
|
241
|
-
*/
|
|
242
|
-
export declare function bindVignetteEffect<Props extends UnknownShorthandCompoundProps>(clock: AnimationClock, sheetObject: ISheetObject<Props>, effect: VignetteEffect | null | undefined, options?: TheatreObjectBindingOptions): TheatreObjectBinding;
|
|
243
|
-
/**
|
|
244
|
-
* A minimal structural interface for a DOM-style-writable target — NOT the
|
|
245
|
-
* full `HTMLElement` API. A real `HTMLElement` (or a React ref's `.current`)
|
|
246
|
-
* satisfies this structurally with no adapter, since
|
|
247
|
-
* `CSSStyleDeclaration.opacity`/`.transform` are themselves plain strings.
|
|
248
|
-
* This repo's vitest lane runs `environment: 'node'` (`vitest.config.ts`,
|
|
249
|
-
* no DOM), so `theatre-object-binding-d3.test.ts` exercises
|
|
250
|
-
* `bindDomElementStyle` against a plain object literal shaped like `{
|
|
251
|
-
* style: { opacity: '', transform: '' } }` — the exact same binding code
|
|
252
|
-
* path a real `HTMLElement`/React-overlay ref runs through in a browser or a
|
|
253
|
-
* jsdom-backed test elsewhere in the stack.
|
|
254
|
-
*/
|
|
255
|
-
export interface DomStyleTarget {
|
|
256
|
-
style: {
|
|
257
|
-
opacity: string;
|
|
258
|
-
transform: string;
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* A small, fixed, TYPED set of DOM/React-overlay-friendly style properties:
|
|
263
|
-
* opacity plus a 2D translate. The two translate axes are combined into one
|
|
264
|
-
* CSS `transform` string, remembering whichever value was last authored on
|
|
265
|
-
* each axis so authoring only one axis doesn't reset the other to 0.
|
|
266
|
-
*/
|
|
267
|
-
export interface UIElementProps {
|
|
268
|
-
opacity?: number;
|
|
269
|
-
translateX?: number;
|
|
270
|
-
translateY?: number;
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Bind a Theatre Sheet Object's `opacity`/`translateX`/`translateY`
|
|
274
|
-
* sub-props (any subset) to a DOM-style-writable target's inline style. See
|
|
275
|
-
* `DomStyleTarget`'s doc for how this is proven without a real browser DOM.
|
|
276
|
-
*
|
|
277
|
-
* @throws {TheatreBindingError} if `target` is null/undefined at bind time.
|
|
278
|
-
*/
|
|
279
|
-
export declare function bindDomElementStyle<Props extends UnknownShorthandCompoundProps>(clock: AnimationClock, sheetObject: ISheetObject<Props>, target: DomStyleTarget | null | undefined, options?: TheatreObjectBindingOptions): TheatreObjectBinding;
|
|
280
|
-
/**
|
|
281
|
-
* A small, fixed, TYPED subset of `PIXI.Container` (and, since `PIXI.Sprite
|
|
282
|
-
* extends Container`, `PIXI.Sprite` too) transform/alpha properties.
|
|
283
|
-
* `rotation` is in radians (matches `Container.rotation`'s own unit).
|
|
284
|
-
*/
|
|
285
|
-
export interface PixiTransformProps {
|
|
286
|
-
x?: number;
|
|
287
|
-
y?: number;
|
|
288
|
-
rotation?: number;
|
|
289
|
-
scaleX?: number;
|
|
290
|
-
scaleY?: number;
|
|
291
|
-
alpha?: number;
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Bind a Theatre Sheet Object's `x`/`y`/`rotation`/`scaleX`/`scaleY`/`alpha`
|
|
295
|
-
* sub-props (any subset) to a real `PIXI.Container`/`PIXI.Sprite` (reusing
|
|
296
|
-
* the world2d stack's own `pixi.js` dependency — see this module's
|
|
297
|
-
* type-only `pixi.js` import above and its doc note on why the engine core
|
|
298
|
-
* never value-imports it). Plain `Container`/`Sprite` construction needs no
|
|
299
|
-
* canvas/WebGL context, so this is proven against a REAL Pixi object in
|
|
300
|
-
* `theatre-object-binding-d3.test.ts`, not a stand-in.
|
|
301
|
-
*
|
|
302
|
-
* @throws {TheatreBindingError} if `target` is null/undefined at bind time.
|
|
303
|
-
*/
|
|
304
|
-
export declare function bindPixiContainerTransform<Props extends UnknownShorthandCompoundProps>(clock: AnimationClock, sheetObject: ISheetObject<Props>, target: Container | null | undefined, options?: TheatreObjectBindingOptions): TheatreObjectBinding;
|
|
305
|
-
//# sourceMappingURL=theatre-object-binding.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theatre-object-binding.d.ts","sourceRoot":"","sources":["../../src/animation/theatre-object-binding.ts"],"names":[],"mappings":"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"}
|