Categories: 언리얼 엔진

언리얼 엔진 5 블루프린트 자동문: 박스 콜리전과 타임라인으로 만드는 순서

자동문 인터랙션을 설명하기 위한 GPT 생성 장면형 일러스트입니다.
▲ 박스 콜리전, Begin Overlap, 타임라인, 회전 노드

3인칭 프로젝트에서 캐릭터가 감지 영역에 들어오면 열리고 벗어나면 닫히는 여닫이문을 블루프린트로 구성하는 기본 흐름을 설명합니다. 프로젝트 설정과 메시 구조에 따라 노드 이름과 회전축은 달라질 수 있으므로, 아래 값은 출발점으로 사용하고 플레이 모드에서 확인해야 합니다.

언리얼 엔진에는 시각적 노드 시스템인 블루프린트(Blueprint)가 있습니다. 선을 마우스로 잇는 것만으로 끝납니다. 캐릭터가 가까이 가면 문이 열리고, 지나가면 다시 닫힙니다. 감지 영역은 박스 콜리전(Box Collision)이 맡습니다.

회전은 타임라인(Timeline) 노드가 담당합니다. 이 둘을 연결하는 방식입니다. 그 순서를 실전 기준으로 정리했습니다.

블루프린트는 이벤트 상자와 동작 상자를 선으로 잇는 비주얼 스크립트입니다

언리얼 엔진에서는 C++와 블루프린트를 함께 사용하거나 블루프린트만으로도 이와 같은 기본 상호작용을 구성할 수 있습니다. 블루프린트는 이벤트와 동작의 흐름을 노드와 실행선으로 보여 주므로 입문자가 구조를 확인하기 좋습니다.

자동문의 작동 원리는 세 문장으로 끝납니다. 첫째, 플레이어가 문의 감지 영역에 들어옵니다. 이것이 Begin Overlap입니다.

둘째, 1초 동안 각도를 0도에서 90도로 올립니다. 타임라인이 맡는 구간입니다. 셋째, 문짝의 Z축 회전값을 돌려줍니다. Set Relative Rotation 노드를 씁니다.

여기에 문 메시와 콜리전 컴포넌트를 배치하고, 오버랩 이벤트가 발생하도록 양쪽 컴포넌트의 충돌 설정과 Generate Overlap Events를 확인해야 합니다. 타임라인 출력값을 회전값에 연결한 뒤 컴파일하고 플레이 모드에서 열림·닫힘을 시험합니다.

코딩부터 덤비다 개발 흥미를 잃는 경우가 많습니다

원리도 모르는 상태에서 C++ 문법부터 붙잡는 분들을 자주 봅니다. 중괄호 하나, 세미콜론 하나가 빠져 빨간 오류가 수십 개씩 쏟아집니다. 원인을 못 찾고 며칠을 보내다 개발 자체를 접는 경우도 있습니다.

블루프린트는 텍스트 문법 오류를 줄일 수 있지만, 잘못된 참조·충돌 프리셋·실행 순서 때문에 동작하지 않을 수 있습니다. 입문자는 작은 기능을 노드로 구성하면서 이벤트가 언제 실행되는지 확인하고, 필요하면 C++와 역할을 나누는 편이 안전합니다.

▲ 0도에서 90도, 기본 1.0초에서 0.5초와 2.0초

문짝 메시의 피벗이 경첩 끝에 있어야 문이 제자리에서 돌지 않습니다

이해를 돕기 위한 주제 이미지

자동문 블루프린트에서 가장 흔한 버그는 문이 팽이처럼 도는 현상입니다. 경첩이 아니라 문 한가운데를 축으로 삼아 빙글 돌아버립니다. 3D 메시를 블루프린트에 넣기 전에 피벗(Pivot) 좌표부터 점검하는 편이 안전합니다. 중심축이 어긋나면 문이 벽을 뚫고 헛돕니다.

블렌더나 마야에서는 피벗 포인트를 문 왼쪽 경첩 모서리에 맞춰 익스포트합니다. 언리얼에서 고칠 때는 모델링 모드(Modeling Mode)의 [Edit Pivot] 도구를 씁니다. 피벗을 경첩 끝단으로 옮기면 실제 방문처럼 90도 여닫이 회전이 나옵니다.

타임라인의 Reverse 핀을 End Overlap에 연결하면 문이 자동으로 닫힙니다

