{ } { }

Jetpack SceneCore

สร้างและจัดการกราฟฉาก Android XR ด้วยเนื้อหา 3 มิติ
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า เวอร์ชันอัลฟ่า
12 ธันวาคม 2024 - - - 1.0.0-alpha01

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ของ XR SceneCore คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google

เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ 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 ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมในเอกสารประกอบของเครื่องมือติดตามปัญหา

รุ่น 1.0

เวอร์ชัน 1.0.0-alpha01

12 ธันวาคม 2024

androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 ได้รับการปล่อยแล้ว

ฟีเจอร์ของรุ่นแรก รุ่นแรกสำหรับนักพัฒนาแอปของ Jetpack SceneCore ซึ่งเป็นไลบรารีกราฟฉาก 3 มิติสำหรับสร้างและจัดการฉากและสภาพแวดล้อมที่สมจริง คลังนี้ช่วยให้คุณวางและจัดเรียงโมเดล 3 มิติและแผงเนื้อหาให้สัมพันธ์กัน รวมถึงกับสภาพแวดล้อมเสมือนจริงหรือในโลกจริง

  • SpatialEnvironment: สร้างประสบการณ์ที่สมจริงโดยสมบูรณ์ด้วยรูปภาพสกายบ็อกซ์และ/หรือเรขาคณิตโมเดล 3 มิติเป็นฉากหลังสำหรับฉาก XR ของสภาพแวดล้อม หรือเปิดใช้การส่งผ่านเพื่อให้ฉากเสมือนผสานรวมกับสภาพแวดล้อมในชีวิตจริงของผู้ใช้
  • PanelEntity: เพิ่มเนื้อหา 2 มิติลงในฉาก 3 มิติโดยการฝังเลย์เอาต์และกิจกรรม Android มาตรฐานลงในแผงที่มีการจัดวางเชิงพื้นที่ซึ่งสามารถลอยหรือยึดกับพื้นผิวในชีวิตจริง
  • GltfModelEntity: วาง เคลื่อนไหว และโต้ตอบกับโมเดล 3 มิติในฉาก SceneCore รองรับรูปแบบไฟล์ glTF เพื่อให้ผสานรวมกับโมเดลที่มีอยู่ได้ง่าย
  • เสียงรอบทิศทาง: เพิ่มแหล่งที่มาของเสียงแบบแอมเบียนท์และแบบจุดลงในฉาก 3 มิติเพื่อให้ได้เสียงที่สมจริงและสมจริง
  • StereoSurfaceEntity: SceneCore รองรับการกำหนดเส้นทางเนื้อหาที่แสดงผลบน Android Surface ไปยังตาซ้าย/ขวา ซึ่งสามารถใช้เพื่อแสดงผลเนื้อหาภาพสเตอริโอในรูปแบบคู่ขนานหรือบนล่าง เช่น รูปภาพสเตอริโอ วิดีโอ 3 มิติ หรือ UI แบบอื่นๆ ที่แสดงผลแบบไดนามิก แอปพลิเคชันควรใช้ MediaPlayer หรือ ExoPlayer ในการถอดรหัสวิดีโอ
  • ระบบคอมโพเนนต์: SceneCore มีระบบคอมโพเนนต์ที่มีประสิทธิภาพและยืดหยุ่นสำหรับการเพิ่มความสามารถให้กับเนื้อหา XR รวมถึงการอำนวยความสะดวกให้ผู้ใช้ย้าย ปรับขนาด และโต้ตอบกับโมเดลและแผง
  • ยึด: เมื่อเปิดใช้โหมดนี้ คุณจะยึดแผงและโมเดลกับพื้นผิวจริงได้ ซึ่งช่วยให้ผู้ใช้ผสานรวมเนื้อหาเสมือนจริงเข้ากับสภาพแวดล้อมจริงได้อย่างราบรื่น
  • ท่าทางของผู้ใช้: เข้าถึงตําแหน่งของผู้ใช้ในฉากเสมือนเพื่อปรับเนื้อหาให้สอดคล้องกับตําแหน่งของผู้ใช้
  • SpatialCapabilities: สร้างแอปที่ปรับให้เหมาะกับผู้ใช้ทุกรูปแบบอย่างเต็มรูปแบบ ซึ่งใช้ประโยชน์จากความสามารถแบบพื้นที่ (หากมี) เช่น การวางตำแหน่งเนื้อหา UI แบบ 3 มิติ นอกจากนี้ แอปยังตรวจสอบการเปลี่ยนแปลงความสามารถขณะที่แอปทำงานอยู่เพื่อปรับเปลี่ยนประสบการณ์การใช้งานตามวิธีที่ผู้ใช้ใช้อุปกรณ์ Android XR ได้ด้วย

