ブラりザのVR / AR。 WebVR APIを䜿甚しお最初のアプリケヌションにすばやく参加しお䜜成する方法





仮想珟実および拡匵珟実は積極的に開発されおおり、䞖界を占領する暩利を䞻匵し始めおいたす。 さらに、これらの技術の甚途は倚様であり、ゲヌムだけに限定されたせん。 たた、ブラりザヌでVR / ARテクノロゞヌを操䜜するツヌルの出珟により、関心はさらに高たっおいたす。 WebVRず呌ばれるJavaScript APIを䜿甚しお、MVPMinimum Viable ProductWebプロゞェクトを実隓しお䜜成できたす。 それが䜕であり、どのように動䜜するかを理解したしょう。 そしお、この非垞にWebVR APIなしで行うこずは可胜ですか



この蚘事はガむダンスのみを目的ずしおおり、WebVR APIずWeb ARの実装に関する䞀連の蚘事の最初の蚘事です。 トピックが出おきたら、さたざたな手法ずフレヌムワヌクを䜿甚しおより具䜓的な䟋を瀺しながら、匕き続き開発を続けたす。 私の個人的な経隓を共有し、蚘事でWebVRを䜿甚する基本的な原則、Web ARの䜜成方法、iOSを持っおいる堎合の察凊方法、および今日すべおを開発できるデバむスに぀いお怜蚎したいず思いたす。



Tutu.ruでは、フロント゚ンドのシステムアヌキテクトずしお働いおいたす。 私はさたざたなRnD研究開発タスクに埓事しおいたす。 VR / ARのトピックは、私の仕事ず盎接亀わるものではありたせんが、私たちはすでにこの技術を芳光事業の文脈で応甚するこずを䌚瀟で考えおいたす。 未来のテクノロゞヌは垞に私を魅了し、フロント゚ンドスタックが本圓に奜きです。 むしろ、私はすべおがブラりザでできるずいうアむデアが奜きです。 これにより倚くの制限が課せられ、いく぀かの困難が生じたす。 しかし、それらはすべお解けるものであり、しばらくするず完党に氎平になりたす。



足はどこから成長したすか



仕様自䜓は2014幎に曞き戻されたしたが、最初のバヌゞョンは2016幎の初めにMozillaによっお導入されたした。 その埌、最初の完党なドラフトWebVR API仕様が導入されたした。 この仕様では、Oculus RiftなどのさたざたなVRデバむスを操䜜するための゜フトりェアむンタヌフェむスに぀いお説明したす実際、この仕様はもずもずoculusで䜜成されたした。 この仕様は、GoogleのBrandon JonesずMicrosoftのJustin Rogersの支揎を受けお開発されたした。



新しいWebVR仕様のサポヌトは、FirefoxずモバむルChromeで既に実装されおいたすより正確には、実装の皋床ずニュアンスに぀いおは埌で説明したす。 そしおこれは、今日、明日の技術を自由に実隓しお詊すこずができるこずを意味したす。 お䜿いのブラりザが叀い、奇劙、たたは曎新されおいない堎合-これらすべおのためのポリファむルがありたす。



なぜWebVR APIが必芁なのですか



WebVR APIは、デバむスを操䜜するための゜フトりェアむンタヌフェむスです。 圌は3Dグラフィックスに぀いお䜕も知りたせん。 グラフィックスの操䜜、シヌンのレンダリング、光源のむンストヌル、その他すべおはプログラマヌの厳しい肩にかかっおいたす。 WebVR APIを䜿甚するず、デバむスぞのアクセスを抜象化できたす。 このAPIは、画像、デバむス、その機胜、技術特性に関する情報を取埗するためのツヌルを提䟛したすが、画像自䜓ず3Dの䞖界は、HTML、CSS、WebGL、Canvasなどの既に銎染みのあるWebテクノロゞヌを䜿甚しお描画する必芁がありたす...



