간단한 블루프린트 사용법 및 샘플 에셋 제작방법

 

 

---------

일단...블루프린트가 뭐고 왜 나왔는지 까지의 깊은 설명은 생략하도록 하겠습니다.

간단히 설명하면 블럭맞추기 같은 느낌으로 작업하는 프로그래밍 수단이라고 생각하시면 됨.


앞으로 블루프린트는 약어인 BP로 부르도록 하겠습니다.

 

 

이번 시간에는 간단하게 "밟으면 3초후 사라지는 블록" 을 만들어보도록 하겠습니다.

 

1. 블루프린트 생성

가장 쉬운 방법은 콘텐츠 브라우저 화면 우클릭 -> 블루프린트 클래스 선택

 

그 외 다른 BP들 (레벨 BP등) 은 아래 블루프린트항목에서 찾아볼 수 있음.

 

 

블루프린트 생성을 누르면 다음과 같은 화면이 뜬다.

"모든 클래스" 에 대한 설명은 나중에 하기로 하고, 우선은 현재 보여져 있는 클래스들에 대해 설명하도록 하겠습니다.

 

명칭 설명 배치 위치 기타 (요약)
액터 월드에 배치 가능한 기본 오브젝트 레벨 월드에 배치된다 = 액터 BP
Pawn "컨트롤"이 가능한 액터 레벨 NPC 또한 "컨트롤러"를 가질 수 있음
캐릭터 "플레이어 컨트롤"이 가능한 Pawn 레밸 "플레이어"
플레이어 컨트롤러 플레이어 전용 컨트롤러 레벨 (보이지 않음) AI가 사용하는 AIController도 존재
게임모드 각 레벨에서 사용되는 기준을 가진 BP 레벨 (보이지 않음) 게임의 룰을 결정하는 에셋
Actor Component 추가 기능을 제공하는 Add-On BP 액터 BP에 부착 액터의 추가 기능 제공
Scene Component 추가 기능을 제공하는 Add-On BP 게임모드 BP 등에 부착 컨트롤러, 게임모드 등에 추가 기능 제공

 

 물론, 위의 7종만 있는것은 아니고, 더 많은 종류들이 존재하나 이는 이후 심화과정때 설명드리도록 하겠습니다.

 

우선은, 액터를 선택해서 BP를 하나 만들어줍니다.

 

 

 

2. 블루프린트 작업

블루프린트를 생성 후 열면, 다음과 같은 화면이 나옵니다.

여기서 유의깊게 보셔야하는것은

 

1. 뷰포트 탭

2. 이벤트 그래프 탭

 

2종입니다.

 

나머지는 천천히 봐도 돼요.

 

우선 뷰포트 탭입니다.

 

뷰포트 탭은 "현재 에셋이 어떻게 보이고 있는지" 를 육안으로 확인가능하도록 해주는 탭입니다.

즉, 이 에셋을 레벨에 배치하면 뷰포트 탭에 보이는대로 보인다는것이죠.

 

이제 이 에셋에 두가지 사항을 추가합니다.

우선, "밟혔는지" 여부를 판별할 수 있는 "Collision"을 추가합니다.

다음으로, "밟을 수 있는" 것을 만들어 줘야 하기 때문에, 블록 형태의 "Cube"를 추가합니다.

 

 

다음과 같이 배치되면 됩니다.

 

"저는 저렇게 된게 아니라 Default Scene Root라는게 있는데요?" 라는 의문이 생긴다면, 추가한 Component를 잡고 드래그를 해보세요.

 

 

저 두가지를 배치하고 나면, 뷰포트에 다음과 같이 보일것입니다.

 

우측의 디테일 탭의 수치를 조절하면서 크기를 적당히 조절합시다.

 

이렇게 생긴 친구들을 조절하시면 됩니다.

 

여기서 주의사항은, Box Collision의 크기가 Cube의 사이즈보다는 크거나 같아야한다는 것입니다.

작으면 Collision 체크가 제대로 안 일어날 수 있어요.

 

저는 이와같이 수정해서 사용하고자 합니다. (수치는 바로 위의 스크린샷에 있음)

 

이제, 이벤트 그래프 탭으로 가봅시다.

 

이벤트 그래프 탭이 다들 들어보셧을 "블루프린트 코딩"을 수행하는 부분입니다.

 

어떤 기능이 있고, 어떻게 사용해야하는지는 심화과정에서 천천히 설명하고, 우선 간단하게 설명드리도록 하겠습니다.

 

 

처음 들어오면 이 3가지 "이벤트 노드"가 보입니다.

 

각 이벤트가 발동시 수행되는 스타트 노드인데, 우리는 여기서 중간에 있는 ActorBeginOverlap 1종류만 사용할거에요.

 

우선, 이번에 만들려던  "밟으면 3초후 사라지는 블록" 에서 3초후 라는 이벤트를 수행하고자, "Delay" 함수를 추가합니다.

 

화면 우클릭 -> 검색창에 delay라고 검색하셔서 클릭 하시면 됩니다.

 

 

그다음, 블루프린트 코딩에서 가장 중요한 "노드 연결"을 하면 되는데...

 

그냥 먼저 수행할 노드의 우측 흰색 화살표를 드래그 해서 다음에 수행할 노드의 좌측 흰색 화살표로 연결해주면 됩니다.

 

이렇게 끌어서 놓으면
연결이 됩니다

다음, Duration의 수치를 3으로 바꿔줍니다.

 

해당 수치는 초 단위로, 좀 더 정밀한 값을 필요로 하면 소수점을 이용하면 됩니다.

 

다음, 이제는  "밟으면 3초후 사라지는 블록" 에서 "사라지는" 기능을 추가합니다.

 

우선은 간단하게, 액터를 소멸시키도록 하죠.

 

우클릭 -> 검색에서 destroy를 검색해서 Destroy Actor 노드를 가져와 연결합니다.

 

 

그럼 끝입니다.

 

전체 노드는 다음과 같습니다.

 

이제 만든 액터를 월드에 배치시키도록 하겠습니다.

 

이친구를 잡고 드래그해서 원하는곳에 배치하면 됩니다.

 

 

이제 어떻게 되는지 볼까요?

 

게임을 실행하고, 캐릭터를 조작해서 블럭 위로 올라가도록 합니다.

 

 

 

 

넵. 잘 작동하네요.

 

 


심화과정 1.

"블록이 사라지지 않고, 몇초 뒤에 다시 나타나게 하고 싶어요!"

 

그렇다면, 노드 설정을 조금 더 바꿔야합니다.

 

우선 작성하고, 설명을 드릴게요.

 

 

 

1. Delay Node : 방금 사용했던 딜레이 노드입니다.

2. Set Visbility : Cube를 보이지 않도록 처리합니다

3. Set Collision Enabled : 큐브의 충돌체크를 처리합니다.

4. Delay Node : 3초 뒤 다시 나타나도록 처리하기 위해 배치합니다.

5. Set Visbility : Cube를 다시 보이도록 합니다.

6. Set Collision Enabled : 큐브의 충돌체크를 처리합니다.

 

자세한 설명은 직접 찾아보시거나, 이후 심화설명때 설명드리겠습니다.

 

 

 

결과입니다.

 

이를 활용해서 점프맵 등을 만들 수 있습니다.

 

기본적인 BP 설명은 이정도로 하고, 다음에는 약간의 심화과정 (BP 이벤트 노드 설명 등)을 해드리겠습니다.

 

+ Recent posts