This commit is contained in:
2026-03-26 11:42:43 +02:00
parent 6d05be2fec
commit 91d53d8be6
3 changed files with 13 additions and 8 deletions
@@ -81,9 +81,11 @@ export default{
name: a.name, id: a.uuid name: a.name, id: a.uuid
})); }));
engine.meshUtils.autoScale(gltf.scene); engine.meshUtils.autoScale(gltf.scene);
let bb = new engine.$.Box3().setFromObject(gltf.scene); let bb = engine.meshUtils.getBoundingBox(gltf.scene);
engine.camera.position.set(bb.max.x, bb.max.y, bb.max.z*3); let ln = engine.meshUtils.getBoundingBoxMaxLength(bb);
engine.orbitControls.target.set((bb.max.x + bb.min.x) / 2, (bb.max.y + bb.min.y) / 2, (bb.max.z + bb.min.z) / 2) let cp = engine.meshUtils.getBoundingBoxCenterPoint(bb);
engine.camera.position.set(cp.x, cp.y*1.77, ln*1.5);
engine.orbitControls.target.set(cp.x,cp.y*1.77,cp.z)
engine.orbitControls.update(); engine.orbitControls.update();
engine.activeObjects.add(gltf.scene); engine.activeObjects.add(gltf.scene);
} }
+4 -4
View File
@@ -48,8 +48,11 @@ class GameEngine extends EventManager{
const scene = new THREE.Scene(); const scene = new THREE.Scene();
this.sceneWrapper = new THREE.Group(); this.sceneWrapper = new THREE.Group();
this.sceneWrapper.scale.setScalar(this.scale);
scene.add(this.sceneWrapper); scene.add(this.sceneWrapper);
this.activeObjects = new THREE.Group();
this.sceneWrapper.add(this.activeObjects);
this.activeObjects.scale.setScalar(this.scale);
//this.camera.scale.setScalar(0.1);
this.scene = scene; this.scene = scene;
@@ -89,9 +92,6 @@ class GameEngine extends EventManager{
this.camera.add(this.listener); this.camera.add(this.listener);
this.ambientSound = new THREE.Audio(this.listener); this.ambientSound = new THREE.Audio(this.listener);
this.activeObjects = new THREE.Group();
this.sceneWrapper.add(this.activeObjects);
if (this.opts.gizmo) { if (this.opts.gizmo) {
this.orbitControls = new OrbitControls(this.camera, this.renderer.domElement); this.orbitControls = new OrbitControls(this.camera, this.renderer.domElement);
this.orbitControls.enableZoom = false; this.orbitControls.enableZoom = false;
+4 -1
View File
@@ -250,6 +250,8 @@ class Hero{
this.walkDirection.applyAxisAngle(this.rotateAngle, this.direction) this.walkDirection.applyAxisAngle(this.rotateAngle, this.direction)
this.walkDirection.normalize(); this.walkDirection.normalize();
this.model.rotation.y = this.direction; this.model.rotation.y = this.direction;
}else if (this.fpv){
this.model.rotation.y = this.camera.rotation.y;
} }
this.walkDirection.x = this.walkDirection.x * velocity * delta// + this.model.position.x this.walkDirection.x = this.walkDirection.x * velocity * delta// + this.model.position.x
@@ -301,6 +303,7 @@ class Hero{
this.model.position.z + this.#cameraZ* Math.cos(0+ Math.PI + this.cameraDelta + this.cameraIdleDelta) this.model.position.z + this.#cameraZ* Math.cos(0+ Math.PI + this.cameraDelta + this.cameraIdleDelta)
) )
} }
cameraDesiredPosition.multiplyScalar(this.engine.scale)
cameraPosition.lerp(cameraDesiredPosition, this.cameraMode == 'fixed' ? delta*2 : delta*2) cameraPosition.lerp(cameraDesiredPosition, this.cameraMode == 'fixed' ? delta*2 : delta*2)
//cameraPosition.lerp(cameraDesiredPosition, this.fpv ? 1 : delta*2) //cameraPosition.lerp(cameraDesiredPosition, this.fpv ? 1 : delta*2)
@@ -308,7 +311,7 @@ class Hero{
if (!this.fpv){ if (!this.fpv){
this.camera.lookAt( this.camera.lookAt(
this.engine.scale * this.model.position.x, this.engine.scale * this.model.position.x,
this.engine.scale * (this.cameraY -this.size.y * 0.5 + this.model.position.y), this.camera.position.y,//this.engine.scale * (this.cameraY -this.size.y * 0.5 + this.model.position.y),
this.engine.scale * this.model.position.z this.engine.scale * this.model.position.z
) )
} }