문이 열리기만 하고 닫히지 않는다면 미완성 인터랙션입니다. 자동문을 완성하는 마지막 단계는 타임라인 노드의 Reverse 핀입니다. 박스 콜리전 컴포넌트를 우클릭합니다.

메뉴에서 [On Component End Overlap] 이벤트를 하나 더 꺼냅니다. 이 이벤트의 실행 선을 타임라인 노드의 [Reverse] 입력 핀에 꽂습니다.

캐릭터가 문 앞에 다가가면 타임라인이 0초에서 1초로 정방향 재생되며 문이 열립니다. 감지 박스를 벗어나는 순간에는 1초에서 0초로 되감기며 문이 저절로 닫힙니다.

▲ 피벗과 Reverse 핀에서 대부분의 문제가 갈립니다

자주 묻는 질문 (FAQ)

이해를 돕기 위한 주제 이미지

Q1. 문이 90도 회전하는 속도를 더 빠르거나 느리게 조절할 수 있나요?

0초에서 1초까지 0도에서 90도로 변하는 키를 유지한다면 Set Play Rate를 2로 설정해 0.5초에, 0.5로 설정해 2초에 재생할 수 있습니다. 또는 마지막 90도 키의 시간과 타임라인 길이를 함께 바꿉니다. 길이만 바꾸면 곡선이 잘리거나 끝값이 유지될 수 있으니 열림과 닫힘을 모두 확인하세요.

Q2. 여닫이문 말고 양옆으로 열리는 미닫이문은 어떻게 만드나요?

Set Relative Rotation 노드 대신 Set Relative Location 노드를 연결합니다. 타임라인 출력값을 Y축이나 X축 이동값(예: 150cm)에 꽂으면 슬라이딩 도어가 됩니다.

Q3. 몬스터가 아니라 주인공 플레이어에게만 문이 반응하게 하려면 어떻게 하나요?

Begin Overlap의 Other Actor를 프로젝트의 실제 플레이어 캐릭터 클래스에 Cast하거나, 인터페이스·태그 등 프로젝트에서 정한 식별 방법으로 검사합니다. 일반 Character 클래스만 확인하면 다른 Character 기반 액터도 통과할 수 있으므로 플레이어 전용 조건을 별도로 확인해야 합니다.

공식 문서

Collision Overview in Unreal Engine · Timelines in Unreal Engine

링크 확인일 2026-09-14.

unrealtechlog

Recent Posts

언리얼엔진 프레임이 떨어질 때 stat unit 부터 켜는 이유, Game·Draw·GPU 숫자 읽는 법 (UE 5.8 기준)

씬이 무거워져서 프레임이 30 아래로 떨어지면 대부분 먼저 그래픽 옵션부터 낮춰 봅니다. 그림자 품질을 내리고,…

1주 ago

언리얼엔진 HighResShot, 화면보다 큰 스크린샷을 원하는 크기로 뽑는 명령어 정리 (UE 5.8 기준)

포트폴리오 이미지나 기획서에 넣을 컷을 뷰포트에서 캡처하면 모니터 해상도 이상으로는 커지지 않습니다. 1920×1080 모니터에서 작업하면…

1주 ago

무비 렌더 큐 샘플 수, 스페이셜과 템포럴 중 어디를 올릴지 정하는 법

이해를 돕기 위한 주제 이미지▲ 스페이셜은 위치를, 템포럴은 셔터 시간을 나눈다 무비 렌더 큐로 뽑았는데…

4주 ago

노출 고정과 포토메트릭 조명 단위 — 밝기가 출렁이지 않는 씬 만들기

라이트 강도를 바꿨는데 화면 밝기가 예상과 다르거나, 카메라 방향에 따라 화면이 서서히 밝아진다면 자동 노출을…

1개월 ago

개인 작업용 렌더 워크스테이션, 돈을 어디에 쓸지

장비를 새로 맞출 때 예산은 정해져 있습니다. 문제는 어디에 몰아줄지죠. 커뮤니티 글을 보면 다들 다른…

1개월 ago

외주 견적에서 자주 빠지는 항목들

견적을 잘못 내면 작업 내내 손해라는 감각이 따라다닙니다. 금액을 낮게 불러서가 아니라, 들어갈 일을 빠뜨려서…

1개월 ago