개체 조작자 - MRTK2

개체 조작자

ObjectManipulator는 조작 동작에 대한 새로운 구성 요소로, 이전에 ManipulationHandler에서 발견되었습니다. 개체 조작자는 여러 가지 개선 및 단순화를 만듭니다. 이 구성 요소는 더 이상 사용되지 않는 조작 처리기를 대체합니다.

ObjectManipulator 스크립트는 하나 또는 두 개의 손을 사용하여 개체를 이동 가능하고 확장 가능하며 회전 가능하게 만듭니다. 개체 조작자는 개체가 다양한 입력에 응답하는 방법을 제어하도록 구성할 수 있습니다. 스크립트는 HoloLens 2 관절 손, HoloLens 2 손 광선, HoloLens 1 응시 및 제스처 및 몰입형 헤드셋 모션 컨트롤러 입력과 같은 대부분의 형태의 상호 작용에서 작동해야 합니다.

개체 조작자를 사용하는 방법

개체 조작자를 사용하려면 먼저 GameObject에 ObjectManipulator 스크립트 구성 요소를 추가합니다. 또한 개체에 그라블 경계와 일치하는 충돌체를 추가해야 합니다.

개체가 거의 관절식 손 입력에 응답하도록 하려면 스크립트도 추가 NearInteractionGrabbable 합니다.

개체에 강체 구성 요소를 추가하여 개체 조작자에 대해 물리학 동작을 사용하도록 설정할 수 있습니다. 이 구성 요소를 추가하여 활성화된 물리학 동작은 물리학 및 충돌에서 자세히 설명합니다.

또한 조작 제약 조건 구성 요소를 개체에 추가하여 조작을 제한할 수 있습니다. 이러한 구성 요소는 조작과 함께 작동하고 어떤 식으로든 조작 동작을 변경하는 특수 구성 요소입니다.

Unity 편집기에서 조작 처리기 사용

검사기 속성 및 필드

개체 조작자 구조체

일반 속성

호스트 변환

조작할 개체 변환입니다. 기본값은 구성 요소의 개체입니다.

조작 유형

한 손 또는 두 손을 사용하여 개체를 조작할 수 있는지 여부를 지정합니다. 이 속성은 플래그이므로 두 옵션을 모두 선택할 수 있습니다.

  • 한 손: 선택한 경우 한 손으로 조작할 수 있습니다.
  • 양손: 선택한 경우 두 손으로 조작할 수 있습니다.

먼 조작 허용

포인터와의 원거리 상호 작용을 사용하여 조작을 수행할 수 있는지 여부를 지정합니다.

한 손 조작 속성

한 손 회전 모드 근처

개체가 한 손으로 가까이 있을 때 동작하는 방식을 지정합니다. 이러한 옵션은 관절이 있는 손에만 작동합니다.

  • 개체 중심을 기준으로 회전: 개체는 손의 회전을 사용하여 회전하지만 개체 중심점을 기준으로 회전합니다. 개체가 회전할 때 덜 움직이는 것처럼 보이지만 손과 개체 사이에 연결이 끊어지는 느낌이 있을 수 있습니다. 먼 상호 작용에 더 유용합니다.
  • 잡기 지점 회전: 엄지 손가락과 검지 손가락 사이의 잡기 지점에 대해 손으로 개체를 회전합니다. 마치 물체가 손에 들고 있는 것처럼 느껴져야 합니다.

한 손 회전 모드 멀리

개체가 한 손으로 먼 거리에서 잡히는 경우의 동작 방식을 지정합니다. 이러한 옵션은 관절이 있는 손에만 작동합니다.

  • 개체 중심 회전: 손의 회전을 사용하지만 개체 중심점을 기준으로 개체를 회전합니다. 개체가 회전할 때 개체 중심이 이동하지 않고 먼 거리에서 검사하는 데 유용합니다.
  • 잡기 지점 회전: 손의 회전을 사용하여 개체를 회전하지만 포인터 광선 적중 지점을 기준으로 합니다. 검사에 유용합니다.

양손 조작 속성

양손 조작 유형

두 손 조작이 개체를 변환하는 방법을 지정합니다. 이 속성은 플래그이므로 원하는 수의 옵션을 선택할 수 있습니다.

  • 이동: 선택한 경우 이동이 허용됩니다.
  • 크기 조정: 선택한 경우 크기 조정이 허용됩니다.
  • 회전: 선택한 경우 회전이 허용됩니다.

조작 처리기

제약 조건

제약 조건 사용

이 설정은 연결된 제약 조건 관리자를 사용하도록 설정합니다. 변환 변경 내용은 선택한 제약 조건 관리자에 등록된 제약 조건에 의해 처리됩니다.

제약 조건 관리자

드롭다운을 사용하면 연결된 제약 조건 관리자를 선택할 수 있습니다. 개체 조작자는 항상 제약 조건 관리자 가 연결되어 있는지 확인합니다. 동일한 형식의 여러 구성 요소가 동일한 이름 아래에 Unity로 표시됩니다. 동일한 개체에서 여러 제약 조건 관리자를 더 쉽게 구분할 수 있도록 사용 가능한 옵션은 선택한 제약 조건 관리자(수동 또는 자동 제약 조건 선택)의 구성에 대한 힌트를 표시합니다.

