From 0f293c60faa1baf57cea45811bec63891012d6f3 Mon Sep 17 00:00:00 2001 From: goynov Date: Tue, 28 Oct 2025 18:01:47 +0200 Subject: [PATCH] idle mode --- public/static/meshes/maze-reed.bin | Bin 25952 -> 0 bytes public/static/meshes/quiz.bin | Bin 0 -> 7828 bytes .../meshes/{maze-reed.gltf => quiz.gltf} | 489 ++++++------------ .../MazeQuizGame/MazeObject.js | 2 +- .../InteractiveObjects/TextObject.js | 3 +- src/lib/CharacterControls.js | 31 +- 6 files changed, 182 insertions(+), 343 deletions(-) delete mode 100644 public/static/meshes/maze-reed.bin create mode 100644 public/static/meshes/quiz.bin rename public/static/meshes/{maze-reed.gltf => quiz.gltf} (57%) diff --git a/public/static/meshes/maze-reed.bin b/public/static/meshes/maze-reed.bin deleted file mode 100644 index ce73f215059442cfd1bc14ebcbb6a94d401d9581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25952 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 F{{W#Ru~h&7 diff --git a/public/static/meshes/quiz.bin b/public/static/meshes/quiz.bin new file mode 100644 index 0000000000000000000000000000000000000000..3b7a1711b78e07779847a2c8393e2093d0a5f8bd GIT binary patch literal 7828 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 UJZT9o=PUyuGb{BYK0Imv1JN%*od5s; literal 0 HcmV?d00001 diff --git a/public/static/meshes/maze-reed.gltf b/public/static/meshes/quiz.gltf similarity index 57% rename from public/static/meshes/maze-reed.gltf rename to public/static/meshes/quiz.gltf index 87638c1..ab9847d 100644 --- a/public/static/meshes/maze-reed.gltf +++ b/public/static/meshes/quiz.gltf @@ -4,8 +4,12 @@ "version":"2.0" }, "extensionsUsed":[ + "KHR_draco_mesh_compression", "KHR_materials_specular" ], + "extensionsRequired":[ + "KHR_draco_mesh_compression" + ], "scene":0, "scenes":[ { @@ -16,26 +20,14 @@ 2, 3, 4, - 5, - 6 + 5 ] } ], "nodes":[ { "mesh":0, - "name":"floor", - "rotation":[ - 0, - 0.08009588718414307, - 0, - 0.9967872500419617 - ], - "translation":[ - 0.03920316323637962, - 0.16448557376861572, - -0.05337028205394745 - ] + "name":"floor" }, { "mesh":1, @@ -51,14 +43,10 @@ }, { "mesh":4, - "name":"old-wall" - }, - { - "mesh":5, "name":"wall" }, { - "mesh":6, + "mesh":5, "name":"tunnel.001", "translation":[ 0, @@ -131,13 +119,9 @@ { "alphaMode":"BLEND", "name":"Material", - "normalTexture":{ - "index":5, - "scale":2 - }, "pbrMetallicRoughness":{ "baseColorTexture":{ - "index":6 + "index":5 }, "metallicFactor":0, "roughnessFactor":0.8999999761581421 @@ -154,8 +138,19 @@ "NORMAL":1, "TEXCOORD_0":2 }, + "extensions":{ + "KHR_draco_mesh_compression":{ + "bufferView":0, + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + } + } + }, "indices":3, - "material":0 + "material":0, + "mode":4 } ] }, @@ -168,8 +163,19 @@ "NORMAL":5, "TEXCOORD_0":6 }, + "extensions":{ + "KHR_draco_mesh_compression":{ + "bufferView":1, + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + } + } + }, "indices":7, - "material":1 + "material":1, + "mode":4 }, { "attributes":{ @@ -177,8 +183,19 @@ "NORMAL":9, "TEXCOORD_0":10 }, + "extensions":{ + "KHR_draco_mesh_compression":{ + "bufferView":2, + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + } + } + }, "indices":11, - "material":2 + "material":2, + "mode":4 } ] }, @@ -191,8 +208,19 @@ "NORMAL":13, "TEXCOORD_0":14 }, + "extensions":{ + "KHR_draco_mesh_compression":{ + "bufferView":3, + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + } + } + }, "indices":11, - "material":2 + "material":2, + "mode":4 } ] }, @@ -205,22 +233,19 @@ "NORMAL":16, "TEXCOORD_0":17 }, - "indices":18, - "material":3 - } - ] - }, - { - "name":"Curve.005", - "primitives":[ - { - "attributes":{ - "POSITION":19, - "NORMAL":20, - "TEXCOORD_0":21 + "extensions":{ + "KHR_draco_mesh_compression":{ + "bufferView":4, + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + } + } }, - "indices":22, - "material":4 + "indices":18, + "material":3, + "mode":4 } ] }, @@ -229,35 +254,68 @@ "primitives":[ { "attributes":{ - "POSITION":23, - "NORMAL":24, - "TEXCOORD_0":25 + "POSITION":19, + "NORMAL":20, + "TEXCOORD_0":21 }, - "indices":26, - "material":1 + "extensions":{ + "KHR_draco_mesh_compression":{ + "bufferView":5, + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + } + } + }, + "indices":22, + "material":1, + "mode":4 } ] }, { "name":"Plane.001", "primitives":[ + { + "attributes":{ + "POSITION":23, + "NORMAL":24, + "TEXCOORD_0":25 + }, + "extensions":{ + "KHR_draco_mesh_compression":{ + "bufferView":6, + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + } + } + }, + "indices":26, + "material":4, + "mode":4 + }, { "attributes":{ "POSITION":27, "NORMAL":28, "TEXCOORD_0":29 }, - "indices":30, - "material":4 - }, - { - "attributes":{ - "POSITION":31, - "NORMAL":32, - "TEXCOORD_0":33 + "extensions":{ + "KHR_draco_mesh_compression":{ + "bufferView":7, + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + } + } }, "indices":11, - "material":3 + "material":3, + "mode":4 } ] } @@ -286,32 +344,28 @@ { "sampler":0, "source":5 - }, - { - "sampler":0, - "source":6 } ], "images":[ { - "mimeType":"image/png", + "mimeType":"image/jpeg", "name":"T_Grass_Base_N", - "uri":"T_Grass_Base_N.png" + "uri":"T_Grass_Base_N.jpg" }, { "mimeType":"image/png", - "name":"T_Grass_Base_D", - "uri":"T_Grass_Base_D.png" + "name":"T_Grass_Base_D-T_Grass_Base_D.png", + "uri":"T_Grass_Base_D-T_Grass_Base_D_png.png" }, { - "mimeType":"image/png", + "mimeType":"image/jpeg", "name":"T_Grass_Reeds_N", - "uri":"T_Grass_Reeds_N.png" + "uri":"T_Grass_Reeds_N.jpg" }, { "mimeType":"image/png", - "name":"T_Grass_Reeds_D", - "uri":"T_Grass_Reeds_D.png" + "name":"T_Grass_Reeds_D-T_Grass_Reeds_D.png", + "uri":"T_Grass_Reeds_D-T_Grass_Reeds_D_png.png" }, { "mimeType":"image/png", @@ -320,86 +374,72 @@ }, { "mimeType":"image/png", - "name":"reed-nm", - "uri":"reed-nm.png" - }, - { - "mimeType":"image/png", - "name":"b1", - "uri":"b1.png" + "name":"Image", + "uri":"Image.png" } ], "accessors":[ { - "bufferView":0, "componentType":5126, "count":272, "max":[ - 0.5986211895942688, - 0.34277740120887756, - 0.6759099364280701 + 0.793377161026001, + 0.48276516795158386, + 0.7508191466331482 ], "min":[ - -0.617611289024353, - -0.07126913964748383, - -0.5153314471244812 + -0.7325652241706848, + 0.06871864199638367, + -0.7869381904602051 ], "type":"VEC3" }, { - "bufferView":1, "componentType":5126, "count":272, "type":"VEC3" }, { - "bufferView":2, "componentType":5126, "count":272, "type":"VEC2" }, { - "bufferView":3, "componentType":5123, "count":288, "type":"SCALAR" }, { - "bufferView":4, "componentType":5126, "count":368, "max":[ 0.7171434760093689, 0.8464050889015198, - 1.19857919216156 + 1.2504138946533203 ], "min":[ -0.7015569806098938, 0.07388153672218323, - 0.0033763647079467773 + -0.1240709125995636 ], "type":"VEC3" }, { - "bufferView":5, "componentType":5126, "count":368, "type":"VEC3" }, { - "bufferView":6, "componentType":5126, "count":368, "type":"VEC2" }, { - "bufferView":7, "componentType":5123, "count":990, "type":"SCALAR" }, { - "bufferView":8, "componentType":5126, "count":4, "max":[ @@ -415,25 +455,21 @@ "type":"VEC3" }, { - "bufferView":9, "componentType":5126, "count":4, "type":"VEC3" }, { - "bufferView":10, "componentType":5126, "count":4, "type":"VEC2" }, { - "bufferView":11, "componentType":5123, "count":6, "type":"SCALAR" }, { - "bufferView":12, "componentType":5126, "count":4, "max":[ @@ -449,19 +485,16 @@ "type":"VEC3" }, { - "bufferView":13, "componentType":5126, "count":4, "type":"VEC3" }, { - "bufferView":14, "componentType":5126, "count":4, "type":"VEC2" }, { - "bufferView":15, "componentType":5126, "count":24, "max":[ @@ -477,93 +510,51 @@ "type":"VEC3" }, { - "bufferView":16, "componentType":5126, "count":24, "type":"VEC3" }, { - "bufferView":17, "componentType":5126, "count":24, "type":"VEC2" }, { - "bufferView":18, "componentType":5123, "count":36, "type":"SCALAR" }, { - "bufferView":19, - "componentType":5126, - "count":4, - "max":[ - 0.6000000238418579, - 0.9000000953674316, - 1.196586936202948e-07 - ], - "min":[ - -0.6000000238418579, - 0.09999997168779373, - -1.233839839187567e-07 - ], - "type":"VEC3" - }, - { - "bufferView":20, - "componentType":5126, - "count":4, - "type":"VEC3" - }, - { - "bufferView":21, - "componentType":5126, - "count":4, - "type":"VEC2" - }, - { - "bufferView":22, - "componentType":5123, - "count":6, - "type":"SCALAR" - }, - { - "bufferView":23, "componentType":5126, "count":36, "max":[ - 0.8499144911766052, + 0.7990192770957947, 0.773558497428894, - 0.29249176383018494 + 0.3007844090461731 ], "min":[ - -0.7763704061508179, + -0.7644245624542236, 0.0007717907428741455, - 0.059992991387844086 + -0.06430260837078094 ], "type":"VEC3" }, { - "bufferView":24, "componentType":5126, "count":36, "type":"VEC3" }, { - "bufferView":25, "componentType":5126, "count":36, "type":"VEC2" }, { - "bufferView":26, "componentType":5123, "count":54, "type":"SCALAR" }, { - "bufferView":27, "componentType":5126, "count":8, "max":[ @@ -579,25 +570,21 @@ "type":"VEC3" }, { - "bufferView":28, "componentType":5126, "count":8, "type":"VEC3" }, { - "bufferView":29, "componentType":5126, "count":8, "type":"VEC2" }, { - "bufferView":30, "componentType":5123, "count":12, "type":"SCALAR" }, { - "bufferView":31, "componentType":5126, "count":4, "max":[ @@ -613,13 +600,11 @@ "type":"VEC3" }, { - "bufferView":32, "componentType":5126, "count":4, "type":"VEC3" }, { - "bufferView":33, "componentType":5126, "count":4, "type":"VEC2" @@ -628,207 +613,43 @@ "bufferViews":[ { "buffer":0, - "byteLength":3264, - "byteOffset":0, - "target":34962 + "byteLength":2376, + "byteOffset":0 }, { "buffer":0, - "byteLength":3264, - "byteOffset":3264, - "target":34962 + "byteLength":3883, + "byteOffset":2376 }, { "buffer":0, - "byteLength":2176, - "byteOffset":6528, - "target":34962 + "byteLength":166, + "byteOffset":6260 }, { "buffer":0, - "byteLength":576, - "byteOffset":8704, - "target":34963 + "byteLength":166, + "byteOffset":6428 }, { "buffer":0, - "byteLength":4416, - "byteOffset":9280, - "target":34962 + "byteLength":278, + "byteOffset":6596 }, { "buffer":0, - "byteLength":4416, - "byteOffset":13696, - "target":34962 + "byteLength":561, + "byteOffset":6876 }, { "buffer":0, - "byteLength":2944, - "byteOffset":18112, - "target":34962 + "byteLength":213, + "byteOffset":7440 }, { "buffer":0, - "byteLength":1980, - "byteOffset":21056, - "target":34963 - }, - { - "buffer":0, - "byteLength":48, - "byteOffset":23036, - "target":34962 - }, - { - "buffer":0, - "byteLength":48, - "byteOffset":23084, - "target":34962 - }, - { - "buffer":0, - "byteLength":32, - "byteOffset":23132, - "target":34962 - }, - { - "buffer":0, - "byteLength":12, - "byteOffset":23164, - "target":34963 - }, - { - "buffer":0, - "byteLength":48, - "byteOffset":23176, - "target":34962 - }, - { - "buffer":0, - "byteLength":48, - "byteOffset":23224, - "target":34962 - }, - { - "buffer":0, - "byteLength":32, - "byteOffset":23272, - "target":34962 - }, - { - "buffer":0, - "byteLength":288, - "byteOffset":23304, - "target":34962 - }, - { - "buffer":0, - "byteLength":288, - "byteOffset":23592, - "target":34962 - }, - { - "buffer":0, - "byteLength":192, - "byteOffset":23880, - "target":34962 - }, - { - "buffer":0, - "byteLength":72, - "byteOffset":24072, - "target":34963 - }, - { - "buffer":0, - "byteLength":48, - "byteOffset":24144, - "target":34962 - }, - { - "buffer":0, - "byteLength":48, - "byteOffset":24192, - "target":34962 - }, - { - "buffer":0, - "byteLength":32, - "byteOffset":24240, - "target":34962 - }, - { - "buffer":0, - "byteLength":12, - "byteOffset":24272, - "target":34963 - }, - { - "buffer":0, - "byteLength":432, - "byteOffset":24284, - "target":34962 - }, - { - "buffer":0, - "byteLength":432, - "byteOffset":24716, - "target":34962 - }, - { - "buffer":0, - "byteLength":288, - "byteOffset":25148, - "target":34962 - }, - { - "buffer":0, - "byteLength":108, - "byteOffset":25436, - "target":34963 - }, - { - "buffer":0, - "byteLength":96, - "byteOffset":25544, - "target":34962 - }, - { - "buffer":0, - "byteLength":96, - "byteOffset":25640, - "target":34962 - }, - { - "buffer":0, - "byteLength":64, - "byteOffset":25736, - "target":34962 - }, - { - "buffer":0, - "byteLength":24, - "byteOffset":25800, - "target":34963 - }, - { - "buffer":0, - "byteLength":48, - "byteOffset":25824, - "target":34962 - }, - { - "buffer":0, - "byteLength":48, - "byteOffset":25872, - "target":34962 - }, - { - "buffer":0, - "byteLength":32, - "byteOffset":25920, - "target":34962 + "byteLength":171, + "byteOffset":7656 } ], "samplers":[ @@ -839,8 +660,8 @@ ], "buffers":[ { - "byteLength":25952, - "uri":"maze-reed.bin" + "byteLength":7828, + "uri":"quiz.bin" } ] } diff --git a/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js b/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js index 275b4ad..0b78cf6 100644 --- a/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js +++ b/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js @@ -157,7 +157,7 @@ class MazeObject { }; this.load = async function(){ - let mazeAsset = await engine.load('/static/meshes/maze-reed.gltf'); + let mazeAsset = await engine.load('/static/meshes/quiz.gltf'); ['tunnel', 'wall', 'door', 'floor'].forEach(e => { o[e] = mazeAsset.scene.getObjectByName(e); //o[e].frustumCulled = false; diff --git a/src/components/InteractiveObjects/TextObject.js b/src/components/InteractiveObjects/TextObject.js index b519547..827a3fb 100644 --- a/src/components/InteractiveObjects/TextObject.js +++ b/src/components/InteractiveObjects/TextObject.js @@ -1,4 +1,4 @@ -import { MeshStandardMaterial, Color, Vector3 } from "three"; +import { MeshStandardMaterial, Color, Vector3, DoubleSide } from "three"; import { Text } from "troika-three-text"; import { assignParams } from "@/lib/MeshUtils"; @@ -24,6 +24,7 @@ class TextObject { let m = new MeshStandardMaterial({ roughness: .73, metalness: .37, + side: DoubleSide }); txt.material = m; txt.sync(); diff --git a/src/lib/CharacterControls.js b/src/lib/CharacterControls.js index dfcb18b..def9183 100644 --- a/src/lib/CharacterControls.js +++ b/src/lib/CharacterControls.js @@ -44,6 +44,7 @@ export class CharacterControls { this.direction = this.model.rotation.y; this.directionVelocity = 0; + this.actionStart = 0; //this.toggleRun = true } @@ -55,34 +56,51 @@ export class CharacterControls { const directionPressed = pointerControls.moving() let input = this.getInput(pointerControls) - var play = ''; + let play = this.currentAction || 'idle', velocity = this.walkVelocity; + this.fadeDuration = 0.2; if (input[1] && this.toggleRun) { - play = 'run' - } else if (input[1]) { + play = 'run'; + velocity = this.runVelocity + } else if (input[1] > 0) { play = 'walk' + } else if (input[1] < 0) { + play = 'backward' + velocity = this.walkVelocity / 3 } else if (input[0] < 0) { play = 'right' } else if (input[0] > 0) { play = 'left' - }else { + } else if (!this.currentAction.startsWith('idle')){ play = 'idle' } + if (this.currentAction.startsWith('idle') && play.startsWith('idle') && this.actionStart > 10){ + let idx = 1 + parseInt(this.currentAction.split('.')[1] || 0); + if (this.animationsMap[`idle.${idx}`]) { + play = `idle.${idx}` + }else{ + play = 'idle' + } + this.fadeDuration = 1; + } + if (this.currentAction != play) { const toPlay = this.animationsMap[play] const current = this.animationsMap[this.currentAction] current.fadeOut(this.fadeDuration) + toPlay.timeScale = 0.77; toPlay.reset().fadeIn(this.fadeDuration).play(); this.currentAction = play + this.actionStart = 0; } - this.mixer.update(delta*0.5) + this.mixer.update(delta) + this.actionStart += delta; this.walkDirection.x = this.walkDirection.y = this.walkDirection.z = 0 - let velocity = 0 if (directionPressed) { this.directionVelocity = this.directionVelocity * 2.5 * Math.abs(input[0]) this.direction += input[0] * delta * 2.5 //this.directionVelocity; @@ -100,7 +118,6 @@ export class CharacterControls { //this.camera.updateProjectionMatrix(); // run/walk velocity - velocity = this.currentAction == 'run' ? this.runVelocity : this.walkVelocity } this.walkDirection.x = this.walkDirection.x * velocity * delta// + this.model.position.x