ข่าวสารผลิตภัณฑ์

การอัปเดต Android XR SDK: ขอแนะนำเวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ 4

ใช้เวลาอ่าน 5 นาที
Amy Zeppenfeld & Stevan Silva

วันนี้เรายินดีที่จะเปิดตัว Android XR SDK เวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ 4 โดยยังคงมุ่งเน้นที่การรวมการพัฒนาข้ามอุปกรณ์สำหรับชุดหูฟัง แว่นตา XR แบบใช้สาย และแว่นตาอัจฉริยะ เราจะใช้การตั้งชื่อที่สื่อความหมายมากขึ้นสำหรับรูปแบบอุปกรณ์ของเรา เพื่อให้แพลตฟอร์มใช้งานง่าย โดยแว่นตา AI จะเปลี่ยนเป็นแว่นตาเสียง และแว่นตา AI ที่แสดงผลจะเปลี่ยนเป็นแว่นตาแสดงผล ซึ่งการเปลี่ยนแปลงเหล่านี้จะปรากฏในเอกสารประกอบของเราตั้งแต่วันนี้เป็นต้นไป 

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

เราขอประกาศเปิดตัวโปรแกรม Android XR Developer Catalyst เพื่อให้คุณได้เข้าถึงฮาร์ดแวร์และทรัพยากรต่างๆ ก่อนใครเพื่อสร้างประสบการณ์ที่สมจริงและเสริมความเป็นจริงบนอุปกรณ์ที่กำลังจะเปิดตัว เช่น แว่นตาแสดงผลและแว่นตาเสียง รวมถึงโปรเจ็กต์ Aura ของ XREAL ดูข้อมูลเพิ่มเติมและเริ่มสมัครได้เลย 

การสร้างประสบการณ์การใช้งานแบบออร์กเมนเทดสำหรับแว่นตาเสียงและแว่นตาแสดงผล

Developer Preview 4 ซึ่งเริ่มต้นด้วยไลบรารีสำหรับประสบการณ์การใช้งานแบบเพิ่มความเป็นจริงได้เปิดตัว API ใหม่ที่จะช่วยคุณสร้างและทดสอบแอป

Jetpack Projected: ความพร้อมใช้งานของอุปกรณ์และ API ของ ProjectedTestRule

ไลบรารี Jetpack Projected ช่วยเชื่อมต่อประสบการณ์การใช้งานแอปจากโทรศัพท์ไปยังขอบเขตการมองเห็นของผู้ใช้ เราได้เพิ่ม Device Availability API ซึ่งรวมสัญญาณสถานะการสวมใส่และการเชื่อมต่อเข้ากับค่า Lifecycle.State มาตรฐานของ Android ซึ่งช่วยให้คุณปรับลักษณะการทำงานของแอปพลิเคชันได้ตามว่ามีการสวมใส่อุปกรณ์หรือไม่

val xrDevice = XrDevice.getCurrentDevice(projectedContext)

// Observe the device lifecycle flow
xrDevice.getLifecycle().currentStateFlow
    .collect { state ->
        when (state) {
            Lifecycle.State.STARTED -> { /* Device is available (worn) */ }
            Lifecycle.State.CREATED -> { /* Device is unavailable (not worn) */ }
            Lifecycle.State.DESTROYED -> { /* Device is DISCONNECTED */ }
        }
    }

API ProjectedTestRule ใหม่ในอาร์ติแฟกต์การทดสอบที่คาดการณ์ไว้จะตั้งค่าสภาพแวดล้อมการทดสอบที่คาดการณ์ไว้โดยอัตโนมัติเพื่อลดความซับซ้อนในการทดสอบ ซึ่งจะช่วยให้คุณเขียนการทดสอบหน่วยที่กระชับและเชื่อถือได้โดยไม่ต้องใช้โค้ด Boilerplate

// from the 'androidx.xr.projected:projected-testing:1.0.0-alpha07' artifact
@get:Rule
val projectedTestRule = ProjectedTestRule()

@Test
fun testProjectedContextInitialization() {
    // by default, ProjectedTestRule automatically creates and connects
    // a projected device before each test
    val projectedContext = ProjectedContext.createProjectedDeviceContext(context)

    // assert the projected context is successfully initialized
    assertThat(projectedContext).isNotNull()
}

Glimmer ของ Jetpack Compose: Google Sans Flex และคอมโพเนนต์ใหม่

ตอนนี้ไลบรารี UI สำหรับแว่นตาแสดงผล Jetpack Compose Glimmer มี Google Sans Flex เพื่อให้อ่านง่ายขึ้นบนจอแสดงผลแบบมองทะลุ นอกจากนี้ เรายังได้เพิ่มคอมโพเนนต์แบบอินเทอร์แอกทีฟหลายรายการ ดังนี้

  • กอง: ออกแบบมาสำหรับกลุ่มที่เพิ่มประสิทธิภาพสำหรับทัชแพด โดยแสดงทีละรายการ
  • ชิปชื่อ: จัดหมวดหมู่และให้บริบทสำหรับการ์ดเนื้อหา
glimmer (1).gif

การสร้างประสบการณ์ที่สมจริงสำหรับชุดหูฟัง XR และแว่นตา XR แบบมีสาย

หากคุณต้องการสร้างประสบการณ์ที่สมจริงอย่างเต็มรูปแบบสำหรับชุดหูฟัง XR และแว่นตา XR แบบใช้สาย เรามีการอัปเดตครั้งใหญ่หลายรายการ

การเปลี่ยนผ่านเวอร์ชันเบต้าและสถาปัตยกรรมสมัยใหม่

XR Runtime, Jetpack SceneCore และฟีเจอร์การรับรู้ ARCore สำหรับ Jetpack XR (แผนที่ความลึก, การติดตามดวงตา/มือ, การทดสอบการยิงรังสี และAnchor เชิงพื้นที่) จะย้ายไปเป็นเวอร์ชันเบต้าในเร็วๆ นี้ เราจึงได้ปรับปรุง API ของ Jetpack XR เราได้นำแพ็กเกจ Guava และ RxJava3 รุ่นเดิมออกเพื่อใช้สถาปัตยกรรมที่ทันสมัยซึ่งใช้ Kotlin เป็นหลัก

Jetpack SceneCore: glTF และตาข่ายที่กำหนดเอง

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

// Create a new PBR material
pbrMaterial = KhronosPbrMaterial.create(
    session = xrSession,
    alphaMode = AlphaMode.OPAQUE
)

// Load a texture.
val texture = Texture.create(
    session = xrSession,
    path = Path("textures/texture_name.png")
)

// Apply the texture and configure occlusion to define how the material handles ambient lighting.
pbrMaterial.setOcclusionTexture(
    texture = texture,
    strength = 0.5f
)

// Access the hierarchy of nodes within the model entity.
val entityNodes = entity.nodes

// Find the specific node to apply the material override.
val myEntityNode = entityNodes.find { it.name == "node_name" }

// Apply the PBR material to the node.
myEntityNode?.setMaterialOverride(
   material = newMaterial
)

นอกจากนี้ เรายังจะนำ Custom Mesh มาสู่ SceneCore ด้วย Mesh ที่กำหนดเองช่วยให้คุณสร้างรูปทรงเรขาคณิตได้ทันทีแบบเป็นโปรแกรม ซึ่งเหมาะสำหรับการสร้างโมเดล 3 มิติที่กำหนดเอง ฟีเจอร์นี้จะเปิดตัวในรูปแบบทดลอง ดังนั้นโปรดลองใช้และบอกเราว่าคุณคิดอย่างไร

// Create the mesh
val roadMesh =
    CustomMesh.BuilderFromMeshData(session, roadVertexLayout)
        .addVertexData(ByteBufferRegion(roadDataBuffer, 0, vertexDataSize))
        .setIndexData(ByteBufferRegion(roadDataBuffer, vertexDataSize, indexDataSize))
        .setTopology(MeshSubsetTopology.TRIANGLES)
        .build()

// Define the material
val roadMaterial = KhronosPbrMaterial.create(session, AlphaMode.OPAQUE)

// Instantiate the entity using the custom mesh and material
val roadEntity =
    MeshEntity.create(
        session,
        roadMesh,
        listOf(roadMaterial),
        pose = roadPose,
    )

Compose สำหรับ XR: การรองรับ glTF ดั้งเดิม

ตอนนี้เราได้รองรับ glTF ในตัวโดยตรงใน Compose for XR ด้วย SpatialGltfModel ใช้ร่วมกับ SpatiallGltfModelState เพื่อเข้าถึงโหนดและภาพเคลื่อนไหวในโมเดล glTF หรือใช้เพื่อเพิ่มพื้นผิวและวัสดุลงในโมเดล 3 มิติ

val myGltfModelState = rememberSpatialGltfModelState(
        source = SpatialGltfModelSource.fromPath(
            Paths.get("models/my_animated_model.glb")
        )
    )

    val myGltfAnimation =
        myGltfModelState.animations.find { it.name == "animation_name" }

    DisposableEffect(myGltfAnimation) {
        myGltfAnimation?.loop()

        onDispose {
            myGltfAnimation?.stop()
        }
    }

    SpatialGltfModel(state = myGltfModelState, modifier = modifier)

