@xrift/world-components 0.33.1 → 0.33.3

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/LiveVideoPlayer/index.tsx"],"names":[],"mappings":"AAQA,UAAU,KAAK;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CAC1B;AAUD,eAAO,MAAM,eAAe,kJAUvB,KAAK,6CAqJT,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":"AAQA,UAAU,KAAK;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CAC1B;AAUD,eAAO,MAAM,eAAe,kJAUvB,KAAK,6CA2IT,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { memo, Suspense, useState, useCallback, useRef, useEffect } from "react";
3
3
  import { Container, Text } from "@react-three/uikit";
4
4
  import { ControlPanel } from "./components/ControlPanel";
@@ -51,7 +51,7 @@ export const LiveVideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation
51
51
  handlers.onVolumeChange(newVolume);
52
52
  resetAutoHideTimer();
53
53
  }, [handlers, resetAutoHideTimer]);
54
- return (_jsxs("group", { position: position, rotation: rotation, children: [!videoState.url || isRetrying ? (_jsxs(_Fragment, { children: [_jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), !videoState.url && !isRetrying && (_jsxs(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, justifyContent: "center", alignItems: "center", flexDirection: "column", gap: 4, children: [_jsx(Text, { fontSize: width / PIXEL_SIZE * 0.05, color: 0x666666, textAlign: "center", children: "Enter Live Stream URL" }), _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.035, color: 0x666666, textAlign: "center", children: "HLS .m3u8" })] }))] })) : (_jsx(ErrorBoundary, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), onError: handlers.onError, children: _jsx(Suspense, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#333333" }), children: _jsx(LiveVideoTexture, { url: videoState.url, cacheKey: videoState.reloadKey, width: width, height: screenHeight, playing: videoState.playing, volume: volume, onError: handlers.onError, onBufferingChange: handlers.onBufferingChange }) }) }, `error-boundary-${videoState.url}-${videoState.reloadKey}`)), isRetrying && (_jsx(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, justifyContent: "center", alignItems: "center", children: _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.04, color: 0xffcc00, textAlign: "center", children: "Reconnecting..." }) })), _jsx("group", { position: [0, 0, 0.01], children: _jsx(ControlPanel, { id: id, width: width, screenHeight: screenHeight, playing: videoState.playing, volume: volume, isBuffering: isBuffering, url: videoState.url || "", visible: !videoState.playing || controlsVisible, onPlayPause: handlers.onPlayPause, onStop: handlers.onStop, onVolumeChange: handleVolumeChange, onUrlChange: handlers.onUrlChange, onToggleVisible: handleToggleControls }) })] }));
54
+ return (_jsxs("group", { position: position, rotation: rotation, children: [isRetrying ? (_jsx(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, backgroundColor: 0x000000, justifyContent: "center", alignItems: "center", children: _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.04, color: 0xffcc00, textAlign: "center", children: "Reconnecting..." }) })) : !videoState.url ? (_jsxs(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, backgroundColor: 0x000000, justifyContent: "center", alignItems: "center", flexDirection: "column", gap: 4, children: [_jsx(Text, { fontSize: width / PIXEL_SIZE * 0.05, color: 0x666666, textAlign: "center", children: "Enter Live Stream URL" }), _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.035, color: 0x666666, textAlign: "center", children: "HLS .m3u8" })] })) : (_jsx(ErrorBoundary, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), onError: handlers.onError, children: _jsx(Suspense, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#333333" }), children: _jsx(LiveVideoTexture, { url: videoState.url, cacheKey: videoState.reloadKey, width: width, height: screenHeight, playing: videoState.playing, volume: volume, onError: handlers.onError, onBufferingChange: handlers.onBufferingChange }) }) }, `error-boundary-${videoState.url}-${videoState.reloadKey}`)), _jsx("group", { position: [0, 0, 0.01], children: _jsx(ControlPanel, { id: id, width: width, screenHeight: screenHeight, playing: videoState.playing, volume: volume, isBuffering: isBuffering, url: videoState.url || "", visible: !videoState.playing || controlsVisible, onPlayPause: handlers.onPlayPause, onStop: handlers.onStop, onVolumeChange: handleVolumeChange, onUrlChange: handlers.onUrlChange, onToggleVisible: handleToggleControls }) })] }));
55
55
  });
56
56
  LiveVideoPlayer.displayName = "LiveVideoPlayer";
57
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { MirrorProps } from './types';
2
2
  export type { MirrorProps } from './types';
