|
17 | 17 | <!-- <script src="sprite3d.js"></script> --> |
18 | 18 | <script src="land.js"></script> |
19 | 19 | <!-- <script src="skin.js"></script> --> |
| 20 | + <script type=module src='./proto/IKRiggedModel.js'></script> |
| 21 | + <script type=module src='./proto/model.patches.js'></script> |
20 | 22 | <script src="three-ik.js"></script> |
21 | 23 | <script src="parse5.js"></script> |
22 | 24 | <script src="html-beautify.js"></script> |
|
25 | 27 | </head> |
26 | 28 | <body> |
27 | 29 | <xr-site></xr-site> |
28 | | - <script type=module> |
29 | | -import RiggedModel from './avatar/proto/IKRiggedModel.js'; |
30 | | -import './avatar/proto/model.patches.js'; |
| 30 | + <script> |
| 31 | +// import RiggedModel from './avatar/proto/IKRiggedModel.js'; |
| 32 | +// import './avatar/proto/model.patches.js'; |
31 | 33 |
|
32 | 34 | (async () => { |
33 | 35 |
|
|
40 | 42 | default: 0x42a5f5, |
41 | 43 | highlight: 0x9ccc65, |
42 | 44 | }; |
| 45 | +const clock = new THREE.Clock(); |
43 | 46 | const _rewriteUrlToRaw = u => { |
44 | 47 | const o = new URL(u); |
45 | 48 | const match = o.host.match(/^(.+)\.proxy\.exokit\.org$/); |
|
506 | 509 | if (method === 'pose') { |
507 | 510 | if (avatarMesh && avatarMesh.riggedModel) { |
508 | 511 | const {hmd, gamepads} = data; |
509 | | - avatarMesh.riggedModel.setState(hmd, gamepads); |
| 512 | + |
| 513 | + // this.avatarMesh.position.fromArray(hmd.position).sub(localVector.set(0, 1.5, 0)); |
| 514 | + |
| 515 | + avatarMesh.riggedModel.targets.Head.position.fromArray(hmd.position); |
| 516 | + avatarMesh.riggedModel.targets.Head.quaternion.fromArray(hmd.quaternion); |
| 517 | + |
| 518 | + const [leftGamepad, rightGamepad] = gamepads; |
| 519 | + avatarMesh.riggedModel.targets.LeftHand.position.fromArray(leftGamepad.position); |
| 520 | + avatarMesh.riggedModel.targets.LeftHand.quaternion.fromArray(leftGamepad.quaternion); |
| 521 | + avatarMesh.riggedModel.targets.RightHand.position.fromArray(rightGamepad.position); |
| 522 | + avatarMesh.riggedModel.targets.RightHand.quaternion.fromArray(rightGamepad.quaternion); |
| 523 | + |
| 524 | + /* localQuaternion.fromArray(hmd.quaternion); |
| 525 | + localEuler.setFromQuaternion(localQuaternion, localEuler.order); |
| 526 | + localEuler.y += Math.PI; |
| 527 | + localEuler.x *= -1; |
| 528 | + this.avatarMesh.quaternion.setFromEuler(localEuler); |
| 529 | +
|
| 530 | + avatarMesh.riggedModel.setState(hmd, gamepads); */ |
510 | 531 | } |
511 | 532 | } else if (landState && method === 'initState') { |
512 | 533 | const {state} = data; |
|
6143 | 6164 | const _updateAvatarMeshes = () => { |
6144 | 6165 | for (let i = 0; i < avatarMeshes.length; i++) { |
6145 | 6166 | const avatarMesh = avatarMeshes[i]; |
6146 | | - avatarMesh.riggedModel && avatarMesh.riggedModel.update(); |
6147 | | - /* const timeDelta = clock.getDelta() * 1000; |
| 6167 | + // avatarMesh.riggedModel && avatarMesh.riggedModel.update(); |
| 6168 | + const timeDelta = clock.getDelta() * 1000; |
6148 | 6169 | const time = clock.elapsedTime * 1000; |
6149 | 6170 | avatarMesh.riggedModel && avatarMesh.riggedModel.tick(time, timeDelta); |
6150 | | - avatarMesh.riggedModel && avatarMesh.riggedModel.fallback(avatarMesh.riggedModel.targets, time, timeDelta); */ |
| 6171 | + // avatarMesh.riggedModel && avatarMesh.riggedModel.fallback(avatarMesh.riggedModel.targets, time, timeDelta); |
6151 | 6172 | } |
6152 | 6173 | }; |
6153 | 6174 | _updateAvatarMeshes(); |
|
0 commit comments