From ca49618fdb729080776528d9b0e96a75d533082e Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sat, 4 Apr 2026 21:54:26 +0900 Subject: [PATCH] Update engine.ts --- packages/frontend/src/utility/room/engine.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/frontend/src/utility/room/engine.ts b/packages/frontend/src/utility/room/engine.ts index 16f5e9c1d6..312d8c724b 100644 --- a/packages/frontend/src/utility/room/engine.ts +++ b/packages/frontend/src/utility/room/engine.ts @@ -378,7 +378,7 @@ export class RoomEngine { private grabbingCtx: { objectId: string; objectType: string; - mesh: BABYLON.Mesh; + mesh: BABYLON.TransformNode; originalDiffOfPosition: BABYLON.Vector3; originalDiffOfRotationY: number; distance: number; @@ -1285,14 +1285,16 @@ export class RoomEngine { private createGhost(mesh: BABYLON.Mesh): BABYLON.Mesh { const ghost = mesh.clone('ghost', null, false)!; ghost.metadata = { isGhost: true }; + ghost.checkCollisions = false; + for (const m of ghost.getChildMeshes()) { + m.metadata = { isGhost: true }; + m.checkCollisions = false; + } /* なんかエラーになる const materials = new WeakMap(); for (const m of ghost.getChildMeshes() as BABYLON.Mesh[]) { - m.metadata = { isGhost: true }; - m.checkCollisions = false; - if (m.material == null) continue; if (materials.has(m.material)) { @@ -1347,6 +1349,11 @@ export class RoomEngine { options, }); + root.unfreezeWorldMatrix(); + for (const m of root.getChildMeshes()) { + m.unfreezeWorldMatrix(); + } + const ghost = this.createGhost(root); let sticky: string | null;