profile image

L o a d i n g . . .

반응형

https://youtu.be/_zoyaVdqHQ8

 

라이트(Light) 배치

좌측의 모드 탭 - 기본 - 포인트 라이트 - 레벨 안쪽으로 드래그

 

w키를 눌러 천장 중앙쯤의 적당한 위치에 배치한다.

 

우측 디테일 탭에서 라이트의 색, 빛의 강도, 광원의 반경 등 라이트와 관련된 모든 설정을 변경할 수 있다.

디테일 - Rendering - Visible 체크박스 를 건드려 보자. 조명이 꺼졌다가, 켜지는 모습을 레벨에서 확인할 수 있다. 우리는 이 작업을 블루프린트를 이용하여 조정할 것이다.

 

테스트를 완료했다면 Visible 체크박스를 해제하여 조명이 꺼져 있게끔 설정한다. 게임 시작 시 블루프린트가 이를 켜게끔 할 것이다.

 

블루프린트 사용

레벨 상단에 있는 툴바 중, 블루프린트 옵션을 클릭하면 하단으로 메뉴가 열린다. 이 중 오늘 사용해 볼 것은 레벨 블루프린트 열기다.

첫 번째 포스팅에서도 살펴봤듯이, 레벨 블루프린트 내의 스크립트는 해당 레벨 내에서만 유효하다. 그래서 레벨 블루프린트에 추가한 모든 스크립트는 새로운 레벨에는 아무런 영향을 끼치지 못한다.

 

 

레벨 블루프린트 열기를 누르면 새로운 창이 하나 뜬다.

이벤트 그래프 - 중앙의 모눈 창, 비주얼 스크립팅 작업, 노드 배치와 그 연결 작업

우클릭을 이용하여 화면 이동, 휠을 이용하여 전체 그래프 확대/축소 가능, 좌클릭으로 여러 노드 한번에 선택 가능

 

상단 툴바 - 블루프린트 스크립트를 만드는 데 필요한 옵션들이 존재함

컴파일: 플레이 전 컴파일을 해야 안정적인 스크립팅 가능

탐색: 다양한 노드, 프로퍼티, 변수 등을 찾을 수 있음

클래스 세팅, 클래스 디폴트: 블루프린트의 프로퍼티를 정의하는 기능(많이 다루지 않음)

플레이: 에디터의 이벤트 그래프 상에서 시험 플레이 가능

 

내 블루프린트 - 변수, 매크로, 함수 등 모두 표시됨

 

디테일 - 프로퍼티의 설정을 수정함

 

컴포넌트 - 블루프린트에 다양한 요소들을 추가할 수 있게 해 주는 창, 클래스 블루프린트 실습 시 다루게 됨

 

블루프린트로 작업할 때, 에디터가 현재 작업의 맥락을 파악하여 쉽게 만들 수 있게끔 도와준다. 뷰포트에서 ESC를 눌러 아무것도 선택하지 않은 상태로 만들고, 블루프린트 창으로 돌아와서 이벤트 그래프에서 우클릭을 하면 추가할 수 있는 모든 선택지가 출력된다. (좌측 사진)

우리는 조명을 켜고 끌 작업을 할 것이기 때문에, 라이트를 클릭하고 다시금 블루프린트 창의 이벤트 그래프에서 우클릭을 하면 저 라이트에 영향을 줄 수 있는 선택지가 우선적으로 표시된다. (우측 사진)

블루프린트 비주얼 스크립트를 통해 지금 무엇을 다루고 있는지, 어떤 Point Light를 조정할지 먼저 파악해야 한다. 우클릭 메뉴에서 'PointLight에 대한 레퍼런스 생성'을 클릭하여 새로운 노드를 생성한다.

 

이제 우리가 레벨에서 선택한 라이트를 제어하려면 이 노드에 작업하면 된다.

 

이벤트 그래프 위에서 우클릭을 하면 방금 했던 것처럼 레퍼런스를 생성하거나, 이벤트와 함수 등을 만들 수 있다. 여기서 필요한 노드를 고르면 된다. 상단에서 라이트를 껐다 켜 봤던 과정을 되풀이해 보면, 레벨에서 라이트를 클릭한 후에 우측 디테일 탭에서 Rendering에 있는 Visible을 조정했었다. 라이트를 켜고 끄기 위해서 이 프로퍼티를 이용할 것이다.

