본문 바로가기
Unreal Engine

Unreal Engine 애니메이션 블루프린트를 활용해 커튼의 움직임을 문과 연동하는 방법

by hfgraphic 2025. 9. 26.
반응형

 

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


1. 모델링 준비 및 블루프린트 설정

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

2. 슬라이딩 도어 로직 구현

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

3. 여러 개의 문에 적용하기

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

4. 커튼 애니메이션 연동

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

단순히 문을 여는 것을 넘어, 이동 기반슬라이딩 도어를 구현하고, 애니메이션 블루프린트를 활용하여 여러 요소를 하나의 블루프린트로 통합하는 방법을 보여줍니다. 이 기술을 통해 효율적으로 복합적인 상호작용을 만들고, 재사용 가능한 에셋을 구축할 수 있습니다.

 

반응형