Unreal Engine/게임클래스 - 언리얼엔진 기초

[9강] Collision

whereareyoung 2023. 7. 19. 17:59

레벨 생성 

이번 시간에는 본격적으로 Collision을 다루기에 앞서 간단한 맵 세팅과 재질을 다루었다. 

 

1. Floor 생성

Ctrl + N > Default > 바닥제거 > 큐브 불려와서 > 위치 reset, 크기 40*40*1

2. Wall 생성 

바닥복사(Ctrl+W) > Scale x,y,z(1, 40, 5) > Transform z(300)

뷰포트 위에 이런거 보면서 안쪽으로 대충 세워주기 

* 탭으로 뷰 바꾸면서 작업하면 수월하다 

3. 아웃라이너 정리 

보기깔끔하게 Floor, Wall으로 Rename 해서 정리해주었다.

 

Material(재질) 만들기

1. 폴더를 생성해준다

2. 뷰옵션 > 엔진 콘텐츠 표시

* View options에서 Engine 컨텐츠 옵션켜주면 기본적으로 엔진에서 사용되는 것들이 보여지게 된다 

3. Material 폴더 > 머터리얼 >  "MatMaterial" 생성

 

4. "MatMaterial" > Constant Vector 4 생성 > 베이스 컬러에 연결 > 값 RGBA(0.2, 0.2, 0.2, 0) 으로 설정 

* Constant Vector 4 : 색상을 정의할 수 있는 상수

변수로 색상 변경하는 것도 뒤에 있을 강의에서 다룰 예정 

 

5. Constant 생성 > 메탈릭에 연결 > 0.5값 넣어주기 (1일경우 완전한 메탈 재질이 됨)

* 메탈릭 : 금속재질 - float 하나만 들어감 

6. 2. Constant 생성 > Roughness에 연결 > 0.5값 넣어주기 (0일경우 거친게 없으니 완전 맨들맨들함)

7. 저장 후 바닥에 재질 입혀주기 

8. 풀레이어를 중간쯤에 올려두고 Collision 맵(Level) 저장하기 

 

Collision(충돌) 정의 

충돌의 종류 

   1. Overlap (겹침) : 다른캐릭터에게 맞았을때 그 캐릭터 지나감 

   2. Hit (막힘) : 칼이 캐릭터에 맞았을때 튕겨나온다, 총알 등 

 

충돌체 (Collision)

   1. Box 

   2. Sphere

   3. Capsule 

충돌을 정의하기 위해 필수적임 

 

예제 실습

1. Blueprint > 큐브 블루프린트 생성 > "BP_01_Cube", 

   1) create > 블루프린트 클래스 > Actor

   2) Component 추가 > Cube 

2. Blueprint > 큐브 블루프린트 생성 > "BP_02_Vector"

   1) create > 블루프린트 클래스 > Actor

   2) Component 추가 > Cube 

3. Blueprint > Actor 생성 > "BP_03_Collision" > Rendering 탭에 "Hidden in Game" 비활성화

화면에서 콜라이더와 블루프린트 엑터가 보이도록 함

4. "BP_03_Collision" > Box collision component 추가 > Sclae 1.5, 1.5, 3.0 > TextRenderer 추가

화면에서 잘 보이지 않기 때문에 글자를 추가해서 잘 보이도록 한 것임 

5. TextRenderer를 다음과 같이 설정 

6. TextRenderer 위치를 높여주기 

7. 모드 > 큐브 생성 > "BP_03_Collision" 위치를 복사, 붙여넣기 > 조금 더 위쪽으로 올려주기 > Scale(0.5, 0.5, 0.5)

큐브를 중력에 의해서 떨어지게 하고, 이것을 통해 정보를 가져올 수 있도록 함

 

모빌리티 종류 

1. Static(스태틱) : 집, 건물등의 위치고정 물체. 게임 실행상태에서는 움직일 수 없도록 고정되어있음. 라이트 맵핑이 적용되지 않음.

* 라이트맵 : 게임모드에서 빛 표현의 경우 실시간으로 그림자 연산이 진행되며 상당한 퍼포먼스를 소요시키기 때문에 몇몇 물체들의 라이트를 미리 구워놓는것 

2. Stactionary(정지된) - 이동 불가능하지만 Cache 방식의 라이트 맵핑 사용 

3. Movable(움직일 수 있는) - 무겁고 가장 느림, 실시간으로 라이팅을 사용

 

8. Cube > 모빌리티탭 > Mobable 

큐브의 모빌리티 상태가 Static이면 움직임이 불가능하기 때문에 Movable로 바꿔주어야 함 

9. Collision > 콜리전 프리셋 탭 확인 

 

10. Physics > Simulate Physics 토글 활성화 

이 토글을 활성화 시켰을 경우 물리연산을 할수있도록 다음과 같이 설정이 변경됨 

1. 오브젝트가 자동으로 "Movable"로 변경됨 

2. Collision > 콜리전 프리셋 이 PhysicsActor 로 변경됨 

 

플레이를 눌러보면 물리연산이 되어 큐브가 떨어지는 것을 알 수 있음