
리프모션(Leap Motion) 컨트롤러를 유니티(Unity)와 연동하여 손 추적 기능을 구현하려면 다음 단계를 따르면 된다.
더보기
1. 리프모션 윈도우 SDK 설치 및 설정
- Ultraleap의 핸드 트래킹 소프트웨어 다운로드 페이지에서 최신 윈도우용 SDK를 다운로드하여 설치
- 설치 후 시스템 트레이에 리프모션 아이콘이 나타나며, 트래킹 상태를 확인할 수 있다.
2. 유니티 프로젝트 설정
- Ultraleap의 유니티 플러그인 페이지에서 'Tracking.unitypackage'와 'Tracking Examples.unitypackage'를 다운로드
- 유니티 에디터에서 'Tracking.unitypackage'를 먼저 임포트한 후, 'Tracking Examples.unitypackage'를 임포트
3. 예제 씬 실행 및 확인
- 프로젝트의 'Scenes' 폴더에서 'CapsuleHands(Desktop)' 씬을 열어 하이라키 뷰에서 'HandModels' 오브젝트 아래에 있는 왼손과 오른손 오브젝트를 확인
- 각 손 오브젝트에는 'CapsuleHand' 스크립트가 연결되어 있으며, 이 스크립트의 80번째 줄에 '_spherePosition'이라는 Vector3 배열이 있다
- '_spherePosition' 배열을 외부에서 접근할 수 있도록 해당 변수를 public으로 수정한다.
4. 손 위치 데이터를 가져오는 스크립트 작성
- 손의 위치 데이터를 가져오기 위해 새로운 스크립트를 작성한다.
- 스크립트 상단에 using Leap.Unity;를 추가하여 리프모션 관련 네임스페이스를 포함한다.
- 'CapsuleHand' 스크립트의 '_spherePosition[0]' 값을 통해 왼손 또는 오른손의 손바닥 위치를 얻을 수 있다.
5. 추가적인 리프모션 관련 에셋 활용
- 유니티 에셋 스토어에서 제공되는 다양한 리프모션 관련 에셋을 활용하여 제스처 인식 및 현실적인 손 모델을 구현할 수 있다.
이러한 단계를 따르면 리프모션 컨트롤러를 유니티와 연동하여 손 추적 기능을 구현할 수 있다
1. Service Provider
2. Hand Module

유니티에서 핸드트레킹 컴포넌트 중 하나인 Capsule Hand이다. 그런데, 이처럼 패키지로 묶인 스크립트는 수정해도, 원복된다. 이렇게 Unity에서 패키지로 묶인 스크립트가 수정 후 원복되는 이유는 Unity의 패키지 관리 방식 때문인데, Unity는 패키지를 Library/PackageCache 또는 Packages 폴더 아래에 저장하며, 이 패키지들은 Immutable한 성격을 가진다. 즉, Unity가 패키지를 외부 레지스트리(예: Unity Package Manager, npm 스타일 저장소)에서 다운로드하거나 프로젝트 내에서 참조할 때, 패키지 파일들은 기본적으로 읽기 전용으로 관리되며, 수정이 발생하더라도 Unity가 이를 자동으로 다시 동기화하거나 덮어쓰는 구조를 가진다. 그래서 이를 수정하기 위해서는 패키지 폴더를 Libary 밖으로 뺴야한다.
