Level에 Object를 생성 및 Blueprint란?
Blueprint란?
- 언리얼 엔진에서 제공하는 비주얼 스크립팅 시스템으로, 노드를 연결해 로직을 구현하는 클래스 기반 시스템이다.
C++ 코드를 작성하지 않고도 게임 로직, 이벤트, 동작 등을 구현할 수 있다.
Object를 Level에 생성하는 방법
- 이번 과정에서는 블루프린트만 이용해서 오브젝트를 레벨에 배치 해보겠습니다.


Actor로 지정한 이유는 움직이지 않을 고정 객체이며 controller를 이용하지 않을 객체이기 때문입니다.
생성하고 클릭하여 blueprint editor 창을 활성화 시킵니다.

왼쪽 Component 부분부터 살펴보겠습니다.
DefaultSceneRoot : 최상위 노드인 루트 노드로 빈 루트 컴포턴트입니다.
여기서 오브젝트와 플레이어가 상호작용하기 위해 Collider Component로 Box Collider와 해당 Collider의 위치를 표현해줄
Cube Box를 추가해줍니다.
추가 방법은 간단히 왼쪽 상단 위 "Add" 버튼을 클릭후 추가해주시면 됩니다.

다음과 같이 진행되며 Compile 후 이제 게임 로직을 다루기 위해 EventGrpah를 살펴보겠습니다.

Event Graph에 있는 내용을 살펴보겠습니다.
Event BeginPlay : 오브젝트가 생성되고 나서 게임로직이 실행되기 전에 최초 1번 실행되는 이벤트 입니다
Event ActorBeginOverlap: 오브젝트의 Collider가 플레이어와 겹칠 때 최초 1번 발생하는 이벤트 입니다.
Event Tick: 매 프레임의 Tick마다 호출되는 이벤트 입니다.
여기서 우리는 Overlap을 이용해 간단히 Debug로 게임 실행 viewport에 메세지를 띄어 상호작용을 확인해보고자 합니다.

언리얼에는 3개의 문자열 자료형이 있습니다.
- Name : 해시(Hash)기반 구조로 관리되는 타입으로, 이미 로드된 리소스나 객체의 이름을 빠르게 비교하교 참조하기 위해 사용됩니다. 내부적으로 해시 알고리즘을 사용하기 때문에 평균적으로 O(1)의 시간 복잡도로 이름 비교 및 조회가 가능하여 성능에 유리합니다.
- String : 일반적인 문자열 데이터를 저장하기 위한 타입으로, 문자열의 생성, 수정, 가공 등에 주로 사용됩니다.텍스트 처리나 데이터 저장과 같은 일반적인 문자열 작업에 적합한 타입입니다.
- Text : 사용자에게 표시되는 UI 문자열을 위한 타입입니다. 다국어를 지원하며, 게임 내 표시되는 텍스트나 UI 문구와 같이 번역이 필요한 문자열을 처리할 때 사용됩니다.
여기서는 간단히 디버깅용으로 문자를 띄울 것이므로 String 자료형을 사용하겠습니다.

사진의 왼쪽 상단 위에 "Collision Enter" 문구가 뜬 것을 확인 할 수 있습니다.
다음으로는 충돌함으로써 Box에 색깔이 변하고 다시 충돌이 해제되면 원래 색으로 돌아가도록 만들어 보겠습니다.
그렇게 하기위해선 일단 해당 박스 Material 부분을 생성해주어야 합니다.

여기서 해당 Constant 노드는 " 마우스 LButton + 3 " 단축키를 통해 간단히 만들 수 있습니다.
단일 vector value는 " 마우스 LButton + 1 " , Lerp 도드는 " 마우스 LButton + L " 으로 만들 수 있습니다.
Lerp 노드는 A의 값에 따라

다음과 같이 결과를 Base Color ( = Diffuse Color) 로 나타냅니다.
따라서 충돌하기전의 색깔은 "빨간색" 충돌한 후에는 "파란색"으로 나타낼 결과를 만들 예정입니다.

