본문 바로가기

[언리얼 엔진 4.7] 레벨 제작 소개 - 10. 블루프린트 문 (2/2) 본문

Tool/Unreal Engine 4

[언리얼 엔진 4.7] 레벨 제작 소개 - 10. 블루프린트 문 (2/2)

블로그 디렉터 2019. 1. 4. 20:56

언리얼 엔진 공식 유튜브 튜토리얼 시리즈 [ https://youtu.be/HJbHs_oNQsk ] 학습 후 필기 복습



레벨 블루프린트 화면에서 Event Tick 노드는 필요없으므로 지워준다.



그래프 ( 배경 ) 에서 우클릭하면 Create a Reference to Door ( Door 에 레퍼런스 생성 - 레벨에서 Door 을 선택한 상태로 추가해야한다. ) 를 클릭해 생성해준다.

이는 레벨에 있는 Door 에 해당하는 레퍼런스가 생성된 것으로, 타임라인이 어떤 물체를 움직이려고 할 때 대상을 지정하기 위해 필요한 것이다.


Movement 노드를 다시 더블클릭하여 타임라인을 열면, 설정했던 키프레임의 Value 가 0 과 이동 거리값으로 설정했던 것을 볼 수 있는데, 이는 문의 기본 위치에서 변동되는 수치이므로 문의 기본위치에서 변동되는 값이라는 정보를 입력해야한다.



Door 레퍼런스의 핀을 늘려 Get Actor Location 노드를 생성한 후, 출력값을 다시 Romote to variable ( 변수로 승격 ) 노드와 연결해준다.



이미지와 같이 설정되어야 하며, 변수 이름은 InitialDoorLocation 이라고 정해준다.



Event Begin Play 노드와 Set 노드를 다음과 같이 연결해주면, 게임이 시작하자마자 Door 의 위치를 얻어 이 변수에 저장하게 된다.



Door 레퍼런스를 Ctrl + C, Ctrl + V 로 복사 붙여넣기해 하나 더 만들어준다.

여기에 만드는 스크립트는 타임라인이 동작하는 동안 Door 의 위치를 설정하는 것으로, Door 의 핀을 드래그해서 Set Actor Location 을 선택해준다.



DoorMovement 의 Update 항목에서 흰색 핀을 끌어서 Set Actor Location 에 연결 해준다.

Ctrl 을 누른상태에서 전에 Set 을 생성하면서 만들었던 InitialDoorLocation 변수를 그래프로 끌어온다. ( 드래그 앤 드롭 )

기존의 위치에서 변경값을 수정하는 형태로 설정하는 것으로, 이상한 위치에서 노드를 실행하는 것을 막을 수 있다.



새로 불러온 Initial Door Location 변수에서 핀을 늘려, Vector + Vector ( +를 검색하면 바로 나온다. ) 와 연결해준다.

DoorMovement 노드의 Movement 항목을 같이 연결해준다.

( 기본 설정으로 연결하면 선이 꼬일 수 있지만, Ctrl 을 눌러 위아래를 바꿔서 방지할 수 있다. https://youtu.be/HJbHs_oNQsk?t=277 )



이미지와 같이 연결해주고 컴파일 후, 다시 레벨 화면으로 돌아가 테스트해본다.



플레이어가 박스 트리거를 벗어나고도 약간의 시간이 흐른 뒤에 닫히게 설정하기 위해선, OnActorEndOverlap 핀을 다시 끊고 ( Ctrl 을 누른상태로 연결점을 드래그 ) , Delay 노드를 새로 생성한다. ( D 를 누른상태에서 좌클릭으로도 불러올 수 있다고 한다. )

Duration 에 입력한 수치만큼 시간지연이 발생하며, 영상에서는 지연시간을 0.5 초록 설정하였다.



다시 컴파일 후, 정상적으로 작동하는지 확인한다.

Comments