Skip to content

AR/VR/XRプラットフォーム・開発環境の紹介と導入

Takanobu INAFUKU edited this page Jul 2, 2021 · 5 revisions

周辺技術や状況のフォローアップ

専用の機器を使う

  • ヘッドマウント・ディスプレイ + コントローラー

    などなど..

スマートフォンを利用する

  • iOS / Android
    • webブラウザを使用する
    • ネイティヴアプリケーションをインストールして使う
    • アクセサリをつけて簡易HMDとして使う

(AR/VRコンテンツを体験・公開・共有するための)プラットフォーム

制作したコンテンツを個人で鑑賞/体験する事に重点を置いているタイプや、AR/VRの特性を活かして複数ユーザーで体験を共有することに重点を置いているタイプ(SNS的な性格を持つ)など、色々なものがある。

プラン毎に有償・無償のサービスとして展開されているもの、オープンソースとして公開されていて基本的に自由に体験できるものなど提供形態も様々。

などなど

開発環境・ライブラリについて

新し目のプロジェクトで開発のスピードが早いので、仕様変更などもあり得る

ゲームエンジン

AR・VR関連などの機能が充実しており、最近のものは単にゲームだけでなく映像制作、インタラクティヴなアートプロジェクトなど、かなり色々なユースケースで使える。

各種OSに向けたアプリケーションを作ることができ、それぞれのネイティブアプリケーションをつくることになるなので、成果物のパフォーマンスも良くなりやすい。

基本的には自分のコンピューターにインストールして使用するため、開発環境自体・プロジェクトファイルのデータが巨大になりがちである。 また、開発用のコンピューターにある程度のスペックが必要になる。

  • Unity
    • 基本無償
    • アカデミックプランあり。プロジェクトの規模や販売形態で課金。
  • Unreal Engine
    • 基本無償
    • アカデミックプランあり。プロジェクトの規模や販売形態で課金。
  • Godot Engine
    • オープンソース
    • コミュニティ主導の開発

Webベース

基本的にウェブブラウザの技術を使用するため、おおむねクロスプラットフォームである。 開発環境の構築が比較的しやすく、OSや使用するコンピューターのスペックにそれほど依存しない。 場合によっては開発環境自体をウェブブラウザのの中で完結させることもできる。

一方で、使用するブラウザによって挙動に違いが出たり、機能的な限界や制限も多い。

  • A-Frame

    • もとはMozillaが自身のVRプロジェクトように開発していたもの(Mozilla hubsのクライアント側でメインのフレームワークとして利用されている)
    • Entity / ComponentベースでAR / VRコンテンツを作成できるフレームワーク。技術スタックとしてはJavaScriptだが、どちらかと言うとフレームワークが提供するコンポーネント(HTMLタグ)を組み立てて行く作業が中心
    • 単にVRデバイス用専用のコンテンツと言うよりは、作成したコンテンツをウェブブラウザでもある程度閲覧できるようなシームレスな設計になっている
  • AR.js

    • 前述のA-Frameをベースに、AR関連機能を実現するための追加コンポーネントや改変を加えたもの
    • マーカー認識(既存 or カスタマイズ可)、画像認識(任意の画像をマーカーの替わりに使用する)、位置情報のいずれかを使って簡易的なAR体験を実現している
  • model-viewer

    • Google が主導で開発している、3Dモデルデータをインタラクティブに閲覧するためのコンポーネント
    • Googleの画像検索を閲覧した際に、AndroidもしくはGoogle アプリがインストールされているiOS端末の場合、対応している検索結果でこの機能を利用できる。 https://www.google.com/search?q=%E7%8A%AC
    • クロスプラットフォームであるが、モバイルデバイスからの利用を想定した機能が多い
    • ウェブブラウザから利用できるが、一部機能の実体はARKit(iOS)やARCore(Android)といったデバイスネイティブな機能との橋渡しをしているような格好。そのため制作できるコンテンツの自由度は低いが、機能そのものは高機能
  • @react-three/xr

    • JavaScriptでユーザーインターフェースを設計するためのライブラリであるReact.jsと、ウェブブラウザ上で高度な3D・2DグラフィックスをレンダリングするためのライブラリであるTHREE.jsを組み合わせてVR / ARコンテンツを制作できるコンポーネントのセット
    • 基本的にWebXRという標準仕様に則った仕組みになっているため、対応したデバイス・ブラウザでの動作しか想定していない代わりに、それなりにリッチなコンテンツを開発できる
      • 実際にはTHREE.js単体でもWebXRの仕様に則ったものであれば開発はできる
    • 現状ではほとんどがOculusなどの専用デバイス向けか、Androidのみ対応
Clone this wiki locally