ããããã¹ãã§WebXRäœéšã«ãããæ¡åŒµçŸå®ïŒARïŒã®å¯èœæ§ãè§£ãæŸã¡ãŸããããä»®æ³ç©ºéã§ã®ãªã¢ã«ãªãªããžã§ã¯ãé 眮ãšã€ã³ã¿ã©ã¯ã·ã§ã³ãå®çŸããæ¹æ³ãåŠã³ãŸãã
WebXRããããã¹ãïŒã¡ã¿ããŒã¹ã«ãããARãªããžã§ã¯ãé 眮ã¬ã€ã
ã¡ã¿ããŒã¹ã¯æ¥éã«é²åããŠããããã®æªæ¥ã圢äœãäžã§æ¡åŒµçŸå®ïŒARïŒãéèŠãªåœ¹å²ãæãããŠããŸããWebXRã¯ãæ²¡å ¥åäœéšã®ããã®ãŠã§ããã©ãããã©ãŒã ã§ãããéçºè ããã©ãŠã¶ã§çŽæ¥å®è¡ã§ããã¯ãã¹ãã©ãããã©ãŒã ã®ARã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšãå¯èœã«ããŸããé åçãªARäœéšãåµé ããããã®æãåºæ¬çãªåŽé¢ã®äžã€ã¯ããŠãŒã¶ãŒã®ç©çç°å¢å ã«ä»®æ³ãªããžã§ã¯ããçŸå®çã«é 眮ããèœåã§ããããã§ããããã¹ããç»å ŽããŸãã
WebXRããããã¹ããšã¯äœãïŒ
WebXRã®æèã«ãããããããã¹ããšã¯ããŠãŒã¶ãŒã®èŠç¹ããæŸãããã¬ã€ïŒå ç·ïŒãå®äžçã®ãµãŒãã§ã¹ïŒè¡šé¢ïŒãšäº€å·®ãããã©ããã倿ããããã»ã¹ã§ãããã®äº€å·®ç¹ã¯ãä»®æ³ãªããžã§ã¯ããæ£ç¢ºã«é 眮ãããããããŠãŒã¶ãŒã®åšå²ã«ã·ãŒã ã¬ã¹ã«çµ±åãããŠãããã®ãããªé¯èŠãçã¿åºãããã«å¿ èŠãªç©ºé座æšãæäŸããŸããã¹ããŒããã©ã³ã®ã«ã¡ã©ãéããŠãªãã³ã°ã«ãŒã ã«ä»®æ³ã®æ€ åã眮ãããšãæ³åããŠã¿ãŠãã ãããããããã¹ãããããå¯èœã«ããŸãã
æ¬è³ªçã«ãããã«ããWebXRã¢ããªã±ãŒã·ã§ã³ã¯æ¬¡ã®è³ªåã«çããããšãã§ããŸãïŒãããã€ã¹ãç¹å®ã®å Žæã«åãããšãããã€ã¹ã®ä»®æ³ã¬ã€ã¯ã©ã®å®äžçã®ãµãŒãã§ã¹ã«åœãã£ãŠããŸããïŒããã®å¿çã¯ããã®ãµãŒãã§ã¹ã®3D座æšïŒXãYãZïŒãšåããæäŸããŸãã
ãªãããããã¹ãã¯ARã«ãšã£ãŠéèŠãªã®ãïŒ
ããããã¹ãã¯ãããã€ãã®çç±ã§éåžžã«éèŠã§ãã
- ãªã¢ã«ãªãªããžã§ã¯ãé çœ®ïŒ ããããã¹ãããªããã°ãä»®æ³ãªããžã§ã¯ãã¯ç©ºéã«æµ®éããããå®äžçã®ãµãŒãã§ã¹ã貫éããŠããããã«èŠãããããŠãARã®é¯èŠãå£ããŠããŸããŸããããããã¹ãã¯ããªããžã§ã¯ããå°é¢ã«èšçœ®ãããç°å¢ãšèª¬åŸåãæã£ãŠçžäºäœçšããããšãä¿èšŒããŸãã
- èªç¶ãªã€ã³ã¿ã©ã¯ã·ã§ã³ïŒ ãŠãŒã¶ãŒãå®äžçã®å Žæãã¿ãããããæã瀺ãããããããšã§ãä»®æ³ãªããžã§ã¯ããšçŽæçã«å¯Ÿè©±ã§ããããã«ãªããŸããæºã®äžã«ä»®æ³ã®æ€ç©ã眮ãå Žæãéžã¶ããšãèããŠã¿ãŠãã ããã
- 空éçè§£ïŒ ããããã¹ãã¯ãŠãŒã¶ãŒã®ç°å¢ã«é¢ããæ å ±ãæäŸããã¢ããªã±ãŒã·ã§ã³ãå®äžçã®ãªããžã§ã¯ãã®ã¬ã€ã¢ãŠããé¢ä¿ãçè§£ã§ããããã«ããŸããããã¯ãããæŽç·ŽãããARäœéšãäœæããããã«äœ¿çšã§ããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžïŒ çŸå®çãªé 眮ãšã€ã³ã¿ã©ã¯ã·ã§ã³ãå¯èœã«ããããšã§ãããããã¹ãã¯ARäœéšãããé åçã§äœ¿ãããããã®ã«ããŸãã
WebXRããããã¹ãã®ä»çµã¿
WebXR Hit Test APIã¯ãããããã¹ããå®è¡ããããã«å¿ èŠãªããŒã«ãæäŸããŸãã以äžã«ãé¢äžããäž»èŠãªã¹ãããã®å èš³ã瀺ããŸãã
- ARã»ãã·ã§ã³ã®ãªã¯ãšã¹ãïŒ æåã®ã¹ãããã¯ãWebXR APIããARã»ãã·ã§ã³ããªã¯ãšã¹ãããããšã§ããããã«ã¯ããŠãŒã¶ãŒã®ããã€ã¹ã§ARæ©èœã確èªããæå¹ãª
XRFrame
ãååŸããããšãå«ãŸããŸãã - ããããã¹ããœãŒã¹ã®äœæïŒ ããããã¹ããœãŒã¹ã¯ããŠãŒã¶ãŒã®èŠç·ãããã€ã¹ã®æãç€ºãæ¹åã衚ããŸãã
XRFrame.getHitTestInputSource()
ãŸãã¯åæ§ã®ã¡ãœããã䜿çšããŠããããã¹ããœãŒã¹ãäœæããããã¯XRInputSource
ãè¿ããŸãããã®å ¥åãœãŒã¹ã¯ããŠãŒã¶ãŒãã·ãŒã³ãšå¯Ÿè©±ããæ¹æ³ã衚ããŸãã - ããããã¹ãã®å®è¡ïŒ ããããã¹ããœãŒã¹ã䜿çšããŠã
XRFrame.getHitTestResults(hitTestSource)
ã䜿ã£ãŠã·ãŒã³ã«ã¬ã€ããã£ã¹ãããŸãããã®ã¡ãœããã¯ãXRHitTestResult
ãªããžã§ã¯ãã®é åãè¿ãããããããå®äžçã®ãµãŒãã§ã¹ãšã®æœåšçãªäº€å·®ã衚ããŸãã - çµæã®åŠçïŒ å
XRHitTestResult
ãªããžã§ã¯ãã«ã¯ããããã®3Däœçœ®ïŒXRRay
ïŒãšåãïŒXRRigidTransform
ïŒãå«ãã亀差ã«é¢ããæ å ±ãå«ãŸããŠããŸãããã®æ å ±ã䜿çšããŠãä»®æ³ãªããžã§ã¯ããé 眮ããæ¹åä»ããããšãã§ããŸãã
ç°¡ç¥åãããã³ãŒãäŸïŒæŠå¿µïŒïŒ
// xrSessionãšxrRefSpaceããã§ã«ååŸãããŠãããšä»®å®ããŸãã
let hitTestSource = await xrSession.requestHitTestSource({
space: xrRefSpace, //ããããã¹ããå®è¡ããããã«äœ¿çšãããXRReferenceSpaceã
profile: 'generic-touchscreen', //ããããã¹ãå®è¡æã«äœ¿çšããå
¥åãããã¡ã€ã«ã瀺ããªãã·ã§ã³ã®æååã
});
function onXRFrame(time, frame) {
// ... ãã®ä»ã®XRãã¬ãŒã åŠç ...
const hitTestResults = frame.getHitTestResults(hitTestSource);
if (hitTestResults.length > 0) {
const hit = hitTestResults[0];
const pose = hit.getPose(xrRefSpace); // ãããã®ããŒãºïŒå§¿å¢ïŒãååŸ
// ãããã®ããŒãºã䜿çšããŠ3Dãªããžã§ã¯ããé
眮
object3D.position.set(pose.transform.position.x, pose.transform.position.y, pose.transform.position.z);
object3D.quaternion.set(pose.transform.orientation.x, pose.transform.orientation.y, pose.transform.orientation.z, pose.transform.orientation.w);
}
}
WebXRããããã¹ãã®å®è·µïŒäŸãšãŠãŒã¹ã±ãŒã¹
ããããã¹ãã¯ãARã¢ããªã±ãŒã·ã§ã³ã«å¹ åºãå¯èœæ§ããããããŸãã以äžã«ããã€ãã®äŸãæããŸãã
- Eã³ããŒã¹ïŒ 顧客ãè³Œå ¥åã«å®¶å ·ãå®¶é»ãèªå® ã«ä»®æ³çã«é 眮ã§ããããã«ããŸãããã€ãã®ãŠãŒã¶ãŒã¯ã¢ããªã䜿ã£ãŠæ°ãããœãã¡ããªãã³ã°ã«è¡šç€ºãããã¹ããŒã¹ã«åãŸãæ¢åã®è£ 食ãšèª¿åãããã確èªã§ããŸããåæ§ã®ã¢ããªã±ãŒã·ã§ã³ã§ãæ¥æ¬ã®ãŠãŒã¶ãŒã¯ãã°ãã°çãå± äœç©ºéã«æ°ããå®¶é»ãã©ã®ããã«åãŸããã確èªã§ããŸãã
- ã²ãŒã ïŒ ä»®æ³ãã£ã©ã¯ã¿ãŒãçŸå®äžçãšå¯Ÿè©±ããARã²ãŒã ãäœæããŸããä»®æ³ãããããªãã³ã°ãèµ°ãåããå®¶å ·ã®åŸãã«é ããã²ãŒã ãæ³åããŠã¿ãŠãã ãããã²ãŒã ã¯åºãšéšå±ã«ãããã¹ãŠã®ãªããžã§ã¯ããæ£ç¢ºã«æ€åºããå¿ èŠããããŸãã
- æè²ïŒ è€éãªç§åŠçæŠå¿µã3Dã§èŠèŠåããåŠçãèªåã®ç°å¢ã§ä»®æ³ã¢ãã«ãšå¯Ÿè©±ã§ããããã«ããŸãããã©ãžã«ã®åŠçã¯ARã¢ããªã䜿çšããŠååã®æ§é ãæ¢æ±ããã¢ãã«ãæºã®äžã«çœ®ããŠå転ãããããšã§çè§£ãæ·±ããããšãã§ããŸãã
- 建ç¯ãšãã¶ã€ã³ïŒ 建ç¯å®¶ããã¶ã€ããŒã建èšèšç»ãã€ã³ããªã¢ãã¶ã€ã³ãçŸå®äžçã®æèã§èŠèŠåã§ããããã«ããŸããããã€ã®å»ºç¯å®¶ã¯ARã䜿çšããŠã¯ã©ã€ã¢ã³ãã«æ°ãã建ç©ã®ãã¶ã€ã³ãæç€ºããå®éã®å»ºèšçŸå Žã«éãããã建ç©ã®ä»®æ³è¡šçŸã®åšããæ©ãåãããšãã§ããŸãã
- ãã¬ãŒãã³ã°ãšã·ãã¥ã¬ãŒã·ã§ã³ïŒ ãã«ã¹ã±ã¢ãè£œé æ¥ãªã©ãããŸããŸãªæ¥çåãã«ãªã¢ã«ãªãã¬ãŒãã³ã°ã·ãã¥ã¬ãŒã·ã§ã³ãäœæããŸãããã€ãžã§ãªã¢ã®å»åŠçã¯ããããã³ã«éããããä»®æ³æ£è ã§å€ç§æè¡ãç·Žç¿ããèªåã®è¡åã«åºã¥ããŠãªã¢ã«ã¿ã€ã ã®ãã£ãŒãããã¯ãåãåãããšãã§ããŸãã
é©åãªWebXRãã¬ãŒã ã¯ãŒã¯ã®éžæ
ããã€ãã®WebXRãã¬ãŒã ã¯ãŒã¯ã¯ãéçºããã»ã¹ãç°¡çŽ åããããããã¹ãçšã®æ§ç¯æžã¿ã³ã³ããŒãã³ããæäŸã§ããŸãã
- Three.jsïŒ ãŠã§ãäžã§3Dã°ã©ãã£ãã¯ã¹ãäœæããããã®äººæ°ã®JavaScriptã©ã€ãã©ãªã§ããWebXRã®åªãããµããŒããæäŸããããããã¹ããåŠçããããã®ããŒã«ãæäŸããŸãã
- Babylon.jsïŒ 3Däœéšãæ§ç¯ããããã®ããäžã€ã®åŒ·åãªJavaScriptãã¬ãŒã ã¯ãŒã¯ã§ããçµã¿èŸŒã¿ã®ããããã¹ãæ©èœãå«ããWebXRéçºã®ããã®å æ¬çãªããŒã«ãšæ©èœã»ãããåããŠããŸãã
- A-FrameïŒ HTMLã§VRäœéšãæ§ç¯ããããã®ãŠã§ããã¬ãŒã ã¯ãŒã¯ã§ããA-Frameã¯ã宣èšçãªæ§æãšçµã¿èŸŒã¿ã³ã³ããŒãã³ãã§WebXRéçºãç°¡çŽ åããããããã¹ãã®å®è£ ã容æã«ããŸãã
WebXRããããã¹ãã«ããã課é¡ã®å æ
ããããã¹ãã¯åŒ·åãªããŒã«ã§ãããããã€ãã®èª²é¡ãæç€ºããŸãã
- ç²ŸåºŠïŒ ããããã¹ãã®ç²ŸåºŠã¯ãç §ææ¡ä»¶ãããã€ã¹ã®ã»ã³ãµãŒãç°å¢è¿œè·¡ã®å質ãªã©ã®èŠå ã«äŸåããŸããèæãç°å¢ã§ã¯ã远跡ãäžæ£ç¢ºã«ãªãããªããžã§ã¯ãã®é 眮ãäžæ£ç¢ºã«ãªãå¯èœæ§ããããŸãã
- ããã©ãŒãã³ã¹ïŒ ããããã¹ããé »ç¹ã«å®è¡ãããšãç¹ã«ã¢ãã€ã«ããã€ã¹ã§ã¯ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸããããããã¹ãããã»ã¹ãæé©åããäžèŠãªèšç®ãé¿ããããšãäžå¯æ¬ ã§ãã
- ãªã¯ã«ãŒãžã§ã³ïŒ ä»®æ³ãªããžã§ã¯ããå®äžçã®ãªããžã§ã¯ãã«ãã£ãŠãªã¯ã«ãŒãžã§ã³ïŒé ãããïŒãããã¿ã€ãã³ã°ã倿ããã®ã¯è€éãªå ŽåããããŸãããªã¯ã«ãŒãžã§ã³ãæ£ç¢ºã«åŠçããã«ã¯ãã·ãŒã³çè§£ãæ·±åºŠã»ã³ã·ã³ã°ãªã©ã®é«åºŠãªæè¡ãå¿ èŠã§ãã
- ã¯ãã¹ãã©ãŠã¶äºææ§ïŒ WebXRã¯ããæšæºåããã€ã€ãããŸããããã©ãŠã¶ã®å®è£ ã®ã°ãã€ããäŸç¶ãšããŠèª²é¡ãšãªãããšããããŸããããŸããŸãªãã©ãŠã¶ãããã€ã¹ã§ã¢ããªã±ãŒã·ã§ã³ããã¹ãããããšãéèŠã§ãã
WebXRããããã¹ãã®ãã¹ããã©ã¯ãã£ã¹
ã¹ã ãŒãºã§å¹æçãªããããã¹ãã®å®è£ ãä¿èšŒããããã®ããã€ãã®ãã¹ããã©ã¯ãã£ã¹ã以äžã«ç€ºããŸãã
- ããããã¹ãé »åºŠã®æé©åïŒ å¿ èŠã§ãªãå Žåã¯ãæ¯ãã¬ãŒã ããããã¹ããå®è¡ããã®ãé¿ããŠãã ããã代ããã«ããŠãŒã¶ãŒãã·ãŒã³ãšã¢ã¯ãã£ãã«å¯Ÿè©±ããŠãããšãããããã€ã¹ã®äœçœ®ãå€§å¹ ã«å€åãããšãã«ã®ã¿ããããã¹ããå®è¡ããŸãã1ç§ãããã®ããããã¹ãã®æ°ãå¶éããããã«ãã¹ããããªã³ã°ã¡ã«ããºã ãå®è£ ããããšãæ€èšããŠãã ããã
- èŠèŠçãªãã£ãŒãããã¯ã®æäŸïŒ ããããã¹ããå®è¡ããããµãŒãã§ã¹ãæ€åºãããããšã瀺ãèŠèŠçãªãã£ãŒãããã¯ããŠãŒã¶ãŒã«æäŸããŸããããã¯ãæ€åºããããµãŒãã§ã¹ã«è¡šç€ºãããåãã°ãªããã®ãããªåçŽãªèŠèŠçãªæãããã§ããå¯èœæ§ããããŸãã
- è€æ°ã®ããããã¹ãã®äœ¿çšïŒ ããæ£ç¢ºãªçµæãåŸãããã«ãè€æ°ã®ããããã¹ããå®è¡ããŠçµæãå¹³ååããããšãæ€èšããŠãã ãããããã«ããããã€ãºãæžããããªããžã§ã¯ãé 眮ã®å®å®æ§ãåäžãããããšãã§ããŸãã
- ãšã©ãŒã®äžå¯§ãªåŠçïŒ ããã€ã¹ã远跡ã倱ã£ããããµãŒãã§ã¹ãæ€åºãããªãã£ãããããªã©ãããããã¹ãã倱æããç¶æ³ãäžå¯§ã«åŠçããããã«ãšã©ãŒãã³ããªã³ã°ãå®è£ ããŸãããŠãŒã¶ãŒã«æçãªã¡ãã»ãŒãžãæäŸããããã»ã¹ãã¬ã€ãããŸãã
- ç°å¢ã»ãã³ãã£ã¯ã¹ã®èæ ®ïŒå°æ¥ïŒïŒ WebXRãé²åããã«ã€ããŠããŠãŒã¶ãŒã®ç°å¢ãããæ·±ãçè§£ããããã«ãç°å¢ã»ãã³ãã£ã¯ã¹APIïŒå©çšå¯èœãªå ŽåïŒã掻çšããããšãæ€èšããŠãã ãããããã«ãããããçŸå®çã§æèãèªèããARäœéšãå¯èœã«ãªããŸããããšãã°ããµãŒãã§ã¹ãåºã§ã¯ãªãããŒãã«ã§ããããšãçè§£ããããšã§ããªããžã§ã¯ãã®é 眮åäœã«æ å ±ãäžããããšãã§ããŸãã
WebXRãšARãªããžã§ã¯ãé çœ®ã®æªæ¥
WebXRããããã¹ãã®æªæ¥ã¯æããã§ããæè¡ãé²åããã«ã€ããŠã以äžã®ãããªããšãæåŸ ã§ããŸãã
- 粟床ã®åäžïŒ ã³ã³ãã¥ãŒã¿ããžã§ã³ãšã»ã³ãµãŒæè¡ã®é²æ©ã«ãããããæ£ç¢ºã§ä¿¡é Œæ§ã®é«ãããããã¹ããå®çŸããŸãã
- ããã©ãŒãã³ã¹ã®åäžïŒ WebXRãšãã©ãŠã¶ãšã³ãžã³ã®æé©åã«ãããããããã¹ãã®ããã©ãŒãã³ã¹ãåäžããããè€éã§èŠæ±ã®å³ããARäœéšãå¯èœã«ãªããŸãã
- ã»ãã³ãã£ãã¯çè§£ïŒ ã»ãã³ãã£ãã¯çè§£æ©èœã®çµ±åã«ãããã¢ããªã±ãŒã·ã§ã³ã¯ç°å¢ã«ã€ããŠæšè«ããããã€ã³ããªãžã§ã³ãã§æèãèªèããARã€ã³ã¿ã©ã¯ã·ã§ã³ãäœæã§ããããã«ãªããŸãã
- ãã«ããŠãŒã¶ãŒARïŒ ããããã¹ãã¯ããã«ããŠãŒã¶ãŒARäœéšãå®çŸããäžã§éèŠãªåœ¹å²ãæãããè€æ°ã®ãŠãŒã¶ãŒãåãç©ç空éã§åãä»®æ³ãªããžã§ã¯ããšå¯Ÿè©±ã§ããããã«ãªããŸãã
çµè«
WebXRããããã¹ãã¯ããŠã§ãäžã§é åçã§ãªã¢ã«ãªARäœéšãäœæããããã®åºæ¬çãªæ§æèŠçŽ ã§ããããããã¹ãã®ååãšãã¹ããã©ã¯ãã£ã¹ãçè§£ããããšã§ãéçºè ã¯ARã®å¯èœæ§ãæå€§éã«åŒãåºããå¹ åºãæ¥çåãã®é©æ°çãªã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸããWebXRãé²åãç¶ããã«ã€ããŠãããããã¹ãã¯ããã«åŒ·åã«ãªããã¡ã¿ããŒã¹ã®æªæ¥ã圢äœãäžã§äžå¯æ¬ ãªãã®ãšãªãã§ãããã
äºææ§ã確ä¿ããæ°æ©èœãæ¹åç¹ã掻çšããããã«ãææ°ã®WebXR仿§ãšãã©ãŠã¶ã®å®è£ ãåžžã«ææ¡ããŠããããšãå¿ããªãã§ãã ãããããŸããŸãªãã¬ãŒã ã¯ãŒã¯ããã¯ããã¯ã詊ããŠãç¹å®ã®ARã¢ããªã±ãŒã·ã§ã³ã«æé©ãªã¢ãããŒããèŠã€ããŠãã ããããããŠæãéèŠãªããšã¯ãä»®æ³äžçãšçŸå®äžçãã·ãŒã ã¬ã¹ã«èåããããçŽæçã§é åçãªãŠãŒã¶ãŒäœéšã®åµé ã«éäžããããšã§ãã