@xrift/world-components 0.35.0 → 0.35.1

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/Mirror/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA6B1C,wBAAgB,MAAM,CAAC,EACrB,QAAuB,EACvB,QAAoB,EACpB,IAAa,EACb,KAAgB,EAChB,iBAAuB,EACvB,WAAkC,GACnC,EAAE,WAAW,2CAkGb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA8B1C,wBAAgB,MAAM,CAAC,EACrB,QAAuB,EACvB,QAAoB,EACpB,IAAa,EACb,KAAgB,EAChB,iBAAuB,EACvB,WAAkC,GACnC,EAAE,WAAW,2CAuGb"}
@@ -6,6 +6,7 @@ import { Reflector } from 'three/addons/objects/Reflector.js';
6
6
  import { DEFAULT_LOD_DISTANCE, LOD_HYSTERESIS_RATIO } from './constants';
7
7
  import { shouldUseReflector } from './utils';
8
8
  const _worldPos = new Vector3();
9
+ const _cameraWorldPos = new Vector3();
9
10
  const fallbackVertexShader = `
10
11
  varying vec3 vWorldNormal;
11
12
  varying vec3 vWorldPosition;
@@ -87,14 +88,17 @@ export function Mirror({ position = [0, 2.5, -9], rotation = [0, 0, 0], size = [
87
88
  // VRMFirstPersonのレイヤー設定により、メインカメラではThirdPersonOnlyレイヤー(頭部)が
88
89
  // 非表示になっているが、鏡には全身を映す必要があるため
89
90
  // onBeforeRenderでメインカメラの設定がコピーされるため、毎フレーム設定が必要
90
- useFrame(({ camera }) => {
91
+ useFrame(({ camera, gl }) => {
91
92
  const reflector = reflectorRef.current;
92
93
  if (!reflector)
93
94
  return;
94
95
  // LOD: カメラと鏡の距離に応じて Reflector ↔ envMap を切り替え
95
96
  const fallback = fallbackRef.current;
96
97
  if (fallback && groupRef.current) {
97
- const distance = camera.position.distanceTo(groupRef.current.getWorldPosition(_worldPos));
98
+ // VR モードでは XR カメラのワールド座標を使用
99
+ const activeCamera = gl.xr.isPresenting ? gl.xr.getCamera() : camera;
100
+ _cameraWorldPos.setFromMatrixPosition(activeCamera.matrixWorld);
101
+ const distance = _cameraWorldPos.distanceTo(groupRef.current.getWorldPosition(_worldPos));
98
102
  const useReflector = shouldUseReflector(distance, lodDistance, usingReflectorRef.current, LOD_HYSTERESIS_RATIO);
99
103
  if (useReflector !== usingReflectorRef.current) {
100
104
  usingReflectorRef.current = useReflector;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,KAAK,EAAS,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAI5C,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAA;AAE/B,MAAM,oBAAoB,GAAG;;;;;;;;;CAS5B,CAAA;AAED,MAAM,sBAAsB,GAAG;;;;;;;;;;;;CAY9B,CAAA;AAED,MAAM,UAAU,MAAM,CAAC,EACrB,QAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EACvB,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACb,KAAK,GAAG,QAAQ,EAChB,iBAAiB,GAAG,GAAG,EACvB,WAAW,GAAG,oBAAoB,GACtB;IACZ,MAAM,QAAQ,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAA;IACpC,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,MAAM,CAAc,IAAI,CAAC,CAAA;IAC7C,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAEhC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAA;QACrC,IAAI,CAAC,YAAY;YAAE,OAAM;QAEzB,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpD,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAA;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAA;QAEzE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE;YACxC,QAAQ,EAAE,KAAK;YACf,YAAY;YACZ,aAAa;YACb,KAAK;YACL,WAAW,EAAE,CAAC,EAAE,kDAAkD;SACnE,CAAC,CAAA;QAEF,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/B,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC3B,YAAY,CAAC,OAAO,GAAG,SAAS,CAAA;QAEhC,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAAC;YAC1C,YAAY,EAAE,oBAAoB;YAClC,cAAc,EAAE,sBAAsB;YACtC,QAAQ,EAAE;gBACR,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;gBACtC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACzC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;aAC7B;SACF,CAAC,CAAA;QACF,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;QACjE,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;QAC5B,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC9B,WAAW,CAAC,OAAO,GAAG,YAAY,CAAA;QAElC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAA;QAEhC,OAAO,GAAG,EAAE;YACV,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC9B,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBACjC,QAAQ,CAAC,OAAO,EAAE,CAAA;gBAClB,SAAS,CAAC,OAAO,EAAE,EAAE,CAAA;gBACrB,gBAAgB,CAAC,OAAO,EAAE,CAAA;gBAC1B,gBAAgB,CAAC,OAAO,EAAE,CAAA;YAC5B,CAAC;YACD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;YAC3B,WAAW,CAAC,OAAO,GAAG,IAAI,CAAA;QAC5B,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAA;IAEpD,2CAA2C;IAC3C,4DAA4D;IAC5D,6BAA6B;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAA;QACtC,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;YACzF,MAAM,YAAY,GAAG,kBAAkB,CACrC,QAAQ,EACR,WAAW,EACX,iBAAiB,CAAC,OAAO,EACzB,oBAAoB,CACrB,CAAA;YAED,IAAI,YAAY,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC/C,iBAAiB,CAAC,OAAO,GAAG,YAAY,CAAA;gBACxC,SAAS,CAAC,OAAO,GAAG,YAAY,CAAA;gBAChC,QAAQ,CAAC,OAAO,GAAG,CAAC,YAAY,CAAA;YAClC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAM;QAE9B,yCAAyC;QACzC,MAAM,aAAa,GAAI,SAAsD,CAAC,MAAM,CAAA;QACpF,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QAClC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,gBAAO,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAA;AACzE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrift/world-components",
3
- "version": "0.35.0",
3
+ "version": "0.35.1",
4
4
  "description": "Shared components and utilities for Xrift worlds",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",