1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-23 14:34:19 +02:00
This commit is contained in:
syuilo
2026-02-21 15:18:31 +09:00
parent 460f79d5cf
commit 8bdf773a2b
8 changed files with 40 additions and 7 deletions

View File

@@ -1102,19 +1102,29 @@ export class RoomEngine {
}
}
private createGhost(mesh: BABYLON.Mesh) {
private createGhost(mesh: BABYLON.Mesh): BABYLON.Mesh {
const ghost = mesh.clone('ghost', null, false)!;
ghost.metadata = { isGhost: true };
const materials = new WeakMap<BABYLON.Material, BABYLON.Material>();
for (const m of ghost.getChildMeshes()) {
m.metadata = { isGhost: true };
if (m.material) {
const mat = m.material.clone(`${m.material.name}_ghost`);
mat.alpha = 0.3;
mat.transparencyMode = BABYLON.Material.MATERIAL_ALPHABLEND;
m.material = mat;
}
m.checkCollisions = false;
if (m.material) {
if (materials.has(m.material)) {
m.material = materials.get(m.material)!;
} else {
const mat = m.material.clone(`${m.material.name}_ghost`);
mat.alpha = 0.3;
mat.transparencyMode = BABYLON.Material.MATERIAL_ALPHABLEND;
materials.set(m.material, mat);
m.material = mat;
}
}
}
return ghost;
}