구성 요소로 이동

제약 조건 관리자 선택에는 구성 요소로 이동 단추가 함께 제공됩니다. 이 단추를 사용하면 검사기에서 선택한 구성 요소로 스크롤하여 구성할 수 있습니다.

Physics

이 섹션의 설정은 개체에 RigidBody 구성 요소가 있는 경우에만 표시됩니다.

릴리스 동작

조작된 개체가 릴리스 시 유지해야 하는 물리적 속성을 지정합니다. 이 속성은 플래그이므로 두 옵션을 모두 선택할 수 있습니다.

  • 속도 유지: 개체가 해제되면 이 옵션을 선택하면 선형 속도가 유지됩니다.
  • Angular 속도 유지: 개체가 해제되면 이 옵션을 선택하면 각 속도가 유지됩니다.

근거리 조작을 위해 힘 사용

거의 조작을 수행할 때 물리학력을 사용하여 개체를 이동할지 여부입니다. 이를 false 로 설정하면 개체가 사용자 손에 더 직접적으로 연결되어 있는 것처럼 느껴집니다. 이를 true 로 설정하면 개체의 질량과 관성은 적용되지만 개체가 스프링을 통해 연결된 것처럼 느껴질 수 있습니다. 기본값은 false입니다.

다듬기

원거리 다듬기

원거리 상호 작용에 대해 프레임 속도 독립적 스무딩을 사용할 수 있는지 여부입니다. 원활화는 기본적으로 사용하도록 설정됩니다.

부드러움 근처

근사 상호 작용에 대해 프레임 속도 독립적 스무딩을 사용할 수 있는지 여부입니다. 효과가 손에서 '연결 끊김'으로 인식될 수 있으므로 근사한 다듬기는 기본적으로 사용하지 않도록 설정됩니다.

활성 다듬기

사용되지 않으며 이후 버전에서 제거될 예정입니다. 애플리케이션은 SmoothingFar, SmoothingNear 또는 둘의 조합을 사용해야 합니다.

lerp 시간 이동

무브먼트에 적용할 다듬기 양입니다. 0의 다듬기란 다듬기 없음을 의미합니다. 최대값은 값이 변경되지 않음을 의미합니다.

lerp 시간 회전

회전에 적용할 다듬기 양입니다. 0의 다듬기란 다듬기 없음을 의미합니다. 최대값은 값이 변경되지 않음을 의미합니다.

크기 조정 lerp 시간

눈금에 적용할 평활의 양입니다. 0의 평활화는 다듬기 없음을 의미합니다. 최대 값은 값이 변경되지 않음을 의미합니다.

조작 이벤트

조작 처리기는 다음 이벤트를 제공합니다.

  • OnManipulationStarted: 조작이 시작될 때 발생합니다.
  • OnManipulationEnded: 조작이 종료될 때 발생합니다.
  • OnHoverStarted: 손/컨트롤러가 조작 가능한 마우스를 가까이 또는 멀리 가리키면 발생합니다.
  • OnHoverEnded: 손/컨트롤러가 조작 가능한 마우스를 거의 또는 멀리 가리키지 않으면 발생합니다.

조작에 대한 이벤트 실행 순서는 다음과 같습니다.

OnHoverStarted ->OnManipulationStarted ->OnManipulationEnded ->OnHoverEnded

조작이 없으면 다음 화재 순서로 가리키기 이벤트가 계속 발생합니다.

OnHoverStarted ->OnHoverEnded

물리학 및 충돌

개체 조작자와 동일한 개체에 강체 구성 요소를 추가하여 물리학 동작을 사용하도록 설정할 수 있습니다. 이렇게 하면 위의 릴리스 동작 을 구성할 수 있게 될 뿐만 아니라 충돌을 가능하게 합니다. 강체 구성 요소가 없으면 조작 중에 충돌이 올바르게 작동하지 않습니다.

  • 조작된 개체와 정적 충돌체(즉, 충돌체가 있지만 강체가 없는 개체) 간의 충돌은 작동하지 않으며 조작된 개체는 영향을 받지 않는 정적 충돌체를 통해 바로 전달됩니다.
  • 조작된 개체와 강체(즉, 충돌체와 강체가 모두 있는 개체) 간의 충돌로 인해 강체가 충돌 응답을 하게 되지만 응답은 점프하고 부자연스럽습니다. 조작된 개체에 대한 충돌 응답도 없습니다.

강체가 추가되면 충돌이 올바르게 작동해야 합니다.

딱딱한 표시가 없는 경우

경직된 본문 없음

딱딱한 표시

경직된 본문

Elastics(실험적)

개체 조작자를 통해 개체를 조작할 때 탄력적 을 사용할 수 있습니다. 탄력적 시스템은 아직 실험 상태입니다. 탄력을 사용하도록 설정하려면 기존 Elastics Manager 구성 요소를 연결하거나 단추를 통해 Add Elastics Manager 새 탄력적 관리자를 만들고 연결합니다.

경계 컨트롤 탄력적

추가 정보