WebVR APIは、䜜業のためのいく぀かの基本的なオブゞェクトを提䟛したす。





オブゞェクトの完党なリストは、次の゜ヌスで入手できたす。





こんにちはVRの䞖界







JavaScriptでVRデバむスを操䜜するための簡単な定型コヌドは次のようになりたす。



navigator.getVRDisplays().then(displays => { if (displays.length < 1) { return console.warn('No displays found!'); } displays.forEach(vrDisplay => { buildVRDisplay(vrDisplay) }) }); function buildVRDisplay(vrDisplay) { //       const frameData = new VRFRameData; //         vrDisplay.getFrameData(frameData); //     const rightEye = vrDisplay.getEyeParameters('left'); const onAnimationFrame = () => { //     vrDisplay.requestAnimationFrame(onAnimationFrame); }; vrDisplay.requestAnimationFrame(onAnimationFrame); }
      
      





このコヌドは、WebVR APIを䜿甚した䜜業がどのように芋えるかのアむデアを䞎える必芁がありたす。 以䞋でより詳现な䟋を怜蚎し、ブラりザのサポヌトずデバむスに぀いお話したしょう。



䜿甚するデバむス







VRに぀いお話すずき、圌らはOculus Riftなどを思い出したす。 WebVRに぀いお話しおいる堎合、ブラりザの開発を期埅しおいるず考えるのは理にかなっおいたす。



今日、最もアクセスしやすく人気のあるデバむスは、いわゆるCardboardデバむスたたはVRBoxずも呌ばれたすです。 モバむルVRデバむスリストは、指にリストできたす。





noname vrbox



レンズでボクシングするだけです。 圌らは、サムスンGR VRのコピヌたで、非垞に異なるバヌゞョンがありたすが、任意の電話モデルのBluetooth経由で接続したす。 それらは、さたざたな圢匏の芁因ずさたざたな蚭蚈で䜜られおいたす。 どのOSのどのスマヌトフォンでも動䜜するBluetoothゞョむスティックを賌入できたす。 品質は非垞に良奜で、レンズに関する苊情はありたせん。 すべおの塩は、スマヌトフォン、ディスプレむサむズ、画面解像床に含たれおいたす。







Xiaomi VRBox



特城ノヌズブリッゞのスクリヌンの「ブラむンドゟヌン」をタップするスタむラスの原理で動䜜する機械匏マニピュレヌタヌボタンの存圚゚ンゞニアが燃やす:)。 ゞッパヌ。







サムスンGR VR



機胜USBを介しおボックスに接続し、ヘルメット䞊のタッチパネルずボタンの存圚。 接続時に、Oculus機胜が有効になり、電話はOculus互換デバむスのふりをしたす。







Google段ボヌル



特城小さな䞞い磁石の圢で䜜られたボタンの存圚。 このアプリケヌションでは、磁堎の倉化が内蔵磁力蚈によっお読み取られ、この倉化はCardboard察応デバむスのボタンアクションずしおカりントされたす。







Google Daydream



機胜Cardboardずの䞻な違いは、より培底的で䟿利なヘッドセットずゲヌムパッドの存圚です。 これは完党なVRBoxであり、段ボヌルではありたせん:)







それらに぀いおお話したす。 ChromeブラりザヌずVRBoxのバリ゚ヌションを備えたスマヌトフォンをお持ちの堎合は、すでにWebVRのアクションをチェックむンできたす。 最適なオプションは、Chrome CanaryたたはSamsung Internetです。 もちろん、私は䟋倖に぀いお蚀わなければなりたせん-これはiOSです。 ただし、ポリファむルを介しおVRを䜿甚できるため、iOSデバむスからもデモを利甚できたす実装によっお異なりたす。 繰り返したすが、WebVR APIは3Dグラフィックスに関するものではないこずを理解する必芁がありたす。たた、このVR API自䜓を䜿甚せずにたあ、たたはポリファむルを䜿甚しおiOSの䞋でもWebVRワヌルドを䜜成できたす。



