diff --git a/src/document/migrate-scene-document.ts b/src/document/migrate-scene-document.ts index febc1546..4dbb704a 100644 --- a/src/document/migrate-scene-document.ts +++ b/src/document/migrate-scene-document.ts @@ -3298,18 +3298,27 @@ function readCameraRigEntity(value: unknown, label: string): EntityInstance { ), position: readVec3(value.position, `${label}.position`), rigType: expectLiteralString(value.rigType, "fixed", `${label}.rigType`), - priority: expectNonNegativeFiniteNumber( - value.priority, - `${label}.priority` - ), - defaultActive: expectBoolean(value.defaultActive, `${label}.defaultActive`), + priority: + value.priority === undefined + ? undefined + : expectNonNegativeFiniteNumber(value.priority, `${label}.priority`), + defaultActive: + value.defaultActive === undefined + ? undefined + : expectBoolean(value.defaultActive, `${label}.defaultActive`), target: readCameraRigTargetRef(value.target, `${label}.target`), - targetOffset: readVec3(value.targetOffset, `${label}.targetOffset`), + targetOffset: + value.targetOffset === undefined + ? undefined + : readVec3(value.targetOffset, `${label}.targetOffset`), transitionMode, - transitionDurationSeconds: expectNonNegativeFiniteNumber( - value.transitionDurationSeconds, - `${label}.transitionDurationSeconds` - ), + transitionDurationSeconds: + value.transitionDurationSeconds === undefined + ? undefined + : expectNonNegativeFiniteNumber( + value.transitionDurationSeconds, + `${label}.transitionDurationSeconds` + ), lookAround: readCameraRigLookAroundSettings( value.lookAround, `${label}.lookAround` diff --git a/tests/domain/build-runtime-scene.test.ts b/tests/domain/build-runtime-scene.test.ts index 8613f23f..4d32c230 100644 --- a/tests/domain/build-runtime-scene.test.ts +++ b/tests/domain/build-runtime-scene.test.ts @@ -680,6 +680,7 @@ describe("buildRuntimeSceneFromDocument", () => { } } ], + cameraRigs: [], sceneEntries: [ { entityId: "entity-scene-entry-house-front", @@ -1134,6 +1135,7 @@ describe("buildRuntimeSceneFromDocument", () => { expect(runtimeScene.navigationMode).toBe("thirdPerson"); expect(runtimeScene.entities).toEqual({ playerStarts: [], + cameraRigs: [], sceneEntries: [], npcs: [], soundEmitters: [], diff --git a/tests/unit/runtime-host.test.ts b/tests/unit/runtime-host.test.ts index bd759eb4..8d06674d 100644 --- a/tests/unit/runtime-host.test.ts +++ b/tests/unit/runtime-host.test.ts @@ -262,6 +262,7 @@ describe("RuntimeHost", () => { y: 1.6, z: 0 }, + transitionMode: "cut", lookAround: { enabled: true, yawLimitDegrees: 10, diff --git a/tests/unit/viewport-focus.test.ts b/tests/unit/viewport-focus.test.ts index fcebbb77..d7a1abcd 100644 --- a/tests/unit/viewport-focus.test.ts +++ b/tests/unit/viewport-focus.test.ts @@ -196,14 +196,9 @@ describe("resolveViewportFocusTarget", () => { ids: [cameraRig.id] }); - expect(focusTarget).toEqual({ - center: { - x: -3, - y: 2.28, - z: 5 - }, - radius: expect.any(Number) - }); + expect(focusTarget?.center.x).toBeCloseTo(-3); + expect(focusTarget?.center.y).toBeCloseTo(2.28); + expect(focusTarget?.center.z).toBeCloseTo(5); expect(focusTarget?.radius).toBeGreaterThan(0.45); });