해리포터라는 영화에서 주인공 해리포터는 벽을 뜷고 호그와트로 가는 것을 보게 됩니다.
현실에서는 일반적으로 있을 수 없는 일이지만 가상 세계도 그럴까요?
지난 시간에는 '에셋스토어로 마을 꾸미기'를 다루었는데요.
https://itadventure.tistory.com/408
재미있게도 우리는 건물을 배치한 것 외에는 아무것도 하지 않았는데요.
이 마을에서 자모 로봇을 배치해 플레이해보면 이와 같이 벽을 뜷고 지나갈 수 있는 것을 보게 되는데요.
그 이유는 유니티에서는 보이는 물체와 충돌하는 물체가 나뉘어져 있기 때문입니다.
사실상 우리에게 보이는 이 건물들의 모양은 모두 '허상'이라는 거지요.
다만 일부 고급 에셋은 '충돌영역'이 이미 설정되어 있어 예외일 수도 있습니다.
그 전에 한가지 기본적으로 알아둘 내용이 있는데요.
건물은 여러개의 복잡한 3차원 도형으로 구성되어 있습니다.
그러다 보니 각각의 도형 하나하나를 일일히 충돌체로 만들어 두면 유니티 엔진이 충돌여부를 검사할 때마다
많은 연산을 해야 해서 속도가 느려집니다.
그렇기 때문에 충돌체의 경우 세세한 충돌을 감지하기 보다는 대략적인 윤곽에 해당하는 정육면체나 캡슐(알약을 세워놓은 모양)의 범위만 정해놓고 이를 충돌영역으로 정해두는 것이 일반적인데요.
유니티에서는 이를 콜라이더(Collider)라고 합니다.
※ 여담으로 가상세계 세컨드라이프에서도 동일한 개념이 있는데 오브젝트 속성 중 팬텀(Phantom)이라는 속성입니다.
이 체크상자를 체크하면 홀로그램처럼 캐릭터가 물체를 뜷고 지나가지만 체크상자를 꺼두면 물체가 장애물이 됩니다.
이제 이 콜라이더를 하나씩 잡아보도록 할까요?
우선 건물을 하나 선택합니다.
그리고 우측 인스펙터(Inspector) 창을 가장 아래로 스크롤 다운시켜
Add Component 버튼을 클릭합니다
이어서 추가할 컴포넌트로 Physics(피직스) - Box Collider(박스 콜라이더) 순으로 선택합니다.
그러면 건물 주위에 이런 녹색 테두리가 생겨나는데로 이 것이 바로 박스 콜라이더, 즉 충돌체입니다.
실제 보이는건 건물 모양이지만 캐릭터가 지나가려고 할때 장애물이 되는 것은 이 정육면체인 것이지요.
그래야 충돌면 체크하면서 그 영역을 계산할 때 컴퓨터가 힘들어 하지 않습니다.
자모 로봇을 월드에 배치하고 이 건물을 지나가려하면 장애물 때문에 지나갈 수가 없는 것이지요.
이러한 컬리젼 설정 작업을 모든 건물에 적용해주면 됩니다.
중간에는 이러한 모양의 건물도 있을 수 있습니다.
콜라이더를 적용했는데 건물 근처에는 가지도 못해서 좀 더 범위를 줄이고 싶을 때도 있는데요.
이러한 경우를 콜라이더 영역을 편집하는 기능을 이용하면 됩니다.
박스 콜라이더를 추가하면 Edit Collider(콜라이더 편집)이라는 아이콘이 보이실 겁니다.
이 버튼을 클릭하시면 물체 주위에 작은 점이 표시가 되는데요.
이 점을 클릭하여 드래그하면 아래와 같이 박스 콜라이더의 범위를 조정하실 수 있습니다.
아래와 같이 조정해주시면 이제 캐릭터가 지나갈 때 정육면체 영역만이 장애물이 됩니다.
참고로 자모 로봇 캐릭터도 콜라이더가 내부적으로 들어 있습니다.
정육면체는 아니고 알약을 세워놓은 듯한 캡슐 콜라이더이지요.
로봇도 모든 관절을 일일히 충돌체크하면 복잡하기 때문에
바로 이 콜라이더들끼리만 충돌을 감지하는 것이지요.
다만 캐릭터 컨트롤러에 기능이 내장되어 있어 캡슐 콜라이더를 별도로 추가하지는 않습니다.
Radius(반경)과 Height(높이)가 실제 그 크기를 담당합니다.
시도해보실 부분은 카메라를 콜라이더를 설정한 건물이 보이게 이동 배치하고
자모로봇을 그 근처에 배치해 플레이해보시면 됩니다.
자모 로봇을 월드에 배치하는 방법은 아래 게시글에 있으니 참조해 주시면 되겠습니다.
https://itadventure.tistory.com/404
한단계 더 나아가서 카메라가 자동으로 자모 로봇을 따라다니게 하면 더 좋겠지요?
해당 부분은 다음 시간에 다뤄 보도록 하겠습니다.
필요하신 분에게 도움이 되셨을지요?
오늘도 여기까지 읽어 주셔서 감사합니다 :)
양 무리들에게 울타리는 장애물이라기보다는 보호의 영역이라고 합니다.
울타리가 없으면 양은 먼 곳으로 스스로 벗어나 길을 잃기도 하고 벼랑 아래에 떨어져 버리기도 하기 때문이라고 하는데요. 이와 같이 성경 말씀에서도 삶의 울타리가 되는 존재가 있으며 바로 "예수"라고 전하고 있습니다.
나는 선한 목자라
선한 목자는 양들을 위하여 목숨을 버리거니와
삯군은 목자도 아니요 양도 제 양이 아니라
이리가 오는 것을 보면 양을 버리고 달아나나니 이리가 양을 늑탈하고 또 헤치느니라
달아나는 것은 저가 삯군인 까닭에 양을 돌아보지 아니함이나
나는 선한 목자라 내가 내 양을 알고 양도 나를 아는 것이
아버지께서 나를 아시고 내가 아버지를 아는 것 같으니
나는 양을 위하여 목숨을 버리노라
- 요한복음 10장 11~15절 말씀 -
다음 게시글. 360도 HDRI 배경 적용하기
https://itadventure.tistory.com/411
'유니티3D' 카테고리의 다른 글
유니티 3D - 360도 HDRI 배경 적용하기 (2) | 2021.05.23 |
---|---|
유니티3D 한글판? 오!? (0) | 2021.05.22 |
크레이의 유니티 놀이 (2) | 2021.05.16 |
유니티 3D - 아셋 스토어 캐릭터 스크립트 수정 - 스카이 워킹! (1) | 2021.04.26 |
유니티 3D - 아셋 스토어 캐릭터 사용하기 (0) | 2021.04.24 |