JavaRush /Java Blog /Random-JA /仮想現実における Java。VR/AR が未来であるというのは本当ですか?その中に Java の居場所はあるのでし...

仮想現実における Java。VR/AR が未来であるというのは本当ですか?その中に Java の居場所はあるのでしょうか?

Random-JA グループに公開済み
このシリーズのこれまでの記事では、人工知能ブロックチェーンクラウド サービスビッグ データ など、現代の IT 市場のほぼすべての多かれ少なかれ流行のテクノロジをすでに調査し、Java プログラミング言語がどのように使用されているかを調べてきました。これらのニッチ分野で彼がどの程度重要な役割を果たしているか。 仮想現実における Java。 VR/AR が未来であるというのは本当ですか?その中に Java の居場所はあるのでしょうか?  - 1今日は、もう 1 つのトレンディで非常に興味深い技術セグメント、つまり VR と AR、つまり仮想現実と拡張現実について説明します。 「先進国の人口のかなりの部分が、近いうちに毎日継続的に AR ソリューションを利用するようになると思います。間もなく、AR は私たちの日常生活の一部になるでしょう。」 ティム・クック、アップルCEO

VRとARとは何ですか?

まず、これらのテクノロジが何であるか、どのように使用されるか、および相互にどのように異なるかを理解しましょう。VR、つまり仮想現実から始めましょう。仮想現実アプリケーションは、ユーザーの視覚を完全に捕らえて別の場所にいるかのような印象を与える特別なデバイス上で実行されます。HTC Vive や Oculus Rift などの人気のある VR ヘッドセットはすべて、装着するとユーザーの視界を完全に遮断します。このようなデバイスの電源がオンになると、その内部の LCD または OLED パネルが特殊なレンズによって屈折し、ゲーム、360 度ビデオ、または単なるプログラムのインターフェイスなど、送信されたコンテンツでユーザーの視野を完全に満たします。 。前述の Oculus Rift をはじめ、Vive、PlayStation VR、Windows Mixed Reality などのほとんどの VR ヘッドセットは、外部センサーやカメラによって実現される 6 自由度 (6DOF) モーション トラッキング テクノロジーを使用しています。これにより、デバイスは、ユーザーが見ている方向だけでなく、ユーザーがその方向に向けて行う動きも検出できるようになります。これと 6DOF モーション検出器を併用すると、ユーザーは仮想空間内を動き回ることができ、そのようなアプリケーションの没入感がさらに高まります。AR、つまり拡張現実に関して言えば、VR との違いは、AR が視覚を完全に吸収しようとするのではなく、それに特定の要素を追加することです。Microsoft HoloLens などの AR デバイスやさまざまな種類のスマート グラスを使用すると、ユーザーは見ている場所に画像を投影することで、周囲のすべてを見ることができます。このコンセプトには、Pokemon Go、Temple Treasure Hunt、ARrrrrgh、Ingress などの多数のスマートフォン アプリやゲームも含まれます。彼らはモバイル デバイスのカメラを使用して環境を監視し、画面上に配置されたさまざまな種類の情報を補足します。AR ディスプレイは、たとえば時計の文字盤など、非常に単純なデータを現実の上にオーバーレイできますが、部屋の中央にモンスターのホログラムなどの複雑なオブジェクトを実装することもできます。たとえば、Pokemon Go ゲームでは、カメラのレンズを向けたデバイスの画面にポケモンのキャラクターが投影されます。さまざまなタイプの拡張現実メガネを使用すると、ユーザーは観察している現実の画像の上にインターフェイス要素やアプリケーション アイコンを配置できます。 「私は拡張現実が現代最大の技術革命になると信じています。」 ティム・スウィーニー、アメリカのプログラマー、ビデオゲーム開発者、エピック ゲームズの創設者 仮想現実における Java。 VR/AR が未来であるというのは本当ですか?その中に Java の居場所はあるのでしょうか?  - 2

VRとARは同じものではありません