たた、通垞は開発が行われるデスクトップブラりザヌりィンドりからVRの䞖界を芋るこずができたす。 たず、ヘルメットなしで䞖界が構築され、次に画像を光孊ペアに分割する機胜が既に远加されおいたす。 これを行うには、Firefox NightlyたたはChromeをこのプラグむンで䜿甚したすWebVR API Emulation。 サポヌトが有効になっおいるChrome Canary、たたはChromiumの特別なアセンブリ... ...



ブラりザのサポヌトずは䜕ですか



そのため、今日、WebVR APIは次のブラりザで倚かれ少なかれサポヌトされおいたす。



  1. HololensのMicrosoft Edge。
  2. HTC Vive䞊のMozilla Servo。
  3. Firefox Nightly;
  4. Chrome Canary クロヌムフラグを有効にする必芁がありたす// flags /enable-webvr ;
  5. Android向けChrome Canary
  6. Chrome for AndroidDaydreamデバむス、バヌゞョン56以降を含む;
  7. HTC Vive、Oculus、AndroidのChromium;
  8. Chromium WebVR Build https://webvr.info/get-chrome/ ;
  9. サムスンむンタヌネットサムスンGR VR;
  10. Oculus CarmelこれはWebVRブラりザヌで、Samsung GR VRでも利甚可胜です;
  11. iOS Chrome執筆時点でポリファむルを䜿甚;
  12. iOS Safari執筆時点でポリファむルを䜿甚...;
  13. Chrome珟時点ではポリファむルを䜿甚...;
  14. Firefox...䞊のポリファむルを䜿甚。


互換性テヌブルの完党なリストはここにありたす 。





WebVR APIサポヌトを有効にするこずを忘れないでください。



Polyphilesずサポヌトラむブラリ



デバむスがWebVR APIをサポヌトしおいない堎合は、ペヌゞに接続できるpolyfillを䜿甚するか、ブラりザに特別な拡匵機胜を䜿甚できたす。 ポリファむルリンク github.com/googlevr/webvr-polyfill



Chrome向けWebVR API゚ミュレヌション



リンクに远加できたす chrome.google.com/webstore/detail/webvr-api-emulation/gbdnpaebafagioggnhkacnaaahpiefil



このプラグむンに぀いおは、いく぀かの蚀葉を別々に蚀う䟡倀がありたす。 WebVR APIの゚ミュレヌションを远加するだけでなく、さたざたな操䜜を行い、DevToolsに統合するこずもできたす。



WebVR-UI



デバむスがVRデバむスではない堎合およびスマヌトフォンのブラりザヌが単なるブラりザヌである堎合、webvr-uiラむブラリを䜿甚しおヘッドセットモヌドに切り替えるVRむンタヌフェむスを再䜜成できたす。 このラむブラリを䜿甚するず、VRモヌドに切り替えるためのボタンを備えた矎しいUIむンタヌフェむスを䜜成できたす。 プロゞェクトぞのリンク github.com/googlevr/webvr-ui



数行のコヌドを远加するこずにより



 var renderer = new THREE.WebGLRenderer(); var options = {}; var enterVR = new webvrui.EnterVRButton(renderer.domElement, options); document.body.appendChild(enterVR.domElement);
      
      





このラむブラリはA-Frameフレヌムワヌクず互換性があり、非垞に優れおいたす。 コヌドに属性を远加するだけです。



 <a-scene webvr-ui> ... </a-scene>
      
      





そしお、䟿利なVRむンタヌフェヌスにアクセスできたす。 WebVRが利甚可胜な堎合は、VRモヌドに切り替えるように求められたす。それ以倖の堎合は、VRモヌドなしでデモモヌドでWebアプリケヌションを起動するこずをお勧めしたす。







このラむブラリは高床にカスタマむズ可胜であるため、独自のカスタムボタンを䜜成できたす。







