View in English

  • Apple Developer
    • 시작하기

    시작하기 탐색

    • 개요
    • 알아보기
    • Apple Developer Program

    알림 받기

    • 최신 뉴스
    • Hello Developer
    • 플랫폼

    플랫폼 탐색

    • Apple 플랫폼
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    피처링

    • 디자인
    • 배포
    • 게임
    • 액세서리
    • 웹
    • 홈
    • CarPlay
    • 기술

    기술 탐색

    • 개요
    • Xcode
    • Swift
    • SwiftUI

    피처링

    • 손쉬운 사용
    • 앱 인텐트
    • Apple Intelligence
    • 게임
    • 머신 러닝 및 AI
    • 보안
    • Xcode Cloud
    • 커뮤니티

    커뮤니티 탐색

    • 개요
    • Apple과의 만남 이벤트
    • 커뮤니티 주도 이벤트
    • 개발자 포럼
    • 오픈 소스

    피처링

    • WWDC
    • Swift Student Challenge
    • 개발자 이야기
    • App Store 어워드
    • Apple 디자인 어워드
    • 문서

    문서 탐색

    • 문서 라이브러리
    • 기술 개요
    • 샘플 코드
    • 휴먼 인터페이스 가이드라인
    • 비디오

    릴리즈 노트

    • 피처링 업데이트
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • 다운로드

    다운로드 탐색

    • 모든 다운로드
    • 운영 체제
    • 애플리케이션
    • 디자인 리소스

    피처링

    • Xcode
    • TestFlight
    • 서체
    • SF Symbols
    • Icon Composer
    • 지원

    지원 탐색

    • 개요
    • 도움말
    • 개발자 포럼
    • 피드백 지원
    • 문의하기

    피처링

    • 계정 도움말
    • 앱 심사 지침
    • App Store Connect 도움말
    • 새로 추가될 요구 사항
    • 계약 및 지침
    • 시스템 상태
  • 빠른 링크

    • 이벤트
    • 뉴스
    • 포럼
    • 샘플 코드
    • 비디오
 

비디오

메뉴 열기 메뉴 닫기
  • 컬렉션
  • 전체 비디오
  • 소개

