XRReferenceSpace
å©ç¨å¯è½æ§ã¯éå®ç
ãã®æ©è½ã¯ãã¼ã¹ã©ã¤ã³ã§ã¯ããã¾ãããæãåºã使ç¨ããã¦ãããã©ã¦ã¶ã¼ã®ä¸é¨ã§åä½ãã¾ããã
Want more browser support for this feature? Tell us why.
å®å ¨ãªã³ã³ããã¹ãç¨: ãã®æ©è½ã¯ä¸é¨ã¾ãã¯ãã¹ã¦ã®å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã«ããã¦ãå®å ¨ãªã³ã³ããã¹ã (HTTPS) ã§ã®ã¿å©ç¨ã§ãã¾ãã
WebXR æ©å¨ API ã® XRReferenceSpace ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãæå®ãããè¿½è·¡ã®æ¯ãèãã使ç¨ãã¦ãä»®æ³ä¸çå
ã®ç¹å®ã®è¿½è·¡å¯¾è±¡ã®ã¨ã³ãã£ãã£ã¾ãã¯ãªãã¸ã§ã¯ãã®åº§æ¨ç³»ãè¨è¿°ãã¾ãã è¿½è·¡ã®æ¯ãèãã¯ã鏿ããåç
§ç©ºéåã«ãã£ã¦å®ç¾©ããã¾ãã ããã¤ãã®ç°ãªãè¿½è·¡ã®æ¯ãèãã®ãµãã¼ãã追å ãã追跡対象ãªãã¸ã§ã¯ãã¨ä¸çã®å¥ã®å ´æã¨ã®éã®ãªãã»ãã夿ãè¨è¿°ããæ°ããåç
§ç©ºéãè¦æ±ãããã¨ã«ãããåºæ¬ã¯ã©ã¹ XRSpace ãæ¡å¼µãã¾ãã
ãã¹ã¦ã®åç
§ç©ºéï¼å¶éä»ãåç
§ç©ºéãé¤ãï¼ã¯ãXRReferenceSpace ã¿ã¤ãã使ç¨ãã¦è¨è¿°ããã¾ãã å¶éä»ã空éã¯ãXRBoundedReferenceSpace ãªãã¸ã§ã¯ãã¨ãã¦å®è£
ããã¾ãã ããã¯ããã¥ã¼ã¢ã¼ãç§»åããã®ã«ãå®å
¨ããªå¢çã確ç«ã§ããç¹å¥ãªç©ºéã§ãã å®ä¸çã®ã«ã¡ã©ã§ç§»åã追跡ããã·ã¹ãã ãªã©ãã¦ã¼ã¶ã¼ãç©ççã«åãåããã¨ãã§ãã XR ã·ã¹ãã ã®å ´åããã®å¢çã¯ãç©ççãªé害ã«ãããã®ããXR ãã¼ãã¦ã§ã¢ã®å¶éã«ãããã®ãã«ããããããã¦ã¼ã¶ã¼ãåãåããã¨ãã§ããé åã®ç¸ã確ç«ãã¾ãã ã¦ã¼ã¶ã¼ãç©ççããã³ä»®æ³çãªé害ç©ã¨è¡çªããªãããã«ããããã®å¢çã®ä½¿ç¨ã®è©³ç´°ã«ã¤ãã¦ã¯ãå¶éä»ãåç
§ç©ºéã使ç¨ãããã¥ã¼ã¢ã¼ã®ä¿è·ã®è¨äºãåç
§ãã¦ãã ããã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
XRReferenceSpace 㯠EventTarget ã®ããããã£ãç¶æ¿ãã¦ãã¾ããããã以å¤ã®ããããã£ã¯å®ç¾©ãã¦ãã¾ããã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
XRReferenceSpace ã«ã¯ä»¥ä¸ã®ã¡ã½ãã以å¤ã«ã EventTarget ããç¶æ¿ããã¡ã½ãããããã¾ãã
getOffsetReferenceSpace()-
ã¡ã½ãããå¼ã³åºãããã®ã¨åãåï¼ã¤ã¾ãã
XRReferenceSpaceã¾ãã¯XRBoundedReferenceSpaceï¼ã®æ°ããåç §ç©ºéãªãã¸ã§ã¯ãã使ãã¦è¿ãã¾ãã æ°ããåç §ç©ºéã使ç¨ãã¦ãã¡ã½ãããå¼ã³åºããããªãã¸ã§ã¯ãã®åç §ç©ºéããå¥ã®åº§æ¨ç©ºéã«åº§æ¨ã夿ã§ãã¾ãã ããã¯ãã¬ã³ããªã³ã°ä¸ã«ãªãã¸ã§ã¯ããé ç½®ãããã3D 空éã§ãã¥ã¼ã¢ã¼ã®ä½ç½®ãåãã夿´ããã¨ãã«å¿ è¦ãªå¤æãå®è¡ãããããã®ã«å½¹ç«ã¡ã¾ãã
ã¤ãã³ã
reset-
resetã¤ãã³ãã¯ã追跡対象ãªãã¸ã§ã¯ãã®åç¹ã¨ã¦ã¼ã¶ã¼ã®ç°å¢ã¾ãã¯å ´æã®éã§ä¸é£ç¶æ§ãçºçãããã¨ããã©ã¦ã¶ã¼ãæ¤åºããã¨ãXRReferenceSpaceãªãã¸ã§ã¯ãã«éä¿¡ããã¾ãã ããã¯ãä¾ãã°ãã¦ã¼ã¶ã¼ã XR æ©å¨ãå調æ´ããå¾ãã追跡ã失ã£ã¦å復ããå¾ã«æ©å¨ãåç¹ãèªåçã«èª¿æ´ããå ´åã«çºçããå¯è½æ§ãããã¾ãã
åç §ç©ºéå
åç §ç©ºéã®ç¨®é¡ãä¸è¡¨ã«ç¤ºãããã®ä½¿ç¨ä¾ã¨ã©ã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§å®è£ ããã¦ãããã«ã¤ãã¦ã®ç°¡åãªæ å ±ã示ãã
bounded-floor-
XRBoundedReferenceSpaceã§ãlocalåã¨åæ§ã§ãããè¿ããããªãã¸ã§ã¯ãã®boundsGeometryã«ãã£ã¦æå®ãããæå®ã®å¢çã®å¤ã«ã¦ã¼ã¶ã¼ãç§»åãããã¨ã¯æ³å®ããã¦ãã¾ããã local-
XRReferenceSpaceã§ãã»ãã·ã§ã³ã使ãããæã®é²è¦§è ã®ä½ç½®ã®è¿ãã«åç¹ãæã¤è¿½è·¡ç©ºéã§ããæ£ç¢ºãªä½ç½®ã¯ãã©ãããã©ã¼ã ã¨å®è£ ã«ä¾åãã¾ããã¦ã¼ã¶ã¼ã¯éå§ä½ç½®ãããã¾ãåããã¨ã¯ãªãã¨æããã¾ãã®ã§ã追跡ã¯ãã®ç¨éã«æé©åããã¦ãã¾ãã 6 ã¤ã®èªç±åº¦ (6DoF) 追跡æ©è½ãæã¤æ©å¨ã®å ´åãlocalåç §ç©ºéã¯ãç°å¢ã«å¯¾ãã¦åç¹ãå®å®ã«ä¿ã¨ãã¨ãã¾ãã local-floor-
localåã«ä¼¼ãXRReferenceSpaceã§ãéå§ä½ç½®ãé²è¦§è ãå®å ¨ã«ç«ã¦ãå ´æã«ç½®ããã y 軸ã®å¤ãåºé¢ã 0 ã¨ãããã¨ãé¤ãã¾ãããã®åºã¬ãã«ãåãããªãå ´åãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã¯åºã¬ãã«ãæ¨å®ãã¾ããæ¨å®ãããåºã¬ãã«ã 0 ã§ãªãå ´åããã©ã¦ã¶ã¼ã¯ãã£ã³ã¬ã¼ããªã³ããé¿ãããããªæ¹æ³ã§ãããï¼ããããæãè¿ãã»ã³ãã¡ã¼ãã«ã«ï¼ä¸¸ãããã¨ãæå¾ ããã¦ãã¾ãã unbounded-
XRReferenceSpaceã§ãåç¹ããé常ã«é·ãè·é¢ãèªç±ã«ç§»åãããã¨ãã§ãã追跡空éã§ããé²è¦§è ã¯å ¨ã追跡ããã¾ããã追跡ã¯ã¦ã¼ã¶ã¼ã®ç¾å¨ä½ç½®ã®å®å®æ§ã®ããã«æé©åããã¦ããããã¤ãã£ãã®åç¹ã¯ãã®å¿ è¦æ§ã«å¿ãã¦ããªãããããã¨ãã§ãã¾ãã viewer-
XRReferenceSpaceã§ãé²è¦§è ã®ä½ç½®ã¨åããåç¹ã¨ãã¦è¿½è·¡ãã追跡空éã§ããããã¯ã¦ã¼ã¶ã¼ãç©ççã«ç§»åã§ããç°å¢ã§ä½¿ç¨ãããæ²¡å ¥åãã¤ã³ã©ã¤ã³ååããXRSessionã®å ¨ã¦ã®ã¤ã³ã¹ã¿ã³ã¹ã§å¯¾å¿ãã¦ãã¾ãããã¤ã³ã©ã¤ã³ã»ãã·ã§ã³ã§æãæç¨ã§ããããã¯ãé²è¦§è ã¨å ¥åã®éã®è·é¢ã決å®ããã¨ããã¾ãã¯ãªãã»ãã空éãæ±ãã¨ãã«ç¹ã«ä¾¿å©ã§ãããã以å¤ã§ã¯ãé常ãä»ã®åç §ç©ºéåã®ãããããããé »ç¹ã«ä½¿ç¨ããã¾ãã
使ç¨ä¸ã®æ³¨æ
>XRReferenceSpace ã®ä½æ
XRReferenceSpace ãåå¾ããå¿
è¦ãããç¶æ³ã¯2ã¤ããã¾ãã 1ã¤ç®ã¯ãã·ã¼ã³ãè¨å®ããXRSession ã®æéä¸ãä¸çã«å¯¾ããã¦ã¼ã¶ã¼ã®è¦ç¹ã表ãåç
§ç©ºéãåå¾ããå¿
è¦ãããå ´åã§ãã ãããè¡ãã«ã¯ãXRSession ã®ã¡ã½ãã requestReferenceSpace() ãå¼ã³åºãã¦ãåå¾ããåç
§ç©ºéåãæå®ãã¾ãã
xrSession.requestReferenceSpace("local").then((refSpace) => {
xrReferenceSpace = refSpace;
// â¦
});
æ°ããåç §ç©ºéãåå¾ããå¿ è¦ããããã1ã¤ã®ç¶æ³ã¯ãåç¹ãæ°ããä½ç½®ã«ç§»åããå¿ è¦ãããå ´åã§ãã ããã¯é常ãä¾ãã°ãããªãã®ããã¸ã§ã¯ãã§ãã¦ã¼ã¶ã¼ã XR æ©å¨ãä»ãã¦æ¥ç¶ããã¦ããªããã¼ãã¼ãããã¦ã¹ãã¿ããããããã²ã¼ã ã³ã³ããã¼ã©ã¼ãªã©ã®å ¥åæ©å¨ã使ç¨ãã¦ç°å¢å ãç§»åã§ããå ´åã«è¡ããã¾ãã åç¹ã¯é常ã空éå ã®ã¦ã¼ã¶ã¼ã®ä½ç½®ã§ãããããåç¹ã夿´ãã¦ãã¦ã¼ã¶ã¼ã®ç§»åã¨æ¹åã®å¤æ´ãåæ ããå¿ è¦ãããã¾ãã
ã¦ã¼ã¶ã¼ã®ä¸çã®ãã¥ã¼ãç§»åã¾ãã¯å転ããã«ã¯ããã®è¦ç¹ã表ãããã«ä½¿ç¨ããã XRReferenceSpace ã夿´ããå¿
è¦ãããã¾ãã ãã ããXRReferenceSpace ã¯ä¸å¤ã§ããããã代ããã«ã夿´ãããè¦ç¹ãè¡¨ãæ°ããåç
§ç©ºéã使ããå¿
è¦ãããã¾ãã ããã¯ãgetOffsetReferenceSpace() ã¡ã½ããã使ç¨ãã¦ç°¡åã«å®è¡ã§ãã¾ãã
let offsetTransform = new XRRigidTransform(
{ x: 2, y: 0, z: 1 },
{ x: 0, y: 0, z: 0, w: 1 },
);
xrReferenceSpace = xrReferenceSpace.getOffsetReferenceSpace(offsetTransform);
ããã«ãããXRReferenceSpace ãæ°ãããã®ã«ç½®ãæãã¾ãã ãã®åç¹ã¨åãã¯ãæ°ããåç¹ãç¾å¨ã®åç¹ã«å¯¾ã㦠(2, 0, 1) ã«é
ç½®ããããã«èª¿æ´ããåã®ä¸çã®åãã«å¯¾ãã¦ãã¥ã¼ã¢ã¼ãçä¸ã«åããããã«ç©ºéãåããåä½ã¯ã©ã¼ã¿ããªã³ãæå®ãã¦å転ãã¾ãã
ã¸ãªã¡ããªã¼
XRReferenceSpace ã®ãã¤ãã£ãåç¹ã¯ã+X ãå³å´ã+Y ãä¸åãã+Z ãã徿¹ãã¾ãã¯ã¦ã¼ã¶ã¼ã«åãã£ã¦ããã¨è¦ãªãããããã«å¸¸ã«æ§æããã¦ãã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| WebXR Device API > # xrreferencespace-interface > |