@xrift/world-components 0.10.5 → 0.10.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Interactable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAA;AAGlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpC,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,KAAK,CAqDlC,CAAA;AAED,YAAY,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Interactable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAA;AAIlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,KAAK,CAqDlC,CAAA;AAED,YAAY,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,SAAS,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useRef } from 'react';
3
+ import { LAYERS } from '../../constants/layers';
3
4
  import { useXRift } from '../../contexts/XRiftContext';
4
- const INTERACTABLE_LAYER = 10;
5
5
  export const Interactable = ({ id, type = 'button', onInteract, interactionText, enabled = true, children, }) => {
6
6
  const { registerInteractable, unregisterInteractable } = useXRift();
7
7
  const groupRef = useRef(null);
@@ -12,7 +12,7 @@ export const Interactable = ({ id, type = 'button', onInteract, interactionText,
12
12
  return;
13
13
  // レイヤーを設定(レイキャスト最適化のため)
14
14
  object.traverse((child) => {
15
- child.layers.enable(INTERACTABLE_LAYER);
15
+ child.layers.enable(LAYERS.INTERACTABLE);
16
16
  });
17
17
  // インタラクト可能オブジェクトとして登録
18
18
  registerInteractable(object);
@@ -20,7 +20,7 @@ export const Interactable = ({ id, type = 'button', onInteract, interactionText,
20
20
  return () => {
21
21
  unregisterInteractable(object);
22
22
  object.traverse((child) => {
23
- child.layers.disable(INTERACTABLE_LAYER);
23
+ child.layers.disable(LAYERS.INTERACTABLE);
24
24
  });
25
25
  };
26
26
  }, [registerInteractable, unregisterInteractable]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Interactable/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAW,MAAM,OAAO,CAAA;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAGtD,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAc,CAAC,EACtC,EAAE,EACF,IAAI,GAAG,QAAQ,EACf,UAAU,EACV,eAAe,EACf,OAAO,GAAG,IAAI,EACd,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,GAAG,QAAQ,EAAE,CAAA;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAA;IAEpC,6BAA6B;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,wBAAwB;QACxB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,sBAAsB;QACtB,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAE5B,UAAU;QACV,OAAO,GAAG,EAAE;YACV,sBAAsB,CAAC,MAAM,CAAC,CAAA;YAE9B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;YAC1C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAElD,6BAA6B;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,EAAE;YACF,IAAI;YACJ,UAAU;YACV,eAAe;YACf,OAAO;SACR,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;IAEpD,OAAO,CACL,gBAAO,GAAG,EAAE,QAAQ,YACjB,QAAQ,GACH,CACT,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Interactable/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAW,MAAM,OAAO,CAAA;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAGtD,MAAM,CAAC,MAAM,YAAY,GAAc,CAAC,EACtC,EAAE,EACF,IAAI,GAAG,QAAQ,EACf,UAAU,EACV,eAAe,EACf,OAAO,GAAG,IAAI,EACd,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,GAAG,QAAQ,EAAE,CAAA;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAA;IAEpC,6BAA6B;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,wBAAwB;QACxB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,sBAAsB;QACtB,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAE5B,UAAU;QACV,OAAO,GAAG,EAAE;YACV,sBAAsB,CAAC,MAAM,CAAC,CAAA;YAE9B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YAC3C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAElD,6BAA6B;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,EAAE;YACF,IAAI;YACJ,UAAU;YACV,eAAe;YACf,OAAO;SACR,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;IAEpD,OAAO,CACL,gBAAO,GAAG,EAAE,QAAQ,YACjB,QAAQ,GACH,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Three.js レイヤー定数
3
+ *
4
+ * Three.jsのカメラとオブジェクトは32のレイヤー(0-31)を持ち、
5
+ * カメラは有効化されたレイヤーに属するオブジェクトのみをレンダリングする。
6
+ *
7
+ * 使用例:
8
+ * - camera.layers.enable(LAYERS.INTERACTABLE) // カメラでこのレイヤーを表示
9
+ * - mesh.layers.set(LAYERS.FIRST_PERSON_ONLY) // メッシュをこのレイヤーのみに設定
10
+ * - mesh.layers.enable(LAYERS.INTERACTABLE) // メッシュにこのレイヤーを追加
11
+ */
12
+ export declare const LAYERS: {
13
+ /** デフォルトレイヤー(すべてのオブジェクトが初期状態で属する) */
14
+ readonly DEFAULT: 0;
15
+ /**
16
+ * 一人称視点のみ表示(VRMFirstPerson)
17
+ * - ヘッドレスコピー(頭部を除いた身体)を表示
18
+ * - VRモードで自分の身体を見る際に使用
19
+ */
20
+ readonly FIRST_PERSON_ONLY: 9;
21
+ /**
22
+ * 三人称視点のみ表示(VRMFirstPerson)
23
+ * - 頭部を含むオリジナルメッシュを表示
24
+ * - 他プレイヤーから見た時、ミラーに映る時に使用
25
+ */
26
+ readonly THIRD_PERSON_ONLY: 10;
27
+ /**
28
+ * インタラクト可能オブジェクト
29
+ * - Raycastでインタラクション対象を検出する際に使用
30
+ * - ボタン、ドア、アイテムなどのインタラクト可能な要素に設定
31
+ */
32
+ readonly INTERACTABLE: 11;
33
+ };
34
+ export type LayerName = keyof typeof LAYERS;
35
+ export type LayerNumber = (typeof LAYERS)[LayerName];
36
+ //# sourceMappingURL=layers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/constants/layers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,MAAM;IACjB,qCAAqC;;IAGrC;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;CAEK,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,MAAM,CAAA;AAC3C,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAA"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Three.js レイヤー定数
3
+ *
4
+ * Three.jsのカメラとオブジェクトは32のレイヤー(0-31)を持ち、
5
+ * カメラは有効化されたレイヤーに属するオブジェクトのみをレンダリングする。
6
+ *
7
+ * 使用例:
8
+ * - camera.layers.enable(LAYERS.INTERACTABLE) // カメラでこのレイヤーを表示
9
+ * - mesh.layers.set(LAYERS.FIRST_PERSON_ONLY) // メッシュをこのレイヤーのみに設定
10
+ * - mesh.layers.enable(LAYERS.INTERACTABLE) // メッシュにこのレイヤーを追加
11
+ */
12
+ export const LAYERS = {
13
+ /** デフォルトレイヤー(すべてのオブジェクトが初期状態で属する) */
14
+ DEFAULT: 0,
15
+ /**
16
+ * 一人称視点のみ表示(VRMFirstPerson)
17
+ * - ヘッドレスコピー(頭部を除いた身体)を表示
18
+ * - VRモードで自分の身体を見る際に使用
19
+ */
20
+ FIRST_PERSON_ONLY: 9,
21
+ /**
22
+ * 三人称視点のみ表示(VRMFirstPerson)
23
+ * - 頭部を含むオリジナルメッシュを表示
24
+ * - 他プレイヤーから見た時、ミラーに映る時に使用
25
+ */
26
+ THIRD_PERSON_ONLY: 10,
27
+ /**
28
+ * インタラクト可能オブジェクト
29
+ * - Raycastでインタラクション対象を検出する際に使用
30
+ * - ボタン、ドア、アイテムなどのインタラクト可能な要素に設定
31
+ */
32
+ INTERACTABLE: 11,
33
+ };
34
+ //# sourceMappingURL=layers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/constants/layers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,qCAAqC;IACrC,OAAO,EAAE,CAAC;IAEV;;;;OAIG;IACH,iBAAiB,EAAE,CAAC;IAEpB;;;;OAIG;IACH,iBAAiB,EAAE,EAAE;IAErB;;;;OAIG;IACH,YAAY,EAAE,EAAE;CACR,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrift/world-components",
3
- "version": "0.10.5",
3
+ "version": "0.10.6",
4
4
  "description": "Shared components and utilities for Xrift worlds",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",