{ } { }

Jetpack SceneCore

3D कॉन्टेंट की मदद से, Android XR सीन ग्राफ़ बनाएं और उसमें बदलाव करें.
नया अपडेट रिलीज़ किया गया जांचा और परखा हुआ वर्शन रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
12 दिसंबर, 2024 - - - 1.0.0-alpha01

डिपेंडेंसी का एलान करना

XR SceneCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

ग्रूवी

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 को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या पर अपना वोट जोड़ा जा सकता है.

नई समस्या बनाना

ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.

संस्करण 1.0

वर्शन 1.0.0-alpha01

12 दिसंबर, 2024

androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 रिलीज़ हो गया है.

शुरुआती रिलीज़ की सुविधाएं Jetpack SceneCore की शुरुआती डेवलपर रिलीज़. यह एक 3D सीन ग्राफ़ लाइब्रेरी है, जिसका इस्तेमाल इमर्सिव सीन और एनवायरमेंट बनाने और उनमें बदलाव करने के लिए किया जाता है. इस लाइब्रेरी की मदद से, 3D मॉडल और कॉन्टेंट पैनल को एक-दूसरे के हिसाब से और वर्चुअल या रीयल-वर्ल्ड एनवायरमेंट के हिसाब से व्यवस्थित किया जा सकता है.

  • SpatialEnvironment: अपने एक्सआर सीन के बैकग्राउंड के तौर पर, स्काईबॉक्स इमेज और/या 3D मॉडल की ज्यामिति का इस्तेमाल करके, पूरी तरह से इमर्सिव अनुभव बनाएं. इसके अलावा, पासथ्रू की सुविधा चालू करें, ताकि आपका वर्चुअल सीन, उपयोगकर्ता के असल दुनिया के एनवायरमेंट के साथ इंटिग्रेट हो सके.
  • PanelEntity: अपने 3D सीन में 2D कॉन्टेंट जोड़ें. इसके लिए, स्टैंडर्ड Android लेआउट और गतिविधियों को स्पेसलाइज़ किए गए पैनल में जोड़ें. ये पैनल, रीयल-वर्ल्ड के प्लैटफ़ॉर्म पर फ़्लोट या ऐंकर किए जा सकते हैं.
  • GltfModelEntity: अपने सीन में 3D मॉडल डालें, उन्हें ऐनिमेट करें, और उनके साथ इंटरैक्ट करें. SceneCore, मौजूदा मॉडल के साथ आसानी से इंटिग्रेट करने के लिए, glTF फ़ाइल फ़ॉर्मैट के साथ काम करता है.
  • स्पेशल ऑडियो: अपने 3D सीन में ऐंबियंट और पॉइंट ऑडियो सोर्स जोड़ें, ताकि आपको पूरी तरह से इमर्सिव और स्पेसलाइज़ किया गया साउंड मिले.
  • StereoSurfaceEntity: SceneCore, Android डिवाइस की स्क्रीन पर रेंडर किए गए कॉन्टेंट को बाईं/दाईं आंख के हिसाब से रूट करने की सुविधा देता है. इसका इस्तेमाल, स्टीरियोस्कोपिक कॉन्टेंट को साइड-बाय-साइड या टॉप-बॉटम फ़ॉर्मैट में रेंडर करने के लिए किया जा सकता है. जैसे, स्टीरियो फ़ोटो, 3D वीडियो या डाइनैमिक तौर पर रेंडर किए गए अन्य यूज़र इंटरफ़ेस (यूआई). ऐप्लिकेशन को वीडियो डिकोड करने के लिए, MediaPlayer या ExoPlayer का इस्तेमाल करना चाहिए.
  • कॉम्पोनेंट सिस्टम: SceneCore, आपके XR कॉन्टेंट में सुविधाएं जोड़ने के लिए, एक बेहतर और सुविधाजनक कॉम्पोनेंट सिस्टम उपलब्ध कराता है. इसमें, उपयोगकर्ताओं के लिए मॉडल और पैनल को एक जगह से दूसरी जगह ले जाने, उनका साइज़ बदलने, और उनसे इंटरैक्ट करने की सुविधाएं भी शामिल हैं.
  • ऐंकर: पासथ्रू की सुविधा चालू होने पर, पैनल और मॉडल को असल प्लैटफ़ॉर्म से अटैच किया जा सकता है. इससे, उपयोगकर्ताओं को अपने आस-पास के वातावरण में वर्चुअल कॉन्टेंट को आसानी से इंटिग्रेट करने में मदद मिलती है.
  • उपयोगकर्ता की पोज़िशन: वर्चुअल सीन में उपयोगकर्ता की जगह की जानकारी ऐक्सेस करके, अपने कॉन्टेंट को उपयोगकर्ता की पोज़िशन के हिसाब से दिखाएं.
  • SpatialCapabilities: पूरी तरह से अडैप्टिव ऐप्लिकेशन बनाएं, जो उपलब्ध होने पर स्पेसलाइज़ की गई सुविधाओं का फ़ायदा ले सकें. जैसे, यूज़र इंटरफ़ेस (यूआई) कॉन्टेंट की 3D पोज़िशनिंग. इतना ही नहीं, ऐप्लिकेशन के चलने के दौरान, आपका ऐप्लिकेशन सुविधाओं में होने वाले बदलावों को मॉनिटर कर सकता है. इससे, उपयोगकर्ता अपने Android XR डिवाइस का इस्तेमाल कैसे कर रहा है, इसके आधार पर अनुभव में बदलाव किया जा सकता है.

