Skip to content

Commit 925983a

Browse files
committed
加强读取人物尺寸的逻辑
1 parent 6166daf commit 925983a

13 files changed

Lines changed: 209 additions & 121 deletions

docs/3dgs.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,9 @@
148148
}
149149
</style>
150150
<script src="./loader.js"></script>
151-
<script type="module" crossorigin src="/three-player-controller/assets/dgs-_bHeOa70.js"></script>
152-
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/stats.module-DGbvpg6Z.js">
153-
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/KTX2Loader-z9C8icv9.js">
151+
<script type="module" crossorigin src="/three-player-controller/assets/dgs-CmiSuElt.js"></script>
152+
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/stats.module-D_T9SDpZ.js">
153+
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/KTX2Loader-tla0JbfJ.js">
154154
</head>
155155
<body>
156156
<div id="container"></div>

docs/3dtilesScene.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@
149149
}
150150
</style>
151151
<script src="./loader.js"></script>
152-
<script type="module" crossorigin src="/three-player-controller/assets/tiles-DLCraG2k.js"></script>
153-
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/stats.module-DGbvpg6Z.js">
152+
<script type="module" crossorigin src="/three-player-controller/assets/tiles-B9Y7HnvW.js"></script>
153+
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/stats.module-D_T9SDpZ.js">
154154
</head>
155155
<body>
156156
<div id="container"></div>
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 43 additions & 43 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/glTF.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,9 @@
148148
}
149149
</style>
150150
<script src="./loader.js"></script>
151-
<script type="module" crossorigin src="/three-player-controller/assets/gltf-CvLsyhDZ.js"></script>
152-
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/stats.module-DGbvpg6Z.js">
153-
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/KTX2Loader-z9C8icv9.js">
151+
<script type="module" crossorigin src="/three-player-controller/assets/gltf-B6obyYek.js"></script>
152+
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/stats.module-D_T9SDpZ.js">
153+
<link rel="modulepreload" crossorigin href="/three-player-controller/assets/KTX2Loader-tla0JbfJ.js">
154154
</head>
155155
<body>
156156
<div id="container"></div>

docs/glb/person6.glb

27.4 MB
Binary file not shown.

example/glTF.js

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import { playerController } from "../src/playerController";
1919
import { GUI } from 'three/examples/jsm/libs/lil-gui.module.min.js';
2020
import Stats from 'three/examples/jsm/libs/stats.module.js';
2121
import { CSM } from "three/examples/jsm/csm/CSM.js";
22-
import { CSMHelper } from "three/examples/jsm/csm/CSMHelper.js"
2322

2423
let player;
2524
const scene = new Scene();
@@ -33,10 +32,8 @@ let raycastSphere = null;
3332

3433
let stats = null;
3534
let csm = null;
36-
let csmHelper = null;
3735

3836
const modelUrl = "./glb/burnout_revenge_-_central_route_crash_junction.glb";
39-
4037
const pos = new Vector3(21.5, 4, 15);
4138

4239
// 人物模型配置
@@ -83,6 +80,18 @@ const PLAYER_MODELS = {
8380
headObjName: "mixamorigHead",
8481
rotateY: Math.PI,
8582
},
83+
person6: {
84+
url: "./glb/person6.glb",
85+
scale: 0.001,
86+
idleAnim: "idle",
87+
walkAnim: "walk",
88+
runAnim: "run",
89+
jumpAnim: "jump",
90+
flyAnim: "flying",
91+
flyIdleAnim: "flyidle",
92+
headObjName: "mixamorigHead",
93+
rotateY: Math.PI,
94+
},
8695
};
8796

8897
// 车辆配置
@@ -290,12 +299,10 @@ function animate() {
290299
}
291300

292301
csm?.update();
293-
csmHelper?.update();
294302

295303
renderer.render(scene, camera);
296304

297305
stats?.update();
298-
299306
}
300307

301308
// 更新中心射线交点
@@ -348,7 +355,6 @@ function initGUI() {
348355
debug: false,
349356
enableOverShoulderView: true,
350357
centerRaycast: false,
351-
// playerScale: 1,
352358
};
353359

354360
const defaults = { ...params };
@@ -362,8 +368,22 @@ function initGUI() {
362368
child.castShadow = true;
363369
child.receiveShadow = true;
364370
setupCSMMaterial(child.material);
371+
if (v == "person6") {
372+
// 设置金属材质
373+
child.material.metalness = 0.8;
374+
child.material.roughness = 0.0;
375+
}
365376
}
366377
});
378+
// 注册动画
379+
player.registerAnimation("flyFight", "flyFight", {
380+
loop: false,
381+
clampWhenFinished: true,
382+
duration: 1,
383+
onFinished: () => {
384+
player.playAnimation("flyidle");
385+
},
386+
});
367387
});
368388

369389
const vehicleFolder = gui.addFolder("Add Vehicle");
@@ -436,9 +456,6 @@ function initGUI() {
436456
gui.add(params, "enableOverShoulderView").onChange((v) => player.setOverShoulderView(v));
437457
gui.add(params, "centerRaycast").name("Center Raycast Debug")
438458
.onChange((v) => { if (!v) raycastSphere.visible = false; });
439-
// gui.add(params, "playerScale", 0.001, 0.005, 0.0001)
440-
// .name("Player Scale")
441-
// .onChange((v) => player.setPlayerScale(v, params.playerScaleDuration));
442459

443460
const resetController = gui.add(
444461
{
@@ -470,17 +487,12 @@ function initGUI() {
470487
resetController.domElement.addEventListener(type, (e) => e.stopPropagation());
471488
});
472489

473-
// gui.add({ csmDebug: false }, "csmDebug").name("CSM Debug").onChange((v) => {
474-
// if (v) {
475-
// csmHelper = new CSMHelper(csm);
476-
// csmHelper.displayFrustum = true;
477-
// csmHelper.displayPlanes = true;
478-
// scene.add(csmHelper);
479-
// console.log('csmHelper', csmHelper);
480-
// } else {
481-
// if (csmHelper) { scene.remove(csmHelper); csmHelper = null; }
482-
// }
483-
// });
484-
485490
guiParams = params;
486-
}
491+
}
492+
493+
// 鼠标左键
494+
window.addEventListener("mousedown", (e) => {
495+
if (e.button !== 0) return;
496+
if (player.getCurrentPersonAnimationName() !== "flyidle") return;
497+
player.playAnimation("flyFight", { force: true });
498+
});

0 commit comments

Comments
 (0)