ปัญหาที่ทราบ

  • ปัจจุบันต้องใช้ minSDK 30 เพื่อใช้ Jetpack SceneCore วิธีแก้ปัญหาคือเพิ่มรายการไฟล์ Manifest ต่อไปนี้ <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> เพื่อให้สามารถบิลด์และรันด้วย minSDK 23
  • เซสชันอาจใช้งานไม่ได้ในสถานการณ์ต่างๆ ที่ระบบสร้างกิจกรรมขึ้นมาใหม่โดยอัตโนมัติ ซึ่งรวมถึงการปรับขนาดแผงหลัก การเชื่อมต่ออุปกรณ์ต่อพ่วง และการเปลี่ยนระหว่างโหมดสว่างและโหมดมืด หากพบปัญหาเกี่ยวกับเซสชันที่ไม่ถูกต้อง วิธีแก้ปัญหา ได้แก่ การทำให้แผงหลักปรับขนาดไม่ได้ การใช้เอนทิตีแผงแบบไดนามิก การปิดใช้การสร้างกิจกรรมใหม่สำหรับการเปลี่ยนแปลงการกําหนดค่าที่เฉพาะเจาะจง หรือการปิดใช้การเปลี่ยนแปลงธีมโหมดสว่าง/โหมดมืด
  • GltfEntity ไม่รองรับคอมโพเนนต์ที่เคลื่อนย้ายและปรับขนาดได้
  • GltfEntity ไม่รองรับ Entity.getSize()
  • แอป Jetpack XR ต้องขอสิทธิ์ android.permission.SCENE_UNDERSTANDING ใน AndroidManifest
  • การสร้างเซสชันใช้ได้ในอุปกรณ์ Android XR เท่านั้น ขณะนี้ หากคุณสร้างเซสชันและพยายามใช้เซสชันในอุปกรณ์ที่ไม่ใช่ Android XR คุณจะได้รับ RuntimeException
  • การตั้งค่าพื้นหลังท้องฟ้าเป็น Null ผ่าน `SpatialEnvironment.setSpatialEnvironmentPreference() ไม่ได้ทำให้พื้นหลังท้องฟ้าเป็นสีดําสนิทตามที่ระบุไว้ในเอกสาร ซึ่งอาจส่งผลให้ระบบใช้พื้นหลังท้องฟ้าเริ่มต้นหรือไม่มีการเปลี่ยนแปลงพื้นหลังท้องฟ้าปัจจุบัน
  • ไคลเอ็นต์ SceneCore ควรเพิ่ม implementation(“com.google.guava:listenablefuture-1.0”) ลงในการกำหนดค่า Gradle สำหรับทรัพยากร Dependency ของแอป ในรุ่นที่จะออกในอนาคต Scenecore จะรวมไลบรารีนี้ไว้เป็น api Dependency เพื่อให้ลูกค้าไม่ต้องประกาศอย่างชัดแจ้ง
  • SceneCore รวม com.google.guava:guava-31.1-android และ com.google.protobuf:protobuf-javalite ไว้เป็น transitive dependencies โดยไม่ได้ตั้งใจ หากส่งผลให้เกิดข้อผิดพลาดของคลาสที่ซ้ำกันในบิลด์ คุณสามารถยกเว้นการพึ่งพา 2 รายการนี้ได้อย่างปลอดภัย
  • หากแอปใช้ SceneCore และเปิดใช้ ProGuard แอปจะขัดข้องเมื่อคุณสร้างเซสชัน วิธีแก้ปัญหาชั่วคราวคือปิดใช้ ProGuard ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเปิดใช้ ProGuard ได้ในคู่มือนี้