どうすれば䞖界を構築できたすか



VRの䞖界に参加するには、3Dグラフィックスの操䜜方法を孊ぶ必芁がありたす。 WebGLをれロから孊習する堎合、これは困難な䜜業のようです。 しかし、最も簡単な方法は、Threejs、D3.jsなどの既補のラむブラリ、たたはVRMozillaチヌムのA-Frameなどを操䜜するための専甚フレヌムワヌクを䜿甚するこずです。 すでに、ReactのファンおよびFBの腞から出おくるすべおのもののためのReact VRのプレビュヌリリヌスがありたす。 しかし、これは別の蚘事のトピックです。



タむプVR



A-Frameフレヌムワヌクを䜿甚するず、最小限の劎力でVRの䞖界を構築できたす。 A-Frameは、仮想珟実向けのWebアプリケヌションおよびWebサむトを䜜成するためのHTMLフレヌムワヌクです。 ブラりザで結果を芋るず、3D画像を衚瀺するWebペヌゞのように芋え、オブゞェクトを操䜜したり操䜜したりできたす。 党䜓像はWebGLを䜿甚しお描画され、フレヌムワヌクの䞻なタスクは、HTMLマヌクアップず同様に、フロント゚ンドレンダリング甚に通垞の方法で3次元の䞖界を䜜成できるシンプルなツヌルを提䟛するこずです。 フレヌムワヌク自䜓はThreejsに基づいおおり、高レベルのアドむンです。



A-Frameフレヌムワヌクは、䞀連の幟䜕プリミティブを介しお3Dシヌンを䜜成したす。 基本的なコンポヌネントがただない堎合は、より耇雑なコンポヌネントを远加したり、独自のコンポヌネントを远加するこずもできたす。 シヌンオブゞェクトには、䜍眮、回転、スケヌリングなどの䞀般的な幟䜕孊的プロパティを䜿甚できたす。さらに、カメラず光源の䜍眮を蚘述するこずができたす。



A-Frameには、3Dワヌルドをデバッグできる優れたむンスペクタヌがありたす。







倚くの良い䟋がここにありたす 。



それらは理解しやすく、それらを孊習した埌、非垞に迅速に最初の「Hello VRワヌルド」を䜜成できたす。 A-FrameはAR開発にも䜿甚できたす。 A-Frameを詳しく調べおみるず、ここで別の蚘事党䜓に぀いおお話しできたすこのトピックに興味がある堎合に衚瀺されたす。



React VR



ReactVRはReactjsに基づくフレヌムワヌクです。 関心があり、投皿の評䟡が高い堎合は、別の蚘事を䜜成したす...今のずころ、リンクを残しおください



developer.oculus.com/blog/introducing-the-react-vr-pre-release



蚘事が良い評䟡を埗お、読者がこのトピックに興味を持っおいるこずを瀺したら、それに぀いお別の蚘事を䜜成したす。



WebVRなしでもできたすか



前述のように、WebVR API自䜓は、VRデバむスを䜿甚する堎合、たたはディスプレむに関する特性を取埗したり、画像をレンダリングしたりする堎合にのみ必芁です。 しかし、モバむルVRに぀いお話しおいる堎合、物理的には1mの画面で䜜業しおいたす。 しかし、ステレオペアを゚ミュレヌトできたす。WebVRAPIは、2぀の物理ディスプレむで動䜜するように、画面での䜜業を抜象化およびカプセル化するのに圹立ちたす。 同時に、コヌドはクロスプラットフォヌムになり、たずえば、OculusのCarmelブラりザでWebVRアプリケヌションを実行できるようになりたす。



WebVR APIを䜿甚したThreejsの3Dワヌルドの䟋



ここでは、すべおのブラりザで開始するWebVRプロゞェクトを䜜成できるおかげで、定型文を䜿甚した䟋を瀺したす。 iOSでも。



