@aura3d/engine 1.4.5 → 1.5.1
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/README.md +95 -29
- package/dist/animation/Retargeting.d.ts +12 -0
- package/dist/animation/Retargeting.d.ts.map +1 -0
- package/dist/animation/Retargeting.js +19 -0
- package/dist/animation/Retargeting.js.map +1 -0
- package/dist/assets/GLTFLoader.d.ts +4 -0
- package/dist/assets/GLTFLoader.d.ts.map +1 -1
- package/dist/assets/GLTFLoader.js +39 -4
- package/dist/assets/GLTFLoader.js.map +1 -1
- package/dist/assets/GLTFRenderResources.d.ts +16 -0
- package/dist/assets/GLTFRenderResources.d.ts.map +1 -1
- package/dist/assets/GLTFRenderResources.js +42 -2
- package/dist/assets/GLTFRenderResources.js.map +1 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts +6 -0
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts.map +1 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js +2 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js.map +1 -1
- package/dist/assets/index.d.ts +0 -1
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +0 -1
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loaders/index.d.ts +0 -1
- package/dist/assets/loaders/index.d.ts.map +1 -1
- package/dist/assets/loaders/index.js +0 -1
- package/dist/assets/loaders/index.js.map +1 -1
- package/dist/aura3d-cli/asset-intent.d.ts +148 -0
- package/dist/aura3d-cli/asset-intent.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-intent.js +145 -0
- package/dist/aura3d-cli/asset-intent.js.map +1 -0
- package/dist/aura3d-cli/asset-role-admission.d.ts +174 -0
- package/dist/aura3d-cli/asset-role-admission.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-role-admission.js +381 -0
- package/dist/aura3d-cli/asset-role-admission.js.map +1 -0
- package/dist/aura3d-cli/asset-screening-effects.d.ts +95 -0
- package/dist/aura3d-cli/asset-screening-effects.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-screening-effects.js +321 -0
- package/dist/aura3d-cli/asset-screening-effects.js.map +1 -0
- package/dist/aura3d-cli/asset-screening-pipeline.d.ts +132 -0
- package/dist/aura3d-cli/asset-screening-pipeline.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-screening-pipeline.js +277 -0
- package/dist/aura3d-cli/asset-screening-pipeline.js.map +1 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.d.ts +15 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.d.ts.map +1 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.js +46 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.js.map +1 -0
- package/dist/aura3d-cli/cli-help.js +1 -1
- package/dist/aura3d-cli/cli.js +16 -2
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts +8 -0
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +390 -17
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.d.ts +4 -0
- package/dist/aura3d-cli/pull-bridge/search.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.js +22 -0
- package/dist/aura3d-cli/pull-bridge/search.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +20 -5
- package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge.js +38 -1
- package/dist/aura3d-cli/pull-bridge.js.map +1 -1
- package/dist/controls/ControlState.d.ts +1 -1
- package/dist/controls/ControlState.d.ts.map +1 -1
- package/dist/controls/DragControls.d.ts +21 -1
- package/dist/controls/DragControls.d.ts.map +1 -1
- package/dist/controls/DragControls.js +24 -2
- package/dist/controls/DragControls.js.map +1 -1
- package/dist/controls/FirstPersonControls.d.ts +10 -1
- package/dist/controls/FirstPersonControls.d.ts.map +1 -1
- package/dist/controls/FirstPersonControls.js +18 -2
- package/dist/controls/FirstPersonControls.js.map +1 -1
- package/dist/controls/FlyControls.d.ts +42 -0
- package/dist/controls/FlyControls.d.ts.map +1 -1
- package/dist/controls/FlyControls.js +106 -3
- package/dist/controls/FlyControls.js.map +1 -1
- package/dist/controls/MapControls.d.ts +13 -0
- package/dist/controls/MapControls.d.ts.map +1 -1
- package/dist/controls/MapControls.js +40 -2
- package/dist/controls/MapControls.js.map +1 -1
- package/dist/controls/OrbitControls.d.ts +54 -0
- package/dist/controls/OrbitControls.d.ts.map +1 -1
- package/dist/controls/OrbitControls.js +133 -0
- package/dist/controls/OrbitControls.js.map +1 -1
- package/dist/controls/PointerLockControls.d.ts +12 -5
- package/dist/controls/PointerLockControls.d.ts.map +1 -1
- package/dist/controls/PointerLockControls.js +30 -11
- package/dist/controls/PointerLockControls.js.map +1 -1
- package/dist/controls/SelectionManager.d.ts +22 -1
- package/dist/controls/SelectionManager.d.ts.map +1 -1
- package/dist/controls/SelectionManager.js +64 -6
- package/dist/controls/SelectionManager.js.map +1 -1
- package/dist/controls/TransformControls.d.ts +135 -1
- package/dist/controls/TransformControls.d.ts.map +1 -1
- package/dist/controls/TransformControls.js +534 -10
- package/dist/controls/TransformControls.js.map +1 -1
- package/dist/controls/index.d.ts +7 -2
- package/dist/controls/index.d.ts.map +1 -1
- package/dist/controls/index.js +1 -1
- package/dist/controls/index.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts +2 -0
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js +769 -42
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-template-evidence.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-template-evidence.js +22 -2
- package/dist/create-aura3d/showcase-spec-game-template-evidence.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-replacement-candidates.js +26 -0
- package/dist/create-aura3d/showcase-spec-replacement-candidates.js.map +1 -1
- package/dist/ecs/components/MeshComponent.d.ts +5 -2
- package/dist/ecs/components/MeshComponent.d.ts.map +1 -1
- package/dist/ecs/components/MeshComponent.js.map +1 -1
- package/dist/editor-runtime/CartoonSceneEditor.d.ts +111 -0
- package/dist/editor-runtime/CartoonSceneEditor.d.ts.map +1 -0
- package/dist/editor-runtime/CartoonSceneEditor.js +285 -0
- package/dist/editor-runtime/CartoonSceneEditor.js.map +1 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.d.ts +142 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.d.ts.map +1 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.js +468 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.js.map +1 -0
- package/dist/editor-runtime/index.d.ts +2 -0
- package/dist/editor-runtime/index.d.ts.map +1 -1
- package/dist/editor-runtime/index.js +1 -0
- package/dist/editor-runtime/index.js.map +1 -1
- package/dist/engine/agent-api/ApplicationKits.d.ts +307 -0
- package/dist/engine/agent-api/ApplicationKits.d.ts.map +1 -0
- package/dist/engine/agent-api/ApplicationKits.js +650 -0
- package/dist/engine/agent-api/ApplicationKits.js.map +1 -0
- package/dist/engine/agent-api/CartoonAssetManifest.d.ts +50 -0
- package/dist/engine/agent-api/CartoonAssetManifest.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonAssetManifest.js +65 -0
- package/dist/engine/agent-api/CartoonAssetManifest.js.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts +120 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.js +432 -0
- package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.d.ts +51 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.js +79 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.js.map +1 -0
- package/dist/engine/agent-api/CartoonMotionQuality.d.ts +83 -0
- package/dist/engine/agent-api/CartoonMotionQuality.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonMotionQuality.js +128 -0
- package/dist/engine/agent-api/CartoonMotionQuality.js.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts +150 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.js +345 -0
- package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts +143 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js +410 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
- package/dist/engine/agent-api/CartoonRouteProof.d.ts +112 -0
- package/dist/engine/agent-api/CartoonRouteProof.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonRouteProof.js +127 -0
- package/dist/engine/agent-api/CartoonRouteProof.js.map +1 -0
- package/dist/engine/agent-api/CombatFrameData.d.ts +210 -0
- package/dist/engine/agent-api/CombatFrameData.d.ts.map +1 -0
- package/dist/engine/agent-api/CombatFrameData.js +324 -0
- package/dist/engine/agent-api/CombatFrameData.js.map +1 -0
- package/dist/engine/agent-api/FocusSelection.d.ts +186 -0
- package/dist/engine/agent-api/FocusSelection.d.ts.map +1 -0
- package/dist/engine/agent-api/FocusSelection.js +436 -0
- package/dist/engine/agent-api/FocusSelection.js.map +1 -0
- package/dist/engine/agent-api/GameEvidence.d.ts +1 -0
- package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -1
- package/dist/engine/agent-api/GameEvidence.js +1 -0
- package/dist/engine/agent-api/GameEvidence.js.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.d.ts +43 -1
- package/dist/engine/agent-api/GameGenreKits.d.ts.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.js +79 -13
- package/dist/engine/agent-api/GameGenreKits.js.map +1 -1
- package/dist/engine/agent-api/GameRuntime.d.ts +1 -0
- package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/GameRuntime.js +1 -0
- package/dist/engine/agent-api/GameRuntime.js.map +1 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts +22 -0
- package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts.map +1 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.js +9 -0
- package/dist/engine/agent-api/GameSceneGeometryBindings.js.map +1 -1
- package/dist/engine/agent-api/LayeredSceneComposition.d.ts +295 -0
- package/dist/engine/agent-api/LayeredSceneComposition.d.ts.map +1 -0
- package/dist/engine/agent-api/LayeredSceneComposition.js +387 -0
- package/dist/engine/agent-api/LayeredSceneComposition.js.map +1 -0
- package/dist/engine/agent-api/PlatformerMotion.d.ts +177 -0
- package/dist/engine/agent-api/PlatformerMotion.d.ts.map +1 -0
- package/dist/engine/agent-api/PlatformerMotion.js +207 -0
- package/dist/engine/agent-api/PlatformerMotion.js.map +1 -0
- package/dist/engine/agent-api/SceneGroundingUtils.d.ts +62 -0
- package/dist/engine/agent-api/SceneGroundingUtils.d.ts.map +1 -1
- package/dist/engine/agent-api/SceneGroundingUtils.js +37 -0
- package/dist/engine/agent-api/SceneGroundingUtils.js.map +1 -1
- package/dist/engine/agent-api/SceneQueries.d.ts +124 -0
- package/dist/engine/agent-api/SceneQueries.d.ts.map +1 -0
- package/dist/engine/agent-api/SceneQueries.js +221 -0
- package/dist/engine/agent-api/SceneQueries.js.map +1 -0
- package/dist/engine/agent-api/SpatialAnchoring.d.ts +232 -0
- package/dist/engine/agent-api/SpatialAnchoring.d.ts.map +1 -0
- package/dist/engine/agent-api/SpatialAnchoring.js +348 -0
- package/dist/engine/agent-api/SpatialAnchoring.js.map +1 -0
- package/dist/engine/agent-api/SubjectFramingUtils.d.ts +127 -0
- package/dist/engine/agent-api/SubjectFramingUtils.d.ts.map +1 -0
- package/dist/engine/agent-api/SubjectFramingUtils.js +126 -0
- package/dist/engine/agent-api/SubjectFramingUtils.js.map +1 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts +81 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -0
- package/dist/engine/agent-api/TouchControlBinding.js +116 -0
- package/dist/engine/agent-api/TouchControlBinding.js.map +1 -0
- package/dist/engine/agent-api/VehicleChassis.d.ts +192 -0
- package/dist/engine/agent-api/VehicleChassis.d.ts.map +1 -0
- package/dist/engine/agent-api/VehicleChassis.js +322 -0
- package/dist/engine/agent-api/VehicleChassis.js.map +1 -0
- package/dist/engine/agent-api/VehicleDriverAi.d.ts +123 -0
- package/dist/engine/agent-api/VehicleDriverAi.d.ts.map +1 -0
- package/dist/engine/agent-api/VehicleDriverAi.js +217 -0
- package/dist/engine/agent-api/VehicleDriverAi.js.map +1 -0
- package/dist/engine/agent-api/WorldLabelRenderer.d.ts +146 -0
- package/dist/engine/agent-api/WorldLabelRenderer.d.ts.map +1 -0
- package/dist/engine/agent-api/WorldLabelRenderer.js +331 -0
- package/dist/engine/agent-api/WorldLabelRenderer.js.map +1 -0
- package/dist/engine/agent-api/index.d.ts +69 -0
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +633 -75
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.d.ts +32 -0
- package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.js +37 -2
- package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +8 -0
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +2 -1
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/input/controls/PointerLockControls.d.ts +1 -1
- package/dist/input/controls/PointerLockControls.d.ts.map +1 -1
- package/dist/input/controls/PointerLockControls.js +12 -0
- package/dist/input/controls/PointerLockControls.js.map +1 -1
- package/dist/physics/Collider.d.ts +1 -1
- package/dist/physics/Collider.d.ts.map +1 -1
- package/dist/physics/Collider.js +2 -2
- package/dist/physics/Collider.js.map +1 -1
- package/dist/physics/CollisionEvents.d.ts +1 -0
- package/dist/physics/CollisionEvents.d.ts.map +1 -1
- package/dist/physics/CollisionEvents.js.map +1 -1
- package/dist/physics/NarrowPhase.d.ts +11 -0
- package/dist/physics/NarrowPhase.d.ts.map +1 -0
- package/dist/physics/NarrowPhase.js +565 -0
- package/dist/physics/NarrowPhase.js.map +1 -0
- package/dist/physics/PhysicsDebugDraw.js +19 -1
- package/dist/physics/PhysicsDebugDraw.js.map +1 -1
- package/dist/physics/PhysicsWorld.d.ts +43 -0
- package/dist/physics/PhysicsWorld.d.ts.map +1 -1
- package/dist/physics/PhysicsWorld.js +305 -30
- package/dist/physics/PhysicsWorld.js.map +1 -1
- package/dist/physics/RigidBody.d.ts +8 -1
- package/dist/physics/RigidBody.d.ts.map +1 -1
- package/dist/physics/RigidBody.js +32 -5
- package/dist/physics/RigidBody.js.map +1 -1
- package/dist/physics/Shape.d.ts +16 -2
- package/dist/physics/Shape.d.ts.map +1 -1
- package/dist/physics/Shape.js +93 -31
- package/dist/physics/Shape.js.map +1 -1
- package/dist/physics/TimeOfImpact.d.ts +15 -0
- package/dist/physics/TimeOfImpact.d.ts.map +1 -0
- package/dist/physics/TimeOfImpact.js +81 -0
- package/dist/physics/TimeOfImpact.js.map +1 -0
- package/dist/physics/index.d.ts +2 -0
- package/dist/physics/index.d.ts.map +1 -1
- package/dist/physics/index.js +2 -0
- package/dist/physics/index.js.map +1 -1
- package/dist/rendering/CascadedShadowMaps.d.ts +9 -1
- package/dist/rendering/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/rendering/CascadedShadowMaps.js +68 -0
- package/dist/rendering/CascadedShadowMaps.js.map +1 -1
- package/dist/rendering/ClusteredForwardLighting.d.ts +28 -0
- package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -0
- package/dist/rendering/ClusteredForwardLighting.js +156 -0
- package/dist/rendering/ClusteredForwardLighting.js.map +1 -0
- package/dist/rendering/DepthPass.d.ts +14 -1
- package/dist/rendering/DepthPass.d.ts.map +1 -1
- package/dist/rendering/DepthPass.js +19 -4
- package/dist/rendering/DepthPass.js.map +1 -1
- package/dist/rendering/EnvironmentMapResources.d.ts +59 -1
- package/dist/rendering/EnvironmentMapResources.d.ts.map +1 -1
- package/dist/rendering/EnvironmentMapResources.js +140 -100
- package/dist/rendering/EnvironmentMapResources.js.map +1 -1
- package/dist/rendering/EnvironmentPlatform.d.ts +3 -2
- package/dist/rendering/EnvironmentPlatform.d.ts.map +1 -1
- package/dist/rendering/EnvironmentPlatform.js +99 -44
- package/dist/rendering/EnvironmentPlatform.js.map +1 -1
- package/dist/rendering/ForwardPass.d.ts +37 -0
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +234 -7
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/Geometry.d.ts +19 -0
- package/dist/rendering/Geometry.d.ts.map +1 -1
- package/dist/rendering/Geometry.js +64 -0
- package/dist/rendering/Geometry.js.map +1 -1
- package/dist/rendering/IBL.d.ts.map +1 -1
- package/dist/rendering/IBL.js +0 -1
- package/dist/rendering/IBL.js.map +1 -1
- package/dist/rendering/LightCollector.d.ts +5 -1
- package/dist/rendering/LightCollector.d.ts.map +1 -1
- package/dist/rendering/LightCollector.js +16 -3
- package/dist/rendering/LightCollector.js.map +1 -1
- package/dist/rendering/LightUniforms.d.ts +26 -1
- package/dist/rendering/LightUniforms.d.ts.map +1 -1
- package/dist/rendering/LightUniforms.js +140 -8
- package/dist/rendering/LightUniforms.js.map +1 -1
- package/dist/rendering/LightingRig.d.ts +77 -0
- package/dist/rendering/LightingRig.d.ts.map +1 -1
- package/dist/rendering/LightingRig.js +100 -11
- package/dist/rendering/LightingRig.js.map +1 -1
- package/dist/rendering/MeshConsolidation.d.ts +63 -0
- package/dist/rendering/MeshConsolidation.d.ts.map +1 -0
- package/dist/rendering/MeshConsolidation.js +251 -0
- package/dist/rendering/MeshConsolidation.js.map +1 -0
- package/dist/rendering/PMREM.d.ts +13 -1
- package/dist/rendering/PMREM.d.ts.map +1 -1
- package/dist/rendering/PMREM.js +18 -4
- package/dist/rendering/PMREM.js.map +1 -1
- package/dist/rendering/PostProcessPass.d.ts +24 -2
- package/dist/rendering/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/PostProcessPass.js +136 -18
- package/dist/rendering/PostProcessPass.js.map +1 -1
- package/dist/rendering/PrimitiveSubmissionAudit.d.ts +195 -0
- package/dist/rendering/PrimitiveSubmissionAudit.d.ts.map +1 -0
- package/dist/rendering/PrimitiveSubmissionAudit.js +280 -0
- package/dist/rendering/PrimitiveSubmissionAudit.js.map +1 -0
- package/dist/rendering/ProductTurntableFixtures.d.ts.map +1 -1
- package/dist/rendering/ProductTurntableFixtures.js +93 -13
- package/dist/rendering/ProductTurntableFixtures.js.map +1 -1
- package/dist/rendering/ReflectionProbe.d.ts +59 -0
- package/dist/rendering/ReflectionProbe.d.ts.map +1 -1
- package/dist/rendering/ReflectionProbe.js +224 -0
- package/dist/rendering/ReflectionProbe.js.map +1 -1
- package/dist/rendering/ReflectionSurfaces.d.ts +4 -2
- package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/rendering/ReflectionSurfaces.js +13 -8
- package/dist/rendering/ReflectionSurfaces.js.map +1 -1
- package/dist/rendering/RenderBackend.d.ts +1 -1
- package/dist/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/rendering/RenderBackend.js +5 -1
- package/dist/rendering/RenderBackend.js.map +1 -1
- package/dist/rendering/RenderDevice.d.ts +13 -2
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js +5 -2
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/Renderer.d.ts +41 -1
- package/dist/rendering/Renderer.d.ts.map +1 -1
- package/dist/rendering/Renderer.js +406 -61
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.d.ts +10 -3
- package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.js +25 -5
- package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.d.ts +3 -2
- package/dist/rendering/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.js +2 -0
- package/dist/rendering/RendererVisualPipelineReport.js.map +1 -1
- package/dist/rendering/ScreenSpaceLineMaterial.d.ts +34 -0
- package/dist/rendering/ScreenSpaceLineMaterial.d.ts.map +1 -0
- package/dist/rendering/ScreenSpaceLineMaterial.js +93 -0
- package/dist/rendering/ScreenSpaceLineMaterial.js.map +1 -0
- package/dist/rendering/ShaderChunks.d.ts +7 -0
- package/dist/rendering/ShaderChunks.d.ts.map +1 -1
- package/dist/rendering/ShaderChunks.js +137 -0
- package/dist/rendering/ShaderChunks.js.map +1 -1
- package/dist/rendering/ShaderLibrary.d.ts +17 -0
- package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
- package/dist/rendering/ShaderLibrary.js +940 -98
- package/dist/rendering/ShaderLibrary.js.map +1 -1
- package/dist/rendering/ShadowPass.d.ts +10 -0
- package/dist/rendering/ShadowPass.d.ts.map +1 -1
- package/dist/rendering/ShadowPass.js +8 -1
- package/dist/rendering/ShadowPass.js.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.d.ts +6 -0
- package/dist/rendering/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.js +22 -8
- package/dist/rendering/SkinnedLitMaterial.js.map +1 -1
- package/dist/rendering/SkinnedUnlitMaterial.d.ts +8 -0
- package/dist/rendering/SkinnedUnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/SkinnedUnlitMaterial.js +26 -9
- package/dist/rendering/SkinnedUnlitMaterial.js.map +1 -1
- package/dist/rendering/SpecularPrefilter.d.ts +42 -0
- package/dist/rendering/SpecularPrefilter.d.ts.map +1 -0
- package/dist/rendering/SpecularPrefilter.js +480 -0
- package/dist/rendering/SpecularPrefilter.js.map +1 -0
- package/dist/rendering/TerrainFixtures.d.ts +24 -0
- package/dist/rendering/TerrainFixtures.d.ts.map +1 -1
- package/dist/rendering/TerrainFixtures.js +96 -0
- package/dist/rendering/TerrainFixtures.js.map +1 -1
- package/dist/rendering/Texture.d.ts +7 -0
- package/dist/rendering/Texture.d.ts.map +1 -1
- package/dist/rendering/Texture.js +9 -0
- package/dist/rendering/Texture.js.map +1 -1
- package/dist/rendering/VertexFormat.d.ts +34 -1
- package/dist/rendering/VertexFormat.d.ts.map +1 -1
- package/dist/rendering/VertexFormat.js +61 -0
- package/dist/rendering/VertexFormat.js.map +1 -1
- package/dist/rendering/WebGL2Device.d.ts +48 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +1298 -44
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/WebGPUDevice.d.ts +7 -2
- package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
- package/dist/rendering/WebGPUDevice.js +111 -17
- package/dist/rendering/WebGPUDevice.js.map +1 -1
- package/dist/rendering/WebGPUSkinningLimits.d.ts +14 -0
- package/dist/rendering/WebGPUSkinningLimits.d.ts.map +1 -0
- package/dist/rendering/WebGPUSkinningLimits.js +14 -0
- package/dist/rendering/WebGPUSkinningLimits.js.map +1 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts +19 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.js +13 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.js.map +1 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.d.ts +36 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.js +23 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.js.map +1 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.d.ts +130 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.js +303 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.js.map +1 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.d.ts +28 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.js +39 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.js.map +1 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts +79 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts.map +1 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.js +88 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.js.map +1 -0
- package/dist/rendering/cartoon/index.d.ts +6 -0
- package/dist/rendering/cartoon/index.d.ts.map +1 -0
- package/dist/rendering/cartoon/index.js +6 -0
- package/dist/rendering/cartoon/index.js.map +1 -0
- package/dist/rendering/index.d.ts +26 -15
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +15 -9
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts +93 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts.map +1 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js +202 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js.map +1 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.js +3 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts +1 -0
- package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js +5 -3
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +9 -5
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.d.ts +5 -0
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.d.ts.map +1 -1
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.js +40 -0
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.js.map +1 -1
- package/dist/rendering/production-runtime/environment/HDRLoader.d.ts +6 -0
- package/dist/rendering/production-runtime/environment/HDRLoader.d.ts.map +1 -1
- package/dist/rendering/production-runtime/environment/HDRLoader.js +19 -0
- package/dist/rendering/production-runtime/environment/HDRLoader.js.map +1 -1
- package/dist/rendering/production-runtime/index.d.ts +3 -1
- package/dist/rendering/production-runtime/index.d.ts.map +1 -1
- package/dist/rendering/production-runtime/index.js +1 -0
- package/dist/rendering/production-runtime/index.js.map +1 -1
- package/dist/scene/Light.d.ts +1 -1
- package/dist/scene/Light.d.ts.map +1 -1
- package/dist/scene/RectAreaLight.d.ts +22 -0
- package/dist/scene/RectAreaLight.d.ts.map +1 -0
- package/dist/scene/RectAreaLight.js +46 -0
- package/dist/scene/RectAreaLight.js.map +1 -0
- package/dist/scene/Scene.d.ts +6 -1
- package/dist/scene/Scene.d.ts.map +1 -1
- package/dist/scene/Scene.js +8 -1
- package/dist/scene/Scene.js.map +1 -1
- package/dist/scene/SceneSerializer.d.ts +3 -1
- package/dist/scene/SceneSerializer.d.ts.map +1 -1
- package/dist/scene/SceneSerializer.js +14 -7
- package/dist/scene/SceneSerializer.js.map +1 -1
- package/dist/scene/index.d.ts +1 -0
- package/dist/scene/index.d.ts.map +1 -1
- package/dist/scene/index.js +1 -0
- package/dist/scene/index.js.map +1 -1
- package/dist/scripting/CartoonNodeCategories.d.ts +3 -0
- package/dist/scripting/CartoonNodeCategories.d.ts.map +1 -0
- package/dist/scripting/CartoonNodeCategories.js +9 -0
- package/dist/scripting/CartoonNodeCategories.js.map +1 -0
- package/dist/scripting/CartoonVisualNodes.d.ts +3 -0
- package/dist/scripting/CartoonVisualNodes.d.ts.map +1 -0
- package/dist/scripting/CartoonVisualNodes.js +41 -0
- package/dist/scripting/CartoonVisualNodes.js.map +1 -0
- package/package.json +131 -114
- package/templates/production-asset-inspector/README.md +5 -0
- package/templates/production-asset-inspector/asset-manifest.json +9 -0
- package/templates/production-asset-inspector/index.html +2 -0
- package/templates/production-asset-inspector/package.json +17 -0
- package/templates/production-asset-inspector/src/main.ts +16 -0
- package/templates/production-material-studio/README.md +5 -0
- package/templates/production-material-studio/asset-manifest.json +9 -0
- package/templates/production-material-studio/index.html +2 -0
- package/templates/production-material-studio/package.json +17 -0
- package/templates/production-material-studio/src/main.ts +16 -0
- package/templates/production-product-configurator/README.md +5 -0
- package/templates/production-product-configurator/asset-manifest.json +9 -0
- package/templates/production-product-configurator/index.html +2 -0
- package/templates/production-product-configurator/package.json +17 -0
- package/templates/production-product-configurator/src/main.ts +16 -0
- package/templates/production-product-viewer/README.md +7 -0
- package/templates/production-product-viewer/asset-manifest.json +8 -0
- package/templates/production-product-viewer/index.html +26 -0
- package/templates/production-product-viewer/package.json +17 -0
- package/templates/production-product-viewer/src/main.ts +70 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { createPromptAnimationIssue, promptAnimationContractVersion } from "./PromptAnimationContract.js";
|
|
2
|
+
export const cartoonRouteProofSchemaVersion = "aura3d-cartoon-route-proof/v1";
|
|
3
|
+
export function createCartoonRouteProof(input) {
|
|
4
|
+
const checks = createCartoonRouteReadinessChecks(input);
|
|
5
|
+
const issues = checks
|
|
6
|
+
.filter((check) => !check.passed)
|
|
7
|
+
.map((check) => createPromptAnimationIssue("error", `cartoon-route-${check.id}`, check.message));
|
|
8
|
+
for (const error of input.routeErrors ?? []) {
|
|
9
|
+
issues.push(createPromptAnimationIssue("error", "cartoon-route-error", error));
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
artifact: "cartoon-route-proof",
|
|
13
|
+
schemaVersion: cartoonRouteProofSchemaVersion,
|
|
14
|
+
contractId: promptAnimationContractVersion,
|
|
15
|
+
episodeId: input.episodeId,
|
|
16
|
+
generatedAt: input.generatedAt,
|
|
17
|
+
route: input.route,
|
|
18
|
+
duration: input.duration,
|
|
19
|
+
frameRate: input.frameRate,
|
|
20
|
+
assets: input.assets,
|
|
21
|
+
shots: input.shots,
|
|
22
|
+
captions: input.captions ?? [],
|
|
23
|
+
visemes: input.visemes ?? [],
|
|
24
|
+
gestures: input.gestures ?? [],
|
|
25
|
+
render: input.render,
|
|
26
|
+
playback: input.playback,
|
|
27
|
+
routeErrors: input.routeErrors ?? [],
|
|
28
|
+
checks,
|
|
29
|
+
issues,
|
|
30
|
+
status: issues.some((issue) => issue.severity === "error") ? "fail" : "pass"
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function validateCartoonRouteProof(proof) {
|
|
34
|
+
const issues = [];
|
|
35
|
+
if (proof.schemaVersion !== cartoonRouteProofSchemaVersion) {
|
|
36
|
+
issues.push(createPromptAnimationIssue("error", "cartoon-route-proof-schema-version-unknown", `Unknown cartoon route proof schema "${proof.schemaVersion}".`));
|
|
37
|
+
}
|
|
38
|
+
if (proof.status !== "pass") {
|
|
39
|
+
issues.push(createPromptAnimationIssue("error", "cartoon-route-proof-status-fail", "Cartoon route proof did not pass."));
|
|
40
|
+
}
|
|
41
|
+
return [...issues, ...proof.issues];
|
|
42
|
+
}
|
|
43
|
+
function createCartoonRouteReadinessChecks(input) {
|
|
44
|
+
const characterAssets = input.assets.filter((asset) => asset.role === "character");
|
|
45
|
+
const setAssets = input.assets.filter((asset) => asset.role === "set");
|
|
46
|
+
const typedAssetFailures = input.assets.filter((asset) => !asset.typedAsset || !asset.ready || asset.source !== "aura-assets");
|
|
47
|
+
const missingShotCharacters = input.shots.flatMap((shot) => shot.expectedCharacterIds.filter((characterId) => !shot.visibleCharacterIds.includes(characterId)).map((characterId) => ({
|
|
48
|
+
shotId: shot.id,
|
|
49
|
+
characterId
|
|
50
|
+
})));
|
|
51
|
+
const missingRenderedCaptions = (input.captions ?? []).filter((caption) => !caption.rendered);
|
|
52
|
+
const missingRenderedVisemes = (input.visemes ?? []).filter((viseme) => !viseme.rendered || viseme.mode === "missing-mouth-motion");
|
|
53
|
+
const missingRenderedGestures = (input.gestures ?? []).filter((gesture) => !gesture.rendered);
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
id: "route-present",
|
|
57
|
+
passed: input.route.length > 0,
|
|
58
|
+
message: "Cartoon route URL/path is required."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: "typed-character-assets",
|
|
62
|
+
passed: characterAssets.length >= 2 && typedAssetFailures.filter((asset) => asset.role === "character").length === 0,
|
|
63
|
+
message: "Route proof requires at least two ready typed character assets from aura-assets."
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: "typed-set-assets",
|
|
67
|
+
passed: setAssets.length >= 1 && typedAssetFailures.filter((asset) => asset.role === "set").length === 0,
|
|
68
|
+
message: "Route proof requires at least one ready typed set asset from aura-assets."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: "shots-present",
|
|
72
|
+
passed: input.shots.length > 0,
|
|
73
|
+
message: "Route proof requires at least one shot."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: "shot-characters-visible",
|
|
77
|
+
passed: missingShotCharacters.length === 0,
|
|
78
|
+
message: `Expected characters must be visible in every shot; ${missingShotCharacters.length} missing visibility records.`
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: "shot-nonblank",
|
|
82
|
+
passed: input.shots.every((shot) => shot.nonblank && shot.frameCount > 0),
|
|
83
|
+
message: "Every shot must be nonblank and contain sampled frames."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: "captions-rendered",
|
|
87
|
+
passed: (input.captions?.length ?? 0) > 0 && missingRenderedCaptions.length === 0,
|
|
88
|
+
message: "Route proof requires rendered captions."
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: "visemes-rendered",
|
|
92
|
+
passed: (input.visemes?.length ?? 0) > 0 && missingRenderedVisemes.length === 0,
|
|
93
|
+
message: "Route proof requires rendered viseme or mouth-motion cues."
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: "gestures-rendered",
|
|
97
|
+
passed: (input.gestures?.length ?? 0) > 0 && missingRenderedGestures.length === 0,
|
|
98
|
+
message: "Route proof requires rendered character gestures."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: "render-nonblank",
|
|
102
|
+
passed: input.render.nonblank && input.render.frameCount > 0,
|
|
103
|
+
message: "Route render state must be nonblank and have frames."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
id: "not-source-only",
|
|
107
|
+
passed: input.render.sourceOnly !== true && input.render.notTrue3D !== true,
|
|
108
|
+
message: "Source-only or not-true-3D routes cannot satisfy 1.1 cartoon route proof."
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
id: "no-export-overlays",
|
|
112
|
+
passed: input.render.debugOverlaysVisible !== true && input.render.routeChromeVisible !== true,
|
|
113
|
+
message: "Export route proof must not include debug overlays or route chrome."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: "playback-controls",
|
|
117
|
+
passed: input.playback.canPlay && input.playback.canPause && input.playback.canScrub && input.playback.canJumpShots,
|
|
118
|
+
message: "Route proof requires play, pause, scrub, and shot-jump controls."
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: "route-errors",
|
|
122
|
+
passed: (input.routeErrors?.length ?? 0) === 0,
|
|
123
|
+
message: "Route proof must have no route errors."
|
|
124
|
+
}
|
|
125
|
+
];
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=CartoonRouteProof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartoonRouteProof.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CartoonRouteProof.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reusable frame-based combat model: frame data, spacing and a credible AI.
|
|
3
|
+
*
|
|
4
|
+
* ## The defects this addresses
|
|
5
|
+
*
|
|
6
|
+
* Aura Clash's attacks were reported as unrealistic, with weak spacing, limited
|
|
7
|
+
* momentum, and animations that do not correspond convincingly to hits. Converting
|
|
8
|
+
* the shipped move table to frames at 60fps shows why:
|
|
9
|
+
*
|
|
10
|
+
* | move | startup | active | recovery |
|
|
11
|
+
* | ------- | ------- | ------ | -------- |
|
|
12
|
+
* | light | 4 | **12** | **4** |
|
|
13
|
+
* | heavy | 6 | **17** | **5** |
|
|
14
|
+
* | special | 5 | **32** | **4** |
|
|
15
|
+
*
|
|
16
|
+
* Real fighting-game frame data is the opposite shape: a short active window (2-5
|
|
17
|
+
* frames) and a long recovery (10-30 frames). Aura Clash's active windows are 3-8x
|
|
18
|
+
* too long and its recoveries 3-6x too short, which has three consequences:
|
|
19
|
+
*
|
|
20
|
+
* 1. **Hits do not correspond to the animation.** A 32-frame active window on the
|
|
21
|
+
* special means the hitbox is live for over half a second, so damage lands at
|
|
22
|
+
* moments that look nothing like contact -- the reported "attack dealing damage
|
|
23
|
+
* before contact".
|
|
24
|
+
* 2. **No spacing game.** With a 12-frame active window and a 4-frame recovery, an
|
|
25
|
+
* attack is nearly always safe. Whiffing costs almost nothing, so there is no
|
|
26
|
+
* reason to respect range and no punish window to aim for. That is precisely
|
|
27
|
+
* "weak spacing".
|
|
28
|
+
* 3. **No trades or momentum.** Blockstun and hitstun cannot create meaningful
|
|
29
|
+
* advantage when every move recovers in four frames.
|
|
30
|
+
*
|
|
31
|
+
* The engine defect is that nothing validated frame data as frame data. A move table
|
|
32
|
+
* could declare any startup/active/recovery split and no check compared it against the
|
|
33
|
+
* shape that makes a combat system readable.
|
|
34
|
+
*
|
|
35
|
+
* This module adds that check ({@link validateCombatFrameData}), a solver that derives
|
|
36
|
+
* balanced frame data from an intended move role ({@link solveCombatFrameData}), and a
|
|
37
|
+
* reactive AI ({@link createCombatAi}) that behaves like an opponent: it respects
|
|
38
|
+
* range, reacts with a delay, blocks what it sees, and punishes what it can.
|
|
39
|
+
*
|
|
40
|
+
* Pure and dependency-free.
|
|
41
|
+
*/
|
|
42
|
+
export type CombatMoveRole = "jab" | "light" | "medium" | "heavy" | "launcher" | "special";
|
|
43
|
+
export interface CombatFrameData {
|
|
44
|
+
readonly id: string;
|
|
45
|
+
/** Frames before the hitbox becomes active. */
|
|
46
|
+
readonly startup: number;
|
|
47
|
+
/** Frames the hitbox is live. */
|
|
48
|
+
readonly active: number;
|
|
49
|
+
/** Frames after the active window during which the attacker cannot act. */
|
|
50
|
+
readonly recovery: number;
|
|
51
|
+
/** Frames the defender is stunned on hit. */
|
|
52
|
+
readonly hitstun: number;
|
|
53
|
+
/** Frames the defender is stunned on block. */
|
|
54
|
+
readonly blockstun: number;
|
|
55
|
+
/** Horizontal reach of the hitbox, in world units. */
|
|
56
|
+
readonly range: number;
|
|
57
|
+
readonly damage: number;
|
|
58
|
+
/** Knockback impulse applied on hit. */
|
|
59
|
+
readonly knockback: number;
|
|
60
|
+
/** Frames both fighters freeze on contact, which sells the impact. */
|
|
61
|
+
readonly hitstop: number;
|
|
62
|
+
}
|
|
63
|
+
export interface CombatFrameAdvantage {
|
|
64
|
+
readonly id: string;
|
|
65
|
+
/**
|
|
66
|
+
* Frame advantage on hit: positive means the attacker acts first afterwards.
|
|
67
|
+
*
|
|
68
|
+
* `hitstun - recovery`. A move that is heavily plus on hit can start a combo; one
|
|
69
|
+
* that is minus on hit cannot.
|
|
70
|
+
*/
|
|
71
|
+
readonly onHit: number;
|
|
72
|
+
/**
|
|
73
|
+
* Frame advantage on block. Negative means the defender can act first and punish.
|
|
74
|
+
*
|
|
75
|
+
* This is the number that creates a spacing game. When every move is plus on block
|
|
76
|
+
* there is no risk in attacking.
|
|
77
|
+
*/
|
|
78
|
+
readonly onBlock: number;
|
|
79
|
+
/** Frames the attacker is helpless after a whiff: the punish window. */
|
|
80
|
+
readonly whiffPunishWindow: number;
|
|
81
|
+
/** Total frames the move occupies. */
|
|
82
|
+
readonly totalFrames: number;
|
|
83
|
+
}
|
|
84
|
+
/** Frame advantage for a move. */
|
|
85
|
+
export declare function combatFrameAdvantage(move: CombatFrameData): CombatFrameAdvantage;
|
|
86
|
+
export interface CombatFrameCheck {
|
|
87
|
+
readonly id: string;
|
|
88
|
+
readonly moveId: string;
|
|
89
|
+
readonly description: string;
|
|
90
|
+
readonly passes: boolean;
|
|
91
|
+
readonly detail: string;
|
|
92
|
+
}
|
|
93
|
+
export interface CombatFrameReport {
|
|
94
|
+
readonly schema: "aura3d-combat-frame-data/1.0";
|
|
95
|
+
readonly moves: readonly (CombatFrameData & {
|
|
96
|
+
readonly advantage: CombatFrameAdvantage;
|
|
97
|
+
})[];
|
|
98
|
+
readonly checks: readonly CombatFrameCheck[];
|
|
99
|
+
readonly passes: boolean;
|
|
100
|
+
}
|
|
101
|
+
export interface CombatFrameLimits {
|
|
102
|
+
/** Longest readable active window. Real games use 2-5 frames. */
|
|
103
|
+
readonly maxActiveFrames?: number | undefined;
|
|
104
|
+
/** Shortest active window that can still connect reliably. */
|
|
105
|
+
readonly minActiveFrames?: number | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* Minimum recovery as a multiple of the active window.
|
|
108
|
+
*
|
|
109
|
+
* This is the ratio that creates risk. Below roughly 2x an attack is nearly free.
|
|
110
|
+
*/
|
|
111
|
+
readonly minRecoveryToActiveRatio?: number | undefined;
|
|
112
|
+
/** Maximum frame advantage on block. Above 0 every move is safe. */
|
|
113
|
+
readonly maxOnBlock?: number | undefined;
|
|
114
|
+
/** Minimum punish window after a whiff, in frames. */
|
|
115
|
+
readonly minWhiffPunishWindow?: number | undefined;
|
|
116
|
+
/** Minimum hitstop, so contact reads as impact. */
|
|
117
|
+
readonly minHitstop?: number | undefined;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Validate a move table as frame data.
|
|
121
|
+
*
|
|
122
|
+
* This is the check that did not exist. It fails a table whose active windows are so
|
|
123
|
+
* long that damage cannot correspond to the animation, and one whose recoveries are so
|
|
124
|
+
* short that whiffing carries no risk.
|
|
125
|
+
*/
|
|
126
|
+
export declare function validateCombatFrameData(moves: readonly CombatFrameData[], limits?: CombatFrameLimits): CombatFrameReport;
|
|
127
|
+
export interface CombatMoveRequest {
|
|
128
|
+
readonly id: string;
|
|
129
|
+
readonly role: CombatMoveRole;
|
|
130
|
+
/** Reach in world units. Longer moves are made slower to start. */
|
|
131
|
+
readonly range: number;
|
|
132
|
+
/** Damage, used to scale risk. */
|
|
133
|
+
readonly damage: number;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Derive balanced frame data from a move's intended role.
|
|
137
|
+
*
|
|
138
|
+
* Reach adds startup, because a longer poke should be slower to commit to. Damage adds
|
|
139
|
+
* recovery, so a big hit is a bigger risk. Neither is a free parameter.
|
|
140
|
+
*/
|
|
141
|
+
export declare function solveCombatFrameData(request: CombatMoveRequest, options?: {
|
|
142
|
+
readonly referenceRange?: number | undefined;
|
|
143
|
+
readonly referenceDamage?: number | undefined;
|
|
144
|
+
}): CombatFrameData;
|
|
145
|
+
export type CombatAiAggression = "defensive" | "balanced" | "aggressive";
|
|
146
|
+
export interface CombatAiConfig {
|
|
147
|
+
readonly moves: readonly CombatFrameData[];
|
|
148
|
+
/**
|
|
149
|
+
* Reaction delay in frames.
|
|
150
|
+
*
|
|
151
|
+
* A zero-delay AI is not a credible opponent: it blocks the instant a button is
|
|
152
|
+
* pressed, which reads as cheating rather than as skill. Human reaction is roughly
|
|
153
|
+
* 12-18 frames at 60fps.
|
|
154
|
+
*/
|
|
155
|
+
readonly reactionFrames?: number | undefined;
|
|
156
|
+
/** Preferred distance to hold, in world units. Defaults to just outside its best poke. */
|
|
157
|
+
readonly preferredRange?: number | undefined;
|
|
158
|
+
readonly aggression?: CombatAiAggression | undefined;
|
|
159
|
+
/** Frames to wait after acting before acting again. */
|
|
160
|
+
readonly cooldownFrames?: number | undefined;
|
|
161
|
+
/** Deterministic seed. */
|
|
162
|
+
readonly seed?: number | undefined;
|
|
163
|
+
}
|
|
164
|
+
export interface CombatAiObservation {
|
|
165
|
+
/** Horizontal distance to the opponent. */
|
|
166
|
+
readonly distance: number;
|
|
167
|
+
/** Opponent's current move id, or undefined when neutral. */
|
|
168
|
+
readonly opponentMoveId?: string | undefined;
|
|
169
|
+
/** Frames the opponent's current move has been running. */
|
|
170
|
+
readonly opponentMoveFrame?: number | undefined;
|
|
171
|
+
/** True when the AI is currently in hitstun or blockstun and cannot act. */
|
|
172
|
+
readonly stunned?: boolean | undefined;
|
|
173
|
+
/** Frames remaining in the AI's own current move, 0 when free. */
|
|
174
|
+
readonly ownRecoveryFrames?: number | undefined;
|
|
175
|
+
readonly ownHealthFraction?: number | undefined;
|
|
176
|
+
readonly opponentHealthFraction?: number | undefined;
|
|
177
|
+
}
|
|
178
|
+
export interface CombatAiDecision {
|
|
179
|
+
/** Move to start this frame, or undefined to hold. */
|
|
180
|
+
readonly moveId: string | undefined;
|
|
181
|
+
/** Whether to block. */
|
|
182
|
+
readonly block: boolean;
|
|
183
|
+
/** Movement intent: -1 retreat, 0 hold, 1 advance. */
|
|
184
|
+
readonly approach: -1 | 0 | 1;
|
|
185
|
+
/** Why this decision was made, for evidence and debugging. */
|
|
186
|
+
readonly reason: string;
|
|
187
|
+
}
|
|
188
|
+
export interface CombatAi {
|
|
189
|
+
readonly kind: "aura-combat-ai";
|
|
190
|
+
decide(observation: CombatAiObservation): CombatAiDecision;
|
|
191
|
+
reset(): void;
|
|
192
|
+
telemetry(): {
|
|
193
|
+
readonly reactionFrames: number;
|
|
194
|
+
readonly preferredRange: number;
|
|
195
|
+
readonly aggression: CombatAiAggression;
|
|
196
|
+
readonly decisionCount: number;
|
|
197
|
+
readonly punishAttempts: number;
|
|
198
|
+
readonly blockAttempts: number;
|
|
199
|
+
readonly lastDecision: CombatAiDecision;
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Create a reactive combat AI.
|
|
204
|
+
*
|
|
205
|
+
* Behaves like an opponent rather than a timer: it holds a preferred range, reacts to a
|
|
206
|
+
* telegraphed attack after a delay, blocks what it has had time to see, and punishes a
|
|
207
|
+
* move whose recovery leaves a window. Deterministic for a given seed.
|
|
208
|
+
*/
|
|
209
|
+
export declare function createCombatAi(config: CombatAiConfig): CombatAi;
|
|
210
|
+
//# sourceMappingURL=CombatFrameData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CombatFrameData.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CombatFrameData.ts"],"names":[],"mappings":"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"}
|