본문 바로가기
Unreal Engine

Unreal Engine 블루프린트(Blueprint)를 이용해 피봇(pivot) 도어를 만드는 방법을 단계별로 설명

by hfgraphic 2025. 9. 26.
반응형

 

언리얼 엔진에서 **블루프린트(Blueprint)**를 이용해 피봇(pivot) 도어를 만드는 방법을 단계별로 설명합니다. 이 과정은 모델링 수정, 블루프린트 설정, 충돌 박스(Collision Box) 추가, 애니메이션 구현으로 구성되어 있습니다.


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

  1. 피봇(Pivot) 수정: 문이 올바르게 회전하려면 **피봇 지점(pivot point)**이 경첩(hinge) 위치에 있어야 합니다. 강의자는 3D 모델링 프로그램(3ds Max)에서 문의 피봇을 수정하는 방법을 보여주며, 수정된 파일을 언리얼 엔진으로 다시 가져옵니다.
  1. 클래스 블루프린트 생성: BP_Door라는 이름의 **액터 블루프린트 클래스(Actor Blueprint Class)**를 생성합니다.
  2. 스태틱 메시(Static Mesh) 추가: 문(Door)과 문틀(Door Frame)을 **스태틱 메시 컴포넌트(Static Mesh Component)**로 추가합니다. 이 두 컴포넌트를 부모-자식 관계로 설정하여 문틀이 움직일 때 문도 함께 움직이도록 계층 구조를 만듭니다.

2. 충돌 박스(Collision Box) 설정

  1. 박스 컴포넌트 추가: 문이 열리는 트리거 역할을 할 박스 충돌(Box Collision) 컴포넌트를 추가합니다.
  2. 크기 및 위치 조정: 이 박스 충돌의 크기를 플레이어가 문에 다가갔을 때 쉽게 겹칠(overlap) 수 있도록 조절합니다.
이벤트 설정: 박스 충돌 컴포넌트를 선택하고 이벤트(Events) 탭에서 On Component Begin Overlap 이벤트 노드를 추가합니다. 이 노드는 플레이어가 박스 영역 안으로 들어올 때 실행될 로직의 시작점이 됩니다.

3. 문 열기/닫기 로직 구현

  1. 플레이어 감지: On Component Begin Overlap 노드에서 Cast To BP_1stPersonCharacter 노드를 연결하여 겹친 액터가 플레이어인지 확인합니다.
  2. 애니메이션 추가:
    • 타임라인(Timeline) 노드를 추가하고 이름을 Door_Rotation으로 지정합니다.
    • 타임라인 에디터에서 **플로트 트랙(Float Track)**을 추가합니다.
    • 시작 지점(시간 0, 값 0)과 끝 지점(시간 1, 값 90)에 키포인트(keypoint)를 추가하여 1초 동안 90도 회전하는 애니메이션을 만듭니다.
    • Auto(자동) 옵션을 사용하여 부드러운 전환을 만듭니다.
  3. 문 회전:
    • 타임라인의 출력 값을 받아 Set Relative Rotation 노드에 연결합니다.
    • 문의 회전축(Z축)에 타임라인의 값(90도)을 연결하여 문이 90도 회전하도록 설정합니다.
    1. 문 닫기:
    • 박스 충돌 컴포넌트에 On Component End Overlap 이벤트를 추가합니다.
    • 이 이벤트 노드를 타임라인 노드의 Reverse(반전) 입력에 연결하여 플레이어가 박스 영역 밖으로 나갈 때 애니메이션이 반대로 실행되어 문이 닫히도록 만듭니다.

4. 테스트 및 마무리

  • 블루프린트 배치: BP_Door를 씬(scene)에 배치하고 테스트합니다.
  • 기능 확인: 플레이어가 문에 접근하면 문이 부드럽게 열리고, 멀어지면 부드럽게 닫히는지 확인합니다.
  • 완성: 이 과정을 통해 충돌타임라인을 활용한 기능적인 문을 완성합니다.

 

반응형