3
- export declare function Mirror({ position, rotation, size, color, textureResolution, }: MirrorProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare function Mirror({ position, rotation, size, color, textureResolution, lodDistance, }: MirrorProps): import("react/jsx-runtime").JSX.Element;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,wBAAgB,MAAM,CAAC,EACrB,QAAuB,EACvB,QAAoB,EACpB,IAAa,EACb,KAAgB,EAChB,iBAAuB,GACxB,EAAE,WAAW,2CAsDb"}
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,12 +1,40 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useFrame, useThree } from '@react-three/fiber';
3
3
  import { useEffect, useRef } from 'react';
4
- import { PlaneGeometry } from 'three';
4
+ import { Color, Mesh, PlaneGeometry, ShaderMaterial, Vector3 } from 'three';
5
5
  import { Reflector } from 'three/addons/objects/Reflector.js';
6
- export function Mirror({ position = [0, 2.5, -9], rotation = [0, 0, 0], size = [8, 5], color = 0xcccccc, textureResolution = 512, }) {
6
+ import { DEFAULT_LOD_DISTANCE, LOD_HYSTERESIS_RATIO } from './constants';
7
+ import { shouldUseReflector } from './utils';
8
+ const _worldPos = new Vector3();
9
+ const fallbackVertexShader = `
10
+ varying vec3 vWorldNormal;
11
+ varying vec3 vWorldPosition;
12
+ void main() {
13
+ vec4 worldPos = modelMatrix * vec4(position, 1.0);
14
+ vWorldPosition = worldPos.xyz;
15
+ vWorldNormal = normalize((modelMatrix * vec4(normal, 0.0)).xyz);
16
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
17
+ }
18
+ `;
19
+ const fallbackFragmentShader = `
20
+ uniform vec3 baseColor;
21
+ uniform vec3 edgeColor;
22
+ uniform float fresnelPower;
23
+ varying vec3 vWorldNormal;
24
+ varying vec3 vWorldPosition;
25
+ void main() {
26
+ vec3 viewDir = normalize(cameraPosition - vWorldPosition);
27
+ float fresnel = pow(1.0 - max(dot(viewDir, vWorldNormal), 0.0), fresnelPower);
28
+ vec3 color = mix(baseColor, edgeColor, fresnel);
29
+ gl_FragColor = vec4(color, 1.0);
30
+ }
31
+ `;
32
+ export function Mirror({ position = [0, 2.5, -9], rotation = [0, 0, 0], size = [8, 5], color = 0xcccccc, textureResolution = 512, lodDistance = DEFAULT_LOD_DISTANCE, }) {
7
33
  const groupRef = useRef(null);
8
34
  const reflectorRef = useRef(null);
9
- const { gl } = useThree();
35
+ const fallbackRef = useRef(null);
36
+ const usingReflectorRef = useRef(true);
37
+ const gl = useThree((s) => s.gl);
10
38
  useEffect(() => {
11
39
  const currentGroup = groupRef.current;
12
40
  if (!currentGroup)
@@ -26,23 +54,56 @@ export function Mirror({ position = [0, 2.5, -9], rotation = [0, 0, 0], size = [
26
54
  reflector.position.set(0, 0, 0);
27
55
  currentGroup.add(reflector);
28
56
  reflectorRef.current = reflector;
57
+ // Fallback mesh: Fresnel シェーダーによる擬似ミラー
58
+ const fallbackGeometry = new PlaneGeometry(size[0], size[1]);
59
+ const fallbackMaterial = new ShaderMaterial({
60
+ vertexShader: fallbackVertexShader,
61
+ fragmentShader: fallbackFragmentShader,
62
+ uniforms: {
63
+ baseColor: { value: new Color(color) },
64
+ edgeColor: { value: new Color(0xffffff) },
65
+ fresnelPower: { value: 3.0 },
66
+ },
67
+ });
68
+ const fallbackMesh = new Mesh(fallbackGeometry, fallbackMaterial);
69
+ fallbackMesh.visible = false;
70
+ currentGroup.add(fallbackMesh);
71
+ fallbackRef.current = fallbackMesh;
72
+ usingReflectorRef.current = true;
29
73
  return () => {
30
- if (currentGroup && reflector) {
74
+ if (currentGroup) {
31
75
  currentGroup.remove(reflector);
76
+ currentGroup.remove(fallbackMesh);
32
77
  geometry.dispose();
33
78
  reflector.dispose?.();
79
+ fallbackGeometry.dispose();
80
+ fallbackMaterial.dispose();
34
81
  }
35
82
  reflectorRef.current = null;
83
+ fallbackRef.current = null;
36
84
  };
37
85
  }, [size[0], size[1], color, textureResolution, gl]);
38
86
  // Reflectorの内部カメラ(virtualCamera)の全レイヤーを有効化
39
87
  // VRMFirstPersonのレイヤー設定により、メインカメラではThirdPersonOnlyレイヤー(頭部)が
40
88
  // 非表示になっているが、鏡には全身を映す必要があるため
41
89
  // onBeforeRenderでメインカメラの設定がコピーされるため、毎フレーム設定が必要
42
- useFrame(() => {
90
+ useFrame(({ camera }) => {
43
91
  const reflector = reflectorRef.current;
44
92
  if (!reflector)
45
93
  return;
94
+ // LOD: カメラと鏡の距離に応じて Reflector ↔ envMap を切り替え
95
+ const fallback = fallbackRef.current;
96
+ if (fallback && groupRef.current) {
97
+ const distance = camera.position.distanceTo(groupRef.current.getWorldPosition(_worldPos));
98
+ const useReflector = shouldUseReflector(distance, lodDistance, usingReflectorRef.current, LOD_HYSTERESIS_RATIO);
99
+ if (useReflector !== usingReflectorRef.current) {
100
+ usingReflectorRef.current = useReflector;
101
+ reflector.visible = useReflector;
102
+ fallback.visible = !useReflector;
103
+ }
104
+ }
105
+ if (!reflector.visible)
106
+ return;
46
107
  // Reflectorの内部カメラにアクセス(型定義にないためanyでキャスト)
47
108
  const virtualCamera = reflector.camera;
48
109
  if (virtualCamera) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Mirror/index.tsx"],"names":[],"mappings":"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"}
@@ -9,5 +9,7 @@ export interface MirrorProps {
9
9
  color?: number;
10
10
  /** 反射テクスチャの解像度(デフォルト: 512)。sizeの比率に応じて自動調整されます */
11
11
  textureResolution?: number;
12
+ /** この距離(メートル)を超えると envMap ベースの擬似ミラーに切り替え(デフォルト: 10) */
13
+ lodDistance?: number;
12
14
  }
13
15
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Mirror/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,WAAW;IACX,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,oBAAoB;IACpB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Mirror/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,WAAW;IACX,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,oBAAoB;IACpB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"AASA,UAAU,KAAK;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAA;AAkEpC,eAAO,MAAM,WAAW,4IASnB,KAAK,6CAmJT,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"AASA,UAAU,KAAK;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAA;AAkEpC,eAAO,MAAM,WAAW,4IASnB,KAAK,6CAiJT,CAAA"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { memo, Suspense, useState, useCallback, useRef, useEffect } from 'react';
3
3
  import { Container, Text } from '@react-three/uikit';
4
4
  import { useFrame } from '@react-three/fiber';
@@ -113,7 +113,7 @@ export const VideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation = D
113
113
  console.error('VideoPlayer error:', error);
114
114
  setHasError(true);
115
115
  }, []);
116
- return (_jsxs("group", { position: position, rotation: rotation, children: [!currentUrl || hasError ? (_jsxs(_Fragment, { children: [_jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), !currentUrl && (_jsx(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, justifyContent: "center", alignItems: "center", children: _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.05, color: 0x666666, textAlign: "center", children: "Enter Video URL" }) }))] })) : (_jsx(ErrorBoundary, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), onError: handleError, children: _jsx(Suspense, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#333333" }), children: _jsx(VideoTextureInner, { url: currentUrl, cacheKey: reloadKey, width: width, screenHeight: screenHeight, playing: playing, volume: volume, onDurationChange: handleDurationChange, onProgressChange: handleProgressChange, seekTimeRef: seekTimeRef }, `${currentUrl}-${reloadKey}`) }) })), _jsx("group", { position: [0, 0, 0.01], children: _jsx(ControlPanel, { id: id, width: width, screenHeight: screenHeight, playing: playing, progress: progress, duration: duration, volume: volume, url: currentUrl || '', visible: !playing || controlsVisible, onPlayPause: handlePlayPause, onStop: handleStop, onSeek: handleSeek, onVolumeChange: handleVolumeChange, onUrlChange: handleUrlChange, onToggleVisible: handleToggleControls }) })] }));
116
+ return (_jsxs("group", { position: position, rotation: rotation, children: [!currentUrl && !hasError ? (_jsx(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, backgroundColor: 0x000000, justifyContent: "center", alignItems: "center", children: _jsx(Text, { fontSize: width / PIXEL_SIZE * 0.05, color: 0x666666, textAlign: "center", children: "Enter Video URL" }) })) : !currentUrl || hasError ? (_jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" })) : (_jsx(ErrorBoundary, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), onError: handleError, children: _jsx(Suspense, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#333333" }), children: _jsx(VideoTextureInner, { url: currentUrl, cacheKey: reloadKey, width: width, screenHeight: screenHeight, playing: playing, volume: volume, onDurationChange: handleDurationChange, onProgressChange: handleProgressChange, seekTimeRef: seekTimeRef }, `${currentUrl}-${reloadKey}`) }) })), _jsx("group", { position: [0, 0, 0.01], children: _jsx(ControlPanel, { id: id, width: width, screenHeight: screenHeight, playing: playing, progress: progress, duration: duration, volume: volume, url: currentUrl || '', visible: !playing || controlsVisible, onPlayPause: handlePlayPause, onStop: handleStop, onSeek: handleSeek, onVolumeChange: handleVolumeChange, onUrlChange: handleUrlChange, onToggleVisible: handleToggleControls }) })] }));
117
117
  });
118
118
  VideoPlayer.displayName = 'VideoPlayer';
119
119
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** Noto Sans JP Regular (CDN) */
2
+ export declare const JAPANESE_FONT_URL = "https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-jp@latest/japanese-400-normal.ttf";
3
+ /** MSDF 生成に含める文字セット(ひらがな・カタカナ・常用句読点・ASCII) */
4
+ export declare const JAPANESE_CHARSET: string;
5
+ /** MSDF テクスチャサイズ(日本語文字数に対応するため大きめ) */
6
+ export declare const JAPANESE_TEXTURE_SIZE: [number, number];
7
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/fonts/constants.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,eAAO,MAAM,iBAAiB,0FAC2D,CAAA;AAEzF,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,QAkBnB,CAAA;AAEV,sCAAsC;AACtC,eAAO,MAAM,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAgB,CAAA"}
@@ -0,0 +1,25 @@
1
+ /** Noto Sans JP Regular (CDN) */
2
+ export const JAPANESE_FONT_URL = 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-jp@latest/japanese-400-normal.ttf';
3
+ /** MSDF 生成に含める文字セット(ひらがな・カタカナ・常用句読点・ASCII) */
4
+ export const JAPANESE_CHARSET = [
5
+ // ASCII
6
+ ' !"#$%&\'()*+,-./0123456789:;<=>?@',
7
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`',
8
+ 'abcdefghijklmnopqrstuvwxyz{|}~',
9
+ // ひらがな
10
+ 'ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞ',
11
+ 'ただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽ',
12
+ 'まみむめもゃやゅゆょよらりるれろゎわゐゑをん',
13
+ // カタカナ
14
+ 'ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾ',
15
+ 'タダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポ',
16
+ 'マミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ',
17
+ // 日本語句読点・記号
18
+ '。、・「」『』()〔〕【】〜ー―…‥々〇〈〉《》!?',
19
+ ' .,:;/¥$#&*+−=|<>_',
20
+ // 長音・半濁点
21
+ 'ーー゛゜',
22
+ ].join('');
23
+ /** MSDF テクスチャサイズ(日本語文字数に対応するため大きめ) */
24
+ export const JAPANESE_TEXTURE_SIZE = [2048, 2048];
25
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/fonts/constants.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAC5B,uFAAuF,CAAA;AAEzF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,oCAAoC;IACpC,mCAAmC;IACnC,gCAAgC;IAChC,OAAO;IACP,gCAAgC;IAChC,iCAAiC;IACjC,wBAAwB;IACxB,OAAO;IACP,gCAAgC;IAChC,iCAAiC;IACjC,2BAA2B;IAC3B,YAAY;IACZ,4BAA4B;IAC5B,oBAAoB;IACpB,SAAS;IACT,MAAM;CACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAEV,sCAAsC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export declare const useJapaneseFont: (options?: {
2
+ charset?: string;
3
+ }) => import("@zappar/msdf-generator").FontFamily;
4
+ //# sourceMappingURL=useJapaneseFont.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useJapaneseFont.d.ts","sourceRoot":"","sources":["../../src/hooks/useJapaneseFont.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,gDAS7D,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { useTTF } from '@react-three/uikit/dist/use-ttf';
2
+ import { JAPANESE_FONT_URL, JAPANESE_CHARSET, JAPANESE_TEXTURE_SIZE, } from '../fonts/constants';
3
+ export const useJapaneseFont = (options) => {
4
+ const input = [
5
+ {
6
+ url: JAPANESE_FONT_URL,
7
+ charset: options?.charset ?? JAPANESE_CHARSET,
8
+ textureSize: JAPANESE_TEXTURE_SIZE,
9
+ },
10
+ ];
11
+ return useTTF(input);
12
+ };
13
+ //# sourceMappingURL=useJapaneseFont.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useJapaneseFont.js","sourceRoot":"","sources":["../../src/hooks/useJapaneseFont.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAA8B,EAAE,EAAE;IAChE,MAAM,KAAK,GAAmB;QAC5B;YACE,GAAG,EAAE,iBAAiB;YACtB,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,gBAAgB;YAC7C,WAAW,EAAE,qBAAqB;SACnC;KACF,CAAA;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrift/world-components",
3
- "version": "0.33.1",
3
+ "version": "0.33.3",
4
4
  "description": "Shared components and utilities for Xrift worlds",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",