profile image

L o a d i n g . . .

반응형

컨스트럭션 스크립트

컨스트럭션 스크립트

컨스트럭션 스크립트(Construction Script)는 블루프린트 내의 인스턴스 각각에 다양성을 줄 수 있는 스크립트이다. 배치한 각각의 라이트들에 개별적인 특성(색 변경, 안내 텍스트 없애기 등)을 부여하는 것이다.

Light_BP를 켠다. 이번에는 이벤트그래프 탭이 아닌, Construction Script 탭으로 이동한다. 이곳에서 노드가 단 하나뿐인 그래프를 확인할 수 있다. 

 

이벤트 그래프에서 구성한 스크립트는 모두 게임 속에서 발생하는 이벤트에 관한 것이었다. 반면 컨스트럭션 스크립트는 블루프린트를 구축할 때 사용한다. 블루프린트로 작업을 하거나 게임 내 레벨을 구축할 때, 블루프린트 내의 프로퍼티를 업데이트할 때 사용하는 것이다.

좌측 컴포넌트 탭에서 SpotLight를 선택하고, 그래프 위로 좌클릭 드래그한다. SpotLight의 Get 노드에서 드래그하여 'Set Light Color' 함수를 추가한다. New Light Color에 어떤 색을 지정하느냐에 따라서 Spot Light 컴포넌트의 색이 변한다. 

New Light Color에 우클릭을 하면 메뉴가 나오는데, '변수로 승격'을 누르자.

 

그러면 새로운 노드가 New Light Color 타겟 핀에 자동으로 연결된다. 생성된 노드를 클릭하고 디테일 창에서 변수 이름을 'Light Color'로 변경한다. 컴파일 하면, 디테일 탭 하단에 있는 해당 변수 노드의 기본값을 설정할 수 있다.

좌상단의 컴포넌트 탭에서 SpotLight를 선택한다. 디테일 탭의 Light - Light Color에서 전에 설정했던 색상을 클릭하면, 색 선택 툴 팝업창이 뜬다. 이 창의 우측에 기존, 신규라는 색상이 표시가 되는데, 이를 좌클릭하여 '여기에 색을 끌어 놓으면 저장합니다'라는 창에 끌어다 놓음으로써 색상 레퍼런스를 생성할 수 있다.

 

다시 그래프 상에서 Light Color를 선택하고, 디테일 창의 Light Color의 색상바를 클릭하면 방금 저장한 색이 남아 있는 것을 확인할 수 있다. 저장되어 있는 색상을 클릭하여 적용하고, 확인을 눌러 저장한다. 

 

마지막으로 Construction Script 노드와 Set Light Color를 연결한다. 

Light Color 노드의 디테일 창으로 돌아가면, '인스턴스 편집가능'이 존재한다. 이를 체크해 준다.

좌측 블루프린트 창에 변수 탭이 존재하는데, 이는 블루프린트에서 변수를 만들 때마다 생성되는 항목이다. 앞서 생성한 Light Color 변수 또한 변수 탭 오른쪽의 + 버튼을 눌러서 만들 수도 있고, 우측 디테일 창에서 변수 유형 등의 세부 설정 또한 변경할 수 있다. 변수 탭에서 그래프로 드래그하여 다른 노드로 연결해 사용할 수 있다. 그러나 앞서 진행했듯이 핀 상에 우클릭을 한 후, 변수로 승격해 주는 게 훨씬 편리하다.

Light Color 변수 우측을 보면 눈 모양 아이콘이 있는데, 이는 해당 변수가 퍼블릭 편집 가능 상태라는 사실을 알려 준다. 

변수에 마우스 오버 시 정보를 출력하려면 툴팁에 텍스트를 입력하면 된다. 컴파일 후, 레벨로 돌아간다.

 

본격적인 플레이 전, 라이트에 변화를 주겠다. 레벨 내의 라이트를 선택한 채로 디테일 창을 보면 새로운 프로퍼티가 추가된 것이 보인다. 한 쪽의 Light Color를 바꾸고, 다른 한 쪽을 클릭해 보면 디폴트 Light Color를 유지하고 있는 것을 확인할 수 있다.

 

플레이하면 적용된 Light Color를 확인할 수 있고, 이러한 방식으로 레벨 내에서 작동하는 블루프린트에 유연성을 한층 더해 줄 수 있다. 

 

편리한 레벨 디자인을 위해서

레벨 디자인을 조금 더 편리하게 할 수 있는 기능을 소개한다. Light_BP를 열고, Construction Script 탭의 Spot Light에서 좌클릭을 하여 Set Visibility를 찾는다.

Set Visibility의 New Visibility 핀은 해당 라이트를 제어하는 역할을 한다. SpotLight 노드의 디테일 패널을 보면 똑같은 프로퍼티라는 사실을 알 수 있다. Rendering의 비활성화된 Visible을 정의하려는 것이다. 

Set Light Color와 Set Visibility를 연결해 준다. 

Set Visibility 노드의 New Visibility 핀을 우클릭한 다음, 변수로 승격을 누른다. 해당 변수 노드도 디테일 창에서 'Visibility Setting'으로 이름을 변경한다.

 

레벨 창으로 돌아가 보면, 디테일에 또 다른 프로퍼티가 추가되었다. 이를 체크하면 플레이하지 않고도 라이트를 켜서 색상을 확인할 수 있다. 

반응형
복사했습니다!