개체 조작자

Object manipulator

ObjectManipulator는 조작 동작의 새로운 구성 요소로, 이전에 ManipulationHandler에서 발견되었습니다. 개체 조작자는 여러 가지 향상된 기능과 간소화를 제공합니다. 이 구성 요소는 더 이상 사용되지 않는 조작 처리기를 대체합니다.

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

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

개체 조작자를 사용하려면 먼저 스크립트 구성 요소를 GameObject에 추가 ObjectManipulator 합니다. 또한 개체의 잡기 가능한 범위와 일치하는 충돌체를 추가해야 합니다.

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

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

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

Using the Manipulation Handler in the Unity editor

검사기 속성 및 필드

Object Manipulator Structure

일반 속성

호스트 변환

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

조작 유형

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

  • 한 손으로: 선택한 경우 한 손으로 조작할 수 있습니다.
  • 양손: 선택한 경우 양손 조작을 사용하도록 설정합니다.

원거리 조작 허용

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

한 손으로 조작 속성

한 손 회전 모드 근처

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

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

원핸드 회전 모드

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

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

양손 조작 속성

양손 조작 유형

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

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

Manipulation Handler

제약 조건

제약 조건 사용

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

제약 조건 관리자

드롭다운을 사용하면 연결된 제약 조건 관리자를 선택할 수 있습니다. 개체 조작자는 항상 제약 조건 관리자 가 연결되어 있는지 확인합니다. 동일한 형식의 여러 구성 요소가 동일한 이름 아래에 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

물리학 및 충돌

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

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

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

강체가 없는

No Rigid Body

강체가 있는 경우

Rigid Body

Elastics(실험적)

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

Bounds Control Elastics

참고 항목