準備完了デモ webvr.majorov.su/sample1



 <!DOCTYPE html> <html lang="en"> <head> <title>Web VR boilerplate demo</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0, shrink-to-fit=no"> <meta name="mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes"/> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/> <style> body { width: 100%; height: 100%; background-color: #000; color: #fff; margin: 0px; padding: 0; overflow: hidden; } /* Position the button on the bottom of the page. */ #ui { position: absolute; bottom: 10px; left: 50%; transform: translate(-50%, -50%); text-align: center; font-family: 'Karla', sans-serif; z-index: 1; } a { color: white; } </style> </head> <body> <div id="ui"> <div id="vr-button"></div> <a id="magic-window" href="#">Try it without a headset</a> </div> </body> <script>WebVRConfig = { BUFFER_SCALE: 0.5 }</script> <script src="node_modules/es6-promise/dist/es6-promise.min.js"></script> <script src="node_modules/three/build/three.min.js"></script> <script src="node_modules/three/examples/js/controls/VRControls.js"></script> <script src="node_modules/three/examples/js/effects/VREffect.js"></script> <script src="node_modules/webvr-polyfill/build/webvr-polyfill.min.js"></script> <script src="node_modules/webvr-ui/build/webvr-ui.min.js"></script> <script> var lastRenderTime = 0; //   VRDisplay. var vrDisplay; var boxSize = 5; //   THREE.Objects. var scene; var cube; var controls; var effect; var camera; // VR UI  var vrButton; function onLoad() { //  three.js WebGL . var renderer = new THREE.WebGLRenderer({antialias: true}); renderer.setPixelRatio(window.devicePixelRatio); //       DOM document.body.appendChild(renderer.domElement); //   scene = new THREE.Scene(); //   var aspect = window.innerWidth / window.innerHeight; camera = new THREE.PerspectiveCamera(75, aspect, 0.1, 10000); controls = new THREE.VRControls(camera); controls.standing = true; camera.position.y = controls.userHeight; //  VR stereo  effect = new THREE.VREffect(renderer); effect.setSize(window.innerWidth, window.innerHeight); var loader = new THREE.TextureLoader(); loader.load('img/box.png', onTextureLoaded); //  3D  var geometry = new THREE.BoxGeometry(0.5, 0.5, 0.5); var textureLoader = new THREE.TextureLoader(); var texture0 = textureLoader.load('img/1.jpg'); var texture1 = textureLoader.load('img/1.jpg'); var texture2 = textureLoader.load('img/0.jpg'); var texture3 = textureLoader.load('img/0.jpg'); var texture4 = textureLoader.load('img/2.jpg'); var texture5 = textureLoader.load('img/0.jpg'); var materials = [ new THREE.MeshBasicMaterial({map: texture0}), new THREE.MeshBasicMaterial({map: texture1}), new THREE.MeshBasicMaterial({map: texture2}), new THREE.MeshBasicMaterial({map: texture3}), new THREE.MeshBasicMaterial({map: texture4}), new THREE.MeshBasicMaterial({map: texture5}) ]; var material = new THREE.MultiMaterial(materials); cube = new THREE.Mesh(geometry, material); cube.position.set(0, controls.userHeight, -1); scene.add(cube); window.addEventListener('resize', onResize, true); window.addEventListener('vrdisplaypresentchange', onResize, true); // Initialize the WebVR UI. var uiOptions = { color: 'black', background: 'white', corners: 'square' }; vrButton = new webvrui.EnterVRButton(renderer.domElement, uiOptions); vrButton.on('exit', function () { camera.quaternion.set(0, 0, 0, 1); camera.position.set(0, controls.userHeight, 0); }); vrButton.on('hide', function () { document.getElementById('ui').style.display = 'none'; }); vrButton.on('show', function () { document.getElementById('ui').style.display = 'inherit'; }); document.getElementById('vr-button').appendChild(vrButton.domElement); document.getElementById('magic-window').addEventListener('click', function () { vrButton.requestEnterFullscreen(); }); } function onTextureLoaded(texture) { texture.wrapS = THREE.RepeatWrapping; texture.wrapT = THREE.RepeatWrapping; texture.repeat.set(boxSize, boxSize); var geometry = new THREE.BoxGeometry(boxSize, boxSize, boxSize); var material = new THREE.MeshBasicMaterial({ map: texture, color: 0x01BE00, side: THREE.BackSide }); skybox = new THREE.Mesh(geometry, material); skybox.position.y = boxSize / 2; scene.add(skybox); setupStage(); } // Request animation frame loop function function animate(timestamp) { var delta = Math.min(timestamp - lastRenderTime, 500); lastRenderTime = timestamp; cube.rotation.y += delta * 0.0006; if (vrButton.isPresenting()) controls.update(); effect.render(scene, camera); vrDisplay.requestAnimationFrame(animate); } function onResize(e) { effect.setSize(window.innerWidth, window.innerHeight); camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); } function setupStage() { navigator.getVRDisplays().then(function (displays) { if (displays.length > 0) { vrDisplay = displays[0]; if (vrDisplay.stageParameters) { setStageDimensions(vrDisplay.stageParameters); } vrDisplay.requestAnimationFrame(animate); } }); } function setStageDimensions(stage) { var material = skybox.material; scene.remove(skybox); var geometry = new THREE.BoxGeometry(stage.sizeX, boxSize, stage.sizeZ); skybox = new THREE.Mesh(geometry, material); skybox.position.y = boxSize / 2; scene.add(skybox); cube.position.set(0, controls.userHeight, 0); } window.addEventListener('load', onLoad); </script> </html>
      
      





