{ } { }

Jetpack SceneCore

3D içerikle Android XR sahne grafiği oluşturun ve bu grafiği değiştirin.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta Sürümü Alfa Sürümü
12 Aralık 2024 - - - 1.0.0-alpha01

Bağımlılıkları beyan etme

XR SceneCore'a bağımlı eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.

Uygulamanızın veya modülünüzün build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

Eski

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")
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 1.0

Sürüm 1.0.0-alpha01

12 Aralık 2024

androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 yayınlanır.

İlk Sürümün Özellikleri Immersive sahneler ve ortamlar oluşturmak ve bunlarda değişiklik yapmak için kullanılan 3D sahne grafiği kitaplığı Jetpack SceneCore'un ilk geliştirici sürümü. Bu kitaplık, 3D modelleri ve içerik panellerini birbirine ve sanal veya gerçek dünya ortamlarınıza göre yerleştirmenize ve düzenlemenize olanak tanır.

  • SpatialEnvironment: Ortamınızın XR sahnesinin arka planı olarak bir gökyüzü kutusu resmi ve/veya 3D model geometrisi kullanarak tamamen etkileyici deneyimler oluşturun. Alternatif olarak, sanal sahnenizin kullanıcının gerçek dünya ortamıyla entegre olabilmesi için geçişi etkinleştirebilirsiniz.
  • PanelEntity: Standart Android düzenlerini ve etkinliklerini, gerçek dünyadaki yüzeylere sabitlenebilen veya yüzebilen uzamsal panellere yerleştirerek 3D sahnelerinize 2D içerik ekleyin.
  • GltfModelEntity: Sahnenizde 3D modeller yerleştirin, animasyonlu hale getirin ve bunlarla etkileşim kurun. SceneCore, mevcut modellerle entegrasyonu kolaylaştırmak için glTF dosya biçimini destekler.
  • Üç Boyutlu Ses: Tam anlamıyla sürükleyici, üç boyutlu ses için 3D sahnenize ortam ve nokta ses kaynakları ekleyin.
  • StereoSurfaceEntity: SceneCore, Android yüzeyinde oluşturulan içeriğin sol/sağ göze yönlendirilmesini destekler. Bu, stereoskopik içeriği yan yana veya yukarıdan aşağıya biçiminde (ör. stereo fotoğraflar, 3D video veya dinamik olarak oluşturulan diğer kullanıcı arayüzleri) oluşturmak için kullanılabilir. Uygulamalar, video kod çözme için MediaPlayer veya ExoPlayer'ı kullanmalıdır.
  • Bileşen sistemi: SceneCore, kullanıcıların modelleri ve panelleri taşıması, yeniden boyutlandırması ve bunlarla etkileşime geçmesi için olanaklar da dahil olmak üzere XR içeriğinize özellikler eklemek için güçlü ve esnek bir bileşen sistemi sunar.
  • Sabitleme: Geçiş etkinleştirildiğinde panelleri ve modelleri gerçek yüzeylere ekleyebilir, böylece kullanıcılara sanal içeriği gerçek dünya ortamlarına sorunsuz bir şekilde entegre etme olanağı sunabilirsiniz.
  • Kullanıcı Pozu: İçeriğinizi kullanıcının konumuna göre yönlendirmek için kullanıcının sanal sahnedeki konumuna erişin.
  • SpatialCapabilities: Kullanılabilir olduğunda kullanıcı arayüzü içeriğinin 3D olarak konumlandırılması gibi mekansallaştırılmış özelliklerden yararlanan tamamen uyarlanabilir uygulamalar oluşturun. Ayrıca uygulamanız, çalıştırıldığı sırada özelliklerde yapılan değişiklikleri izleyebilir. Böylece, deneyimi kullanıcının Android XR cihazını kullanma şekline göre değiştirebilir.

Bilinen Sorunlar

  • Jetpack SceneCore'u kullanmak için şu anda 30'un üzerinde bir minSDK gereklidir. Çözüm olarak, 23 minSDK ile derleyip çalıştırabilmek için aşağıdaki manifest girişini <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> ekleyin.
  • Ana panelin yeniden boyutlandırılması, çevre birimlerinin bağlanması ve açık ile koyu mod arasında geçiş yapılması gibi etkinliği otomatik olarak yeniden oluşturan çeşitli durumlarda oturum geçersiz hale gelebilir. Oturum geçersizleştirme sorunlarıyla karşılaşırsanız geçici çözümler arasında ana panelinizi yeniden boyutlandırılamaz hale getirme, dinamik panel öğesi kullanma, belirli yapılandırma değişiklikleri için etkinlik yeniden oluşturmayı devre dışı bırakma veya açık/karanlık mod tema değişikliklerini devre dışı bırakma yer alır.
  • Taşınabilir ve yeniden boyutlandırılabilir bileşenler GltfEntity'de desteklenmez.
  • Entity.getSize(), GltfEntity üzerinde desteklenmez.
  • Jetpack XR uygulamalarının AndroidManifest'te android.permission.SCENE_UNDERSTANDING izni istemesi gerekiyor.
  • Oturum oluşturma özelliği yalnızca Android XR cihazlarda desteklenir. Şu anda bir oturum oluşturup Android XR dışında bir cihazda kullanmayı denerseniz RuntimeException alırsınız.
  • "SpatialEnvironment.setSpatialEnvironmentPreference()" aracılığıyla gökyüzü kutusunu null olarak ayarlamak, dokümanda belirtildiği gibi tamamen siyah bir gökyüzü kutusu oluşturmaz. Bu işlem, sistemin varsayılan gökyüzü kutusuna neden olabilir veya mevcut gökyüzü kutusuyla ilgili herhangi bir değişiklik yapmaz.
  • SceneCore istemcileri, uygulamalarının bağımlılıkları için Gradle yapılandırmalarına implementation(“com.google.guava:listenablefuture-1.0”) eklemelidir. Gelecekteki bir sürümde scenecore, bu kitaplığı api bağımlılığı olarak içerecek. Böylece istemcilerin bunu açıkça belirtmesi gerekmeyecek.
  • SceneCore, com.google.guava:guava-31.1-android ve com.google.protobuf:protobuf-javalite'u geçişli bağımlılık olarak yanlışlıkla dahil ediyor. Bu, derlemenizde yinelenen sınıf hatalarına neden olursa bu iki bağımlılık güvenli bir şekilde hariç tutulabilir.
  • Uygulamanız SceneCore kullanıyorsa ve ProGuard'ı etkinleştirdiyseniz oturum oluşturduğunuzda uygulamanız kilitlenir. Geçici çözüm olarak ProGuard'ı devre dışı bırakın. ProGuard'ı etkinleştirme hakkında daha fazla bilgi için bu kılavuza bakın.