実際、これが仮想現実と比較した拡張現実の主な欠点です。VR がビュー内の画像を完全に置き換える場合、AR はそれを補完するだけであり、多くの場合、ユーザーの視界の非常に小さな領域のみを占めます。しかし、この方法は開発者にほぼ無限の可能性を与えるため、これは拡張現実の主な利点でもあります。たとえば、カメラ画像内のオブジェクトを認識し、そのオブジェクトに関する情報をユーザーに送信できるモバイル AR アプリケーションは数年前から登場しています。HoloLens などの特殊な AR グラスを使用すると、ユーザーは自分の周囲にフローティング ウィンドウを配置し、デバイスのディスプレイに表示できます。コアのゲームプレイ要素 (Pokemon Go、RoboRaid、Fragments) または追加機能として拡張現実を使用する多くのゲームは言うまでもありません。したがって、AR と VR は通常、同じアプローチの 2 種類として参照されますが、仮想現実と拡張現実は、異なる目的に使用される 2 つのまったく異なるテクノロジーです。VR デバイスやアプリケーションの目的が現実を置き換え、ユーザーを仮想的に別の場所に移動させることである場合、AR は現実と連動し、すでに目の前にあるものを新しい情報で補完します。これらのテクノロジーはどちらもまだ初期段階にありますが、非常に有望であると考えられており、近い将来、人々のコンピューターの使用方法に革命をもたらす可能性があります。 「近い将来、仮想空間内で多くの物語が語られるようになると思います。」 ジョー・ルッソ - アメリカの映画監督 仮想現実における Java。 VR/AR が未来であるというのは本当ですか?その中に Java の居場所はあるのでしょうか?  - 3

AR/VR と Java

AR/VR ニッチ分野では、C#、C/C++、JavaScript、Swift、さらには Python など、多数のプログラミング言語が使用されていますが、Java は最も需要が高い言語の 1 つです。実際、その理由は他のテクノロジの場合と同じです。Java コードによりアプリケーションを高速に実行でき、オブジェクト指向により個々のアプリケーション コンポーネントの作成が容易になり、プラットフォームの独立性により Java の AR/VR 製品がより汎用的になります。AR、つまり拡張現実の場合、AR アプリケーションの大部分はモバイル デバイス向けに作成されているため、Java が主要なプログラミング言語の 1 つになります。したがって、Android モバイル オペレーティング システムに基づいてデバイス向けに作成された AR アプリケーションの主なオプションは Java ですが、Apple 製品の場合は、Objective-C 言語と Swift 言語が使用されます。現在、AR アプリケーションは、ヘルメット、メガネ、ハンドヘルド デバイス、さらにはコンタクト レンズなど、さまざまなデバイスをサポートしています。さまざまな意味で、Java を使用すると、さまざまな、多くの場合まったく異なるプラットフォームで動作する AR ソリューションを作成できます。現在、Java ベースの AR アプリケーションは、クリニック、銀行、レストラン、美術館などで積極的に導入されています。 「AR はすでに商業やショッピングへのアプローチ方法に革命をもたらし、デジタル世界と物理世界の間に架け橋を生み出しています。」 Muchaneta Kapfunde、FashNerd.com 創設者

ARアプリケーションの種類

ここで、AR アプリケーションの開発に使用するのに適した主要なツール セット (SDK) とフレームワークを簡単に見てみましょう。その前に、AR アプリケーションの 2 つの主要なタイプ、マーカー アプリケーションと地理位置情報アプリケーションを見てみましょう。
  • マーカー AR アプリケーション。

    マーカー AR アプリケーションは画像認識技術に基づいています。これらは、ユーザーに対する AR コンテンツの表示をアクティブ化するトリガーとして白と黒のマーカーを使用します。したがって、拡張現実の要素を目の前で見るには、そのようなアプリケーションのユーザーは、環境内の対応するマーカーにカメラを向ける必要があります。デバイスがマーカーを認識すると、アプリケーションはその上にデジタル データをオーバーレイし、拡張現実の要素をユーザーに表示します。この種のアプリケーションは、特に、この機能が適切な店舗、レストラン、その他の企業によって広告目的で広く使用されています。

  • 地理位置情報アプリケーション。

    AR アプリの 2 番目の主要なタイプである位置ベースは、マーカーを使用せずに動作し、代わりに GPS、加速度計、またはデジタル コンパスによって提供されるユーザーの位置情報に依存し、実際の物理的な位置の上に AR オブジェクトをオーバーレイします。ここでも例として Pokémon Go を使用します。これはおそらく最も有名な地理位置情報 AR アプリケーションです。

    「AR および VR テクノロジーの開発における重要なタスクは、開発者がすべてのアイデアを実装できる単一のオープン プラットフォームを作成することです。」

    マーク・ザッカーバーグ、ソーシャルネットワークFacebookの創始者

    仮想現実における Java。 VR/AR が未来であるというのは本当ですか?その中に Java の居場所はあるのでしょうか?  - 4