ऐसी समस्याएं जिनकी जानकारी पहले से है

  • फ़िलहाल, Jetpack SceneCore का इस्तेमाल करने के लिए, 30 का कम से कम SDK वर्शन ज़रूरी है. इस समस्या को हल करने के लिए, यहां दी गई मेनिफ़ेस्ट एंट्री <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> जोड़ें. इससे, ऐप्लिकेशन को 23 के मिनिमम SDK के साथ बनाया और चलाया जा सकेगा.
  • सेशन अमान्य हो सकता है. ऐसा कई स्थितियों में होता है, जब गतिविधि अपने-आप फिर से शुरू हो जाती है. जैसे, मुख्य पैनल का साइज़ बदलना, बाहरी डिवाइसों को कनेक्ट करना, और लाइट और डार्क मोड के बीच स्विच करना. अगर आपको सेशन अमान्य होने से जुड़ी समस्याएं आ रही हैं, तो इन समस्याओं को हल करने के लिए, अपने मुख्य पैनल का साइज़ न बदलें. इसके अलावा, डाइनैमिक पैनल इकाई का इस्तेमाल करें, खास कॉन्फ़िगरेशन बदलावों के लिए गतिविधि को फिर से शुरू करने की सुविधा बंद करें या लाइट/डार्क मोड की थीम में बदलाव करने की सुविधा बंद करें.
  • GltfEntity पर, ऐसे कॉम्पोनेंट इस्तेमाल नहीं किए जा सकते जिन्हें एक जगह से दूसरी जगह ले जाया जा सकता है और जिनका साइज़ बदला जा सकता है.
  • GltfEntity पर Entity.getSize() काम नहीं करता.
  • Jetpack XR ऐप्लिकेशन को AndroidManifest में android.permission.SCENE_UNDERSTANDING की अनुमति का अनुरोध करना होगा.
  • सेशन बनाने की सुविधा सिर्फ़ Android XR डिवाइस पर काम करती है. फ़िलहाल, अगर कोई सेशन बनाया जाता है और उसे Android XR डिवाइस के अलावा किसी दूसरे डिवाइस पर इस्तेमाल करने की कोशिश की जाती है, तो आपको RuntimeException दिखेगा.
  • `SpatialEnvironment.setSpatialEnvironmentPreference()` की मदद से स्काईबॉक्स को शून्य पर सेट करने पर, दस्तावेज़ में बताए गए तरीके से स्काईबॉक्स काला नहीं दिखता. ऐसा करने पर, सिस्टम का डिफ़ॉल्ट स्काईबॉक्स दिख सकता है या मौजूदा स्काईबॉक्स में कोई बदलाव नहीं होगा.
  • SceneCore क्लाइंट को अपने ऐप्लिकेशन की डिपेंडेंसी के लिए, अपने Gradle कॉन्फ़िगरेशन में implementation(“com.google.guava:listenablefuture-1.0”) जोड़ना चाहिए. आने वाले समय में रिलीज़ होने वाले वर्शन में, scenecore इस लाइब्रेरी को api डिपेंडेंसी के तौर पर शामिल करेगा. इससे क्लाइंट को साफ़ तौर पर इसकी जानकारी देने की ज़रूरत नहीं होगी.
  • SceneCore, com.google.guava:guava-31.1-android और com.google.protobuf:protobuf-javalite को ट्रांज़िशन डिपेंडेंसी के तौर पर गलत तरीके से शामिल करता है. अगर इससे आपके बिल्ड में डुप्लीकेट क्लास की गड़बड़ियां होती हैं, तो इन दो डिपेंडेंसी को सुरक्षित तरीके से हटाया जा सकता है.
  • अगर आपका ऐप्लिकेशन SceneCore का इस्तेमाल करता है और ProGuard चालू करता है, तो सेशन बनाने पर वह क्रैश हो जाएगा. इस समस्या को हल करने के लिए, ProGuard को बंद करें. ProGuard को चालू करने के तरीके के बारे में ज़्यादा जानने के लिए, यह गाइड देखें.