게임 개발/학습 일지

언리얼 게임만들기 튜토리얼 - 퍼즐 어드벤처 키 만들기

이개 2026. 2. 5. 13:32

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/designer-02-create-a-key-in-unreal-engine?application_version=5.6

 

디자이너 02 언리얼 엔진에서 키 만들기 | 언리얼 엔진 5.7 문서 | Epic Developer Community

블루프린트를 사용하여 언리얼 엔진에서 플레이어가 선택할 수 있는 키를 만드는 방법을 알아봅니다.

dev.epicgames.com

 

키 만들기

열거형(Enumeration) Enum이라고도 하며, 프로젝트 전체에서 사용할 수 있는 고유 값 목록을 저장합니다. 키의 경우, 열거형을 사용하여 선택할 수 있는 다양한 키 타입(노란색 타원형, 파란색 사각형, 빨간색 원뿔형)을 정의합니다.
구조체(Structure) Struct라고도 하며, 관련 정보를 함께 그룹화하는 데 사용됩니다. 키의 경우 구조체를 사용하여 키의 모든 어트리뷰트, 즉 메시(3D 모델)와 해당 메시에 적용할 머티리얼 컬러(빨간색, 노란색, 파란색)를 저장합니다.

 

1. Enum 열거형으로 Blue, Yelllow, Red 키 옵션을 설정하기

2. 구조체로 Key Material(머티리얼 인스턴스 -> 오브젝트 레퍼런스 타입), Key Mash(스태틱 메시-> 오브젝트 레퍼런스)를 설정하기

3. 키 컬러 머티리얼 생성

 - 기본 머티리얼 생성

 - 빨강, 파랑, 노랑 머티리얼 인스턴스 생성

4. 키 블루프린트 만들기

  • 주요 포인트
    • 프로젝트에서 키를 시각적으로 나타내는 스태틱 메시
    • 플레이어가 키를 줍기에 충분할 정도로 가까이 왔을 때 이를 탐지하는 콜리전 볼륨
    • 키 타입을 알 수 있는 방법
    • 플레이어가 키와 충돌할 때 발생하는 일을 결정하는 게임 로직
    • 요약 : 캡슐 컴포넌트 추가 ->  프로퍼티 구성(Enum Key Type) -> 키 타입을 셰이프와 컬러에 매핑 -> 블루프린트 함수 라이브러리에 Set Static Mesh, Set Material 함수 생성  
    •  

5. 키 컴포넌트 구성

  • BP_Key 블루프린트 클래스 생성
    • 액터는 일반적으로 레벨에 배치하는 오브젝트를 만드는 데 사용한다. 캐릭터처럼 컨트롤 할 수는 없지만 인터랙션이나 로직을 만들 수 있다.
  • Capsule Collision 컴포넌트 추가

키 메시 자체에 콜리전 추가도 가능하지만, 콜리전 셰이프를 사용하면 복잡한 지오메트리를 고르게 다듬을 수 있어 탐지와 게임 퍼포먼스가 향상된다.
캡슐 콜리전과 스피어 메시를 추가하고, 스피어 스케일은 0.3, 0.3, 1.0으로 만든다,
콜리전 프리셋을 NoCollision으로 설정 / 캡슐 컴포넌트와의 콜리전을 추가했기 때문에 메시의 콜리전은 비활성화
캡슐 설정
회전 무브먼트 추가

  •  

6. 키 프로퍼티 구성

블루프린트에서 아까 만든 Enum 변수를 불러오고, 디테일->카테고리에 Setup이란 내용을 입력하고 컴파일한다.그러면 KeyType 프로퍼티가 표시된다.
KeyMap이란 열거형 변수를 하나 만들고 변수 타입을 맵으로 변경해준다.
추가된 드롭다운에는 KeyData 구조체를 넣어준다.
키맵에 새 엘리먼트를 추가하고 머티리얼 인스턴스와 메시를 등록해준다.
액터->오브젝트 레퍼런스형 변수를 하나 추가한다.
맵이었던 컨테이너 타입을 단일로 변경해준다.
블루프린트 함수 라이브러리 파일을 하나 만든다.
최종
완성된 함수

 

For Each Loop로 배열의 각 Static Mesh Array 항목에 액션을 적용해준다.

 

Find는 키 타입을 받아 해당하는 메시와 머티리얼을 가져올 수 있다. Find를 생성해 구조체 핀 분할을 해준다.

유효한 메시 셰이프가 함수로 전달되었는지 확인하기 위해 Is Valid 노드도 생성한다. 전달된 경우, 오브젝트의 스태틱 메시와 머티리얼을 모두 설정해주고 아니면 머티리얼만 설정한다.

 

 

Set Static Mesh, Set Meterial로 오브젝트를 세팅해준다.

 

7. 키 초기화

키 블루프린트 -> Construction Scripts 탭에서 함수와 변수를 불러와 연결해준다.
이제 키 액터 디테일 패널에서 원하는 타입의 키로 변경할 수 있다.

8. 블루프린트 인터페이스를 사용하여 플레이어 캐릭터에 키 부여 기능 만들기

  • 블루프린트 인터페이스를 사용한 블루프린트 간 통신
    • 블루프린트 인터페이스는 인터페이스에 대한 액세스 권한이 있는 각 블루프린트가 사용할 수있는 함수 목록을 저장한다.
    • 키가 플레이어와만 상호작용해야하기 때문에 BP_AdventureCharater에서 구현할 블루프린트 인터페이스를 생성한다.
    • 출력이 없는 인터페이스 함수는 이벤트처럼 작동하고, 출력이 있는 함수는 일반 함수처럼 작동한다.
  • 새 플레이어 캐릭터 생성
    • 디폴트 플레이어 캐릭터를 복제하여 고유한 배리언트를 생성한다.

9. 플레이어에 블루프린트 인터페이스 추가

10. 주운 키 저장 기능, 조회 기능 추가

11. 플레이어와의 충돌 기능 추가

12. 키 테스트하기

 

 

머티리얼 인스턴스 만드는 법을 배울 수 있었다.

 

키 모양이 마음에 안 들어서 조금 더 열쇠처럼 보이도록 만들어보았다.

 

 

블루프린트 인터페이스 다루기는 주말에 해봐야겠다.