이벤트 그래프 위에서 우클릭을 하고, 검색창에 visible을 검색한다. Point Light 1 에서 함수 호출의 밑에 'Set Actor Hidden In Game'이 있다. 이 기능은 레퍼런스를 게임 상에서 숨기는 기능인데, 우리는 보여 주는 기능을 사용해야 하기 때문에 지금은 필요하지 않다. 혹시나 클릭했다면 두 노드 모두 지워 준다.

 

노드를 추가하는 두 번째 방법은 직접 드래그하는 방법이다. Point Light 노드에서 드래그를 하여 직접 만들 수 있다. 

Point Light 노드 오른쪽의 핀을 좌클릭 드래그하면 '새 노드를 배치합니다'라는 안내가 보이고, 마우스 버튼을 떼면 아까 봤던 메뉴창이 나타난다. 상단에 'Point Light 오브젝트 레퍼런스 받는 액션입니다.'라는 문구 또한 보인다. 여기 있는 선택지들은 모두 Point Light와 관련된 액션이며, 이를 사용하면 Point Light에 변화를 줄 수 있는 것이다. 

 

이제 다시 검색창에 visi(ble)을 입력한다. 

상단의 Is Visible은 현재 라이트가 보이는지의 여부를 판단하는 함수이다. 

아랫쪽의 선택지 중, Toggle Visibility를 이용할 것이다. Toggle Visibility는 Light Component와 Point Light Component의 두 가지로 나뉘어 있지만, 무엇을 쓰든 우리가 하려는 대로 동작할 것이다. 두 인스턴스 모두 선택한 라이트에 대한 Toggle 기능을 제공하기 때문이다. 여기서는 Toggle Visibility(LightComponent)로 지정하겠다.

 

선택지를 고르면 이벤트 그래프에 새로운 노드 두 개가 생긴다. 

 

BeginPlay와 Tick, 이 두 노드는 블루프린트에서 가장 널리 사용되는 것이기 때문에 기본 설정으로 제공해 준다. 현재는 비활성화되어 있다.

BeginPlay 이벤트: 게임이 시작될 때 호출되는 것, 게임이 시작되면 연결된 이벤트들이 모두 발동함

Tick 이벤트: 각 프레임마다 호출되는 것, 이 노드와 연결된 이벤트는 게임이 실행되는 동안 매 프레임마다 발동함

 

Tick 이벤트는 지금 사용할 필요가 없기 때문에, Tick 이벤트 노드를 삭제해 준다.

BeginPlay 이벤트 노드와 Toggle Visibility 노드의 위치를 적절히 이동하고, BeginPlay 이벤트 노드의 끝에 붙은 실행 핀으로부터 드래그해서 Toggle Visibility 노드의 실행 핀에 끌어놓는다. 적절하게 삽입되었다면 녹색의 체크 표시가 뜬다.

 

이벤트 그래프 위에서 노드를 연결하는 연결선이 존재하는데, 이는 블루프린트에서 각 노드 간 어떤 일이 벌어지고 있는지를 시각적으로 나타내는 선이다. 파란 선은 오브젝트들을 연결한 선이며, 레벨 내 오브젝트의 레퍼런스들을 잇는 것이다. 하얀 선은 실행을 나타내는 선이다. 이외에도 벡터나 트랜스폼 등의 연결선이 존재한다. 

게임이 실행되면 BeginPlay 노드가 자동으로 호출되어 연결된 노드의 이벤트 역시 시작될 것이다. 제일 먼저 Toggle Visibility 노드를 호출할 것이고, Toggle Visibility는 이벤트 대상인 Light Component를 감지할 것이다. 그리고 이 Light Component의 타겟은 Point Light이다. 즉, 게임이 시작되면 불이 켜질 것이다.

플레이 버튼 옆의 드롭다운 버튼을 누른다. 실제 플레이가 아닌 시뮬레이션 테스트도 가능하다. 

 

시뮬레이션 중에는 이벤트가 실행됐음을 시각적으로 알 수 있다. Toggle Visibility로 불빛이 흘러 들어가는 것을 볼 수 있다. 

 

확인을 완료했다면 블루프린트 창을 닫는다. 그리고 뷰포트에서도 실행해 본다.

반응형
복사했습니다!