다음과 같이 Set Scalar Parameter Value 노드를 추가합니다. ( alpha 는 값이 1개이므로 Sclar로 합니다.)
그리고 "Parameter Name"은 반드시 Material에서 설정한 alpha 노드의 변수명과 똑같게 합니다.
충돌을 한다면 "Parameter Value"가 1이 되도록 해당 값을 1로 작성합니다.

이제 한 단계 더 나아가 충돌이 해제되면 다시 색깔이 원상태로 돌아가도록 만들겠습니다.

여기서는 이제 Event ActorEndOverlap Event 노드를 추가해줍니다.
해당 노드는 해당 오브젝트와 플레이어가 Overlap 겹침이 해제될 때 호출되는 이벤트입니다.

다음은 캐릭터와 박스가 충돌할 시 캐릭터를 위로 날려 보내 보겠습니다.

우선 이전에 만든 박스 오브젝트를 복사하여 새로 추가한다.
이름을 BP_Punch로 바꾸고 Blueprint Event Grpah로 들어가 로직을 변경한다.
(Tmi 1: 노드를 끊을 때는 "alt"로 연결을 끊을 수 있다는 것을 알면 편하다.)
(Tmi 2: 어떠한 노드의 그룹인지 표시하고 싶으면 해당 노드들을 연속적으로 클릭 후 "C" 클릭 을 통해 다음과 같이 이름을 지을 수 있다.)
플레이어의 움직임을 제어해야 하므로 Cast 노드를 추가하여 Character로 casting한 후 노드 줄 뽑은 상태에서 Add Impulse를 추가하면 된다.

혹시 잊을까봐 사진으로 남긴다.
그 후 impulse 부분에 어떤 방향으로 플레이어를 날릴 지 sclar 값을 적어준다.
잊지 말아야 할 것이 Vecloity Change를 체크 할 것! ( 질량을 무시안하면 땅에 그대로 있기 때문에 즉시 질량을 무시하고 속도에 영향을 받게 하기 위해서)

다음은 해당 플레이어를 위로 날려버리는 이벤트 후 해당 박스를 제거하고 제거하는 동시에 이펙트가 나오도록 처리해보겠습니다.

이펙트가 나오게 하기 위해서 "Spawn Emitter at Location" 노드를 추가하고, 이펙트가 나올 장소를 Get Actor Location 노드를 추가함으로 써 위치를 지정해 줍니다.
그 후 Destroy Actor 노드를 통해 해당 오브젝트를 삭제합니다.

다음은 이전에 만들었던 Object에 겹칠 때 해당 박스가 서서히 색을 변경되도록 만들어 보겠습니다.

알파값을 서서히 변화시키기 위해서는 AlphaToOne의 노드가 추가되어야 합니다.
해당 노드를 살펴보면

다음과 같이 해당 값의 변화량을 조절할 수 있는 창이 나오며 "Linear, Constant" 등 그래프의 모양을 설정해 줄 수 있습니다.
다음은 teleport를 구현해보겠습니다.

다음과 같이 Teleport Node를 설정해주고 해당 텔레포트 할 위치에 플레이어를 어떤 회전량과 위치를 두고 설정할 지 노드를 연결해주면 된다.
'Unreal Project > Blueprint' 카테고리의 다른 글
| Blueprint 공부 일기 7 (Camera Shake, State Alias(점프), UI 이벤트) (0) | 2026.03.23 |
|---|---|
| Blueprint 공부 일기 6 (AI Perception, UI , Billboard , Data Table) (2) | 2026.03.20 |
| Blueprint 공부 일기 5 ( Pawn Sensing 기반 몬스터 탐지 Behavior Tree, Debug 명령어) (0) | 2026.03.19 |
| Blueprint 공부 일기 2 (플레이어 움직임 및 애니메이션, Level Streaming) (0) | 2026.03.16 |
