diff --git a/packages/frontend/assets/room/objects/blind/blind.blend b/packages/frontend/assets/room/objects/blind/blind.blend index af2ea46370..7c46ebe8c7 100644 Binary files a/packages/frontend/assets/room/objects/blind/blind.blend and b/packages/frontend/assets/room/objects/blind/blind.blend differ diff --git a/packages/frontend/assets/room/objects/blind/blind.glb b/packages/frontend/assets/room/objects/blind/blind.glb index 4c403b89b7..61bcf82475 100644 Binary files a/packages/frontend/assets/room/objects/blind/blind.glb and b/packages/frontend/assets/room/objects/blind/blind.glb differ diff --git a/packages/frontend/src/world/room/objects/blind.ts b/packages/frontend/src/world/room/objects/blind.ts index 20822a7add..6f67afffcb 100644 --- a/packages/frontend/src/world/room/objects/blind.ts +++ b/packages/frontend/src/world/room/objects/blind.ts @@ -5,7 +5,7 @@ import * as BABYLON from '@babylonjs/core'; import { defineObject } from '../object.js'; -import { cm } from '../../utility.js'; +import { cm, remap } from '../../utility.js'; import { createOverridedStates } from '../utility.js'; export const blind = defineObject({ @@ -74,6 +74,15 @@ export const blind = defineObject({ blades.push(b); } + const length = Math.abs(blades.at(-1).position.y * Math.abs(scale.y)); + + for (const mesh of model.root.getChildMeshes()) { + if (mesh.morphTargetManager != null && mesh.morphTargetManager.getTargetByName('Length') != null) { + mesh.morphTargetManager.getTargetByName('Length').influence = remap(length, cm(10), cm(200), 0, 1); + } + } + model.updated(); + model.updated(); };