@needle-tools/engine 2.25.0-pre → 2.26.0-pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/needle-engine.d.ts +8 -7
- package/dist/needle-engine.js +343 -343
- package/dist/needle-engine.js.map +4 -4
- package/dist/needle-engine.min.js +15 -15
- package/dist/needle-engine.min.js.map +4 -4
- package/lib/engine/engine_setup.d.ts +1 -0
- package/lib/engine/engine_setup.js +2 -1
- package/lib/engine/engine_setup.js.map +1 -1
- package/lib/engine-components/AlignmentConstraint.js +16 -3
- package/lib/engine-components/AlignmentConstraint.js.map +1 -1
- package/lib/engine-components/Camera.d.ts +1 -0
- package/lib/engine-components/Camera.js +15 -26
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/Collider.js +6 -0
- package/lib/engine-components/Collider.js.map +1 -1
- package/lib/engine-components/DropListener.js +1 -1
- package/lib/engine-components/DropListener.js.map +1 -1
- package/lib/engine-components/OffsetConstraint.d.ts +3 -0
- package/lib/engine-components/OffsetConstraint.js +47 -12
- package/lib/engine-components/OffsetConstraint.js.map +1 -1
- package/lib/engine-components/WebXR.d.ts +2 -0
- package/lib/engine-components/WebXR.js +2 -0
- package/lib/engine-components/WebXR.js.map +1 -1
- package/lib/engine-components/avatar/Avatar_MouthShapes.js +9 -7
- package/lib/engine-components/avatar/Avatar_MouthShapes.js.map +1 -1
- package/lib/engine-components/codegen/exports.d.ts +0 -1
- package/lib/engine-components/codegen/exports.js +0 -1
- package/lib/engine-components/codegen/exports.js.map +1 -1
- package/lib/engine-components/js-extensions/RGBAColor.d.ts +1 -0
- package/lib/engine-components/js-extensions/RGBAColor.js +4 -2
- package/lib/engine-components/js-extensions/RGBAColor.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/codegen/register_types.js +0 -2
- package/src/engine/engine_setup.ts +2 -1
- package/src/engine-components/AlignmentConstraint.ts +9 -6
- package/src/engine-components/Camera.ts +16 -31
- package/src/engine-components/Collider.ts +10 -1
- package/src/engine-components/DropListener.ts +1 -1
- package/src/engine-components/OffsetConstraint.ts +41 -13
- package/src/engine-components/WebXR.ts +3 -0
- package/src/engine-components/avatar/Avatar_MouthShapes.ts +8 -7
- package/src/engine-components/codegen/exports.ts +0 -1
- package/src/engine-components/js-extensions/RGBAColor.ts +6 -2
- package/lib/engine-components/MeshCollider.d.ts +0 -4
- package/lib/engine-components/MeshCollider.js +0 -8
- package/lib/engine-components/MeshCollider.js.map +0 -1
- package/src/engine-components/MeshCollider.ts +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar_MouthShapes.js","sourceRoot":"","sources":["../../../../engine-components/avatar/Avatar_MouthShapes.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Avatar_MouthShapes.js","sourceRoot":"","sources":["../../../../engine-components/avatar/Avatar_MouthShapes.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,6 @@ export { Light } from "../Light";
|
|
|
38
38
|
export { LODModel } from "../LODGroup";
|
|
39
39
|
export { LODGroup } from "../LODGroup";
|
|
40
40
|
export { LookAtConstraint } from "../LookAtConstraint";
|
|
41
|
-
export { MeshCollider } from "../MeshCollider";
|
|
42
41
|
export { NavMesh } from "../NavMesh";
|
|
43
42
|
export { NavMeshAgent } from "../NavMesh";
|
|
44
43
|
export { NestedGltf } from "../NestedGltf";
|
|
@@ -39,7 +39,6 @@ export { Light } from "../Light";
|
|
|
39
39
|
export { LODModel } from "../LODGroup";
|
|
40
40
|
export { LODGroup } from "../LODGroup";
|
|
41
41
|
export { LookAtConstraint } from "../LookAtConstraint";
|
|
42
|
-
export { MeshCollider } from "../MeshCollider";
|
|
43
42
|
export { NavMesh } from "../NavMesh";
|
|
44
43
|
export { NavMeshAgent } from "../NavMesh";
|
|
45
44
|
export { NestedGltf } from "../NestedGltf";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../../engine-components/codegen/exports.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../../engine-components/codegen/exports.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { Mathf } from "../../engine/engine_math";
|
|
|
2
2
|
import { Color } from "three";
|
|
3
3
|
export class RGBAColor extends Color {
|
|
4
4
|
alpha = 1;
|
|
5
|
+
get isRGBAColor() { return true; }
|
|
5
6
|
constructor(r, g, b, a) {
|
|
6
7
|
super(r, g, b);
|
|
7
8
|
this.alpha = a;
|
|
@@ -13,9 +14,10 @@ export class RGBAColor extends Color {
|
|
|
13
14
|
}
|
|
14
15
|
copy(col) {
|
|
15
16
|
super.copy(col);
|
|
16
|
-
if ("alpha" in col && typeof col.alpha === "number")
|
|
17
|
+
if ("alpha" in col && typeof col.alpha === "number") {
|
|
17
18
|
this.alpha = col.alpha;
|
|
18
|
-
|
|
19
|
+
}
|
|
20
|
+
else if (typeof col["a"] === "number")
|
|
19
21
|
this.alpha = col["a"];
|
|
20
22
|
return this;
|
|
21
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RGBAColor.js","sourceRoot":"","sources":["../../../../engine-components/js-extensions/RGBAColor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChC,KAAK,GAAW,CAAC,CAAC;IAElB,YAAY,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAClD,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,KAAK;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,GAAuB;QACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,IAAG,OAAO,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;
|
|
1
|
+
{"version":3,"file":"RGBAColor.js","sourceRoot":"","sources":["../../../../engine-components/js-extensions/RGBAColor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChC,KAAK,GAAW,CAAC,CAAC;IAElB,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAElC,YAAY,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAClD,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,KAAK;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,GAAuB;QACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,IAAG,OAAO,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChD,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;SAC1B;aACI,IAAG,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,KAAY,EAAE,KAAa;QAC5B,MAAM,IAAI,GAAG,KAAkB,CAAC;QAChC,IAAG,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,KAAY;QACjB,MAAM,IAAI,GAAG,KAAkB,CAAC;QAChC,IAAG,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACpD,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.26.0-pre",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development, and can be deployed anywhere. It is flexible, extensible, and collaboration and XR come naturally.",
|
|
5
5
|
"main": "dist/needle-engine.js",
|
|
6
6
|
"module": "lib/needle-engine.js",
|
|
@@ -41,7 +41,6 @@ import { Light } from "../../engine-components/Light.ts";
|
|
|
41
41
|
import { LODModel } from "../../engine-components/LODGroup.ts";
|
|
42
42
|
import { LODGroup } from "../../engine-components/LODGroup.ts";
|
|
43
43
|
import { LookAtConstraint } from "../../engine-components/LookAtConstraint.ts";
|
|
44
|
-
import { MeshCollider } from "../../engine-components/MeshCollider.ts";
|
|
45
44
|
import { NavMesh } from "../../engine-components/NavMesh.ts";
|
|
46
45
|
import { NavMeshAgent } from "../../engine-components/NavMesh.ts";
|
|
47
46
|
import { NestedGltf } from "../../engine-components/NestedGltf.ts";
|
|
@@ -189,7 +188,6 @@ TypeStore.add("Light", Light);
|
|
|
189
188
|
TypeStore.add("LODModel", LODModel);
|
|
190
189
|
TypeStore.add("LODGroup", LODGroup);
|
|
191
190
|
TypeStore.add("LookAtConstraint", LookAtConstraint);
|
|
192
|
-
TypeStore.add("MeshCollider", MeshCollider);
|
|
193
191
|
TypeStore.add("NavMesh", NavMesh);
|
|
194
192
|
TypeStore.add("NavMeshAgent", NavMeshAgent);
|
|
195
193
|
TypeStore.add("NestedGltf", NestedGltf);
|
|
@@ -94,7 +94,8 @@ export class Context {
|
|
|
94
94
|
get domHeight(): number { return this.domElement.clientHeight; }
|
|
95
95
|
get domX(): number { return this.domElement.offsetLeft; }
|
|
96
96
|
get domY(): number { return this.domElement.offsetTop; }
|
|
97
|
-
get isInXR() { return this.renderer.xr
|
|
97
|
+
get isInXR() { return this.renderer.xr?.isPresenting || false; }
|
|
98
|
+
get xrSession() { return this.renderer.xr?.getSession(); }
|
|
98
99
|
get AROverlayElement(): HTMLElement {
|
|
99
100
|
const el = this.domElement as any;
|
|
100
101
|
if (typeof el.getAROverlayContainer === "function")
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { Behaviour, GameObject } from "./Component";
|
|
2
2
|
import * as utils from "./../engine/engine_three_utils";
|
|
3
|
-
import
|
|
3
|
+
import { Vector3 } from "three";
|
|
4
|
+
import { serializeable } from "../engine/engine_serialization_decorator";
|
|
4
5
|
|
|
5
6
|
export class AlignmentConstraint extends Behaviour {
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
private
|
|
8
|
+
@serializeable(GameObject)
|
|
9
|
+
private from: GameObject | undefined;
|
|
10
|
+
@serializeable(GameObject)
|
|
11
|
+
private to: GameObject | undefined;
|
|
12
|
+
|
|
9
13
|
private width: number = 0;
|
|
10
14
|
private centered: boolean = true;
|
|
11
|
-
|
|
12
|
-
private _centerPos!: THREE.Vector3;
|
|
15
|
+
private _centerPos!: Vector3;
|
|
13
16
|
|
|
14
17
|
awake(): void {
|
|
15
|
-
this._centerPos = new
|
|
18
|
+
this._centerPos = new Vector3();
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
update() {
|
|
@@ -16,8 +16,8 @@ const debug = getParam("debugcam");
|
|
|
16
16
|
|
|
17
17
|
export class Camera extends Behaviour {
|
|
18
18
|
|
|
19
|
-
get aspect()
|
|
20
|
-
if(this._cam instanceof PerspectiveCamera) return this._cam.aspect;
|
|
19
|
+
get aspect(): number {
|
|
20
|
+
if (this._cam instanceof PerspectiveCamera) return this._cam.aspect;
|
|
21
21
|
return (this.context.domWidth / this.context.domHeight);
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -61,6 +61,7 @@ export class Camera extends Behaviour {
|
|
|
61
61
|
return this._clearFlags;
|
|
62
62
|
}
|
|
63
63
|
public set clearFlags(val: ClearFlags) {
|
|
64
|
+
if (val === this._clearFlags) return;
|
|
64
65
|
this._clearFlags = val;
|
|
65
66
|
this.applyClearFlagsIfIsActiveCamera();
|
|
66
67
|
}
|
|
@@ -155,30 +156,6 @@ export class Camera extends Behaviour {
|
|
|
155
156
|
if (this.tag == "MainCamera") {
|
|
156
157
|
this.context.setCurrentCamera(this);
|
|
157
158
|
}
|
|
158
|
-
// if (!cameraAlreadyCreated)
|
|
159
|
-
// this.gameObject.add(cam);
|
|
160
|
-
|
|
161
|
-
// if (!cameraAlreadyCreated) {
|
|
162
|
-
// const notInGltf = this["__notInGltf"];
|
|
163
|
-
// if ((notInGltf !== undefined)) {
|
|
164
|
-
// this.gameObject.getWorldPosition(cam.position);
|
|
165
|
-
// this.gameObject.getWorldQuaternion(cam.quaternion);
|
|
166
|
-
// const t = new THREE.Euler();
|
|
167
|
-
// t.setFromQuaternion(cam.quaternion);
|
|
168
|
-
// t.y += Math.PI;
|
|
169
|
-
// t.z *= -1;
|
|
170
|
-
// cam.rotation.copy(t);
|
|
171
|
-
// }
|
|
172
|
-
// else {
|
|
173
|
-
// cam.position.copy(this.gameObject.position);
|
|
174
|
-
// cam.rotation.copy(this.gameObject.rotation);
|
|
175
|
-
// }
|
|
176
|
-
|
|
177
|
-
// // cam.rotateX(Math.PI / -2);
|
|
178
|
-
|
|
179
|
-
// this.gameObject.position.set(0, 0, 0);
|
|
180
|
-
// this.gameObject.rotation.set(0, 0, 0);
|
|
181
|
-
// }
|
|
182
159
|
}
|
|
183
160
|
|
|
184
161
|
applyClearFlagsIfIsActiveCamera() {
|
|
@@ -186,7 +163,7 @@ export class Camera extends Behaviour {
|
|
|
186
163
|
if (this._cam && this.context.mainCameraComponent === this) {
|
|
187
164
|
switch (this._clearFlags) {
|
|
188
165
|
case ClearFlags.Skybox:
|
|
189
|
-
if (this.
|
|
166
|
+
if (this.environmentIsTransparent()) {
|
|
190
167
|
if (!this.ARBackgroundAlpha || this.ARBackgroundAlpha < 0.001) {
|
|
191
168
|
this.context.scene.background = null;
|
|
192
169
|
this.context.renderer.setClearColor(0x000000, 0);
|
|
@@ -196,14 +173,14 @@ export class Camera extends Behaviour {
|
|
|
196
173
|
this.enableSkybox();
|
|
197
174
|
break;
|
|
198
175
|
case ClearFlags.SolidColor:
|
|
199
|
-
if (this.
|
|
200
|
-
let alpha = this.
|
|
176
|
+
if (this._backgroundColor) {
|
|
177
|
+
let alpha = this._backgroundColor.alpha;
|
|
201
178
|
// when in WebXR use ar background alpha override or set to 0
|
|
202
|
-
if (this.
|
|
179
|
+
if (this.environmentIsTransparent()) {
|
|
203
180
|
alpha = this.ARBackgroundAlpha ?? 0;
|
|
204
181
|
}
|
|
205
182
|
this.context.scene.background = null;
|
|
206
|
-
this.context.renderer.setClearColor(this.
|
|
183
|
+
this.context.renderer.setClearColor(this._backgroundColor, alpha);
|
|
207
184
|
}
|
|
208
185
|
break;
|
|
209
186
|
case ClearFlags.Uninitialized:
|
|
@@ -214,6 +191,14 @@ export class Camera extends Behaviour {
|
|
|
214
191
|
}
|
|
215
192
|
}
|
|
216
193
|
|
|
194
|
+
private environmentIsTransparent(): boolean {
|
|
195
|
+
const session = this.context.renderer.xr?.getSession()
|
|
196
|
+
if (!session) return false;
|
|
197
|
+
const environmentBlendMode = session.environmentBlendMode;
|
|
198
|
+
const transparent = environmentBlendMode === 'additive' || environmentBlendMode === 'alpha-blend';
|
|
199
|
+
return transparent;
|
|
200
|
+
}
|
|
201
|
+
|
|
217
202
|
private enableSkybox() {
|
|
218
203
|
if (!this._skybox)
|
|
219
204
|
this._skybox = new CameraSkybox(this);
|
|
@@ -69,4 +69,13 @@ export class BoxCollider extends Collider {
|
|
|
69
69
|
// // this.context.physics.removeShape(this.gameObject, this._shape);
|
|
70
70
|
// // }
|
|
71
71
|
// }
|
|
72
|
-
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
// export class MeshCollider extends Collider {
|
|
76
|
+
|
|
77
|
+
// onEnable() {
|
|
78
|
+
// if (this.enabled)
|
|
79
|
+
// this.context.physics.addMeshCollider(this.gameObject);
|
|
80
|
+
// }
|
|
81
|
+
// }
|
|
@@ -96,6 +96,6 @@ export class DropListener extends Behaviour {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
this.gameObject.add(obj);
|
|
99
|
-
this.dispatchEvent(new CustomEvent(DropListenerEvents.ObjectAdded, { detail:
|
|
99
|
+
this.dispatchEvent(new CustomEvent(DropListenerEvents.ObjectAdded, { detail: gltf }));
|
|
100
100
|
}
|
|
101
101
|
}
|
|
@@ -1,30 +1,58 @@
|
|
|
1
1
|
import { Behaviour, GameObject } from "./Component";
|
|
2
2
|
import * as utils from "./../engine/engine_three_utils";
|
|
3
|
-
import
|
|
3
|
+
import { Quaternion, Euler, Vector3, Plane } from "three";
|
|
4
|
+
import { serializeable } from "../engine/engine_serialization_decorator";
|
|
4
5
|
|
|
5
6
|
export class OffsetConstraint extends Behaviour {
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
private
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
private
|
|
12
|
-
|
|
13
|
-
private
|
|
8
|
+
@serializeable(GameObject)
|
|
9
|
+
private referenceSpace: GameObject | undefined;
|
|
10
|
+
|
|
11
|
+
@serializeable(GameObject)
|
|
12
|
+
private from: GameObject | undefined;
|
|
13
|
+
|
|
14
|
+
private affectPosition: boolean = false;
|
|
15
|
+
private affectRotation: boolean = false;
|
|
16
|
+
private alignLookDirection: boolean = false;
|
|
17
|
+
private levelLookDirection: boolean = false;
|
|
18
|
+
private levelPosition: boolean = false;
|
|
19
|
+
|
|
20
|
+
@serializeable(Vector3)
|
|
21
|
+
private positionOffset: Vector3 = new Vector3(0,0,0);
|
|
22
|
+
@serializeable(Vector3)
|
|
23
|
+
private rotationOffset: Vector3 = new Vector3(0,0,0);
|
|
24
|
+
|
|
25
|
+
private offset: Vector3 = new Vector3(0,0,0);
|
|
14
26
|
|
|
15
27
|
update() {
|
|
16
28
|
if (!this.from) return;
|
|
17
29
|
|
|
18
30
|
var pos = utils.getWorldPosition(this.from);
|
|
19
|
-
var rot:
|
|
31
|
+
var rot: Quaternion = utils.getWorldQuaternion(this.from);
|
|
20
32
|
|
|
21
|
-
|
|
33
|
+
this.offset.copy(this.positionOffset);
|
|
34
|
+
const l = this.offset.length();
|
|
35
|
+
if (this.referenceSpace)
|
|
36
|
+
this.offset.transformDirection(this.referenceSpace.matrixWorld).multiplyScalar(l);
|
|
37
|
+
|
|
38
|
+
pos.add(this.offset);
|
|
39
|
+
|
|
40
|
+
if (this.levelPosition && this.referenceSpace) {
|
|
41
|
+
const plane = new Plane(this.gameObject.up, 0);
|
|
42
|
+
const refSpacePoint = utils.getWorldPosition(this.referenceSpace);
|
|
43
|
+
plane.setFromNormalAndCoplanarPoint(this.gameObject.up, refSpacePoint);
|
|
44
|
+
const v2 = new Vector3(0,0,0);
|
|
45
|
+
plane.projectPoint(pos, v2);
|
|
46
|
+
pos.copy(v2);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (this.affectPosition) utils.setWorldPosition(this.gameObject, pos);
|
|
22
50
|
|
|
23
|
-
const euler = new
|
|
24
|
-
const quat = new
|
|
51
|
+
const euler = new Euler(this.rotationOffset.x, this.rotationOffset.y, this.rotationOffset.z);
|
|
52
|
+
const quat = new Quaternion().setFromEuler(euler);
|
|
25
53
|
if(this.affectRotation) utils.setWorldQuaternion(this.gameObject, rot.multiply(quat));
|
|
26
54
|
|
|
27
|
-
let lookDirection = new
|
|
55
|
+
let lookDirection = new Vector3();
|
|
28
56
|
this.from.getWorldDirection(lookDirection).multiplyScalar(50);
|
|
29
57
|
if (this.levelLookDirection) lookDirection.y = 0;
|
|
30
58
|
if (this.alignLookDirection) this.gameObject.lookAt(lookDirection);
|
|
@@ -149,6 +149,9 @@ export class WebXR extends Behaviour {
|
|
|
149
149
|
return this._vrButton;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
public get IsInVR() { return this._isInVR; }
|
|
153
|
+
public get IsInAR() { return this._isInAR; }
|
|
154
|
+
|
|
152
155
|
private rig!: THREE.Object3D;
|
|
153
156
|
private isInit: boolean = false;
|
|
154
157
|
|
|
@@ -19,8 +19,10 @@ export class Avatar_MouthShapes extends Behaviour {
|
|
|
19
19
|
private mouthChangeLength = 0;
|
|
20
20
|
|
|
21
21
|
awake(): void {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
setTimeout(()=>{
|
|
23
|
+
this.voip = GameObject.findObjectOfType(Voip, this.context);
|
|
24
|
+
if (!this.marker) this.marker = GameObject.getComponentInParent(this.gameObject, AvatarMarker);
|
|
25
|
+
}, 3000)
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
update(): void {
|
|
@@ -29,16 +31,16 @@ export class Avatar_MouthShapes extends Behaviour {
|
|
|
29
31
|
let id = this.marker?.connectionId ?? null;
|
|
30
32
|
if (!id) {
|
|
31
33
|
if (debug) id = null;
|
|
34
|
+
return;
|
|
32
35
|
}
|
|
33
|
-
const freq = this.voip.getFrequency(id);
|
|
34
|
-
if (freq == null) return;
|
|
36
|
+
const freq = this.voip.getFrequency(id) ?? 0;
|
|
35
37
|
this.updateLips(freq);
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
private updateLips(frequency: number) {
|
|
39
41
|
if (this.context.time.time - this.lastMouthChangeTime > this.mouthChangeLength) {
|
|
40
42
|
this.mouthChangeLength = .05 + Math.random() * .1;
|
|
41
|
-
if (this.talking && this.talking.length > 0 && frequency >
|
|
43
|
+
if (this.talking && this.talking.length > 0 && frequency > 30) {
|
|
42
44
|
this.lastMouthChangeTime = this.context.time.time;
|
|
43
45
|
const index = Math.floor(Math.random() * this.talking.length);
|
|
44
46
|
this.setMouthShapeActive(this.talking, index);
|
|
@@ -55,14 +57,13 @@ export class Avatar_MouthShapes extends Behaviour {
|
|
|
55
57
|
if (!arr) return;
|
|
56
58
|
|
|
57
59
|
// hide other
|
|
58
|
-
if(arr != this.idle) this.idle.map(i => i.visible = false);
|
|
60
|
+
if (arr != this.idle) this.idle.map(i => i.visible = false);
|
|
59
61
|
else this.talking.map(i => i.visible = false);
|
|
60
62
|
|
|
61
63
|
for (let i = 0; i < arr.length; i++) {
|
|
62
64
|
const shape = arr[i];
|
|
63
65
|
if (shape) {
|
|
64
66
|
shape.visible = i === index;
|
|
65
|
-
shape.scale.set(1,1,1);
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
}
|
|
@@ -39,7 +39,6 @@ export { Light } from "../Light";
|
|
|
39
39
|
export { LODModel } from "../LODGroup";
|
|
40
40
|
export { LODGroup } from "../LODGroup";
|
|
41
41
|
export { LookAtConstraint } from "../LookAtConstraint";
|
|
42
|
-
export { MeshCollider } from "../MeshCollider";
|
|
43
42
|
export { NavMesh } from "../NavMesh";
|
|
44
43
|
export { NavMeshAgent } from "../NavMesh";
|
|
45
44
|
export { NestedGltf } from "../NestedGltf";
|
|
@@ -4,6 +4,8 @@ import { Color } from "three";
|
|
|
4
4
|
export class RGBAColor extends Color {
|
|
5
5
|
alpha: number = 1;
|
|
6
6
|
|
|
7
|
+
get isRGBAColor() { return true; }
|
|
8
|
+
|
|
7
9
|
constructor(r: number, g: number, b: number, a: number) {
|
|
8
10
|
super(r, g, b);
|
|
9
11
|
this.alpha = a;
|
|
@@ -17,8 +19,10 @@ export class RGBAColor extends Color {
|
|
|
17
19
|
|
|
18
20
|
copy(col : RGBAColor | Color){
|
|
19
21
|
super.copy(col);
|
|
20
|
-
if("alpha" in col && typeof col.alpha === "number")
|
|
21
|
-
|
|
22
|
+
if("alpha" in col && typeof col.alpha === "number") {
|
|
23
|
+
this.alpha = col.alpha;
|
|
24
|
+
}
|
|
25
|
+
else if(typeof col["a"] === "number") this.alpha = col["a"];
|
|
22
26
|
return this;
|
|
23
27
|
}
|
|
24
28
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MeshCollider.js","sourceRoot":"","sources":["../../../engine-components/MeshCollider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,MAAM,OAAO,YAAa,SAAQ,SAAS;IAEvC,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;CACJ"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { Behaviour } from "./Component";
|
|
3
|
-
import { Physics } from '../engine/engine_physics'
|
|
4
|
-
import * as THREE from 'three';
|
|
5
|
-
|
|
6
|
-
export class MeshCollider extends Behaviour {
|
|
7
|
-
|
|
8
|
-
onEnable() {
|
|
9
|
-
if (this.enabled)
|
|
10
|
-
this.context.physics.addMeshCollider(this.gameObject);
|
|
11
|
-
}
|
|
12
|
-
}
|