{ } { }

Jetpack SceneCore

3D コンテンツを使用して Android XR シーングラフを構築して操作します。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2024 年 12 月 12 日 - - - 1.0.0-alpha01

依存関係の宣言

XR SceneCore への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha01"
    // Required for Java
    implementation "com.google.guava:listenableFuture:1.0"
    // Required for Kotlin
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0"

    // Use to write unit tests
    testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha01")
    // Required for Java
    implementation("com.google.guava:listenableFuture:1.0")
    // Required for Kotlin
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0")

    // Use to write unit tests
    testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha01")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.0

バージョン 1.0.0-alpha01

2024 年 12 月 12 日

androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 がリリースされました。

初回リリースの機能 没入感のあるシーンと環境を作成、操作するための 3D シーングラフ ライブラリである Jetpack SceneCore の初回デベロッパー リリース。このライブラリを使用すると、3D モデルとコンテンツ パネルを相互に、または仮想環境または現実世界環境に対して配置できます。

  • SpatialEnvironment: 環境の XR シーンの背景として、スカイボックス画像や 3D モデル ジオメトリを使用して、没入感のあるエクスペリエンスを作成します。または、パススルーを有効にして、仮想シーンをユーザーの現実世界環境と統合することもできます。
  • PanelEntity: 標準の Android レイアウトとアクティビティを空間化されたパネルに埋め込み、3D シーンに 2D コンテンツを追加します。このパネルは、浮遊させたり、現実世界のサーフェスに固定したりできます。
  • GltfModelEntity: シーンに 3D モデルを配置、アニメーション化、操作します。SceneCore は glTF ファイル形式をサポートしているため、既存のモデルとの統合が容易です。
  • SpatialAudio: アンビエント音源とポイント音源を 3D シーンに追加して、没入感のある空間オーディオを実現します。
  • StereoSurfaceEntity: SceneCore は、Android サーフェスにレンダリングされたコンテンツの左右の目のルーティングをサポートしています。これにより、ステレオ写真、3D 動画、その他の動的にレンダリングされた UI など、ステレオスコピック コンテンツを左右または上下の形式でレンダリングできます。アプリは、動画のデコードに MediaPlayer または ExoPlayer を使用する必要があります。
  • コンポーネント システム: SceneCore は、ユーザーがモデルやパネルを移動、サイズ変更、操作するためのアフォーダンスなど、XR コンテンツに機能を追加するための堅牢で柔軟なコンポーネント システムを提供します。
  • アンカー: パススルーを有効にすると、パネルやモデルを実際のサーフェスに接続できるため、ユーザーは仮想コンテンツを現実世界の環境にシームレスに統合できます。
  • ユーザーの姿勢: バーチャル シーン内のユーザーの位置にアクセスして、ユーザーの位置を中心にコンテンツを配置します。
  • SpatialCapabilities: 利用可能な場合は、UI コンテンツの 3D 配置など、空間化された機能を活用する完全なアダプティブ アプリを構築します。さらに、アプリの実行中に機能の変更をモニタリングして、ユーザーが Android XR デバイスをどのように使用しているかに基づいてエクスペリエンスを変更することもできます。

既知の問題

  • 現在、Jetpack SceneCore を使用するには、minSDK 30 が必要です。回避策として、次のマニフェスト エントリ <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> を追加して、minSDK 23 でビルドして実行できるようにします。
  • セッションが無効になる状況はさまざまです。たとえば、メインパネルのサイズ変更、周辺機器の接続、明るいモードと暗いモードの切り替えなど、アクティビティが自動的に再作成される状況では、セッションが無効になる可能性があります。セッションの無効化に関する問題が発生した場合は、メインパネルのサイズ変更を無効にしたり、動的パネル エンティティを使用したり、特定の構成変更に対するアクティビティの再作成を無効したり、ライトモードとダークモードのテーマの変更を無効にしたりすることで、回避できます。
  • 移動可能コンポーネントとサイズ変更可能コンポーネントは GltfEntity ではサポートされていません。
  • Entity.getSize() は GltfEntity でサポートされていません。
  • AndroidManifest で android.permission.SCENE_UNDERSTANDING 権限をリクエストする必要がある Jetpack XR アプリ。
  • セッションの作成は、Android XR デバイスでのみサポートされています。現時点では、Session を作成して Android XR 以外のデバイスで使用しようとすると、RuntimeException が発生します。
  • 「SpatialEnvironment.setSpatialEnvironmentPreference()」でスカイボックスを null に設定しても、ドキュメントに記載されているように黒一色のスカイボックスにはなりません。システムのデフォルトのスカイボックスが表示されたり、現在のスカイボックスが変更されなかったりすることがあります。
  • SceneCore クライアントは、アプリの依存関係の Gradle 構成に implementation(“com.google.guava:listenablefuture-1.0”) を追加する必要があります。今後のリリースでは、scenecore にこのライブラリが api 依存関係として含まれるため、クライアントは明示的に宣言する必要がなくなります。
  • SceneCore に、com.google.guava:guava-31.1-androidcom.google.protobuf:protobuf-javalite が伝播依存関係として誤って含まれています。これによりビルドでクラスの重複エラーが発生した場合は、これらの 2 つの依存関係を安全に除外できます。
  • アプリで SceneCore を使用していて、ProGuard を有効にしている場合、セッションを作成するとクラッシュします。回避策として、ProGuard を無効にします。ProGuard を有効にする方法については、こちらのガイドをご覧ください。