Jetpack XR용 ARCore

인식 기능으로 디지털 콘텐츠를 실제 세계로 가져옵니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2024년 12월 12일 - - - 1.0.0-alpha01

종속 항목 선언

Jetpack XR용 ARCore의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha01")
}

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.0

버전 1.0.0-alpha01

2024년 12월 12일

androidx.xr.arcore:arcore-* 1.0.0-alpha01이 출시되었습니다.

초기 출시의 기능

기존 ARCore 라이브러리를 기반으로 하는 Jetpack XR용 ARCore 라이브러리는 디지털 콘텐츠를 실제 세계와 혼합하는 기능을 제공합니다. 이 라이브러리에는 모션 추적, 영구 앵커, 히트 테스트, 시맨틱 라벨링 (예: 바닥, 벽, 테이블 상판)을 사용한 평면 식별이 포함됩니다. Jetpack XR용 ARCore 작업에 관한 자세한 내용은 개발자 가이드를 참고하세요.

  • Session: Jetpack XR용 ARCore는 내부적으로 Jetpack XR 런타임을 사용하여 기능을 지원합니다. 세션을 사용하여 대부분의 Jetpack XR용 ARCore API와 상호작용하므로 문서를 확인하세요.

  • Plane: 비행기를 사용하여 주변 환경을 파악합니다. 각 평면에는 시맨틱을 설명하는 Label가 있습니다. subscribe를 사용하여 최근 감지된 비행기에 대한 알림을 받거나 state를 사용하여 특정 비행기의 변경사항에 대한 알림을 받을 수 있습니다.

  • Anchor: 가상 객체와 실제 위치 간의 링크입니다. 앵커는 공간의 특정 위치 (create 사용) 또는 Trackable (createAnchor 사용)에 연결할 수 있습니다.

    • 앵커는 여러 세션에서 재사용할 수 있습니다. persist를 사용하여 저장하고, getPersistedAnchorUuids를 사용하여 열거하고, load를 사용하여 가져올 수 있습니다. 더 이상 사용하지 않으면 unpersist해야 합니다.

    • 앵커는 Jetpack XR용 ARCore와 Jetpack SceneCore 간에 상호 운용됩니다. 앵커를 사용하여 AnchorEntity를 만들거나 기존 AnchorEntity가 있는 경우 getAnchor를 사용하여 백킹 앵커를 가져올 수 있습니다.

    • hitTest를 사용하여 자연스러운 사용자 상호작용을 제공합니다. hitTest는 Ray를 사용하여 교차하는 콘텐츠를 확인하고 해당 위치에서 Anchor를 만듭니다. InputEvent에서 hitTest를 실행하는 것이 좋습니다.

알려진 문제

  • unpersist를 호출하고 getPersistedAnchorUuids에서 반환된 결과에서 UUID가 삭제되기까지 지연이 발생할 수 있습니다.

  • create는 시스템에 새 앵커를 반환하기에 충분한 리소스가 있는지 확인하지 않습니다. 앵커를 과도하게 만들면 비정상 종료가 발생할 수 있습니다.

  • 이전에 유지되고 유지 해제된 앵커를 유지하는 기능은 현재 지원되지 않습니다.

  • 에뮬레이터에서의 사용은 지원되지만 동작이 실제 기기에서 실행할 때만큼 안정적이지 않을 수 있습니다. 특히 create 호출이 네이티브 코드 오류로 실패하여 활동이 즉시 종료될 수 있습니다.

  • 특정 상황에서는 '앵커가 유지되지 않았습니다'라는 메시지와 함께 persist를 호출할 때 RuntimeException가 잘못 발생할 수 있습니다. 이러한 경우에도 함수는 계속 실행되고 앵커는 유지됩니다. 해결 방법으로 persist 호출을 try 블록으로 래핑하는 것이 좋습니다.