반응형
언리얼 엔진에서 **슬라이딩 도어(Sliding Door)**와 커튼 애니메이션을 결합하여 복합적인 상호작용을 만드는 방법을 설명합니다. 특히 문을 **회전(Rotation)**이 아닌 **이동(Movement)**으로 구현하고, 애니메이션 블루프린트를 활용해 커튼의 움직임을 문과 연동하는 방법을 배웁니다.
1. 모델링 준비 및 블루프린트 설정

3D 모델링 수정: 3ds Max에서 창문과 문틀이 하나의 **스태틱 메시(Static Mesh)**로 결합되도록 수정합니다. 이 과정은 언리얼 엔진에서 두 개체가 함께 움직이도록 하기 위함입니다. 수정 후 **피봇 지점(pivot point)**을 문의 시작점에 맞춰 FBX 파일로 내보냅니다.
- 슬라이딩 도어 블루프린트 생성: 언리얼 엔진에서 BP_SlidingDoor라는 이름의 새로운 **액터 블루프린트(Actor Blueprint)**를 생성합니다.
- 스태틱 메시 추가: 수정된 슬라이딩 도어 스태틱 메시를 **블루프린트 뷰포트(Viewport)**에 추가하고, **머티리얼(material)**을 설정합니다.
2. 슬라이딩 도어 로직 구현

- 충돌 박스(Collision Box) 추가: 이전 글과 마찬가지로 박스 충돌 컴포넌트를 추가하여 플레이어가 문에 접근했을 때 이벤트를 발생시킬 영역을 만듭니다.

- 이벤트 설정:
- On Actor Begin Overlap: 플레이어가 박스 안으로 들어올 때 실행됩니다.
- On Actor End Overlap: 플레이어가 박스 밖으로 나갈 때 실행됩니다.
- 두 이벤트 모두 Cast To BP_FirstPersonCharacter 노드를 연결하여 겹치는 액터가 플레이어인지 확인합니다.
- 위치(Location) 기반 이동:
- 문을 **회전(Rotation)**이 아닌 **이동(Movement)**으로 제어하기 위해 Set Relative Location 노드를 사용합니다.
- 타임라인(Timeline) 노드를 추가하여 문이 이동할 거리를 제어하는 애니메이션을 만듭니다. **플로트 트랙(Float Track)**을 생성하고, 키프레임을 사용하여 2초 동안 3미터(300cm) 이동하도록 설정합니다.
- On Actor Begin Overlap 이벤트에 타임라인의 Play 출력을 연결하고, On Actor End Overlap 이벤트에는 Reverse 출력을 연결하여 문이 열고 닫히도록 만듭니다.
- 변수(Variable) 활용:
- Displacement라는 플로트 변수를 생성하고 값을 300으로 설정합니다.
- 타임라인의 Amount 값을 이 변수와 곱하도록 설정하여, **디테일 패널(Details Panel)**에서 문의 이동 거리를 쉽게 조절할 수 있게 만듭니다. 이는 개발자가 블루프린트 내부를 수정하지 않고도 외부에서 값을 변경할 수 있게 해주는 유용한 기능입니다. (Visible in Details)
3. 여러 개의 문에 적용하기

- 블루프린트 복제(Duplicate): 이미 만든 BP_SlidingDoor를 복제하여 새로운 슬라이딩 도어를 만듭니다. 이렇게 하면 원래 블루프린트의 로직은 유지한 채로 새로운 문을 만들 수 있습니다.
4. 커튼 애니메이션 연동

- 커튼 블루프린트 복제: 기존 슬라이딩 도어 블루프린트를 복제하여 BP_SlidingDoor_Curtain이라는 이름으로 저장합니다.
- 지오메트리 캐시(Geometry Cache) 추가: 커튼은 스태틱 메시가 아닌 지오메트리 캐시로 가져온 애니메이션입니다. 따라서 **지오메트리 캐시 컴포넌트(Geometry Cache Component)**를 블루프린트 뷰포트에 추가해야 합니다.
- 애니메이션 제어:
- 커튼 지오메트리 캐시 컴포넌트를 선택하고 Run 옵션을 비활성화합니다. 이렇게 하면 게임 시작 시 애니메이션이 자동으로 재생되지 않습니다.
- On Actor Begin Overlap 이벤트에 커튼 컴포넌트의 Play 노드를 연결하여 문이 열릴 때 커튼 애니메이션이 시작되도록 합니다.
- On Actor End Overlap 이벤트에 Stop 노드를 연결하여 문이 닫힐 때 애니메이션이 멈추도록 설정합니다.

단순히 문을 여는 것을 넘어, 이동 기반의 슬라이딩 도어를 구현하고, 애니메이션 블루프린트를 활용하여 여러 요소를 하나의 블루프린트로 통합하는 방법을 보여줍니다. 이 기술을 통해 효율적으로 복합적인 상호작용을 만들고, 재사용 가능한 에셋을 구축할 수 있습니다.
반응형
'Unreal Engine' 카테고리의 다른 글
Unreal Engine 블루프린트(Blueprint)를 이용해 피봇(pivot) 도어를 만드는 방법을 단계별로 설명 (0) | 2025.09.26 |
---|---|
Unreal Engine 사운드 블루프린트를 활용하여 게임 환경에 소리를 추가하고 제어하는 방법 (0) | 2025.09.26 |
Unreal Engine 블루프린트(Blueprints)에 대한 개념과 기본적인 사용법 (0) | 2025.09.24 |
Unreal Engine 충돌의 개념 및 유형 (0) | 2025.09.24 |
Unreal Engine 실행 파일 만들기 (0) | 2025.09.23 |