더 많은 비디오

  • 소개
  • 요약
  • 코드
  • visionOS 객체 추적 관련 개선 사항 살펴보기

    visionOS가 객체 추적 및 공간 액세서리 입력을 어떻게 발전시키고 있는지 알아보세요. 움직이거나 손에 들고 있는 객체를 추적하여 물리적 환경과 디지털 환경을 연결할 수 있도록 해 주는 새로운 방법을 살펴보세요. 지원되는 새로운 공간 액세서리 클래스와 앱에서 고유한 상호작용 모델을 구현하기 위한 맞춤형 액세서리 제작에 필요한 사항에 대해 알아보세요.

    챕터

    • 0:00 - Introduction
    • 2:20 - Object tracking
    • 7:20 - Spatial accessories
    • 7:47 - Creating a spatial accessory
    • 11:48 - Plug-and-play accessories
    • 12:22 - Implementing in your app
    • 13:03 - Next steps

    리소스

    • Working with generic spatial accessories
    • Preparing spatial accessories for tracking in your visionOS app
    • Accessory design guideline for Apple devices
    • Exploring object tracking with ARKit
      • HD 비디오
      • SD 비디오

    관련 비디오

    WWDC25

    • visionOS에서 공간 액세서리 입력 살펴보기

    WWDC24

    • visionOS의 물체 추적 기능 살펴보기
  • 비디오 검색…
    • 3:50 - Enable high frame rate tracking

      // Enable high frame rate tracking
      
      // Create reference object configuration
      var configuration = ReferenceObject.Configuration()
      configuration.highFrameRateTrackingEnabled = true
      
      // Load the reference object with ARKit API
      let refObjURL = Bundle.main.url(forResource: "flashlight", withExtension: ".referenceobject")
      let refObject = try? await ReferenceObject(from: refObjURL!, configuration: configuration)
    • 4:50 - Extended training mode via command-line

      // Extended training mode on Mac using command-line interface
      
      % xrun createml objecttracker --source flashlight.usdz --output flashlight.referenceobject --training-mode extended --all-angles
    • 5:25 - Object pose coordinate spaces

      // Different object pose spaces
      
      // Obtain anchor transform with display corrections
      
      let renderingPose = myObjectAnchor.coordinateSpace(correction: .rendered)
      
      // Obtain anchor transform in metric space
      
      let metricPose = myObjectAnchor.coordinateSpace(correction: .none)
    • 6:22 - Implement object tracking in iOS

      // Implement object tracking in iOS
      
      import ARKit
      import RealityKit
      
      class ObjectTrackingARSessionDelegate: NSObject, ARSessionDelegate {
              let arView = ARView(frame: .zero)
              var entities: [UUID: AnchorEntity] = [:]
      
              func start() throws {
                      let stationaryObject = try ARReferenceObject(archiveURL:
                              Bundle.main.url(forResource: "stationary", withExtension: "referenceobject")!)
                      let movingObject = try ARReferenceObject(archiveURL:
                              Bundle.main.url(forResource: "moving", withExtension: "referenceobject")!)
      
                      let configuration = ARWorldTrackingConfiguration()
                      configuration.detectionObjects = [stationaryObject]   // Low frame rate
                      configuration.trackingObjects = [movingObject]        // High frame rate
      
                      arView.session.delegate = self
                      arView.session.run(configuration)
              }
      
      				func session(_ session: ARSession, didAdd anchors: [ARAnchor]) {
                      for case let anchor as ARObjectAnchor in anchors {
                              let entity = AnchorEntity(anchor: anchor)
                              entities[anchor.identifier] = entity
                              arView.scene.addAnchor(entity)
                      }
              }
      
              func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {
                      for case let anchor as ARObjectAnchor in anchors {
                              entities[anchor.identifier]?.isEnabled = anchor.isTracked
                      }
              }
      
              func session(_ session: ARSession, didRemove anchors: [ARAnchor]) {
                      for case let anchor as ARObjectAnchor in anchors {
                              if let entity = entities.removeValue(forKey: anchor.identifier) {
                                      arView.scene.removeAnchor(entity)
                              }
                      }
              }
      }
    • 12:26 - Discover and connect a spatial accessory

      import ARKit
      import GameController
      
      // Generic accessory discovery
      
      if let device = GCSpatialAccessory.spatialAccessories.first {
      
              // Resolves the .referenceaccessory bundle automatically
              
              let accessory = try await Accessory(device: device)
              let provider = AccessoryTrackingProvider(accessories: [accessory])
              try await arkitSession.run([provider])
      }
      
      // Update tracked accessories without restarting the session                             
      
      try await provider.updateAccessories([newAccessory])
    • 0:00 - Introduction
    • Overview of the new visionOS object tracking enhancements, including high-frame-rate tracking of handheld objects and the expansion of spatial accessories to third-party developers.

    • 2:20 - Object tracking
    • A recap of the object tracking API introduced in visionOS 2.0 and what's new in visionOS 27: tracking objects in motion, training extended models in Create ML, metric-space poses, and iOS support.

    • 7:20 - Spatial accessories
    • Introduction to spatial accessories — electronic devices with an LED constellation, IMU, and Bluetooth that Vision Pro tracks in real time. Covers the first generation of accessories and the expansion to custom third-party hardware in visionOS 27.

    • 7:47 - Creating a spatial accessory
    • Design considerations, hardware requirements, and the validation workflow for building your own spatial accessory, including how to use the debug tool in Simulator and generate a reference accessory bundle.

    • 11:48 - Plug-and-play accessories
    • Off-the-shelf reference hardware from manufacturers like DFRobot and MikroE that can be used immediately for testing or integrated into your visionOS app without custom hardware development.

    • 12:22 - Implementing in your app
    • How to discover and connect a spatial accessory using the GCSpatialAccessory class and AccessoryTrackingProvider APIs, including how to hot-swap accessories without interrupting your ARKit session.

    • 13:03 - Next steps
    • Key takeaways on choosing the right tracking approach, and links to related sessions including Explore object tracking for visionOS and Explore spatial accessory input on visionOS.

Developer Footer

  • 비디오
  • WWDC26
  • visionOS 객체 추적 관련 개선 사항 살펴보기
  • 메뉴 열기 메뉴 닫기
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    메뉴 열기 메뉴 닫기
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    메뉴 열기 메뉴 닫기
    • 손쉬운 사용
    • 액세서리
    • Apple Intelligence
    • 앱 확장 프로그램
    • App Store
    • 오디오 및 비디오(영문)
    • 증강 현실
    • 디자인
    • 배포
    • 교육
    • 서체(영문)
    • 게임
    • 건강 및 피트니스
    • 앱 내 구입
    • 현지화
    • 지도 및 위치
    • 머신 러닝 및 AI
    • 오픈 소스(영문)
    • 보안
    • Safari 및 웹(영문)
    메뉴 열기 메뉴 닫기
    • 문서(영문)
    • 튜토리얼
    • 다운로드
    • 포럼(영문)
    • 비디오
    메뉴 열기 메뉴 닫기
    • 지원 문서
    • 문의하기
    • 버그 보고
    • 시스템 상태(영문)
    메뉴 열기 메뉴 닫기
    • Apple Developer
    • App Store Connect
    • 인증서, 식별자 및 프로파일(영문)
    • 피드백 지원
    메뉴 열기 메뉴 닫기
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(영문)
    • Mini Apps Partner Program
    • News Partner Program(영문)
    • Video Partner Program(영문)
    • Security Bounty Program(영문)
    • Security Research Device Program(영문)
    메뉴 열기 메뉴 닫기
    • Apple과의 만남
    • Apple Developer Center
    • App Store 어워드(영문)
    • Apple 디자인 어워드
    • Apple Developer Academy(영문)
    • WWDC
    최신 뉴스 읽기.
    Apple Developer 앱 받기.
    Copyright © 2026 Apple Inc. 모든 권리 보유.
    약관 개인정보 처리방침 계약 및 지침