From 9855dbca7d36986a4cb0d221b704822b9c035da9 Mon Sep 17 00:00:00 2001 From: Diego Marcos Date: Mon, 1 Oct 2018 17:37:11 -0700 Subject: [PATCH] Add song beats. Need pace adjustment --- assets/img/envmap.png | Bin 0 -> 88788 bytes assets/models/arrow.obj | 15 + assets/models/beat.obj | 608 ++++++++++++++++++++++++++++++++++ assets/models/dot.obj | 51 +++ src/components/beat-loader.js | 126 ++++++- src/components/beat.js | 411 +++++++++++++++++++++++ src/index.html | 17 +- 7 files changed, 1223 insertions(+), 5 deletions(-) create mode 100644 assets/img/envmap.png create mode 100644 assets/models/arrow.obj create mode 100644 assets/models/beat.obj create mode 100644 assets/models/dot.obj create mode 100644 src/components/beat.js diff --git a/assets/img/envmap.png b/assets/img/envmap.png new file mode 100644 index 0000000000000000000000000000000000000000..e76955c40397eb424c1cfeee9b1489911c59f3a4 GIT binary patch literal 88788 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 lastTime && noteTime <= lastTime + delta) { + notes[i].time = noteTime; + this.generateBeat(notes[i]); + } + } + + for (i=0; i < obstacles.length; ++i) { + noteTime = obstacles[i]._time * msPerBeat; + if (noteTime > lastTime && noteTime <= lastTime + delta) { + // this.generateWall(obstacles[i]); + } + } + + this.lastTime = lastTime + delta; + + // Sync audio with first element. + if (this.audioSync || !this.first) { return; } + if (this.first.el.object3D.position.z < this.el.sceneEl.camera.el.object3D.position.z) { return; } + this.audioSync = true; + this.el.components.song.audio.currentTime = this.first.time; + }, + + generateBeat: function (noteInfo) { + var color; + var orientation; + var el; + var type = noteInfo._cutDirection === 8 ? 'dot' : 'arrow'; + color = noteInfo._type === 0 ? 'red' : 'blue'; + if (noteInfo._type === 3) { + type = 'mine'; + color = undefined; + } + el = this.requestBeat(type, color); + if (!el) { return; } + el.setAttribute('beat', { + color: color, + type: type, + speed: this.data.beatSpeed}); + el.object3D.position.set( + this.horizontalPositions[noteInfo._lineIndex], + this.verticalPositions[noteInfo._lineLayer], + -this.data.beatAnticipationTime * this.data.beatSpeed + ); + el.setAttribute('rotation', {x: 0, y: 0, z: this.orientations[noteInfo._cutDirection]}); + el.play(); + + if (this.first) { return; } + this.first = { + el: el, + time: noteInfo._time + }; + }, + + // generateWall: function (wallInfo) { + // var el = this.el.sceneEl.components.pool__wall.requestEntity(); + // var speed = this.data.beatSpeed; + // var durationMs; + // if (!el) { return; } + // durationSeconds = 60 * (wallInfo._duration / this.bpm); + // el.setAttribute('wall', { + // speed: speed + // }); + // el.object3D.position.set( + // this.horizontalPositions[wallInfo._lineIndex], + // 1.30, + // -(this.data.beatAnticipationTime * speed) + // ); + // el.object3D.scale.set(wallInfo._width * 0.30, 2.5, durationSeconds * speed); + // el.play(); + // if (this.first) { return; } + // this.first = { + // el: el, + // time: wallInfo._time + // }; + // }, + + requestBeat: function (type, color) { + var beatPoolName = 'pool__beat-' + type; + var pool; + if (color) {beatPoolName += '-' + color; } + pool = this.el.sceneEl.components[beatPoolName]; + if (!pool) { + console.warn('Poo ' + beatPoolName + ' unavailable'); + return; + } + return pool.requestEntity(); + } }); function updateQueryParam(uri, key, value) { @@ -51,3 +167,5 @@ function updateQueryParam(uri, key, value) { return uri + separator + key + '=' + value; } } + + diff --git a/src/components/beat.js b/src/components/beat.js new file mode 100644 index 0000000..0ac20d0 --- /dev/null +++ b/src/components/beat.js @@ -0,0 +1,411 @@ +AFRAME.registerComponent('beat', { + schema: { + speed: {default: 1.0}, + color: {default: 'red', oneOf: ['red', 'blue']}, + size: {default: 0.30}, + debug: {default: false}, + type: {default: 'arrow', oneOf: ['arrow', 'dot', 'mine']} + }, + + materialColor: { + blue: '#08083E', + red: '#290404' + }, + + cutColor: { + blue: '#b3dcff', + red: '#ffb3ca' + }, + + models: { + arrow: "#beat-obj", + dot: "#beat-obj", + mine: "#mine-obj" + }, + + signModels: { + arrow: "#arrow-obj", + dot: "#dot-obj" + }, + + init: function () { + var el = this.el; + var color; + var size = this.data.size; + this.beatCollidersConfiguration = [ + {position: {x: size / 2, y: 0, z: 0}, size: {width: size / 5.0, height: size, depth: size}}, + {position: {x: -size / 2, y: 0, z: 0}, size: {width: size / 5.0, height: size, depth: size}}, + {position: {x: 0, y: size / 2, z: 0}, size: {width: size, height: size / 5.0, depth: size}}, + {position: {x: 0, y: -size / 2, z: 0}, size: {width: size, height: size / 5.0, depth: size}}, + {position: {x: 0, y: 0, z: size / 2}, size: {width: size, height: size, depth: size / 5.0}}, + {position: {x: 0, y: 0, z: -size / 2}, size: {width: size, height: size, depth: size / 5.0}} + ]; + this.boundingBox = new THREE.Box3(); + this.saberEls = this.el.sceneEl.querySelectorAll('[saber-controls]'); + this.backToPool = false; + this.returnToPoolTimer = 800; + this.initBlock(); + this.initColliders(); + this.initFragments(); + }, + + update: function () { + this.updateBlock(); + this.updateFragments(); + }, + + initBlock: function () { + var el = this.el; + var blockEl = this.blockEl = document.createElement('a-entity'); + var signEl = this.signEl = document.createElement('a-entity'); + + // Small offset to prevent z-fighting when the blocks are far away + signEl.object3D.position.z += 0.02; + blockEl.appendChild(signEl); + el.appendChild(blockEl); + }, + + updateBlock: function () { + var blockEl = this.blockEl; + var signEl = this.signEl; + blockEl.setAttribute('obj-model', {obj: this.models[this.data.type]}); + blockEl.setAttribute('material', { + metalness: 0.6, + roughness: 0.12, + sphericalEnvMap: '#envmapTexture', + color: this.materialColor[this.data.color] + }); + // Model is 0.29 size. We make it 1.0 so we can easily scale based on 1m size. + blockEl.object3D.scale.multiplyScalar(3.45).multiplyScalar(this.data.size); + + if (this.data.type === 'mine') { + blockEl.addEventListener('model-loaded', (evt) => { + var model = evt.detail.model.children[0]; + model.material = this.el.sceneEl.components.stagecolors.mineMaterial; + }); + } + + signEl.setAttribute('obj-model', {obj: this.signModels[this.data.type]}); + signEl.setAttribute('material', { + shader: 'flat', + color: '#88f' + }); + }, + + initColliders: function () { + var beatColliderEl; + var beatCollidersConfiguration = this.beatCollidersConfiguration; + var beatCollidersEls = this.beatCollidersEls = []; + var i; + var size; + for (i = 0; i < 6; i++) { + beatColliderEl = document.createElement('a-entity'); + size = beatCollidersConfiguration[i].size; + beatColliderEl.setAttribute('geometry', { + primitive: 'box', + height: size.height, + width: size.width, + depth: size.depth + }); + beatColliderEl.setAttribute('position', beatCollidersConfiguration[i].position); + beatColliderEl.setAttribute('visible', false); + beatCollidersEls.push(beatColliderEl); + if (i == 2) { this.correctBeatColliderEl = beatColliderEl; } + this.el.appendChild(beatColliderEl); + if (this.data.debug) { + beatColliderEl.setAttribute('visible', true); + if (i == 2) { + beatColliderEl.setAttribute('material', 'color: yellow'); + } else { + beatColliderEl.setAttribute('material', 'color: purple'); + } + } + } + }, + + initFragments: function () { + var partEl; + var cutEl; + var color = this.data.color === 'red' ? '#5b0502' : '#083771'; + var size = this.data.size; + var geometry = {primitive: 'box', height: size, width: size, depth: size}; + + this.cutDirection = new THREE.Vector3(); + this.rotationAxis = new THREE.Vector3(); + + partEl = this.partLeftEl = document.createElement('a-entity'); + cutEl = this.cutLeftEl = document.createElement('a-entity'); + + partEl.appendChild(cutEl); + this.el.appendChild(partEl); + + partEl = this.partRightEl = document.createElement('a-entity'); + cutEl = this.cutRightEl = document.createElement('a-entity'); + + partEl.appendChild(cutEl); + this.el.appendChild(partEl); + + this.initCuttingClippingPlanes(); + }, + + updateFragments: function () { + var cutLeftEl = this.cutLeftEl; + var cutRightEl = this.cutRightEl; + var partLeftEl = this.partLeftEl; + var partRightEl = this.partRightEl; + + partLeftEl.setAttribute('obj-model', 'obj: #beat-obj'); + partLeftEl.setAttribute('material', { + metalness: 0.8, + roughness: 0.12, + sphericalEnvMap: '#envmapTexture', + color: this.materialColor[this.data.color], + side: 'double' + }); + partLeftEl.setAttribute('visible', false); + + cutLeftEl.setAttribute('obj-model', 'obj: #beat-obj'); + cutLeftEl.setAttribute('material', { + shader: 'flat', + color: this.data.cutColor, + side: 'double' + }); + + partRightEl.setAttribute('obj-model', 'obj: #beat-obj'); + partRightEl.setAttribute('material', { + metalness: 0.8, + roughness: 0.12, + sphericalEnvMap: '#envmapTexture', + color: this.materialColor[this.data.color], + side: 'double' + }); + partRightEl.setAttribute('visible', false); + + cutRightEl.setAttribute('obj-model', 'obj: #beat-obj'); + cutRightEl.setAttribute('material', { + shader: 'flat', + color: this.data.cutColor, + side: 'double' + }); + }, + + destroyBeat: (function () { + var point1 = new THREE.Vector3(); + var point2 = new THREE.Vector3(); + var point3 = new THREE.Vector3(); + var planeMaterial = new THREE.MeshBasicMaterial({color: 'grey', side: THREE.DoubleSide}); + var parallelPlaneMaterial = new THREE.MeshBasicMaterial({color: '#00008b', side: THREE.DoubleSide}); + return function (saberEl) { + var i; + var trailPoints = saberEl.components.trail.saberTrajectory; + var direction = this.cutDirection; + point1.copy(trailPoints[0].top); + point2.copy(trailPoints[0].center); + point3.copy(trailPoints[trailPoints.length - 1].top); + direction.copy(point1).sub(point3); + var parallelPlane; + var parallelPlane2; + var planeGeometry; + var planeMesh; + var coplanarPoint; + var focalPoint; + var cutThickness = this.cutThickness = 0.02; + + var rightCutPlane = this.rightCutPlane; + var rightBorderOuterPlane = this.rightBorderOuterPlane; + + var leftCutPlane = this.leftCutPlane; + var leftBorderOuterPlane = this.leftBorderOuterPlane; + + var rightBorderInnerPlane = this.rightBorderInnerPlane; + var leftBorderInnerPlane = this.leftBorderInnerPlane; + + this.partLeftEl.object3D.position.set(0, 0, 0); + this.partLeftEl.object3D.rotation.set(0, 0, 0) + this.partLeftEl.object3D.updateMatrixWorld(); + + this.partRightEl.object3D.position.set(0, 0, 0); + this.partRightEl.object3D.rotation.set(0, 0, 0); + this.partRightEl.object3D.updateMatrixWorld(); + + this.rightCutPlanePoints = [ + this.partRightEl.object3D.worldToLocal(point1.clone()), + this.partRightEl.object3D.worldToLocal(point2.clone()), + this.partRightEl.object3D.worldToLocal(point3.clone()), + ]; + + this.leftCutPlanePoints = [ + this.partLeftEl.object3D.worldToLocal(point3.clone()), + this.partLeftEl.object3D.worldToLocal(point2.clone()), + this.partLeftEl.object3D.worldToLocal(point1.clone()), + ]; + + this.generateCutClippingPlanes(); + + if (this.data.debug) { + coplanarPoint = new THREE.Vector3(); + planeGeometry = new THREE.PlaneGeometry(4.0, 4.0, 1.0, 1.0); + + rightCutPlane.coplanarPoint(coplanarPoint); + planeGeometry.lookAt(rightCutPlane.normal); + planeGeometry.translate(coplanarPoint.x, coplanarPoint.y, coplanarPoint.z); + + planeMesh = new THREE.Mesh(planeGeometry, planeMaterial); + this.el.sceneEl.setObject3D('rightCutPlane', planeMesh); + + planeGeometry = new THREE.PlaneGeometry(4.0, 4.0, 1.0, 1.0); + + rightBorderOuterPlane.coplanarPoint(coplanarPoint); + planeGeometry.lookAt(rightBorderOuterPlane.normal); + planeGeometry.translate(coplanarPoint.x, coplanarPoint.y, coplanarPoint.z); + + parallelPlaneMesh = new THREE.Mesh(planeGeometry, parallelPlaneMaterial); + this.el.sceneEl.setObject3D('planeParallel', parallelPlaneMesh); + } + + this.blockEl.object3D.visible = false; + this.partRightEl.getObject3D('mesh').material.clippingPlanes = [rightCutPlane]; + this.cutRightEl.getObject3D('mesh').material.clippingPlanes = [rightBorderOuterPlane, rightBorderInnerPlane]; + + this.partLeftEl.getObject3D('mesh').material.clippingPlanes = [leftCutPlane]; + this.cutLeftEl.getObject3D('mesh').material.clippingPlanes = [leftBorderInnerPlane, leftBorderOuterPlane]; + + for (i = 0; i < 6; i++) { + this.beatCollidersEls[i].setAttribute('visible', false); + } + + this.partLeftEl.object3D.visible = true; + this.partRightEl.object3D.visible = true; + + this.el.sceneEl.renderer.localClippingEnabled = true; + this.destroyed = true; + this.el.emit('beatdestroyed'); + + this.rotationAxis = this.rightCutPlanePoints[0].clone().sub(this.rightCutPlanePoints[1]); + + this.returnToPoolTimer = 800; + + //this.el.sceneEl.components['json-particles__hit'].explode(this.el.object3D.position, rightCutPlane.normal, direction, this.data.color); + } + })(), + + pause: function () { + this.el.object3D.visible = false; + this.partLeftEl.object3D.visible = false; + this.partRightEl.object3D.visible = false; + }, + + play: function () { + this.destroyed = false; + this.el.object3D.visible = true; + this.blockEl.object3D.visible = true; + }, + + initCuttingClippingPlanes: function () { + this.leftCutPlanePointsWorld = [ + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3() + ]; + this.rightCutPlanePointsWorld = [ + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3() + ]; + + this.rightCutPlane = new THREE.Plane(); + this.rightBorderOuterPlane = new THREE.Plane(); + this.rightBorderInnerPlane = new THREE.Plane(); + + this.leftCutPlane = new THREE.Plane(); + this.leftBorderOuterPlane = new THREE.Plane(); + this.leftBorderInnerPlane = new THREE.Plane(); + }, + + generateCutClippingPlanes: function () { + var leftCutPlanePointsWorld = this.leftCutPlanePointsWorld; + var rightCutPlanePointsWorld = this.rightCutPlanePointsWorld; + var rightCutPlane = this.rightCutPlane; + var rightBorderOuterPlane = this.rightBorderOuterPlane; + var rightBorderInnerPlane = this.rightBorderInnerPlane; + var leftCutPlane = this.leftCutPlane; + var leftBorderOuterPlane = this.leftBorderOuterPlane; + var leftBorderInnerPlane = this.leftBorderInnerPlane; + var partLeftEl = this.partLeftEl; + var partRightEl = this.partRightEl; + + partRightEl.object3D.updateMatrixWorld(); + partRightEl.object3D.localToWorld(rightCutPlanePointsWorld[0].copy(this.rightCutPlanePoints[0])); + partRightEl.object3D.localToWorld(rightCutPlanePointsWorld[1].copy(this.rightCutPlanePoints[1])); + partRightEl.object3D.localToWorld(rightCutPlanePointsWorld[2].copy(this.rightCutPlanePoints[2])); + + partLeftEl.object3D.updateMatrixWorld(); + partLeftEl.object3D.localToWorld(leftCutPlanePointsWorld[0].copy(this.leftCutPlanePoints[0])); + partLeftEl.object3D.localToWorld(leftCutPlanePointsWorld[1].copy(this.leftCutPlanePoints[1])); + partLeftEl.object3D.localToWorld(leftCutPlanePointsWorld[2].copy(this.leftCutPlanePoints[2])); + + rightCutPlane.setFromCoplanarPoints(rightCutPlanePointsWorld[0], rightCutPlanePointsWorld[1], rightCutPlanePointsWorld[2]); + rightBorderOuterPlane.set(rightCutPlane.normal, rightCutPlane.constant + this.cutThickness); + + leftCutPlane.setFromCoplanarPoints(leftCutPlanePointsWorld[0], leftCutPlanePointsWorld[1], leftCutPlanePointsWorld[2]); + leftBorderOuterPlane.set(leftCutPlane.normal, leftCutPlane.constant + this.cutThickness); + + rightBorderInnerPlane.setFromCoplanarPoints(rightCutPlanePointsWorld[2], rightCutPlanePointsWorld[1], rightCutPlanePointsWorld[0]); + leftBorderInnerPlane.setFromCoplanarPoints(leftCutPlanePointsWorld[2], leftCutPlanePointsWorld[1], leftCutPlanePointsWorld[0]); + }, + + returnToPool: function () { + var poolName; + var type; + if (!this.backToPool) { return; } + type = this.data.type; + poolName = 'pool__beat-' + type; + if (type !== 'mine') { poolName += '-' + this.data.color; } + this.el.sceneEl.components[poolName].returnEntity(this.el); + this.el.pause(); + }, + + tock: (function () { + var rightCutNormal = new THREE.Vector3(); + var leftCutNormal = new THREE.Vector3(); + var leftRotation = 0; + var rightRotation = 0; + var rotationStep = 2 * Math.PI / 150; + return function (time, timeDelta) { + var i; + var saberEls = this.saberEls; + var boundingBox; + var saberBoundingBox; + var plane; + if (!this.destroyed) { + if (!this.correctBeatColliderEl.getObject3D('mesh')) { return; } + boundingBox = this.boundingBox.setFromObject(this.correctBeatColliderEl.getObject3D('mesh')); + for (i = 0; i < saberEls.length; i++) { + saberBoundingBox = saberEls[i].components['saber-controls'].boundingBox; + if (boundingBox && saberBoundingBox && saberBoundingBox.intersectsBox(boundingBox)) { + this.destroyBeat(saberEls[i]); + break; + } + } + this.el.object3D.position.z += this.data.speed * (timeDelta / 1000); + this.backToPool = this.el.object3D.position.z >= 2; + } else { + rightCutNormal.copy(this.rightCutPlane.normal).multiplyScalar((this.data.speed / 2) * (timeDelta / 500)); + this.partRightEl.object3D.position.add(rightCutNormal); + this.partRightEl.object3D.setRotationFromAxisAngle(this.rotationAxis, rightRotation); + rightRotation = rightRotation >= 2 * Math.PI ? 0 : rightRotation + rotationStep; + + leftCutNormal.copy(this.leftCutPlane.normal).multiplyScalar((this.data.speed / 2) * (timeDelta / 500)); + this.partLeftEl.object3D.position.add(leftCutNormal); + this.partLeftEl.object3D.setRotationFromAxisAngle(this.rotationAxis, leftRotation); + leftRotation = leftRotation >= 2 * Math.PI ? 0 : leftRotation + rotationStep; + + this.generateCutClippingPlanes(); + + this.returnToPoolTimer -= timeDelta; + this.backToPool = this.returnToPoolTimer <= 0; + } + this.returnToPool(); + }; + })() +}); \ No newline at end of file diff --git a/src/index.html b/src/index.html index 76b6e4a..b5d2963 100644 --- a/src/index.html +++ b/src/index.html @@ -18,12 +18,19 @@ effect-bloom="strength: 1" intro-song overlay="objects: #menu, #keyboard, #rightHand, #leftHand, [mixin~='cursorMesh']" + pool__beat-arrow-blue="mixin: beat arrow-blue-beat; size: 5; container: #beatContainer" + pool__beat-arrow-red="mixin: beat arrow-red-beat; size: 10; container: #beatContainer" + pool__beat-dot-blue="mixin: beat dot-blue-beat; size: 10; container: #beatContainer" + pool__beat-dot-red="mixin: beat dot-red-beat; size: 10; container: #beatContainer" proxy-event="event: menuchallengeselect; to: #searchResultsContainer, #menuDifficultiesGroup" search stage-colors="blue" - fog="color: #a00; density: 0.035; type: exponential"> + fog="color: #a00; density: 0.035; type: exponential" debug> + + + @@ -36,6 +43,7 @@ + @@ -47,8 +55,15 @@ + + + + + + +