AR アプリケーション開発に最適な SDK

  • Google ARコア

    ARCore は、AR アプリ開発のための Google の主要なプラットフォームであり、Android モバイル OS ベースのデバイスをサポートし、Java/OpenGL、Unity、Unreal ライブラリと連携します。

    ARCore の主な機能としては、モーション トラッキング (ARCore は内蔵カメラを使用してデバイスの位置と方向点を決定できます)、環境モデリング (プラットフォームは水平面を決定でき、これにより、たとえば、テーブルまたは床上の仮想オブジェクト)、照明推定(必要に応じて照明のレベルを決定し、環境内で自然に見えるように仮想オブジェクトを強調表示します)など。

  • アートツールキット

    ARToolKit は、AR アプリケーションを開発するためのオープンソースのツール セットです。

    オープンで無料のキットであるにもかかわらず、ARToolKit には、Unity3D および OpenSceneGraph のサポート、リアルタイム AR アプリケーションの作成機能、スマート グラスとの統合、さまざまなタイプのカメラのサポートなど、非常に豊富な機能セットが含まれています。自動カメラキャリブレーションなど。

    ARToolKit は、Android、iOS、Linux、Windows、Mac OS などのさまざまなプラットフォームをサポートしています。

  • ヴフォリア

    Vuforia はおそらく、拡張現実アプリケーションを開発するための最も人気がありよく知られたプラットフォームです。

    Vuforia の主な機能には次のようなものがあります。さまざまな種類のオブジェクトや画像の認識。基本的なテキストの認識、カスタム マーカーの作成、さまざまな場所の 3D マップの作成、クラウド サービスとローカル データ ストレージのサポートなどのサポート。

    Vuforia は、Android、ユニバーサル Windows プラットフォーム、Unity、iOS などのプラットフォームをサポートしています。

  • アップルARKit

    Apple には、iOS11 とともに導入された ARKit と呼ばれる、AR アプリケーションを開発するための独自のツール セットもあります。当然ながら、iOS デバイスのみをサポートしており、拡張現実アプリケーションを作成するための基本機能がすべて含まれています。

    「私たちの現在の目標は、VR 体験をより楽しく没入感のあるものにし、人々がこれらの体験を一緒に体験できるようにすることです。」

    ジョン・ハンケ氏、ナイアンティックCEO

  • VR アプリケーション開発に最適なプラットフォームとフレームワーク

    最後に、仮想現実アプリケーションを開発するための最も人気のあるオープン プラットフォームとフレームワークをいくつか見てみましょう。
    • ぐりVR

      GuriVR は、3D シーンのテキスト記述を VR アプリケーション用の実際の 3D モデルに変換できるオープンソース VR エディターです。テキスト、3D モデル、画像、音声録音、ナレーション、3D チャート、その他多くの機能をサポートします。

    • オープンスペース3D

      OpenSpace3D は、VR テクノロジーに基づいて VR アプリケーションやゲームを開発するための無料でオープンなプラットフォームです。Leap Motion、HTC Vive/Oculus、Google Cardboard などを含む、多数のさまざまなプラットフォームとデバイスをサポートします。ARアプリケーションを作成する機能も含まれています。

    • OSVR: オープンソースの仮想現実プラットフォーム

      OSVR は、VR および AR ソリューション用のもう 1 つのユニバーサル プラットフォームです。これにより、数百の VR/AR デバイスやさまざまな種類の周辺デバイスを検出、設定、管理できます。OSVR は複数のゲーム エンジンとオペレーティング システムをサポートし、低遅延レンダリングをサポートする非同期タイム ワーピングやダイレクト モードなどのサービスを提供します。

    • プリムローズVR

      Primrose VR は、仮想製品デモンストレーション、仮想会議、仮想アクティビティなどのシンプルな VR エクスペリエンスを作成するためのオープン ブラウザ フレームワークです。Primrose VR はすべての最新ブラウザと互換性があり、WebGL 上で実行されます。

    • アイデアスペース VR (CMS)

      IdeaSpaceVR はフレームワークやプラットフォームではなく、VR コンテンツ用のオープン コンテンツ管理システム (CMS) です。PHP/MySQL を搭載した IdeaSpaceVR は、仮想現実アプリケーション用のコンテンツ プレーヤーを内蔵した、ローカルにインストールされるモジュラー システムです。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION