ข่าวสารเกี่ยวกับผลิตภัณฑ์

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

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

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

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

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

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

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

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

ไลบรารี Jetpack Projected ช่วยเชื่อมโยงประสบการณ์การใช้งานแอปจากโทรศัพท์ไปยังขอบเขตการมองเห็นของผู้ใช้ เราได้เพิ่ม 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 ใหม่ในอาร์ติแฟกต์ projected-testing จะตั้งค่าสภาพแวดล้อมการทดสอบแบบ Projected โดยอัตโนมัติเพื่อลดความซับซ้อนในการทดสอบ ซึ่งจะช่วยให้คุณเขียนการทดสอบระดับหน่วยที่ชัดเจนและเชื่อถือได้โดยไม่ต้องใช้โค้ด 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()
}

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

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

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

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

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

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

XR Runtime, Jetpack SceneCore และฟีเจอร์การรับรู้ของ ARCore สำหรับ Jetpack XR (แผนที่ความลึกการติดตามดวงตา/มือ, การทดสอบการชน และ Spatial Anchors) จะย้ายไปเป็นเวอร์ชันเบต้าในเร็วๆ นี้ เราจึงได้ปรับปรุง 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
)

นอกจากนี้ เรายังนำเมชที่กำหนดเองมาใช้ใน SceneCore ด้วย เมชที่กำหนดเองช่วยให้คุณสร้างรูปทรงเรขาคณิตได้ทันทีโดยใช้โปรแกรม ซึ่งเหมาะสำหรับการสร้างโมเดล 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 for 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 รุ่นล่าสุด สมัครวันนี้เพื่อรับโอกาสในการเข้าถึงฮาร์ดแวร์รุ่นก่อนเปิดตัว ซึ่งรวมถึงต้นแบบแว่นตาเสียงและแว่นตาแสดงผลของเรา รวมถึง Project Aura ของ XREAL

ดูข้อมูลเพิ่มเติมและสมัครได้แล้ววันนี้

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

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

เขียนโดย

อ่านต่อ