언리얼 엔진/실습 PJT

책 따라하기 13 - 물리 엔진

VioletOokamiScythe 2025. 2. 1. 22:00
728x90

실전 게임 제작으로 배우는 언리얼 엔진 4 | 미나토 카즈히사 - 교보문고

 

실전 게임 제작으로 배우는 언리얼 엔진 4 | 미나토 카즈히사 - 교보문고

실전 게임 제작으로 배우는 언리얼 엔진 4 | [실전 게임 제작으로 배우는 언리얼 엔진 4]은 언리얼 엔진 4를 처음 시작하는 개발자를 위해 기획되었다. 실제 게임이 제작되는 순서에 맞게 챕터를

product.kyobobook.co.kr

2025.01.30 - [언리얼 엔진/실습 PJT] - 책 따라하기 12 - 변수, 위협과 보상

 

책 따라하기 12 - 변수, 위협과 보상

실전 게임 제작으로 배우는 언리얼 엔진 4 | 미나토 카즈히사 - 교보문고 실전 게임 제작으로 배우는 언리얼 엔진 4 | 미나토 카즈히사 - 교보문고실전 게임 제작으로 배우는 언리얼 엔진 4 | [실

violetookamiscythe.tistory.com


목차

1. 물리 엔진을 사용할 스태틱 메시 설정

2. 시뮬레이션

3. 물리 속성 설정

4. 동적 변경

5. 레그돌

6. 튕기기

7. 흘리기

8. 자동 복귀

9. 스위치 장식 추가


1. 물리 엔진을 사용할 스태틱 메시 설정

머터리얼 생성 및 등록

 

 

박스 단순화 콜리전 생성


2. 시뮬레이션

테스트 맵 생성 후 박스 애셋을 배치

 

 

애셋의 모빌리티 설정을 무버블로 변경

 

 

피직스 탭에서 피직스 시뮬레이트 활성화

 

 

게임 시작시 상자가 바닥으로 낙하

 

 

트리거 시작을 위해 오버랩 이벤트 생성에 체크


3. 물리 속성 설정

피지컬 머터리얼을 만들면 같은 재질의 메시에 한해 일괄적으로 설정값을 적용할 수 있다.

콘텐츠 브라우저에서 빈 공간을 우클릭 후 피직스 탭 > 피지컬 머터리얼 생성

 

 

그리고 이 피지컬 머터리얼을 적용할 스태틱 메시의 에디터를 열고

단순 콜리전 피지컬 머터리얼을 방금 만든 피지컬 머터리얼로 지정한다.

 

 

피지컬 머터리얼 에디터를 열고 속성을 편집한다.

 

 

여기에 없는 설정은 스태틱 메시의 디테일 패널에서 피직스 탭을 선택해 편집할 수 있다.


4. 동적 변경

머터리얼 생성 및 등록

 

 

트리거를 위한 박스 콜리전 추가

 

 

테스트 맵에 메시 배치

 

 

해당 액터용 블루프린트 생성

 

 

블루프린트 에디터에서 박스 콜리전 추가

 

 

접촉 이벤트 추가

 

 

1초 후 물리 시뮬레이션 시작

 

 

가만히 있다가 1초 후 낙하 시작


5. 레그돌

캐릭터 블루프린트 에디터를 열고, 컴포넌트 패널에서 메시를 선택한 후 디테일 패널에서 콜리전 프리셋을 Ragdoll로 변경한다.

 

 

이벤트 그래프의 Event AnyDamage 노드 네트워크 마지막에서 set simulate Physics 노드를 연결한다.

 

 

캐릭터가 죽으면 움직임이 비활성화되고 무기력하게 엎어진다.


6. 튕기기

죽거나 달릴 때 동전이 튕겨 나가도록 설정하기 위해 캐릭터에서 코인이 스폰될 곳을 지정해야 한다.

캐릭터 스켈레탈 메시 에디터를 열고, 소켓을 하나 추가한다.

 

 

이제 여기에서 동전을 생성해야 하므로, 캐릭터 블루프린트를 열고, 동전 감소 함수를 연다.

감소 로직 자체는 이미 완성되었으니, 동전의 생성과 날아가도록 힘을 주기만 하면 된다.

 

 

다음으로 캐릭터 메시 노드를 생성하고, 거기서부터 소켓의 위치를 가져오는 노드를 생성한다.

 

 

동전이 생성되므로, 이제 물리 시뮬레이션을 시작한다.

 

 

마지막으로 떨어지는 동전에 힘을 가해 튕겨 날아가도록 만든다.

날아가는 방향을 지정해주기 위해 빈 공간에 Make Vector 노드를 생성한다.

 

 

Return Value로 부터 벡터를 회전시기는 Rotate Vector Around Axis 노드를 생성한다.

 

 

날아가는 방향을 무작위로 하기 위해, Angle Deg 입력 핀으로부터 Random Float in Range 노드를 생성한다.

 

 

Rotate Vector Around Axis의 Return Value로 부터 Add Impulse 노드를 생성하고,

기존의 Set Simulate Physics 노드와 연결한다.

 

 

스프린트를 실행하면 동전이 캐릭터로부터 튀어나온다.


7. 흘리기

캐릭터가 죽으면 반복문을 이용해 가지고 있는 모든 동전을 흘리게 만든다.

이벤트 그래프의 빈 공간에 커스텀 이벤트를 하나 생성하고, 그로부터 WhileLoop 노드를 생성한다.

 

 

 

조건식으로 코인이 하나라도 있으면 실행이기 때문에, 현재 가지고 있는 코인 개수 변수를 Get 형태로 가져온다.

 

 

조건문으로 > 를 추가하고 값은 0, 결과를 WhileLoop의 Condition 입력 핀에 연결한다.

 

 

참일 경우 코인을 드롭하는 함수를 실행한다.

 

 

또한 데미지를 입었을 때(죽었을 때) 실행되는 이벤트로부터 이 이벤트가 실행하도록 만든다.

 

 

캐릭터의 사망과 동시에 튀어나가는 동전들을 볼 수 있다.


8. 자동 복귀

OnComponentEndOverlap 이벤트로 오버랩 종료 이벤트를 호출하여 발을 떼자마자 바로 복귀하는 버튼을 만들 수 있다.

스위치 블루프린트의 컴포넌트에서 박스 콜리전 우클릭 > 이벤트 추가 > OnComponentEndOverlap추가

 

 

부울 변수 추가

 

 

디테일에서 인스턴스 편집가능에 체크

 

 

분기 노드 추가 및 oncomponent end overlap 이벤트와 부울 변수와 연결

 

 

True 핀과 Reverse 핀 연결


9. 스위치 장식 추가

스위치 블루프린트에서 컴포넌트(스태틱메시) 추가

 


지정된 메시에서 컨벡스 콜리전 추가

 

 

메시 지정

 


2025.02.03 - [언리얼 엔진/실습 PJT] - 책 따라하기 14 - 콜리전

 

책 따라하기 14 - 콜리전

실전 게임 제작으로 배우는 언리얼 엔진 4 | 미나토 카즈히사 - 교보문고 실전 게임 제작으로 배우는 언리얼 엔진 4 | 미나토 카즈히사 - 교보문고실전 게임 제작으로 배우는 언리얼 엔진 4 | [실

violetookamiscythe.tistory.com

 

728x90