Pink Transparent Star

Unreal Engine

[ Unreal ] 총알 발사체 만들기_ 블루프린트

채유나 2023. 7. 25. 17:16
728x90
해당 포스팅은 " Udemy 의 C++ 비디어 게임 제작하기 " 기반으로 정리 하였습니다.

1. Actor spawn 

🔹  Spawn Actor from Class 연결

     : 클래스에서 액터 생성

 

 

 ◻️ Spawning - 플레이 중 오브젝트를 만드는것

 ◻️ Transform - 오브젝트의 위치, 회전, 스케일 조합

 ◻️ Return Value pin - 노드의 출력 / 실행 시킨 결과로 나오는 데이터나 오브젝트

 

🔹 Add Impulse의 Impulse 연결 

 

[ 스페이스 바 누르면 튕겨 올라가는 이미지 ]

 

2. Spawn 위치를 Pawn으로 변경

 

Pawn

 : 엑터의 서브클래스, 게임 월드에서 플레이어의 물리적 묘사를 나타낸다.

 : F8을 길게 누르면 이동을 하면 Pawn의 위치를 확인 할 수 있다.

 

게임 정지 상태에선 Pawn이 없는 이유

 : 사용자를 위해 씬 안에 폰을 스폰, Player Start라는 씬 안의 액터가 주어진 위치에 배치

 

 

🔹 Get Player Pawn 생성 

     : Player Pawn의 레퍼런스 의미

     : Player Index는 몇 번째 플레이어인지 나타냄

🔹 Get Actor Location

     : Actor의 위치 값 반환

     : Get Player Pawn의 Return Value와 Target을 연결

     : Return Value를 Spawn Actor from Class의 Spawn Location과 연결

 

Pawn의 위치에 발사체가 발사되는 것을 확인 할 수 있다.

 

 

3. 카메라 회전

🔹 Get Actor Rotation

     : Actor의 회전 값 반환

     : Get Player Pawn의 Return Value와 Target을 연결

     : Return Value를 Spawn Actor from Class의 Spawn Rotation과 연결

But, 카메라가 회전하더라도 Pawn의 회전 값을 변하지 않았다. 그 이유는 무엇일까?

 

언리얼에선 Pawn이 카메라 회전과 함께 회전하도록 설정되어 있지 않기 때문이다.

이를 해결하기 위해 해당 노드가 아닌 다른 노드를 이용해 회전 값을 받아 올 수 있다.

 

🔹 Get Control Rotation

     : 제어하는 Pawn의 회전값을 반환

     : Get Actor Rotation 삭제

     : Return Value를 Spawn Actor from Class의 Spawn Rotation과 연결

 

4. 발사체 발사하기

🔹 Get Actor Foward Vector 

     : 월드 좌표계를 기준으로 액터의 정면을 나타내는 벡터 출력

     : Spawn Actor from Class의 Return Value와 연결

🔹 Multiply

     : 두 입력 값을 받아 곱한 값 출력

     : 언리얼에서는 단위가 cm로 초당 1cm씩 이동하기 때문에 값을 곱해 속도를 나타내야 한다.

     : Get Actor Foward Vector와 연결

     : Add Impulse의 Impulse 연결 

[ 발사 되는 이미지 ]

 

5. 탄약 갯수 출력하기

🔹 블루프린트의 VARIABLES에 Int 변수를 추가한 뒤 Details창에 갯수를 지정해준다.

🔹 My Blueprint에서 이벤트 그래프로 변수를 드래그 해준다.

      ◻️ Get "변수명"

         : 저장된 값을 가져옴

         : Ctrl 누르면서 드래그

      ◻️ Set "변수명"

         : 저장된 값을 덮어씀

         : Alt 누르면서 드래그

🔹 Get 의 경우 Print String과 연결

🔹 Subtract

     : 두 값을 뺀 값 출력

     : Get과 Set을 값을 빼기

     : Print String과 연결하여 값이 감소 할 때마다 출력

 

5. 발사체 제한하기

🔹 비교 연산자

    ◻️ greater : 주어진 값보다 큰지 확인

    ◻️ equal : 주어진 값과 동일한지 확인

    ◻️ less : 주어진 값보다 작은지 확인

     : greater 연산자를 이용하여 발사체 변수와 비교

🔹 Branch

     : 조건에 따라 True, False 의 흐름을 만듬

     : Boolean 값을 살펴본 뒤, 적합한 값을 출력

🔹 스페이스 바와 연결

728x90