-
[언리얼 블루프린트]레벨 블루프린트의 사용 방법Unreal Engine Blueprint/블루프린트를 이용한 게임 만들기 2019. 11. 4. 15:41
레벨 블루프린트란? 언리얼에서 레벨은 유니티에서의 씬과 같습니다. 그리고 블루프린트는 언리얼에서 제공하는 또 하나의 스크립트입니다. 레벨 + 블루프린트는 말 그대로 그 레벨에서 사용하는 블루프린트 즉 스크립트입니다. 만약 다른 레벨[씬]로 넘어가면 당연히 작동이 안 되겠죠. 그럼 레벨 블루프린트는 언제 쓰이는가? 그 레벨에서만 일어나는 작업을 해주면 편합니다. 간단하게 3d 퍼즐 게임으로 예를 들어 보겠습니다. 퍼즐 게임을 하다 보면 길이 막혀있지만 특정 퍼즐을 풀었을 때 이벤트가 발생해 길이 열리게 됩니다. 이런 일 [퍼즐 이벤트]은 다른 맵으로 이동하면 같은 퍼즐이 있을 수도 있지만 보통 맵마다 다른 퍼즐이 존재합니다.
실제 레벨 블루프린트를 이용해서 만든 간단한 퍼즐 요소 위 사진은 오늘 해 볼 예제이고, 설명을 하자면 계단이 보이지 않았지만 큐브를 특정 위치로 옮기니 계단이 나타났습니다. 이렇게 플레이어가 진행을 하는데 막혀 있지만 퍼즐을 풀었을 때 발생하는 이벤트를 레벨 블루프린트에서 해줄 수 있습니다.
먼저 레벨 블루프린트는 빨간색 동그라미 부분을 누르면 밑에 "레벨 블루프린트 열기"로 열수 있습니다. 막상 열어도 아무것도 추가해주지 않아 텅 빈 모습이 보입니다. 그게 정상이니 걱정하지 마세요. 레벨 블루프린트의 장점은 레벨에 있는 모든 액터나 폰 등 오브젝트들을 가져와서 건들일 수 있습니다.
언리얼을 하면은 오른쪽 상단에 "월드 아웃라이너"라고 레벨에 존재하는 것들을 볼 수 있습니다. 여기에 있는 모든 것들을 레벨 블루프린트에 추가해 그 값이나 머티리얼 등 바꿔줄 수 있다는 이야기 입니다. 우선은 계단을 레벨에 배치 해줍니다.
배치 해준 계단을 클릭 하고 난 뒤 디테일 부분에서 여러 옵션이 존재합니다. 빛, 콜리전, 랜더링, 태그 등 여러 옵션에서 저희가 바꿔야 할 옵션은 랜더링 입니다. 왜냐하면 안보였다가 특정 퍼즐을 해결 했을 때 보이게 해야하기 때문 입니다. 랜더링 옵션을 찾아서 Visible이 체크 되어있을 텐데 체크를 해제 해주세요. 그럼 이제 계단이 사라졌을 겁니다. 이제 다음은 실제 퍼즐 부분을 만들어야 하는데 왼쪽 상단에 "모드" 에서 트리거 볼륨을 검색해서 맵에 배치 해 주세요. 트리거 볼륨은 이름 그대로의 역활을 가진 오브젝트 입니다. 배치를 해줬다면 레벨 블루프린트에서 함수 추가하는 방법 중 하나의 방법을 설명하겠습니다. 블루 프린트에서 함수 추가는 여러 방식이 있습니다.
함수를 추가하느 방식 위 사진과 같이 블루 프린트를 열어서 왼쪽 상단에서 보이는 함수에서 추가하는 방법이 있고, 아니면 블루 프린트 공간에서 우클릭을 누르고 "custom event 추가"로 함수를 생성하는 방식이 있습니다.
레벨 블루프린트에서는 모든 액터에 대해 미리 정의 되어있는 함수를 추가할 때는 우클릭을 누르고 이벤트 추가로 추가할 수 있습니다. [저기서 보이는 이벤트들은 어떤 액터든 사용이 가능한 이벤트 입니다.] 트리거 볼륨을 누르고 마우스 우클릭으로 "OnActorBeginOverlap" 과 "OnActorEndOverlap" 이벤트를 추가해 주세요. 이름만 들어도 어떤 일을 할 건지 잘 알 수 있습니다.
추가를 해주면 레벨 블루프린트에서 이런 모습을 볼 수 있습니다. 여기서 가장 중요한 것은 Overlapped Actor 노드가 오이 트리거 볼륨과 오버랩 된 액터를 가져오는 것 이 아니라 Other Actor가 오버랩 된 액터를 가져온다는 점입니다. 한 마디로 트리거 볼륨과 오버랩이 된 액터를 가져오고 싶다면 Other Actor를 가져와야지 제대로 된 정보를 얻을 수 있다는 점입니다. 만약 오버랩이 되고 플레이어야지만 특정 이벤트를 발생하고 싶다면 Other Actor를 가져오고 "Actor의 클래스가 플레이어의 클래스인가?" 로 조건문을 걸어서 이벤트 발생을 시켜주면 됩니다. 그런 부분은 게임에 맞게 스크립트를 짜면 됩니다. 저희가 해야 할 일은 간단하게 이 볼륨 위에 어떠한 물체가 올라 왔을 때 계단이 보이며 올라오지 않았더라면 계단이 안보이게 하는 퍼즐입니다. 그렇다면 오버랩이 시작 됬을 때 계단이 보이고 오버랩이 끝났을 때 계단이 안보이게 하는 일만 해주면 되는겁니다. 이 레벨 블루프린트에 계단을 드래그 앤 드롭으로 넣어주면 그 계단을 참조 할 수 있습니다.
밑줄 친 것 처럼 드래그 앤 드롭으로 계단을 가져와 계단에 대해 참조를 해서 오버랩이 되었을 경우 비지블을 체크해줘서 계단이 보이게 하고 콜리전도 활성화 시켜줍니다. 아까 말은 안했지만 콜리전을 건들이지 않더라면 보이지만 않을 뿐 콜리전은 존재해 계단을 오르고 내릴 수 있습니다. 때문에 콜리전도 같이 꺼주고 켜줘야 합니다. 오버랩이 끝났을 경우에는 다시 비지블 체크를 해제해주고 콜리전도 같이 꺼주면 맨 처음 봤던 .gif 처럼 불타는 이펙트 부분에 있는 트리거 볼륨에 어떤 액터가 오버랩이 됬을 경우 계단이 보이고 오버랩이 끝났을 경우 계단이 사라지는 간단한 퍼즐을 만들어 봤습니다. 레벨 블루프린트의 사용방법을 간단한 퍼즐을 이용해서 설명했습니다만 굳이 계단이 아니더라도 "미리 만들어 둔 블루 프린트 액터나 캐릭터를 가져와서 특정 상황에서 그 액터에 있는 이벤트, 함수를 실행시키는 것" 도 가능합니다. 이 말이 오늘 한 레벨 블루 프린트의 핵심이라고 할 수 있습니다. 오늘 한 계단 퍼즐은 이러한 레벨 블루프린트가 어떻게 사용하는지 알기 위해 간단하게 만든 것 이기 때문에 잊으셔도 되지만 저 말은 잊지 않으셨으면 좋겠습니다. 이렇게 레벨 블루프린트의 사용 방법을 간단하게 설명 했습니다만 이해가 안가는 부분은 물어보신다면 설명 해드리겠습니다.
'Unreal Engine Blueprint > 블루프린트를 이용한 게임 만들기' 카테고리의 다른 글
[언리얼 블루프린트]Super Hot2 (0) 2019.11.25 [언리얼 블루프린트] SuperHot (0) 2019.11.18 [언리얼 블루프린트]포스트 프로세스 사용하기 (1) 2019.09.23 [언리얼 블루프린트]Slow Time 만들기 (0) 2019.09.16 [언리얼 블루프린트]누구나 할 수 있는 게임 만들기 (0) 2019.09.09