![article thumbnail image](https://blog.kakaocdn.net/dn/biiTwd/btqBHVapsA3/UjhszKpJ3vclfdaPoh14Jk/img.png)
컴포넌트 추가
콘텐츠 브라우저 > Blueprints 폴더 > Light_BP 실행
엔진을 종료하고 재시작했다면 다음과 같은 클래스 디폴트 창이 떠 있을 것이다.
컴포넌트나 스크립트 등 블루프린트 관련 요소가 없다면, 클래스 디폴트 또한 기본값으로 구성된다. 클래스 디폴트는 해당 클래스 블루프린트 내 특정 프로퍼티들의 기본 설정을 구성한다.
여기서 다시 뷰포트 창으로 돌아가기 위하여, 상단에 푸른 글자색으로 표시된 '풀 블루프린트 에디터 열기'를 누른다.
블루프린트에 컴포넌트를 추가해 보자.
컴포넌트 추가 방법은 다양하다. 좌측 상단의 컴포넌트 추가를 클릭하거나, 콘텐츠 브라우저에서 항목을 컴포넌트 탭 안쪽으로 드래그 앤 드랍하면 된다. 실제로 추가해 보자.
Content 폴더 > StartContent > Props > SM_Lamp_Wall을 드래그하여 컴포넌트 탭에 드랍
이렇게 클래스 상에 새 컴포넌트를 만들며 SM_Lamp_Wall 메쉬도 새로 생성되었다.
컴포넌트를 추가할 때마다 이름을 지정해야 한다. LampFixture라고 지정하자.
다음은 이 컴포넌트를 루트 컴포넌트로 만들어야 한다. 여기서 루트 컴포넌트란, 다른 모든 항목들과 연관되는 컴포넌트이며, 현재는 기본적으로 자동 생성되는 DefaultSceneRoot를 사용하고 있다.
LampFixture를 DefaultSceneRoot로 좌클릭 후 드래그해 준다. 그럼 방금 생성한 LampFixture가 이 블루프린트의 루트가 된다.
이번에는 컴포넌트 추가 버튼을 통하여 컴포넌트를 추가해 보자.
컴포넌트 추가 > 검색창에 'Spot Light' 후 클릭
블루프린트에 Spot Light 컴포넌트가 추가되었다. 컴파일 후 저장을 눌러 주자.
이제 다시 레벨 창으로 돌아와, 콘텐츠 브라우저의 Blueprints 폴더로 가자. 방금 추가한 LampFixture 컴포넌트를 확인할 수 있다. Lamp_BP 클래스 블루프린트를 뷰포트로 좌클릭 드래그한다. 빛이 잘 보이도록 벽 쪽의 그늘진 곳에 배치한다.
라이트의 방향을 바꾸는 작업은 레벨 에디터가 아니라 클래스 블루프린트 창에서 수정해야 한다.
클래스 블루프린트 창에서는 레벨의 뷰포트 동작과 동일하게 우클릭 후 WASD 등을 이용하여 자유롭게 화면을 조절할 수 있다. 컴포넌트에서 SpotLight를 클릭하여 선택한다. (또는 뷰포트에서 클릭) 그 후, 키보드 E키를 누르면 해당 컴포넌트를 회전할 수 있게끔 툴이 바뀐다. Y축인 초록색 선을 이용하여 위쪽 방향으로 90도 회전한다.
레벨상의 라이트 또한 동시에 회전되는 것을 확인할 수 있다.
키보드의 W키를 눌러 이동 툴로 변경하자. 조명에서 빛이 나는 것처럼 보이기 위해 빛의 위치를 조절해 준다. 이때, 그리드 스냅 크기를 1로 설정하면 더욱 정교하게 이동시킬 수 있다.
우측 디테일 탭에서 Light의 Intensity를 2000으로 설정한다. Light Color 또한 원하는 색으로 설정한다. 이 또한 레벨상에서 실시간으로 색상 변경 적용이 되는 것을 확인할 수 있다.
하단의 Outer Cone Angle는 원뿔의 각도를 설정하는 메뉴인데, 이를 드래그해 보면 빛의 너비가 바뀌는 것을 확인할 수 있다. 이를 60으로 변경한다.
보기 좋게 설정을 변경해 보자.
지금까지 SpotLight와 스태틱 메쉬를 추가하였다. 레벨상의 뷰포트에서는 레벨에 배치한 액터 형태의 블루프린트 클래스 그 자체를 보고 있는 것이다.
이제 스크립트를 위한 작업으로 넘어가 보자.
Light_BP 블루프린트 창에서 컴포넌트 추가 버튼을 누른다. 여기에 Box라고 검색하면, Box Collision 컴포넌트가 나온다. 지난번에 사용했던 Box Trigger와 같은 것이다. Box Collision을 선택한다. 그러면 클래스 블루프린트 뷰포트 내에 Box Collision이 추가될 것이다. 레벨 뷰포트에서도 확인할 수 있다.
블루프린트 클래스의 뷰포트에서 Box Collision을 벽 바깥으로 빼내서 벽과 Lamp 스태틱 메시에서 조금 떨어지도록 만들어 준다. Collision이 벽을 뚫어서 방 안쪽에서도 판정이 발생하지만 않으면 된다.
키보드 R을 눌러 크기 조정 툴을 이용하여 Collision을 위아래로 길게(Z축) 조절한다. 키보드 W를 눌러 다시 위치 조정 툴로 돌아오고, 아래쪽(Z축)으로 내려 바닥과 Collision이 닿게 조절한다. 바닥을 뚫어도 괜찮으니 바닥에만 닿도록 만든다.
여기에 사용자 친화적인 부분을 조금 추가해 보겠다. 플레이어는 자신이 그냥 Collision에 들어가도 불이 켜진다는 것을 알지 못한다. 방 안의 볼륨은 출입만으로 불을 켰지만, 이번 볼륨은 플레이어가 Collision에 들어온 다음 특정 버튼을 눌러야 켜지게끔 구성한다.
컴포넌트 추가를 눌러 text를 찾는다. Text Render라는 컴포넌트를 클릭한다. Text Render는 주어진 값대로 레벨 내에 텍스트를 렌더링한다.
Text Render의 디테일 탭 > Text - Text 수정(Press 'F' to Toggle) > Text - World Size 수정(12.0)
이를 적당한 위치에 배치해 준다.
마지막으로 Text Render의 Rendering에서 Visible을 체크 해제한다. 평소에는 보이지 않고, 볼륨 내에 들어왔을 때에만 출력되게끔 할 것이다. 컴파일 후 저장한다.