가상현실프로그래밍 7주차

2021. 10. 23. 12:48·학교수업
반응형

컨트롤러를 이용한  상호 작용

- 일반 오브젝트와 컨트롤러는 물리엔진 적용X (기본적으로 상호작용에 반응X)

-> 컨트롤러는 주변 객체 관통(터치, 잡기X)

- 컨트롤러와 상호 작용이 가능한 객체가 되기 위해서는?

-> 충돌체크, grab이벤트 감지 기능 필요

1. 컨트롤러

1) InteractTouch 컴포넌트 추가 ( 충돌 체크 )

2) InteractGrab 컴포넌트 추가 ( grab 액션 처리 ) - grab button 설정 필요 ( default = grip버튼 )

3) Left, Right 컨트롤러에 각각 추가

2. 객체

1) Rigidbody 객체 추가 // 물리 엔진 적용

2) InteractableObject 객체 추가

3) Is grabbable : true면 grab 가능

4) Hold Button To grab : false면 grip 버튼이 toggle 형태로 동작

5) 컨트롤러가 객체와 충돌 시 touch highlight color 색으로 변경 ( 충돌을 알기 위해 )

-> Outline Highlighter로 외곽선만 강조 ( 전체를 바꾸는 건 문제가 발생할 수 있음)

-> Thickness로 outline 굵기조절 (VRTK_Outline Object Copy Highlighter 컴포넌트 효과 추가해야함)

 

Grab Attach Mechanic : grab후 상호작용 가능한 객체와 어떤 관계를 가제는지에따라 다양한 grab 관게 지원

1) Fixed Joint Grab Attach

- Fixed Joint로 컨트롤러와 객체 연결 ( 기본은물체의 중심 )

- Interactable Object가 다른 충돌체와 충동하면 관절이 끊어 질 수 있다.

- Grab Attach Mechanic의 기본값

2) Spring Joint Grab Attach

- 상호 작용 가능한 객체를 스프링 조인트를 통해 컨틀롤러에 연결

- 컨트롤러와 객체 사이를 눈에 보이지 않는 스프링으로 연결

3) Track Object Grab Attach

- 상호 작용 가능한 객체에 컨트롤러 속도를 적용하여 객체의 위치를 추적

- 컨트롤러와 객체 사이 다른 물체를 놓을 수 있다.

- 다른 오브젝트와 충돌해도 grab 상황에서는 추적 계속 유지 

4) Rotator Track Grab Attach

- 상호 작용 가능한 객체에 회전력 적용

- 객체는 컨트롤러에 부착되지 않고 컨트롤러 회전에 따라 회전력을 가진다.

5) Child of Controller Grab Attach

- 설정한 객체를 컨트롤러 자식으로 설정

- 사용자가 설정한 위치에 객체 위치에 컨트롤러 부착

 

상호 작용 가능한 객체의 사용(Use) 이벤트 : InteractUse 컴포넌트 추가(컨트롤러에)

- 일반적으로 trigger버튼으로 사용 (Use Button)

- InteractableObject객체를 상속받아 -> StartUsing, StopUsing 함수 재정의

- Is Usable : check하면 Use 관련 이벤트 동작

- Hold Button To Use : check하면 trigger 버튼 누르고 있는 동안 발생

-  Use Only If Grabbed : grab하는 동안 use 이벤트 발생

 

Automatic grab

- 컨트롤러에 ObjectAutoGrab 컴포넌트 부착 -> 자동으로 특정 객체를 부착

- Object To Grab : 상호작용 가능한 객체 지정

- Object is prefab : 상호작용 가능한 prefab 지정

- Clone Grabbed Object : 복제해서 컨트롤러 부착 

 

사과나무

- Gravity true : 나무에 매달려 있지 못함 //중력 적용

- Gravity false : 나무에 매달려 있음 //중력 없음

- Is Kinematic false : 중력만 X 물리엔진 적용 => 우주처럼 둥둥 떠다님

(사과)-> Gravity false, Is Kinematic true => 사과를 나무에 매달려 있게 한다.(중력X 물리엔진 적용)

(컨트롤러)release 후 -> 중력 true, Is Kinematic false => 사과가 아래로 떨어짐

(사과나무)OncollisionEnter를 통해 다시 부착 구현 (중력 false, Is Kinematic true)

반응형
저작자표시 (새창열림)

'학교수업' 카테고리의 다른 글

웹개발 기초 7주차  (0) 2021.10.30
<시험정리> 가상현실프로그래밍  (0) 2021.10.23
임베디드기초 7주차  (0) 2021.10.23
<시험 정리>정보보호개론  (0) 2021.10.20
<시험정리>사물인터넷개론  (0) 2021.10.19
'학교수업' 카테고리의 다른 글
  • 웹개발 기초 7주차
  • <시험정리> 가상현실프로그래밍
  • 임베디드기초 7주차
  • <시험 정리>정보보호개론
숯불돼지왕갈비
숯불돼지왕갈비
  • 숯불돼지왕갈비
    게임 개발 공부기
    숯불돼지왕갈비
  • 전체
    오늘
    어제
    • 분류 전체보기 (303) N
      • 학교수업 (165)
      • 취업강의 (6)
      • C++ (46) N
        • 코딩 테스트 (4)
      • Unreal Engine 5 (25)
        • MMORPG 개발 (25)
      • Unreal Engine 4 (44)
        • Omak Project (3)
        • Unreal Engine 4 개발일지 (9)
        • Unreal Engine 4 (32)
      • Unity (1)
        • 개발 일지 (1)
      • 수학 (3)
        • 소프트웨어 공학용 수학 (3)
      • DirectX 11 (4)
      • 게임 디자인 패턴 (2)
      • 포트폴리오 (1)
      • 자격증 (1)
        • 정보처리기사 (0)
        • SQLD (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
숯불돼지왕갈비
가상현실프로그래밍 7주차
상단으로

티스토리툴바