참고
- 트리거로 스포트 라이트 제어하기 with 클래스 블루프린트
레벨 블루프린트로 트리거를 이용해 스포트 라이트를 제어해보자.
블루프린트 삼인칭 프로젝트에서 예제를 만들어보자.
캐릭터의 시작 위치에 스포트 라이트를 추가하고 캐릭터를 향하도록 배치한다.
최초 생성시에는 강도가 낮기 때문에 강도를 높이고, 색상도 바꾸었다.
SpotLight의 [디테일] → [렌더링] → [표시]를 체크 해제하면 붉은 빛이 사라지게 된다.
레벨 블루프린트 생성 + BeginPlay 이벤트
레벨 블루프린트는 해당 레벨에서만 사용되는 블루프린트다.
레벨 블루프린트를 이용해서 게임을 시작하면 스포트 라이트가 켜지도록 해보자.
SpotLight를 선택한 상태에서 레벨 블루프린트 열기를 눌러보자.
이벤트 그래프에서 마우스 오른쪽 버튼을 클릭하면 Spot Light와 관련된 옵션이 나타나게 된다.
Spot Light를 선택하지 않았다면 보이지 않는다.
Spot Light를 제어하기 위해서 SpotLight에 대한 레퍼런스 생성을 클릭한다.
Spot Light의 표시(= Visible)를 제어하기 위해 관련되어 보이는 함수를 검색한다.
([디테일] → [렌더링] → [표시]는 언어 설정을 영어로 변경할 때, Visible로 되어 있다.)
여기서는 Toggle (SpotLight)를 선택한다.
게임이 시작될 때 라이트를 켜야하므로, 게임 시작 이벤트인 BeginPlay를 만든다.
그리고 아래와 같이 이벤트와 Toggle Visiblity에 노드를 연결하고 컴파일하자.
처음에는 라이트가 꺼져있지만, 게임을 시작하면 활성화 되는 것을 알 수 있다.
Trigger 생성하기
Trigger를 이용해서 스포트 라이트를 제어해보자.
여기서는 스포트 라이트를 벗어나면 라이트가 꺼지도록 구현한다.
스포트 라이트의 표시에 체크를 해서 다시 켜도록 하자.
시작 지점을 벗어나거나 들어오는지 여부를 판단하려면 트리거를 이용한다.
스포트 라이트가 둥글기 때문에 트리거 스피어를 추가하여서 아래와 같이 배치하였다.
스케일이 작으면 크기를 적절히 키워주면 된다.
트리거 스피어를 선택한 상태에서 레벨 블루프린트로 가자.
BeginPlay 이벤트는 삭제하고 Trigger Sphere의 [콜리전] → [On Actor End Overlap 추가]를 선택한다.
(SpotLight와 마찬가지로 Trigger Sphere를 선택한 상태여야 보인다.)
이름에서 알 수 있듯이, Actor가 트리거 밖을 나가면 발생하는 이벤트다.
삭제했던 BeginPlay 처럼 노드를 연결하면 된다.
게임을 실행하고 캐릭터를 움직여서 스포트 라이트 밖으로 나가게 하면, 라이트가 꺼지는 것을 알 수 있다.
하지만 다시 스포트 라이트 구역을 지나치면 라이트가 켜지게 된다.
OnActorEndOverlap 이벤트만 설정했기 때문에 트리거 밖을 나가기만 하면 Toggle이 되기 때문이다.
좀 더 자연스러운 동작을 위해 OnActorBeginOverlap을 추가한다.
마찬가지로 Toggle Visibility에 노드를 연결하자.
이제 스포트 라이트 밖을 나가면 라이트가 꺼지고, 들어오면 다시 켜지게 된다.
'개발 > Unreal' 카테고리의 다른 글
언리얼 5 BP - 블루프린트 주석 추가하기 (Add Comment in Blueprint) (0) | 2023.06.06 |
---|---|
언리얼 5 - 사용자 언어 변경하기 (How To Change Language and Region) (0) | 2023.06.05 |
언리얼 5 - 그래픽 품질 설정하기 (Setting Engine Graphics Quality Setting) (0) | 2023.04.09 |
언리얼 5 - 프로젝트 세팅에서 시작 레벨 변경하기 (Setting Project Startup Map) (0) | 2023.04.08 |
언리얼 5 - 액터의 피벗 위치 변경하기 (How to Change Actor Pivots) (0) | 2023.04.01 |
댓글