@relu-interactives/spatial-ecs 0.11.0 → 0.11.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/dist/{System-BldSHxZV.d.cts → System-D8vm-Jvv.d.cts} +110 -3
- package/dist/{System-CADhPyQs.d.ts → System-ttkDQCrj.d.ts} +110 -3
- package/dist/{XRHandPose-D3Ab1Dfs.d.cts → XRHandPose-C97XVW2R.d.cts} +2 -41
- package/dist/{XRHandPose-BNSwd1y9.d.ts → XRHandPose-CxXtWF1y.d.ts} +2 -41
- package/dist/animation/index.cjs +33 -1
- package/dist/animation/index.cjs.map +1 -1
- package/dist/animation/index.js +1 -1
- package/dist/{chunk-TY3XCHOR.js → chunk-2DJBNWBB.js} +56 -15
- package/dist/chunk-2DJBNWBB.js.map +1 -0
- package/dist/{chunk-WWP46AEF.js → chunk-4FHJA6U4.js} +8 -4
- package/dist/chunk-4FHJA6U4.js.map +1 -0
- package/dist/{chunk-GSWC6LLD.js → chunk-GMSFEXUZ.js} +35 -3
- package/dist/chunk-GMSFEXUZ.js.map +1 -0
- package/dist/{chunk-JEPUCLZX.js → chunk-QAZCVCMP.js} +88 -27
- package/dist/chunk-QAZCVCMP.js.map +1 -0
- package/dist/{chunk-NXASMBDS.js → chunk-SM5KGNYX.js} +4 -4
- package/dist/{chunk-NXASMBDS.js.map → chunk-SM5KGNYX.js.map} +1 -1
- package/dist/{chunk-JNYPJB55.js → chunk-T7SRBLPJ.js} +24 -4
- package/dist/chunk-T7SRBLPJ.js.map +1 -0
- package/dist/components/index.cjs +21 -1
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.cts +3 -3
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.js +1 -1
- package/dist/docs/api/Behaviour/classes/Behaviour.md +187 -46
- package/dist/docs/api/Behaviour/type-aliases/UiInteractionEvent.md +5 -5
- package/dist/docs/api/Component/classes/Component.md +7 -1
- package/dist/docs/api/components/classes/AnimationComponent.md +26 -26
- package/dist/docs/api/components/classes/AudioComponent.md +20 -19
- package/dist/docs/api/components/classes/BoneAttachmentComponent.md +65 -0
- package/dist/docs/api/components/classes/CameraComponent.md +14 -14
- package/dist/docs/api/components/classes/EntityType.md +3 -3
- package/dist/docs/api/components/classes/Environment.md +3 -3
- package/dist/docs/api/components/classes/IKComponent.md +59 -0
- package/dist/docs/api/components/classes/ImageComponent.md +7 -7
- package/dist/docs/api/components/classes/ImageTarget.md +7 -7
- package/dist/docs/api/components/classes/ImageTargetAnchor.md +4 -4
- package/dist/docs/api/components/classes/InstanceSlotComponent.md +4 -4
- package/dist/docs/api/components/classes/InstancedMeshComponent.md +10 -10
- package/dist/docs/api/components/classes/LightComponent.md +6 -6
- package/dist/docs/api/components/classes/MaterialComponent.md +14 -14
- package/dist/docs/api/components/classes/MeshComponent.md +3 -3
- package/dist/docs/api/components/classes/MeshGeometryComponent.md +9 -9
- package/dist/docs/api/components/classes/ModelComponent.md +6 -6
- package/dist/docs/api/components/classes/Name.md +3 -3
- package/dist/docs/api/components/classes/NetworkIdentityComponent.md +42 -0
- package/dist/docs/api/components/classes/NetworkSpawnerComponent.md +48 -0
- package/dist/docs/api/components/classes/NetworkTransformComponent.md +51 -0
- package/dist/docs/api/components/classes/NetworkedPropsComponent.md +47 -0
- package/dist/docs/api/components/classes/Object3DRef.md +4 -4
- package/dist/docs/api/components/classes/ParentId.md +3 -3
- package/dist/docs/api/components/classes/PhysicsComponent.md +7 -7
- package/dist/docs/api/components/classes/Postprocessing.md +3 -3
- package/dist/docs/api/components/classes/PrefabInstance.md +5 -5
- package/dist/docs/api/components/classes/PrefabNode.md +3 -3
- package/dist/docs/api/components/classes/ScriptComponent.md +5 -5
- package/dist/docs/api/components/classes/ScriptObjectComponent.md +9 -9
- package/dist/docs/api/components/classes/Selectable.md +3 -3
- package/dist/docs/api/components/classes/SelectionTransformState.md +5 -5
- package/dist/docs/api/components/classes/SpriteComponent.md +7 -7
- package/dist/docs/api/components/classes/TransformComponent.md +12 -12
- package/dist/docs/api/components/classes/UIButtonComponent.md +18 -14
- package/dist/docs/api/components/classes/UIPanelComponent.md +13 -11
- package/dist/docs/api/components/classes/UISliderComponent.md +16 -11
- package/dist/docs/api/components/classes/UITextComponent.md +14 -12
- package/dist/docs/api/components/classes/UIToggleComponent.md +12 -9
- package/dist/docs/api/components/classes/VRTeleportAreaComponent.md +6 -6
- package/dist/docs/api/components/classes/VideoComponent.md +28 -28
- package/dist/docs/api/components/classes/XRAnchorComponent.md +3 -3
- package/dist/docs/api/components/classes/XREnvironmentComponent.md +5 -5
- package/dist/docs/api/components/classes/XRHandPoseComponent.md +4 -4
- package/dist/docs/api/components/classes/XRInteractableComponent.md +28 -28
- package/dist/docs/api/components/classes/XRInteractorComponent.md +10 -10
- package/dist/docs/api/components/classes/XRInteractorSideComponent.md +3 -3
- package/dist/docs/api/components/classes/XRRigComponent.md +17 -17
- package/dist/docs/api/components/functions/createAttachPoint.md +1 -1
- package/dist/docs/api/components/functions/createHandPoseEntry.md +1 -1
- package/dist/docs/api/components/functions/defaultMaterialValue.md +1 -1
- package/dist/docs/api/components/functions/handPoseDefinitionFor.md +1 -1
- package/dist/docs/api/components/functions/normalizeBoneHold.md +25 -0
- package/dist/docs/api/components/functions/normalizeEnvironmentLighting.md +1 -1
- package/dist/docs/api/components/functions/normalizeIKChain.md +25 -0
- package/dist/docs/api/components/functions/normalizePhysicsState.md +1 -1
- package/dist/docs/api/components/functions/setModelLoadState.md +1 -1
- package/dist/docs/api/components/functions/setPhysicsLiveRef.md +1 -1
- package/dist/docs/api/components/index.md +18 -0
- package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +9 -9
- package/dist/docs/api/components/type-aliases/BoneAttachmentOptions.md +35 -0
- package/dist/docs/api/components/type-aliases/BoneHold.md +34 -0
- package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +13 -13
- package/dist/docs/api/components/type-aliases/CameraProjection.md +1 -1
- package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +1 -1
- package/dist/docs/api/components/type-aliases/ColliderShape.md +1 -1
- package/dist/docs/api/components/type-aliases/ColliderState.md +20 -20
- package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +4 -4
- package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +1 -1
- package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +8 -8
- package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +1 -1
- package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +1 -1
- package/dist/docs/api/components/type-aliases/EnvironmentLightingState.md +9 -9
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxImageProjection.md +1 -1
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +8 -8
- package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +1 -1
- package/dist/docs/api/components/type-aliases/EnvironmentState.md +6 -6
- package/dist/docs/api/components/type-aliases/EnvironmentToneMapping.md +1 -1
- package/dist/docs/api/components/type-aliases/IKChain.md +37 -0
- package/dist/docs/api/components/type-aliases/IKLimb.md +15 -0
- package/dist/docs/api/components/type-aliases/IKOptions.md +27 -0
- package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +3 -3
- package/dist/docs/api/components/type-aliases/ImageTargetReference.md +7 -7
- package/dist/docs/api/components/type-aliases/InstanceTransform.md +13 -13
- package/dist/docs/api/components/type-aliases/InstancedMeshKind.md +1 -1
- package/dist/docs/api/components/type-aliases/LightShadowState.md +8 -8
- package/dist/docs/api/components/type-aliases/LightValueState.md +12 -12
- package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +1 -1
- package/dist/docs/api/components/type-aliases/MaterialValueState.md +28 -28
- package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +1 -1
- package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +7 -7
- package/dist/docs/api/components/type-aliases/ModelLoadState.md +1 -1
- package/dist/docs/api/components/type-aliases/NetValue.md +23 -0
- package/dist/docs/api/components/type-aliases/NetworkTransformOptions.md +18 -0
- package/dist/docs/api/components/type-aliases/PhysicsState.md +3 -3
- package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +3 -3
- package/dist/docs/api/components/type-aliases/PostprocessingState.md +62 -62
- package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +3 -3
- package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +2 -2
- package/dist/docs/api/components/type-aliases/RigidbodyState.md +17 -17
- package/dist/docs/api/components/type-aliases/RigidbodyType.md +1 -1
- package/dist/docs/api/components/type-aliases/ScriptEntry.md +8 -8
- package/dist/docs/api/components/type-aliases/ScriptObjectComponentInput.md +1 -1
- package/dist/docs/api/components/type-aliases/ScriptObjectRuntimeState.md +1 -1
- package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +1 -1
- package/dist/docs/api/components/type-aliases/TransformData.md +4 -4
- package/dist/docs/api/components/type-aliases/TransformModeValue.md +1 -1
- package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +1 -1
- package/dist/docs/api/components/type-aliases/UIButtonOptions.md +21 -13
- package/dist/docs/api/components/type-aliases/UIPanelOptions.md +14 -10
- package/dist/docs/api/components/type-aliases/UISliderOptions.md +20 -10
- package/dist/docs/api/components/type-aliases/UITextOptions.md +15 -11
- package/dist/docs/api/components/type-aliases/UIToggleOptions.md +14 -8
- package/dist/docs/api/components/type-aliases/UiFollowMode.md +1 -1
- package/dist/docs/api/components/type-aliases/UiIconPosition.md +13 -0
- package/dist/docs/api/components/type-aliases/UiSliderVariant.md +13 -0
- package/dist/docs/api/components/type-aliases/UiTextAlign.md +1 -1
- package/dist/docs/api/components/type-aliases/UiTextVAlign.md +1 -1
- package/dist/docs/api/components/type-aliases/UiToggleVariant.md +13 -0
- package/dist/docs/api/components/type-aliases/VRTeleportAreaOptions.md +5 -5
- package/dist/docs/api/components/type-aliases/Vec3.md +4 -4
- package/dist/docs/api/components/type-aliases/VrTeleportShape.md +1 -1
- package/dist/docs/api/components/type-aliases/XRAnchorOptions.md +2 -2
- package/dist/docs/api/components/type-aliases/XRHandPoseOptions.md +3 -3
- package/dist/docs/api/components/type-aliases/XRInteractableOptions.md +27 -27
- package/dist/docs/api/components/type-aliases/XRInteractorOptions.md +9 -9
- package/dist/docs/api/components/type-aliases/XRRigOptions.md +16 -16
- package/dist/docs/api/components/type-aliases/XrAttachPoint.md +13 -13
- package/dist/docs/api/components/type-aliases/XrDistanceGrabBehavior.md +1 -1
- package/dist/docs/api/components/type-aliases/XrEnvironmentKind.md +1 -1
- package/dist/docs/api/components/type-aliases/XrEnvironmentOrientation.md +1 -1
- package/dist/docs/api/components/type-aliases/XrEnvironmentPhysics.md +1 -1
- package/dist/docs/api/components/type-aliases/XrGrabGesture.md +1 -1
- package/dist/docs/api/components/type-aliases/XrGrabHands.md +1 -1
- package/dist/docs/api/components/type-aliases/XrGrabReach.md +1 -1
- package/dist/docs/api/components/type-aliases/XrHandPoseEntry.md +12 -12
- package/dist/docs/api/components/type-aliases/XrHandPreset.md +1 -1
- package/dist/docs/api/components/type-aliases/XrInteractorSide.md +1 -1
- package/dist/docs/api/components/type-aliases/XrInteractorType.md +1 -1
- package/dist/docs/api/components/type-aliases/XrLocomotionMode.md +1 -1
- package/dist/docs/api/components/type-aliases/XrTrackingOrigin.md +1 -1
- package/dist/docs/api/components/type-aliases/XrTwoHandRotation.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_LIGHTING.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_INSTANCED_MESH_PARAMETERS.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_INSTANCE_TRANSFORM.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_POSE_CURLS.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_POSE_DIRECTIONS.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +1 -1
- package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +1 -1
- package/dist/docs/api/components/variables/MODEL_NO_PATH_MESSAGE.md +1 -1
- package/dist/docs/api/index/classes/AnimationStateMachine.md +16 -16
- package/dist/docs/api/index/classes/AnimationStateManager.md +13 -13
- package/dist/docs/api/index/classes/AnimationSystem.md +3 -3
- package/dist/docs/api/index/classes/AudioMixer.md +161 -0
- package/dist/docs/api/index/classes/AudioSystem.md +138 -4
- package/dist/docs/api/index/classes/BoneHoldSystem.md +54 -0
- package/dist/docs/api/index/classes/CameraSyncSystem.md +2 -2
- package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +4 -4
- package/dist/docs/api/index/classes/HandPoseTracker.md +6 -6
- package/dist/docs/api/index/classes/IKSystem.md +98 -0
- package/dist/docs/api/index/classes/InputSystem.md +33 -33
- package/dist/docs/api/index/classes/InstancedMeshSystem.md +2 -2
- package/dist/docs/api/index/classes/LightSyncSystem.md +2 -2
- package/dist/docs/api/index/classes/MaterialSyncSystem.md +3 -3
- package/dist/docs/api/index/classes/MeshGeometrySystem.md +2 -2
- package/dist/docs/api/index/classes/ObjectManagementSystem.md +269 -14
- package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +2 -2
- package/dist/docs/api/index/classes/PhysicsSyncSystem.md +4 -4
- package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +4 -4
- package/dist/docs/api/index/classes/RenderSystem.md +3 -3
- package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +4 -4
- package/dist/docs/api/index/classes/ScriptObject.md +10 -10
- package/dist/docs/api/index/classes/ScriptObjectSystem.md +6 -6
- package/dist/docs/api/index/classes/SlotChooser.md +59 -0
- package/dist/docs/api/index/classes/TeleportAimGate.md +4 -4
- package/dist/docs/api/index/classes/ThrowVelocityTracker.md +4 -4
- package/dist/docs/api/index/classes/TransformSyncSystem.md +2 -2
- package/dist/docs/api/index/classes/UIInteractionSystem.md +3 -3
- package/dist/docs/api/index/classes/UIPanelSystem.md +4 -4
- package/dist/docs/api/index/classes/VRTeleportAreaSystem.md +2 -2
- package/dist/docs/api/index/classes/VideoSystem.md +4 -4
- package/dist/docs/api/index/classes/World.md +168 -98
- package/dist/docs/api/index/classes/XRAnchorSystem.md +4 -4
- package/dist/docs/api/index/classes/XRControllerVisualSystem.md +4 -4
- package/dist/docs/api/index/classes/XREnvironmentSystem.md +7 -7
- package/dist/docs/api/index/classes/XRHandPoseSystem.md +5 -5
- package/dist/docs/api/index/classes/XRHitTestSystem.md +4 -4
- package/dist/docs/api/index/classes/XRHoverVisualSystem.md +4 -4
- package/dist/docs/api/index/classes/XRInputSystem.md +9 -9
- package/dist/docs/api/index/classes/XRInteractionSystem.md +18 -18
- package/dist/docs/api/index/classes/XRLocomotionSystem.md +7 -7
- package/dist/docs/api/index/classes/XRSessionSystem.md +6 -6
- package/dist/docs/api/index/classes/XRTeleportVisualSystem.md +4 -4
- package/dist/docs/api/index/functions/angularVelocityFrom.md +1 -1
- package/dist/docs/api/index/functions/applyHandMaterial.md +1 -1
- package/dist/docs/api/index/functions/applyPrefabToSnapshotInstances.md +1 -1
- package/dist/docs/api/index/functions/arcGroundCrossing.md +1 -1
- package/dist/docs/api/index/functions/buildComponentValueMaps.md +1 -1
- package/dist/docs/api/index/functions/buildNodeKeyMapsFromSnapshot.md +1 -1
- package/dist/docs/api/index/functions/buildNodeMapsFromSnapshot.md +1 -1
- package/dist/docs/api/index/functions/canonicalizeComponentValue.md +1 -1
- package/dist/docs/api/index/functions/clearModelCache.md +1 -1
- package/dist/docs/api/index/functions/clearPrefabCache.md +1 -1
- package/dist/docs/api/index/functions/cloneHandPose.md +1 -1
- package/dist/docs/api/index/functions/collectDiffPaths.md +1 -1
- package/dist/docs/api/index/functions/collectDirectPrefabDependencies.md +1 -1
- package/dist/docs/api/index/functions/collectEntitySubtree.md +1 -1
- package/dist/docs/api/index/functions/collectSnapshotSubtreeIds.md +1 -1
- package/dist/docs/api/index/functions/computeFingerCurl.md +1 -1
- package/dist/docs/api/index/functions/computeHandShape.md +1 -1
- package/dist/docs/api/index/functions/computeInstanceOverrides.md +1 -1
- package/dist/docs/api/index/functions/computePalmPose.md +1 -1
- package/dist/docs/api/index/functions/computePalmWidth.md +1 -1
- package/dist/docs/api/index/functions/computePinch.md +1 -1
- package/dist/docs/api/index/functions/computeSpread.md +1 -1
- package/dist/docs/api/index/functions/createAnimationComponent.md +1 -1
- package/dist/docs/api/index/functions/createAudioComponent.md +1 -1
- package/dist/docs/api/index/functions/createBoneAttachmentComponent.md +28 -0
- package/dist/docs/api/index/functions/createCameraComponent.md +1 -1
- package/dist/docs/api/index/functions/createEntityTypeComponent.md +1 -1
- package/dist/docs/api/index/functions/createEnvironmentComponent.md +1 -1
- package/dist/docs/api/index/functions/createGLTFLoader.md +30 -0
- package/dist/docs/api/index/functions/createHandMaterial.md +1 -1
- package/dist/docs/api/index/functions/createIKComponent.md +28 -0
- package/dist/docs/api/index/functions/createImageComponent.md +1 -1
- package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +1 -1
- package/dist/docs/api/index/functions/createImageTargetComponent.md +1 -1
- package/dist/docs/api/index/functions/createInstanceSlotComponent.md +1 -1
- package/dist/docs/api/index/functions/createInstancedMeshComponent.md +1 -1
- package/dist/docs/api/index/functions/createLightComponent.md +1 -1
- package/dist/docs/api/index/functions/createMaterialComponent.md +1 -1
- package/dist/docs/api/index/functions/createMeshComponent.md +1 -1
- package/dist/docs/api/index/functions/createMeshGeometryComponent.md +1 -1
- package/dist/docs/api/index/functions/createModelComponent.md +1 -1
- package/dist/docs/api/index/functions/createNameComponent.md +1 -1
- package/dist/docs/api/index/functions/createNetworkIdentityComponent.md +24 -0
- package/dist/docs/api/index/functions/createNetworkSpawnerComponent.md +28 -0
- package/dist/docs/api/index/functions/createNetworkTransformComponent.md +28 -0
- package/dist/docs/api/index/functions/createNetworkedPropsComponent.md +28 -0
- package/dist/docs/api/index/functions/createObject3DRefComponent.md +1 -1
- package/dist/docs/api/index/functions/createParentIdComponent.md +1 -1
- package/dist/docs/api/index/functions/createPhysicsComponent.md +1 -1
- package/dist/docs/api/index/functions/createPostprocessingComponent.md +1 -1
- package/dist/docs/api/index/functions/createScriptComponent.md +1 -1
- package/dist/docs/api/index/functions/createScriptObjectComponent.md +1 -1
- package/dist/docs/api/index/functions/createSelectableComponent.md +1 -1
- package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +1 -1
- package/dist/docs/api/index/functions/createSpriteComponent.md +1 -1
- package/dist/docs/api/index/functions/createTransformComponent.md +1 -1
- package/dist/docs/api/index/functions/createUIButtonComponent.md +1 -1
- package/dist/docs/api/index/functions/createUIPanelComponent.md +1 -1
- package/dist/docs/api/index/functions/createUISliderComponent.md +1 -1
- package/dist/docs/api/index/functions/createUITextComponent.md +1 -1
- package/dist/docs/api/index/functions/createUIToggleComponent.md +1 -1
- package/dist/docs/api/index/functions/createVRTeleportAreaComponent.md +1 -1
- package/dist/docs/api/index/functions/createVideoComponent.md +1 -1
- package/dist/docs/api/index/functions/createXRAnchorComponent.md +1 -1
- package/dist/docs/api/index/functions/createXRHandPoseComponent.md +1 -1
- package/dist/docs/api/index/functions/createXRInteractableComponent.md +1 -1
- package/dist/docs/api/index/functions/createXRInteractorComponent.md +1 -1
- package/dist/docs/api/index/functions/createXRInteractorSideComponent.md +1 -1
- package/dist/docs/api/index/functions/createXRRigComponent.md +1 -1
- package/dist/docs/api/index/functions/decanonicalizeComponentValue.md +1 -1
- package/dist/docs/api/index/functions/despawnPrefab.md +1 -1
- package/dist/docs/api/index/functions/encodeOverride.md +1 -1
- package/dist/docs/api/index/functions/estimateHandScale.md +1 -1
- package/dist/docs/api/index/functions/findModelBone.md +30 -0
- package/dist/docs/api/index/functions/findSnapshotRootEntityIds.md +1 -1
- package/dist/docs/api/index/functions/findTopLevelNestedRegions.md +1 -1
- package/dist/docs/api/index/functions/getHandPosePreset.md +1 -1
- package/dist/docs/api/index/functions/gripQuaternion.md +36 -0
- package/dist/docs/api/index/functions/groupOverridePaths.md +1 -1
- package/dist/docs/api/index/functions/handPoseFromCurls.md +1 -1
- package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +1 -1
- package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +1 -1
- package/dist/docs/api/index/functions/indexSnapshotByEntity.md +1 -1
- package/dist/docs/api/index/functions/instantiateSubtree.md +1 -1
- package/dist/docs/api/index/functions/listModelBones.md +25 -0
- package/dist/docs/api/index/functions/loadPrefab.md +1 -1
- package/dist/docs/api/index/functions/loadSharedGltf.md +1 -1
- package/dist/docs/api/index/functions/matchHandPose.md +1 -1
- package/dist/docs/api/index/functions/mergeComponentValue.md +1 -1
- package/dist/docs/api/index/functions/parseOverride.md +1 -1
- package/dist/docs/api/index/functions/parsePrefabAsset.md +1 -1
- package/dist/docs/api/index/functions/prefabFileVersionFor.md +1 -1
- package/dist/docs/api/index/functions/readXrCapabilities.md +1 -1
- package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +1 -1
- package/dist/docs/api/index/functions/registerDefaultFactories.md +1 -1
- package/dist/docs/api/index/functions/remapSnapshotEntityIds.md +3 -3
- package/dist/docs/api/index/functions/resolveDracoDecoderPath.md +1 -1
- package/dist/docs/api/index/functions/restoreComponentState.md +1 -1
- package/dist/docs/api/index/functions/restorePostCreateComponents.md +1 -1
- package/dist/docs/api/index/functions/sampleTeleportArc.md +1 -1
- package/dist/docs/api/index/functions/serializeEntitySubtree.md +1 -1
- package/dist/docs/api/index/functions/setDracoDecoderPath.md +1 -1
- package/dist/docs/api/index/functions/setPrefabAssetUrlResolver.md +1 -1
- package/dist/docs/api/index/functions/setWorldQuaternion.md +26 -0
- package/dist/docs/api/index/functions/soundBankFiles.md +25 -0
- package/dist/docs/api/index/functions/spawnPrefab.md +1 -1
- package/dist/docs/api/index/functions/twoBoneIK.md +41 -0
- package/dist/docs/api/index/index.md +31 -0
- package/dist/docs/api/index/interfaces/ChromaKeyOptions.md +5 -5
- package/dist/docs/api/index/interfaces/EcsSystem.md +3 -3
- package/dist/docs/api/index/interfaces/NetworkHandle.md +180 -0
- package/dist/docs/api/index/interfaces/PostprocessingBuildContext.md +6 -6
- package/dist/docs/api/index/interfaces/PostprocessingPipeline.md +5 -5
- package/dist/docs/api/index/interfaces/RenderBackend.md +8 -8
- package/dist/docs/api/index/interfaces/SoundBankAsset.md +18 -0
- package/dist/docs/api/index/interfaces/SoundSlot.md +31 -0
- package/dist/docs/api/index/interfaces/SoundTake.md +18 -0
- package/dist/docs/api/index/interfaces/StateMachine.md +13 -13
- package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +4 -4
- package/dist/docs/api/index/type-aliases/ApplyPrefabToSnapshotResult.md +3 -3
- package/dist/docs/api/index/type-aliases/AudioBus.md +15 -0
- package/dist/docs/api/index/type-aliases/ComponentFactory.md +1 -1
- package/dist/docs/api/index/type-aliases/ComponentValueMaps.md +50 -38
- package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +7 -1
- package/dist/docs/api/index/type-aliases/EcsRenderer.md +1 -1
- package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +3 -3
- package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +4 -4
- package/dist/docs/api/index/type-aliases/ExternalRefWarning.md +5 -5
- package/dist/docs/api/index/type-aliases/HandMaterialOptions.md +4 -4
- package/dist/docs/api/index/type-aliases/HandPoseTrackerOptions.md +5 -5
- package/dist/docs/api/index/type-aliases/HydrateOptions.md +3 -3
- package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +4 -4
- package/dist/docs/api/index/type-aliases/InstantiateSubtreeResult.md +3 -3
- package/dist/docs/api/index/type-aliases/KeyboardKey.md +1 -1
- package/dist/docs/api/index/type-aliases/ModelBoneInfo.md +29 -0
- package/dist/docs/api/index/type-aliases/ModuleLoader.md +1 -1
- package/dist/docs/api/index/type-aliases/MouseButton.md +1 -1
- package/dist/docs/api/index/type-aliases/NestedRegion.md +5 -5
- package/dist/docs/api/index/type-aliases/NetSpawnOptions.md +41 -0
- package/dist/docs/api/index/type-aliases/NodeKeyMaps.md +5 -5
- package/dist/docs/api/index/type-aliases/NodeMaps.md +4 -4
- package/dist/docs/api/index/type-aliases/PlaySlotOptions.md +32 -0
- package/dist/docs/api/index/type-aliases/PrefabAsset.md +5 -5
- package/dist/docs/api/index/type-aliases/RemapSnapshotOptions.md +2 -2
- package/dist/docs/api/index/type-aliases/RendererKind.md +1 -1
- package/dist/docs/api/index/type-aliases/ScriptBehaviourSystemOptions.md +2 -2
- package/dist/docs/api/index/type-aliases/ScriptErrorEvent.md +9 -9
- package/dist/docs/api/index/type-aliases/ScriptErrorListener.md +1 -1
- package/dist/docs/api/index/type-aliases/ScriptErrorPhase.md +1 -1
- package/dist/docs/api/index/type-aliases/ScriptErrorReport.md +6 -6
- package/dist/docs/api/index/type-aliases/ScriptErrorSource.md +1 -1
- package/dist/docs/api/index/type-aliases/SelectionContext.md +4 -4
- package/dist/docs/api/index/type-aliases/SerializeEntitySubtreeResult.md +4 -4
- package/dist/docs/api/index/type-aliases/SpawnPrefabOptions.md +5 -5
- package/dist/docs/api/index/type-aliases/SpawnPrefabSource.md +1 -1
- package/dist/docs/api/index/type-aliases/SubtreeSnapshot.md +4 -3
- package/dist/docs/api/index/type-aliases/UiCanvasLike.md +4 -4
- package/dist/docs/api/index/type-aliases/UiColorStop.md +37 -0
- package/dist/docs/api/index/type-aliases/UiPaint.md +81 -0
- package/dist/docs/api/index/type-aliases/UiShadow.md +27 -0
- package/dist/docs/api/index/type-aliases/UiStyle.md +43 -0
- package/dist/docs/api/index/type-aliases/UiTextStyle.md +33 -0
- package/dist/docs/api/index/type-aliases/UiTokens.md +13 -0
- package/dist/docs/api/index/type-aliases/VelocitySample.md +3 -3
- package/dist/docs/api/index/type-aliases/XrCapabilities.md +9 -9
- package/dist/docs/api/index/type-aliases/XrFinger.md +1 -1
- package/dist/docs/api/index/type-aliases/XrFingerCurl.md +4 -4
- package/dist/docs/api/index/type-aliases/XrFingerTarget.md +6 -6
- package/dist/docs/api/index/type-aliases/XrHandJointName.md +1 -1
- package/dist/docs/api/index/type-aliases/XrHandJoints.md +1 -1
- package/dist/docs/api/index/type-aliases/XrHandPoseAxis.md +1 -1
- package/dist/docs/api/index/type-aliases/XrHandPoseContext.md +2 -2
- package/dist/docs/api/index/type-aliases/XrHandPoseDefinition.md +11 -11
- package/dist/docs/api/index/type-aliases/XrHandPoseDirection.md +1 -1
- package/dist/docs/api/index/type-aliases/XrHandPoseEvent.md +1 -1
- package/dist/docs/api/index/type-aliases/XrHandPoseEventDetail.md +5 -5
- package/dist/docs/api/index/type-aliases/XrHandPoseMatch.md +4 -4
- package/dist/docs/api/index/type-aliases/XrHandPoseOrientation.md +4 -4
- package/dist/docs/api/index/type-aliases/XrHandShape.md +13 -13
- package/dist/docs/api/index/type-aliases/XrHandedness.md +1 -1
- package/dist/docs/api/index/type-aliases/XrHitResult.md +3 -3
- package/dist/docs/api/index/type-aliases/XrInputKind.md +1 -1
- package/dist/docs/api/index/type-aliases/XrInputState.md +18 -18
- package/dist/docs/api/index/type-aliases/XrPalmPose.md +6 -6
- package/dist/docs/api/index/variables/ADDED_NODE_MARKER_COMPONENT.md +1 -1
- package/dist/docs/api/index/variables/ARC_GRAVITY.md +1 -1
- package/dist/docs/api/index/variables/ARC_MAX_TIME.md +1 -1
- package/dist/docs/api/index/variables/ARC_SPEED.md +1 -1
- package/dist/docs/api/index/variables/ARC_STEPS.md +1 -1
- package/dist/docs/api/index/variables/CURLED_COS.md +1 -1
- package/dist/docs/api/index/variables/DEFAULT_DIRECTION_TOLERANCE.md +1 -1
- package/dist/docs/api/index/variables/DEFAULT_ENTER_CONFIDENCE.md +1 -1
- package/dist/docs/api/index/variables/DEFAULT_EXIT_CONFIDENCE.md +1 -1
- package/dist/docs/api/index/variables/DEFAULT_LOST_GRACE_SECONDS.md +1 -1
- package/dist/docs/api/index/variables/DEFAULT_MIN_HOLD_SECONDS.md +1 -1
- package/dist/docs/api/index/variables/DEFAULT_SCRIPT_ERROR_RETRY_DELAY.md +1 -1
- package/dist/docs/api/index/variables/FALLBACK_HAND_SCALE.md +1 -1
- package/dist/docs/api/index/variables/HAND_POSE_PRESETS.md +1 -1
- package/dist/docs/api/index/variables/HAND_POSE_PRESET_IDS.md +1 -1
- package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +1 -1
- package/dist/docs/api/index/variables/KeyboardKeys.md +89 -89
- package/dist/docs/api/index/variables/MATCH_FALLOFF.md +1 -1
- package/dist/docs/api/index/variables/MAX_PLAUSIBLE_SPEED.md +1 -1
- package/dist/docs/api/index/variables/MAX_SAMPLE_AGE_SECONDS.md +1 -1
- package/dist/docs/api/index/variables/NODE_KEY_SEPARATOR.md +1 -1
- package/dist/docs/api/index/variables/NO_XR_CAPABILITIES.md +1 -1
- package/dist/docs/api/index/variables/OVERRIDE_DIFF_EXCLUDED_COMPONENTS.md +1 -1
- package/dist/docs/api/index/variables/OVERRIDE_ROOT_EXCLUDED_COMPONENTS.md +1 -1
- package/dist/docs/api/index/variables/PINCH_FINGERS.md +1 -1
- package/dist/docs/api/index/variables/PREFAB_FILE_VERSION.md +1 -1
- package/dist/docs/api/index/variables/PREFAB_FILE_VERSION_NESTED.md +1 -1
- package/dist/docs/api/index/variables/SCRIPT_OBJECT_ROOT_FLAG.md +1 -1
- package/dist/docs/api/index/variables/SHARED_MODEL_RESOURCE_FLAG.md +1 -1
- package/dist/docs/api/index/variables/STRAIGHT_COS.md +1 -1
- package/dist/docs/api/index/variables/VELOCITY_SAMPLES.md +1 -1
- package/dist/docs/api/index/variables/XR_FINGERS.md +1 -1
- package/dist/docs/api/index/variables/XR_HOVER_SHELL_FLAG.md +1 -1
- package/dist/docs/api/index/variables/webglBackend.md +1 -1
- package/dist/docs/api/typedoc-sidebar.json +1 -1
- package/dist/docs/api/types/type-aliases/AssetInput.md +3 -3
- package/dist/docs/api/types/type-aliases/CheckboxInput.md +3 -3
- package/dist/docs/api/types/type-aliases/ColorInput.md +1 -1
- package/dist/docs/api/types/type-aliases/ComponentInput.md +4 -4
- package/dist/docs/api/types/type-aliases/ComponentKind.md +1 -1
- package/dist/docs/api/types/type-aliases/DropdownInput.md +3 -3
- package/dist/docs/api/types/type-aliases/DropdownOption.md +3 -3
- package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +1 -1
- package/dist/docs/api/types/type-aliases/EcsEntityKind.md +1 -1
- package/dist/docs/api/types/type-aliases/EntityId.md +1 -1
- package/dist/docs/api/types/type-aliases/EntityInput.md +3 -3
- package/dist/docs/api/types/type-aliases/FloatInput.md +1 -1
- package/dist/docs/api/types/type-aliases/IntersectionResult.md +3 -3
- package/dist/docs/api/types/type-aliases/ParentLookup.md +3 -3
- package/dist/docs/api/types/type-aliases/SelectionListener.md +1 -1
- package/dist/docs/api/types/type-aliases/SliderInput.md +5 -5
- package/dist/docs/api/types/type-aliases/TextInput.md +1 -1
- package/dist/docs/api/types/type-aliases/ToggleInput.md +1 -1
- package/dist/docs/api/types/type-aliases/Vec3.md +1 -1
- package/dist/docs/api/types/type-aliases/Vector2Input.md +3 -3
- package/dist/docs/api/types/type-aliases/Vector3Input.md +4 -4
- package/dist/docs/api/types/type-aliases/WorldEntityView.md +1 -1
- package/dist/docs/guide/bone-attachments-and-ik.md +51 -0
- package/dist/docs/guide/components/audio.md +1 -1
- package/dist/factories/index.cjs +29 -1
- package/dist/factories/index.cjs.map +1 -1
- package/dist/factories/index.d.cts +2 -2
- package/dist/factories/index.d.ts +2 -2
- package/dist/factories/index.js +4 -4
- package/dist/{index-BXjwEdNq.d.cts → index-BbrnjNXy.d.ts} +5 -3
- package/dist/{index-CVG-hREM.d.ts → index-DD7aHv0p.d.cts} +5 -3
- package/dist/{index-6pZO_gV7.d.ts → index-OgOoIpEI.d.ts} +14 -2
- package/dist/{index-BdghvXKE.d.cts → index-xyqzT0PQ.d.cts} +14 -2
- package/dist/index.cjs +174 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -9
- package/dist/index.d.ts +10 -9
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/network/index.cjs +70 -38
- package/dist/network/index.cjs.map +1 -1
- package/dist/network/index.d.cts +2 -2
- package/dist/network/index.d.ts +2 -2
- package/dist/network/index.js +4 -4
- package/dist/systems/index.cjs +171 -13
- package/dist/systems/index.cjs.map +1 -1
- package/dist/systems/index.d.cts +2 -2
- package/dist/systems/index.d.ts +2 -2
- package/dist/systems/index.js +5 -5
- package/dist/types.d.cts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/webgpu/index.d.ts +2 -2
- package/dist/worldSnapshotUtils.d.cts +1 -1
- package/dist/worldSnapshotUtils.d.ts +1 -1
- package/package.json +2 -1
- package/dist/chunk-GSWC6LLD.js.map +0 -1
- package/dist/chunk-JEPUCLZX.js.map +0 -1
- package/dist/chunk-JNYPJB55.js.map +0 -1
- package/dist/chunk-TY3XCHOR.js.map +0 -1
- package/dist/chunk-WWP46AEF.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -3147,6 +3147,21 @@ function createXRAnchorComponent(world, entityId, ...args) {
|
|
|
3147
3147
|
__name(createXRAnchorComponent, "createXRAnchorComponent");
|
|
3148
3148
|
|
|
3149
3149
|
// core/components/BoneAttachment.ts
|
|
3150
|
+
var xyz = /* @__PURE__ */ __name((value) => {
|
|
3151
|
+
const v = value;
|
|
3152
|
+
return typeof v?.x === "number" && typeof v.y === "number" && typeof v.z === "number" ? { x: v.x, y: v.y, z: v.z } : null;
|
|
3153
|
+
}, "xyz");
|
|
3154
|
+
function normalizeBoneHold(hold) {
|
|
3155
|
+
return {
|
|
3156
|
+
clips: Array.isArray(hold.clips) ? hold.clips.filter((c) => typeof c === "string") : [],
|
|
3157
|
+
bone: typeof hold.bone === "string" && hold.bone ? hold.bone : null,
|
|
3158
|
+
humanoid: typeof hold.humanoid === "string" && hold.humanoid ? hold.humanoid : null,
|
|
3159
|
+
hidden: hold.hidden === true,
|
|
3160
|
+
position: xyz(hold.position),
|
|
3161
|
+
rotation: xyz(hold.rotation)
|
|
3162
|
+
};
|
|
3163
|
+
}
|
|
3164
|
+
__name(normalizeBoneHold, "normalizeBoneHold");
|
|
3150
3165
|
var _BoneAttachmentComponent = class _BoneAttachmentComponent extends Component {
|
|
3151
3166
|
constructor(options) {
|
|
3152
3167
|
super();
|
|
@@ -3154,6 +3169,8 @@ var _BoneAttachmentComponent = class _BoneAttachmentComponent extends Component
|
|
|
3154
3169
|
this.humanoid = options?.humanoid ?? null;
|
|
3155
3170
|
this.compensateScale = options?.compensateScale ?? true;
|
|
3156
3171
|
this.enabled = options?.enabled ?? true;
|
|
3172
|
+
this.holds = (options?.holds ?? []).map(normalizeBoneHold);
|
|
3173
|
+
this.hideInOtherClips = options?.hideInOtherClips ?? false;
|
|
3157
3174
|
}
|
|
3158
3175
|
};
|
|
3159
3176
|
__name(_BoneAttachmentComponent, "BoneAttachmentComponent");
|
|
@@ -3176,7 +3193,9 @@ function normalizeIKChain(chain) {
|
|
|
3176
3193
|
pole: typeof chain.pole === "number" ? chain.pole : null,
|
|
3177
3194
|
weight: Math.min(1, Math.max(0, weight)),
|
|
3178
3195
|
matchRotation: chain.matchRotation ?? false,
|
|
3179
|
-
enabled: chain.enabled ?? true
|
|
3196
|
+
enabled: chain.enabled ?? true,
|
|
3197
|
+
clips: Array.isArray(chain.clips) ? chain.clips.filter((c) => typeof c === "string") : null,
|
|
3198
|
+
fade: typeof chain.fade === "number" && Number.isFinite(chain.fade) && chain.fade >= 0 ? chain.fade : null
|
|
3180
3199
|
};
|
|
3181
3200
|
}
|
|
3182
3201
|
__name(normalizeIKChain, "normalizeIKChain");
|
|
@@ -3864,6 +3883,7 @@ function restPositions(root) {
|
|
|
3864
3883
|
return out;
|
|
3865
3884
|
}
|
|
3866
3885
|
__name(restPositions, "restPositions");
|
|
3886
|
+
var NUMBERED_NAME = /_\d+$/;
|
|
3867
3887
|
function splitBoneName(raw) {
|
|
3868
3888
|
let n = raw.replace(/^.*[:|]/, "").replace(/^(mixamorig\d*|def[-_]|org[-_]|mch[-_]|bip\d*[ _]|b[-_])/i, "").trim();
|
|
3869
3889
|
let side = null;
|
|
@@ -3965,6 +3985,37 @@ function findHips(root) {
|
|
|
3965
3985
|
__name(findHips, "findHips");
|
|
3966
3986
|
var isSpineLike = /* @__PURE__ */ __name((base) => /^(spine|chest|upperchest|torso|back)\d*$/.test(base), "isSpineLike");
|
|
3967
3987
|
function detectRig(root) {
|
|
3988
|
+
const plain = readRig(root);
|
|
3989
|
+
if (plain.missing.length === 0) return plain;
|
|
3990
|
+
const stems = /* @__PURE__ */ new Map();
|
|
3991
|
+
const count = /* @__PURE__ */ __name((n) => {
|
|
3992
|
+
const stem = n.name.replace(NUMBERED_NAME, "");
|
|
3993
|
+
stems.set(stem, (stems.get(stem) ?? 0) + 1);
|
|
3994
|
+
n.children.forEach(count);
|
|
3995
|
+
}, "count");
|
|
3996
|
+
count(root);
|
|
3997
|
+
const real = /* @__PURE__ */ new Map();
|
|
3998
|
+
const strip = /* @__PURE__ */ __name((n) => {
|
|
3999
|
+
const stem = n.name.replace(NUMBERED_NAME, "");
|
|
4000
|
+
const name = stems.get(stem) === 1 ? stem : n.name;
|
|
4001
|
+
real.set(name, n.name);
|
|
4002
|
+
return { ...n, name, children: n.children.map(strip) };
|
|
4003
|
+
}, "strip");
|
|
4004
|
+
const found = readRig(strip(root));
|
|
4005
|
+
if (found.missing.length >= plain.missing.length) return plain;
|
|
4006
|
+
const realName = /* @__PURE__ */ __name((name) => real.get(name) ?? name, "realName");
|
|
4007
|
+
const bones = {};
|
|
4008
|
+
for (const [bone, name] of Object.entries(found.bones)) {
|
|
4009
|
+
bones[bone] = realName(name);
|
|
4010
|
+
}
|
|
4011
|
+
return {
|
|
4012
|
+
...found,
|
|
4013
|
+
bones,
|
|
4014
|
+
byName: new Map([...found.byName].map(([name, bone]) => [realName(name), bone]))
|
|
4015
|
+
};
|
|
4016
|
+
}
|
|
4017
|
+
__name(detectRig, "detectRig");
|
|
4018
|
+
function readRig(root) {
|
|
3968
4019
|
const all = [];
|
|
3969
4020
|
const collect = /* @__PURE__ */ __name((n) => {
|
|
3970
4021
|
all.push(n);
|
|
@@ -4038,7 +4089,7 @@ function detectRig(root) {
|
|
|
4038
4089
|
missing: REQUIRED_HUMANOID_BONES.filter((b) => !bones[b])
|
|
4039
4090
|
};
|
|
4040
4091
|
}
|
|
4041
|
-
__name(
|
|
4092
|
+
__name(readRig, "readRig");
|
|
4042
4093
|
function skeletonFromObject3D(object) {
|
|
4043
4094
|
const o = object;
|
|
4044
4095
|
return {
|
|
@@ -4264,6 +4315,7 @@ __export(components_exports, {
|
|
|
4264
4315
|
createHandPoseEntry: () => createHandPoseEntry,
|
|
4265
4316
|
defaultMaterialValue: () => defaultMaterialValue,
|
|
4266
4317
|
handPoseDefinitionFor: () => handPoseDefinitionFor,
|
|
4318
|
+
normalizeBoneHold: () => normalizeBoneHold,
|
|
4267
4319
|
normalizeEnvironmentLighting: () => normalizeEnvironmentLighting,
|
|
4268
4320
|
normalizeIKChain: () => normalizeIKChain,
|
|
4269
4321
|
normalizePhysicsState: () => normalizePhysicsState,
|
|
@@ -4435,6 +4487,15 @@ __name(reloadModelEntity, "reloadModelEntity");
|
|
|
4435
4487
|
var BONE_SOCKET_FLAG = "__reluBoneSocket";
|
|
4436
4488
|
var _boneScale = new THREE67__namespace.Vector3();
|
|
4437
4489
|
var _anchorScale = new THREE67__namespace.Vector3();
|
|
4490
|
+
var _holdPosition = new THREE67__namespace.Vector3();
|
|
4491
|
+
var _holdRotation = new THREE67__namespace.Quaternion();
|
|
4492
|
+
var _heldPosition = new THREE67__namespace.Vector3();
|
|
4493
|
+
var _heldRotation = new THREE67__namespace.Quaternion();
|
|
4494
|
+
var _holdMatrix = new THREE67__namespace.Matrix4();
|
|
4495
|
+
var _heldMatrix = new THREE67__namespace.Matrix4();
|
|
4496
|
+
var _holdEuler = new THREE67__namespace.Euler();
|
|
4497
|
+
var _unitScale = new THREE67__namespace.Vector3(1, 1, 1);
|
|
4498
|
+
var _ignoredScale = new THREE67__namespace.Vector3();
|
|
4438
4499
|
function createTransform(input) {
|
|
4439
4500
|
return new TransformComponent(input);
|
|
4440
4501
|
}
|
|
@@ -4461,6 +4522,8 @@ var _ObjectManagementSystem = class _ObjectManagementSystem {
|
|
|
4461
4522
|
this.boneSockets = /* @__PURE__ */ new Map();
|
|
4462
4523
|
/** Attachments whose bone wasn't found in a given model (skip re-searching every frame). */
|
|
4463
4524
|
this.boneMisses = /* @__PURE__ */ new Map();
|
|
4525
|
+
/** Attachments with holds, and which one the current clip calls for (`null`: none). */
|
|
4526
|
+
this.boneHolds = /* @__PURE__ */ new Map();
|
|
4464
4527
|
this.scene = scene;
|
|
4465
4528
|
this.camera = camera;
|
|
4466
4529
|
this.isEditor = isEditor;
|
|
@@ -4647,6 +4710,9 @@ var _ObjectManagementSystem = class _ObjectManagementSystem {
|
|
|
4647
4710
|
for (const entityId of [...this.boneSockets.keys()]) {
|
|
4648
4711
|
if (!world.hasEntity(entityId)) this.dropBoneSocket(entityId);
|
|
4649
4712
|
}
|
|
4713
|
+
for (const entityId of [...this.boneHolds.keys()]) {
|
|
4714
|
+
if (!world.hasEntity(entityId)) this.boneHolds.delete(entityId);
|
|
4715
|
+
}
|
|
4650
4716
|
for (const [entityId, object] of worldObjects.entries()) {
|
|
4651
4717
|
const parentEntityId = world.getComponent(entityId, ParentId)?.value;
|
|
4652
4718
|
const parentObject = typeof parentEntityId === "number" ? worldObjects.get(parentEntityId) : void 0;
|
|
@@ -4680,6 +4746,7 @@ var _ObjectManagementSystem = class _ObjectManagementSystem {
|
|
|
4680
4746
|
if (!attachment) {
|
|
4681
4747
|
if (this.boneSockets.has(entityId)) this.dropBoneSocket(entityId);
|
|
4682
4748
|
this.boneMisses.delete(entityId);
|
|
4749
|
+
this.boneHolds.delete(entityId);
|
|
4683
4750
|
return null;
|
|
4684
4751
|
}
|
|
4685
4752
|
const root = attachment.enabled && parentEntityId !== null ? world.getComponent(parentEntityId, ModelComponent)?.object ?? null : null;
|
|
@@ -4687,7 +4754,9 @@ var _ObjectManagementSystem = class _ObjectManagementSystem {
|
|
|
4687
4754
|
this.dropBoneSocket(entityId);
|
|
4688
4755
|
return null;
|
|
4689
4756
|
}
|
|
4690
|
-
const
|
|
4757
|
+
const hold = this.boneHolds.get(entityId);
|
|
4758
|
+
const ref = hold?.bone || hold?.humanoid ? hold : attachment;
|
|
4759
|
+
const key = `${ref.bone ?? ""}|${ref.humanoid ?? ""}|${attachment.compensateScale}`;
|
|
4691
4760
|
const current = this.boneSockets.get(entityId);
|
|
4692
4761
|
if (current && current.modelUuid === root.uuid && current.key === key && current.socket.parent === current.bone) {
|
|
4693
4762
|
this.fitSocketScale(world, current, parentEntityId, attachment.compensateScale);
|
|
@@ -4696,7 +4765,7 @@ var _ObjectManagementSystem = class _ObjectManagementSystem {
|
|
|
4696
4765
|
this.dropBoneSocket(entityId);
|
|
4697
4766
|
const missKey = `${root.uuid}|${key}`;
|
|
4698
4767
|
if (this.boneMisses.get(entityId) === missKey) return null;
|
|
4699
|
-
const bone = findModelBone(root,
|
|
4768
|
+
const bone = findModelBone(root, ref);
|
|
4700
4769
|
if (!bone) {
|
|
4701
4770
|
this.boneMisses.set(entityId, missKey);
|
|
4702
4771
|
return null;
|
|
@@ -4734,6 +4803,50 @@ var _ObjectManagementSystem = class _ObjectManagementSystem {
|
|
|
4734
4803
|
_anchorScale.z / safe(_boneScale.z)
|
|
4735
4804
|
);
|
|
4736
4805
|
}
|
|
4806
|
+
/** Whether {@link applyBoneHold} is managing this attachment. */
|
|
4807
|
+
hasBoneHold(entityId) {
|
|
4808
|
+
return this.boneHolds.has(entityId);
|
|
4809
|
+
}
|
|
4810
|
+
/**
|
|
4811
|
+
* Put an attachment in a hold for the clip now playing (`hold` null: the
|
|
4812
|
+
* attachment's own bone and Transform), moving it to the hold's bone if that
|
|
4813
|
+
* changed. Called each frame, since a socket can be rebuilt under it.
|
|
4814
|
+
*/
|
|
4815
|
+
applyBoneHold(world, entityId, hold, hidden) {
|
|
4816
|
+
const before = this.boneHolds.get(entityId) ?? null;
|
|
4817
|
+
this.boneHolds.set(entityId, hold);
|
|
4818
|
+
if ((before?.bone ?? null) !== (hold?.bone ?? null) || (before?.humanoid ?? null) !== (hold?.humanoid ?? null)) {
|
|
4819
|
+
this.boneMisses.delete(entityId);
|
|
4820
|
+
this.reconcileSceneFromWorld(world);
|
|
4821
|
+
}
|
|
4822
|
+
const socket = this.boneSockets.get(entityId)?.socket;
|
|
4823
|
+
if (!socket) return;
|
|
4824
|
+
socket.visible = !hidden;
|
|
4825
|
+
if (!hold?.position && !hold?.rotation) {
|
|
4826
|
+
socket.position.set(0, 0, 0);
|
|
4827
|
+
socket.quaternion.identity();
|
|
4828
|
+
return;
|
|
4829
|
+
}
|
|
4830
|
+
const held = world.getComponent(entityId, TransformComponent);
|
|
4831
|
+
if (!held) return;
|
|
4832
|
+
const own = held.position;
|
|
4833
|
+
_heldPosition.set(own.x, own.y, own.z);
|
|
4834
|
+
_heldRotation.setFromEuler(_holdEuler.set(held.rotation.x, held.rotation.y, held.rotation.z));
|
|
4835
|
+
if (hold.position) _holdPosition.set(hold.position.x, hold.position.y, hold.position.z);
|
|
4836
|
+
else _holdPosition.copy(_heldPosition);
|
|
4837
|
+
if (hold.rotation) {
|
|
4838
|
+
_holdRotation.setFromEuler(_holdEuler.set(hold.rotation.x, hold.rotation.y, hold.rotation.z));
|
|
4839
|
+
} else {
|
|
4840
|
+
_holdRotation.copy(_heldRotation);
|
|
4841
|
+
}
|
|
4842
|
+
_holdMatrix.compose(_holdPosition, _holdRotation, _unitScale).multiply(_heldMatrix.compose(_heldPosition, _heldRotation, _unitScale).invert()).decompose(socket.position, socket.quaternion, _ignoredScale);
|
|
4843
|
+
socket.position.multiply(socket.scale);
|
|
4844
|
+
}
|
|
4845
|
+
/** Stop managing an attachment that no longer has holds, and put it back. */
|
|
4846
|
+
releaseBoneHold(world, entityId) {
|
|
4847
|
+
this.applyBoneHold(world, entityId, null, false);
|
|
4848
|
+
this.boneHolds.delete(entityId);
|
|
4849
|
+
}
|
|
4737
4850
|
/**
|
|
4738
4851
|
* Load a model entity's file again and swap it in (the file was rewritten);
|
|
4739
4852
|
* the entity, its components and children stay, attachments re-home.
|
|
@@ -6840,6 +6953,10 @@ function restorePostCreateComponents(world, objectManagementSystem, targetEntity
|
|
|
6840
6953
|
if (typeof source.humanoid === "string" || source.humanoid === null) attachment.humanoid = source.humanoid;
|
|
6841
6954
|
if (typeof source.compensateScale === "boolean") attachment.compensateScale = source.compensateScale;
|
|
6842
6955
|
if (typeof source.enabled === "boolean") attachment.enabled = source.enabled;
|
|
6956
|
+
if (Array.isArray(source.holds)) {
|
|
6957
|
+
attachment.holds = source.holds.map((raw) => asRecord3(raw)).filter((h) => !!h).map((h) => normalizeBoneHold(h));
|
|
6958
|
+
}
|
|
6959
|
+
if (typeof source.hideInOtherClips === "boolean") attachment.hideInOtherClips = source.hideInOtherClips;
|
|
6843
6960
|
}
|
|
6844
6961
|
}
|
|
6845
6962
|
if (values.networkIdentityValues.has(sourceEntityId) && !world.getComponent(targetEntityId, NetworkIdentityComponent)) {
|
|
@@ -17864,6 +17981,29 @@ var _XRAnchorSystem = class _XRAnchorSystem {
|
|
|
17864
17981
|
};
|
|
17865
17982
|
__name(_XRAnchorSystem, "XRAnchorSystem");
|
|
17866
17983
|
var XRAnchorSystem = _XRAnchorSystem;
|
|
17984
|
+
|
|
17985
|
+
// core/systems/BoneHoldSystem.ts
|
|
17986
|
+
var _BoneHoldSystem = class _BoneHoldSystem {
|
|
17987
|
+
update(world) {
|
|
17988
|
+
const oms = world.getObjectManagementSystem();
|
|
17989
|
+
if (!oms) return;
|
|
17990
|
+
for (const id of world.query(BoneAttachmentComponent)) {
|
|
17991
|
+
const attachment = world.getComponent(id, BoneAttachmentComponent);
|
|
17992
|
+
if (!attachment) continue;
|
|
17993
|
+
if (attachment.holds.length === 0 && !attachment.hideInOtherClips) {
|
|
17994
|
+
if (oms.hasBoneHold(id)) oms.releaseBoneHold(world, id);
|
|
17995
|
+
continue;
|
|
17996
|
+
}
|
|
17997
|
+
const character = world.getComponent(id, ParentId)?.value;
|
|
17998
|
+
const clip = typeof character === "number" ? world.getComponent(character, AnimationComponent)?.active?.clip.name : void 0;
|
|
17999
|
+
const hold = clip === void 0 ? void 0 : attachment.holds.find((h) => h.clips.includes(clip));
|
|
18000
|
+
const hidden = hold ? hold.hidden : clip !== void 0 && attachment.hideInOtherClips;
|
|
18001
|
+
oms.applyBoneHold(world, id, hold ?? null, hidden);
|
|
18002
|
+
}
|
|
18003
|
+
}
|
|
18004
|
+
};
|
|
18005
|
+
__name(_BoneHoldSystem, "BoneHoldSystem");
|
|
18006
|
+
var BoneHoldSystem = _BoneHoldSystem;
|
|
17867
18007
|
var _q = new THREE67__namespace.Quaternion();
|
|
17868
18008
|
var _q2 = new THREE67__namespace.Quaternion();
|
|
17869
18009
|
var _s = new THREE67__namespace.Vector3();
|
|
@@ -17871,6 +18011,7 @@ var _e = new THREE67__namespace.Vector3();
|
|
|
17871
18011
|
var _w = new THREE67__namespace.Vector3();
|
|
17872
18012
|
var _v = new THREE67__namespace.Vector3();
|
|
17873
18013
|
var _p = new THREE67__namespace.Vector3();
|
|
18014
|
+
var FORWARD = new THREE67__namespace.Vector3(0, 0, 1);
|
|
17874
18015
|
function setWorldQuaternion(o, q) {
|
|
17875
18016
|
if (o.parent) {
|
|
17876
18017
|
o.parent.getWorldQuaternion(_q2).invert();
|
|
@@ -17886,7 +18027,7 @@ function turn(o, q) {
|
|
|
17886
18027
|
setWorldQuaternion(o, q.clone().multiply(_q));
|
|
17887
18028
|
}
|
|
17888
18029
|
__name(turn, "turn");
|
|
17889
|
-
function twoBoneIK(upper, lower, end, target, pole) {
|
|
18030
|
+
function twoBoneIK(upper, lower, end, target, pole, forward = FORWARD) {
|
|
17890
18031
|
upper.getWorldPosition(_s);
|
|
17891
18032
|
lower.getWorldPosition(_e);
|
|
17892
18033
|
end.getWorldPosition(_w);
|
|
@@ -17899,7 +18040,10 @@ function twoBoneIK(upper, lower, end, target, pole) {
|
|
|
17899
18040
|
const dir = toT.divideScalar(want || 1).clone();
|
|
17900
18041
|
const pv = _p.subVectors(pole, _s);
|
|
17901
18042
|
pv.addScaledVector(dir, -pv.dot(dir));
|
|
17902
|
-
if (pv.lengthSq() < 1e-8)
|
|
18043
|
+
if (pv.lengthSq() < 1e-8) {
|
|
18044
|
+
if (Math.abs(dir.y) > 0.9) pv.copy(forward).addScaledVector(dir, -dir.dot(forward));
|
|
18045
|
+
else pv.set(0, -1, 0).addScaledVector(dir, dir.y);
|
|
18046
|
+
}
|
|
17903
18047
|
pv.normalize();
|
|
17904
18048
|
const cosA = THREE67__namespace.MathUtils.clamp((a * a + c * c - b * b) / (2 * a * c), -1, 1);
|
|
17905
18049
|
const joint = _s.clone().addScaledVector(dir, a * cosA).addScaledVector(pv, a * Math.sqrt(1 - cosA * cosA));
|
|
@@ -17934,6 +18078,7 @@ var _t = new THREE67__namespace.Vector3();
|
|
|
17934
18078
|
var _p2 = new THREE67__namespace.Vector3();
|
|
17935
18079
|
var _q3 = new THREE67__namespace.Quaternion();
|
|
17936
18080
|
var _pq = new THREE67__namespace.Quaternion();
|
|
18081
|
+
var _forward = new THREE67__namespace.Vector3();
|
|
17937
18082
|
var _IKSystem = class _IKSystem {
|
|
17938
18083
|
constructor() {
|
|
17939
18084
|
this.runtimes = /* @__PURE__ */ new Map();
|
|
@@ -17951,7 +18096,18 @@ var _IKSystem = class _IKSystem {
|
|
|
17951
18096
|
}
|
|
17952
18097
|
runtime.written.clear();
|
|
17953
18098
|
}
|
|
17954
|
-
|
|
18099
|
+
/** How strongly a chain applies now, moving its fade on by `deltaTime`. */
|
|
18100
|
+
fadeOf(runtime, chain, animation, deltaTime) {
|
|
18101
|
+
if (!chain.clips) return 1;
|
|
18102
|
+
const clip = animation?.active?.clip.name;
|
|
18103
|
+
const wanted = clip !== void 0 && chain.clips.includes(clip) ? 1 : 0;
|
|
18104
|
+
const was = runtime.fades.get(chain);
|
|
18105
|
+
const seconds = chain.fade ?? animation?.crossFadeDuration ?? 0;
|
|
18106
|
+
const next = was === void 0 || seconds <= 0 ? wanted : was + Math.sign(wanted - was) * Math.min(Math.abs(wanted - was), deltaTime / seconds);
|
|
18107
|
+
runtime.fades.set(chain, next);
|
|
18108
|
+
return THREE67__namespace.MathUtils.smoothstep(next, 0, 1);
|
|
18109
|
+
}
|
|
18110
|
+
update(world, deltaTime = 0) {
|
|
17955
18111
|
const ids = world.query(IKComponent, ModelComponent);
|
|
17956
18112
|
const alive = new Set(ids);
|
|
17957
18113
|
for (const [id, runtime] of this.runtimes) {
|
|
@@ -17969,7 +18125,7 @@ var _IKSystem = class _IKSystem {
|
|
|
17969
18125
|
let runtime = this.runtimes.get(id);
|
|
17970
18126
|
if (!runtime || runtime.rootUuid !== root.uuid) {
|
|
17971
18127
|
if (runtime) this.restore(runtime);
|
|
17972
|
-
runtime = { rootUuid: root.uuid, limbs: /* @__PURE__ */ new Map(), written: /* @__PURE__ */ new Map(), reach: /* @__PURE__ */ new Map() };
|
|
18128
|
+
runtime = { rootUuid: root.uuid, limbs: /* @__PURE__ */ new Map(), written: /* @__PURE__ */ new Map(), reach: /* @__PURE__ */ new Map(), fades: /* @__PURE__ */ new WeakMap() };
|
|
17973
18129
|
this.runtimes.set(id, runtime);
|
|
17974
18130
|
}
|
|
17975
18131
|
for (const [bone, w] of runtime.written) {
|
|
@@ -17978,13 +18134,15 @@ var _IKSystem = class _IKSystem {
|
|
|
17978
18134
|
runtime.written.clear();
|
|
17979
18135
|
runtime.reach.clear();
|
|
17980
18136
|
if (!ik.enabled) continue;
|
|
17981
|
-
const
|
|
18137
|
+
const animation = world.getComponent(id, AnimationComponent);
|
|
18138
|
+
const active = ik.chains.map((chain) => ({ chain, weight: chain.weight * this.fadeOf(runtime, chain, animation, deltaTime) })).filter(({ chain, weight }) => chain.enabled && weight > 0 && typeof chain.target === "number");
|
|
17982
18139
|
if (active.length === 0) continue;
|
|
17983
18140
|
if (!matricesFresh) {
|
|
17984
18141
|
world.getScene().updateMatrixWorld(true);
|
|
17985
18142
|
matricesFresh = true;
|
|
17986
18143
|
}
|
|
17987
|
-
|
|
18144
|
+
root.getWorldDirection(_forward);
|
|
18145
|
+
for (const { chain, weight } of active) {
|
|
17988
18146
|
let limb = runtime.limbs.get(chain.limb);
|
|
17989
18147
|
if (!limb) {
|
|
17990
18148
|
const names = LIMB_BONES[chain.limb];
|
|
@@ -18005,16 +18163,16 @@ var _IKSystem = class _IKSystem {
|
|
|
18005
18163
|
const poleObject = typeof chain.pole === "number" ? world.getComponent(chain.pole, Object3DRef)?.object : null;
|
|
18006
18164
|
if (poleObject) poleObject.getWorldPosition(_p2);
|
|
18007
18165
|
else lower.getWorldPosition(_p2);
|
|
18008
|
-
const miss = twoBoneIK(upper, lower, end, _t, _p2);
|
|
18166
|
+
const miss = twoBoneIK(upper, lower, end, _t, _p2, _forward);
|
|
18009
18167
|
runtime.reach.set(chain.limb, Math.max(0, miss));
|
|
18010
18168
|
if (chain.matchRotation) {
|
|
18011
18169
|
target.getWorldQuaternion(_q3);
|
|
18012
18170
|
end.parent?.getWorldQuaternion(_pq);
|
|
18013
18171
|
end.quaternion.copy(_pq.invert().multiply(_q3));
|
|
18014
18172
|
}
|
|
18015
|
-
if (
|
|
18173
|
+
if (weight < 1) {
|
|
18016
18174
|
[upper, lower, end].forEach((bone, i) => {
|
|
18017
|
-
bone.quaternion.copy(animated[i].slerp(bone.quaternion,
|
|
18175
|
+
bone.quaternion.copy(animated[i].slerp(bone.quaternion, weight));
|
|
18018
18176
|
});
|
|
18019
18177
|
}
|
|
18020
18178
|
for (const bone of [upper, lower, end]) {
|
|
@@ -19647,6 +19805,7 @@ var _World = class _World {
|
|
|
19647
19805
|
isEditor: isEditor ?? false
|
|
19648
19806
|
});
|
|
19649
19807
|
const animationSystem = new AnimationSystem();
|
|
19808
|
+
const boneHoldSystem = new BoneHoldSystem();
|
|
19650
19809
|
const ikSystem = new IKSystem();
|
|
19651
19810
|
const audioSystem = new AudioSystem({ isEditor: isEditor ?? false });
|
|
19652
19811
|
const videoSystem = new VideoSystem({ isEditor: isEditor ?? false });
|
|
@@ -19681,6 +19840,7 @@ var _World = class _World {
|
|
|
19681
19840
|
lightSyncSystem,
|
|
19682
19841
|
materialSyncSystem,
|
|
19683
19842
|
animationSystem,
|
|
19843
|
+
boneHoldSystem,
|
|
19684
19844
|
ikSystem,
|
|
19685
19845
|
audioSystem,
|
|
19686
19846
|
videoSystem,
|
|
@@ -20846,6 +21006,7 @@ exports.AnimationSystem = AnimationSystem;
|
|
|
20846
21006
|
exports.AudioMixer = AudioMixer;
|
|
20847
21007
|
exports.AudioSystem = AudioSystem;
|
|
20848
21008
|
exports.Behaviour = Behaviour;
|
|
21009
|
+
exports.BoneHoldSystem = BoneHoldSystem;
|
|
20849
21010
|
exports.CURLED_COS = CURLED_COS;
|
|
20850
21011
|
exports.CameraSyncSystem = CameraSyncSystem;
|
|
20851
21012
|
exports.Component = Component;
|