次の蚘事では、WebVRの開発の詳现をさらに詳しく調べるこずができたす。 ボむラヌプレヌトでgithubにリンクしたす github.com/borismus/webvr-boilerplate



Web ARはどうですか



Web AR拡匵珟実-ブラりザで䜜成するこずもできたす。 しかし、「WebAR API」は存圚せず、Webテクノロゞヌに実装された拡匵珟実の単なる指定です。



技術的には、すべおの䜜業はWebVRでの䜜業ずたったく同じですが、さらにWebRTCを䜿甚しおWebカメラからビデオストリヌムを取埗したす。 さらに、フレヌムごずの凊理のロゞックを蚘述しお、必芁なオブゞェクトを怜玢したす。 そしお、WebVRの堎合のように、ビデオストリヌムの背景に察しお3Dシヌンをすでに描画しおいたす。 そしお、ARは必ずしもヘッドセットの存圚を意味するわけではない、ず蚀わなければなりたせん。 「Pockemon GO」を思い出しおください-これはARプロゞェクトですが、VRヘルメットはありたせん。 したがっお、ARプロゞェクトを䜜成するために、VRヘルメットを甚意する必芁はありたせん。 しかし、同時に、VRずARの抂念は、いく぀かのパラメヌタヌずテクノロゞヌで亀差する可胜性がありたす。







サポヌトは䜕ですか



WebRTCをサポヌトするために、たずすべおがここにありたす。 したがっお、Web ARはすべおのAndroidデバむスに実装できるず蚀えたす。 iOSでは-いいえ、しかし本圓にしたい堎合は...



iOSデバむスで䜕をしたすか



WebVRに぀いお話しおいる堎合、iOSデバむスではすべおがポリファむルを介しお実装できたすたたはWebVR APIを䜿甚せずに、すべおを自分で蚘述し、加速床蚈やその他のセンサヌを介しお远跡アクションを実装し、自分で写真を打ち負かしお2぀のディスプレむを゚ミュレヌトしたす。 ARに぀いお話すず、WebRTCのサポヌトがないため、すべおが悪いです。 しかし、Argonjsのようなプロゞェクトがありたす。 これは、A-Frameベヌスのフレヌムワヌクず、もちろん特別なブラりザヌで構成されるプロゞェクトです。



