[UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 5편
2023.07.11 - [Unreal 엔진] - [UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 1편
2023.07.11 - [Unreal 엔진] - [UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 2편
2023.07.13 - [Unreal 엔진] - [UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 3편
2023.07.13 - [Unreal 엔진] - [UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 4편
[UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 5편
스터디노트 5편에서는 인터랙션 장치들을 만들어봄.
밟으면 눌리고 동작하는 발판을 만들어본다. 액터 블루프린트를 만들어 BP_PressurePlate 로 네이밍 하고, 발판 스태틱 메시를 추가. Box Collision 컴포넌트를 추가하고, Box 에 Overlap Begin/End 이벤트를 추가.
발판이 밟혀서 내려가고 올라오는 처리는 Timeline 으로 처리. TImeline 노드를 만들고 노드를 더블클릭해서 타임라인 트랙으로 이동.
키를 2개 추가해서 0~0.5 초 동안 0~1 로 값이 커지도록 타임라인 작성. 타임라인의 이름을 PlateMovement 로 설정해서 값을 가져오도록 하고, 0~1 값을 갖기 때문에 재생됐을 때 Plate 의 위치를 이동시킬 만큼 값을 입력. 대략 -15 정도 입력하면 적당. PressurePlatePlatform 스태틱 메시를 가져와서 상대 위치 설정 노드를 생성. Set Relative Location 노드. Location 핀을 분리해서 Z 값만 연결.
Timeline 노드의 Play 와 Reverse 를 각각 Overlap Begin/End 와 연결해서 재생/역재생 되도록 처리.
문 인터랙션 처리
인터랙션으로 동작하는 문을 만들어본다. 액터 클래스를 상속받는 BP_Door 를 만들고 컴포넌트를 조립해줌.WallDoor 로 프레임을 만들고, 양쪽으로 열리는 문을 만들기 위해 Door 를 2개 자식으로 붙임. 이 때 Anchor 를 활용해서 좌표를 관리해주기 위해 Scene Component 를 만들어서 Door 를 자식으로 구성.
이전 발판 눌림과 동일하게 Timeline 을 이용해서 Float 트랙을 만들어주고, 0~1 사이의 값을 취하게 함. 탄젠트 커브를 줘서 틀어줌.
CustomEvent 로 OpenDoor, CloseDoor 를 추가해주고 Relative Location 노드로 상대 위치를 설정. -70 정도면 열리고 닫히는 정도로 충분.
BeginPlay 이벤트에 Delay 노드로 동작을 테스트 해봄.
훌륭하게 잘 동작함.
이제 발판을 밟았을 때 문이 열리고, 발판에서 벗어나면 문이 닫히도록 작업. 다양한 방식으로 발판과 문 BP 통신을 작업할 수 있는데, 일단 튜토리얼을 따름.
액터 컴포넌트를 상속받는 블루프린트를 생성해서 상호작용 처리를 제작한다.
커스텀 이벤트로 Start/Stop Interaction 을 만들고, 이벤트 디스패처를 추가. 이벤트 디스패처는 on 이라는 Boolean 타입 변수를 갖도록 함. 이렇게만 만들어두면 끝.
이렇게 만든 컴포넌트 블루프린트를 발판에 컴포넌트로 추가할 수 있음.
여기서 컴포넌트 오버랩 Start/End 사이에 BP_InteractionComponent 의 이벤트를 호출하도록 함.
이렇게. Start Interaction, Stop Interaction 이벤트 노드를 추가해줌.
이제 BP_Door 에서 이벤트 디스패처를 리슨 하도록 해야 함. Door 의 블루프린트에 Actor Refference Type 변수를 추가하고, 검증된 Get 으로 노드를 변환.
assign 으로 할당해야 OnInteract_이벤트 도 자동으로 생성됨.
이제 레벨로 돌아가서 BP_Door 에 추가한 Trigger 변수를 PressurePlate 로 설정해줍니다.
여기까지.
다음 스터디 노트에서는 마지막으로
사운드, 이펙트, 카메라 셰이크 연출 정도를 만들고 끝냅니다.
참조
Your First Game In Unreal Engine 5
https://dev.epicgames.com/community/learning/tutorials/e2V/your-first-game-in-unreal-engine-5