ARCore สำหรับ Jetpack XR: ตัวอย่าง Geospatial API สำหรับแว่นตา XR แบบมีสาย

นอกจากนี้ เรายังให้เวอร์ชันตัวอย่างทดลองใช้ของ Geospatial API สำหรับแว่นตา XR แบบใช้สายใน ARCore สำหรับ Jetpack XR ด้วย การอัปเดตนี้ช่วยให้สามารถยึดเนื้อหาดิจิทัลที่มีความแม่นยำสูงซึ่งเชื่อมโยงกับสถานที่ในโลกจริงในกว่า 87 ประเทศ

การรวมระบบกำหนดตำแหน่งด้วยภาพ (VPS) ของ ARCore เข้ากับความสามารถในการให้เหตุผลและเสียงของ Gemini Live API จะช่วยให้คุณสร้างประสบการณ์ที่มีการคำนึงถึงบริบทซึ่งเข้าใจทั้งตำแหน่งและที่ตั้งของผู้ใช้ได้ ลองนึกภาพการสร้างทัวร์เดินชมที่สมจริงซึ่งมี AI เป็นไกด์ โดยจะให้คำอธิบายด้วยเสียงแบบเรียลไทม์เกี่ยวกับสถานที่ใกล้เคียง ผสานข้อมูลดิจิทัลเข้ากับสภาพแวดล้อมจริงได้อย่างราบรื่น

เริ่มสร้างอนาคตตั้งแต่วันนี้

ตอนนี้เป็นช่วงเวลาที่ยอดเยี่ยมในการพัฒนาสำหรับ Android XR Jetpack XR SDK จะย้ายไปเป็นเวอร์ชันเบต้าในเร็วๆ นี้ และมีชุดเครื่องมือใหม่ที่แข็งแกร่งพร้อมให้คุณใช้งานแล้ว สำรวจแต่ละส่วนต่อไปนี้เพื่อเตรียมประสบการณ์การใช้งานแอปให้พร้อมสำหรับ XR  

อ่านเอกสารประกอบ สำรวจตัวอย่าง และดูการทดลอง XR

ไปที่เว็บไซต์อย่างเป็นทางการของนักพัฒนาแอป Android เพื่อดูคำแนะนำทางเทคนิคฉบับเต็ม ข้อมูลอ้างอิง API และวิธีการตั้งค่าโปรแกรมจำลองใหม่ รับแรงบันดาลใจจากตัวอย่างและการทดลองของเรา ดูวิธีที่เราใช้ API เหล่านี้เพื่อสร้างเลย์เอาต์เชิงพื้นที่ที่สมจริง โหลดโมเดล 3 มิติ สำรวจระบบเสียงเชิงพื้นที่ และอื่นๆ

ดูว่ามีอะไรใหม่สำหรับเกมเอนจิน

เราได้เพิ่มการรองรับอย่างเป็นทางการสำหรับ Unreal Engine และ Godot รวมถึงเปิดตัวเครื่องมือใหม่ 2 อย่างเพื่อเร่งการพัฒนาสำหรับ Android XR ด้วย Unity และ Android XR Interaction Framework และจากความคิดเห็นของคุณ เราจึงเปิดตัว Android XR Engine Hub เพื่อให้คุณเรียกใช้ประสบการณ์การใช้งานได้โดยตรงจากเอนจินที่ต้องการ

สมัครเข้าร่วมโปรแกรม Android XR Developer Catalyst

อย่าพลาดโอกาสในการสร้างแอปสำหรับฮาร์ดแวร์ Android XR รุ่นล่าสุด สมัครวันนี้เพื่อรับโอกาสในการเข้าถึงฮาร์ดแวร์รุ่นก่อนเปิดตัว ซึ่งรวมถึงต้นแบบแว่นตาเสียงและจอแสดงผลของเรา รวมถึงโปรเจ็กต์ Aura ของ XREAL

ดูข้อมูลเพิ่มเติมและสมัครเลย

เราหวังว่าจะได้เห็นประสบการณ์ XR ที่ยอดเยี่ยมที่คุณสร้างขึ้นในขณะที่เรากำลังจะเปิดตัวอุปกรณ์ Android XR เพิ่มเติมภายในปีนี้

ดูประกาศนี้และข้อมูลอัปเดตทั้งหมดจาก Google I/O 2026 ได้ที่ io.google

เขียนโดย

อ่านต่อ