Upgrade to Pro — share decks privately, control downloads, hide ads and more …

軽率にAndroidXRのJetpack SceneCoreを使って3Dモデルを表示してみる ...

軽率にAndroidXRのJetpack SceneCoreを使って3Dモデルを表示してみる / androidxr-scenecore-3dmodels

AndroidXR触ってみた発表会でLT登壇した資料です

にー兄さん

February 15, 2025
Tweet

More Decks by にー兄さん

Other Decks in Technology

Transcript

  1. アジェンダ - はじめに - Jetpack XR SDK / Compose for

    XR / SceneCore - CodeLabsのサンプルにSceneCoreを導入する - SceneCoreを使って3Dモデルを読み込む - おわりに
  2. 本日のお話 Jetpack XR SDKで3Dモデルを読み込む方法についてご紹介 ドキュメントはあるが動いてるサンプルは見つからなかった 本日のゴール: - SceneCoreで3Dモデルの読み込み方法がわかる - Jetpack

    XR SDK面白そう・やってみようという気持ちになってもらう - SceneCoreでの現状の罠ポイントを知る 資料は後で共有します&スクショSNS共有OKです
  3. 検証環境 - Windows 11 Home - Android Studio: Meerkat Future

    Drop 2024.3.2 Canary 5 - Jetpack Compose for XR 1.0.0-alpha01 - Jetpack SceneCore 1.0.0-alpha01(<- 詳細後述) - Android emulator: Android XR SDK build for x86_64 - Android 14 - AndroidXRのCodelabsがわかりやすかったので それをもとに環境構築しました
  4. Jetpack XR SDKはAndroidXRのためのライブラリ群 下記ライブラリを含む - Jetpack Compose for XR -

    Material Design for XR - Jetpack SceneCore - ARCore for Jetpack XR 基本はKotlin/Compose環境を想定していそうだが JavaやViews(xmlでUI作るタイプ)でも使用可能 https://developer.android.com/develop/xr/jetpack-xr-sdk
  5. Spatializedなコンポーネント例 - androidx.xr.composable.spatial - Orbiter - Spatial Dialog - Spatial

    Popup - Subspace - android.xr.composable.subspace - SpatialBox, Spatial Column, Spatial Row - Spatial Panel - Volume 詳細はAPI refを参照: https://developer.android.com/reference/kotlin/androidx/xr/compose/spatial/package-summary
  6. Android XR Codelabs GitHub repo: https://github.com/android/xr-codelabs Part1: Modes and Spatial

    Panels https://developer.android.com/codelabs/xr-fundamentals-part-1 Spatial UIに関するCodelabs これを見れば既存のComposeアプリに SpatializedComponentsを追加してAndroidXR対応させる 流れがわかる
  7. SceneCoreの依存を追加 libs.version.toml [versions] sceneCore = "1.0.0-alpha01" [libraries] androidx-xr-scenecore = {

    group = "androidx.xr.scenecore", name = "scenecore", version.ref = "sceneCore" } build.gradle.kts dependencies { implementation(libs.androidx.xr.scenecore) } Studioから作れるXR TemplateにはSceneCoreは入っていそう
  8. Subspace { SpatialRow { SpatialPanel { val xrSession = checkNotNull(LocalSession.current)

    val activity = LocalActivity.current if (activity is ComponentActivity) { activity.lifecycleScope.launch { val gltfModel = xrSession.createGltfResourceAsync("models/Avocado.glb").await() val modelEntity = xrSession.createGltfEntity(gltfModel) modelEntity.setScale(5f) modelEntity.setPose(Pose(Vector3(0f, 0f, 0.5f))) } } }...
  9. 参考 Develop with the Jetpack XR SDK https://developer.android.com/develop/xr/jetpack-xr-sdk Learn Android

    XR Fundamentals:Part 1 - Modes and Spatial Panels https://developer.android.com/codelabs/xr-fundamentals-part-1#0 Android XR Codelabs(github) https://github.com/android/xr-codelabs Add 3D models to your app https://developer.android.com/develop/xr/jetpack-xr-sdk/add-3d-models Develop UI with Jetpack Compose for XR https://developer.android.com/develop/xr/jetpack-xr-sdk/develop-ui