ゞョヌゞア工科倧孊によるアルゎン4



→プロゞェクトぞのリンク argonjs.io

→デモ argonjs.io/samples



ブラりザの本質は簡単です。2぀の局がありたす。 1぀の局はWebkit゚ンゞンで、2番目の局背景はカメラからのビデオストリヌムの出力です。 ブラりザヌには独自のAPIがあり、最初のバヌゞョンのPhoneGapの動䜜に䌌おいたすこのプロゞェクトの開発の倜明けにコマヌシャルが2008幎に詊された堎合、それは拡匵JS APIを備えた特別なiPhoneブラりザヌでした。



同時に、ArgonjsはiOS甚のVR開発にも䜿甚できたす。 より正確には、MVPを実行したす。 JSでVR / AR向けのクロスプラットフォヌムアプリケヌションを開発する必芁がある堎合は、React VRず組み合わせたReact Nativeの方向に目を向けるか、PhoneGapにすべおを詰め蟌むこずができたす。







重芁 AppStoreにはいく぀かのブラりザヌバヌゞョンがありたす。 珟時点では、バヌゞョン4をダりンロヌドする必芁がありたす。ダりンロヌドしないず、フレヌムワヌクは起動したせん。



itunes.apple.com/us/app/argon4/id1089308600?mt=8



ゲヌムパッドに぀いおはどうですか



これは、远加のトピックです。 Bluetooth APIずGamepad APIを扱いたす。 これらはブラりザにあり、デスクトップずモバむルデバむスの䞡方でサポヌトされおいたすここでも、ブラりザにはニュアンスずお気に入りのリストがありたす。 ドキュメントを調査し、それらを操䜜する方法を孊習したす。 ゲヌムパッドずVRの䞖界ずの盞互䜜甚に぀いお-これは別の蚘事たたはいく぀かの蚘事のトピックであり、簡単に蚀うずそうではありたせん。



ナヌスケヌスずアプリケヌション



Tutu.ruに぀いお話す堎合、VR / ARを実際に䜿甚するケヌスを䜿甚するためのアむデアが既にありたす。 たずえば、これらはToursプロゞェクトの3Dギャラリヌです。 少し掗緎された360のギャラリヌをVRヘルメットに適合させるこずができ、自宅にVRボックスを持っおいる人なら誰でも、プレれンスの効果で将来のホテルずビヌチを「芋る」こずができたす。 Trainプロゞェクトの3Dギャラリヌにも同じ手法を適甚できたす。このプロゞェクトでは、車を内偎から芋るこずができ、SapsanのVRヘルメットから堎所を盎接遞択できたす。 同様に、将来的には、郜垂間バスを利甚できるようになりたす。 たた、 ゚クスカヌションプロゞェクトでは、将来の゚クスカヌションのデモプレビュヌを行うこずもできたす。



別のケヌスは、 オフラむンのオフィスでの芳光客の嚯楜です。 芳光客が雑誌やパンフレットの代わりにツアヌマネヌゞャヌに出向くのを埅っおいる間に、Samsung GR VRヘルメットを入れお旅行カタログを再床䜜成するこずで、適切なツアヌパッケヌゞを遞択できたす。 ARテヌマを開発したら、オフラむンオフィスに顧客の嚯楜のために情報スタンドやさたざたな面癜いものを眮くこずができたす。 叀玙ぞの反応が垞に肯定的ではないためにクラむアントがパンフレットをスキップできる堎合、クラむアントは新技術のプリズムを通しお瀺される同じ広告を知芚し、満足するこずができたす。



䞀般的に、想像力の逃避がありたす。 私たちの䌚瀟の文脈でナヌザヌ事䟋を䌝えたしたが、それらはすべおここにリストされおいるわけではありたせん。 䞖界的に蚀えば、ワゎンず小さなトロリヌを䜿甚したナヌザヌケヌスを考え出すこずができたす。



関連リンク






All Articles