본문 바로가기

[언리얼 엔진 4.8] 블루프린트 입문 - 06. 컨스트럭션 스크립트 본문

Tool/Unreal Engine 4

[언리얼 엔진 4.8] 블루프린트 입문 - 06. 컨스트럭션 스크립트

블로그 디렉터 2019. 1. 6. 18:00

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



Construction Script ( 컨스트럭션 스크립트 ) 는 블루프린트 내 각각의 인스턴스에 다양성을 줄 수 있는 ( 같은 Light_BP 클래스 블루프린트에서 어떤 라이트는 적색, 어떤 라이트는 녹색으로 설정하거나 안내 텍스트를 안보이게 설정하는 등의 개별 특성 부여 ) 스크립트이다.



Light_BP 클래스 블루프린트 창 상단에 Construction Script 탭에 들어가면 노드가 단 하나뿐인 새 그래프를 볼 수 있는데, 이는 블루프린트 내의 프로퍼티를 업데이트할 때 ( 블루프린트 작업 위에 다른 정보를 반영시킬때 ) 사용한다.



Spotloght 컴포넌트를 드래그 앤 드롭한 후, Color 관련 노드를 검색하여 색을 다시 지정해주는 Set Light Color 노드를 불러온다.

New Light Color 옆 검은색 상자를 클릭해 색깔을 직접 결정해 줄 수도 있다. ( 이번 영상에선 다른 방법으로 라이트 블루프린트에 유연성을 부가하려고 한다. )



New Light Color 왼쪽 연결핀에 우클릭하여 Promote to Variable ( 변수로 승격 ) 선택지를 누르면 New Var 노드가 New Light Target 핀에 자동 연결되는데, 이 노드가 새 색상 값을 담당하게 된다.



디테일 패널에서 New Var 노드의 이름을 Light Color 로 변경해주고, 컴파일해준다.

디테일 패널 하단의 Default Value 를 클릭해 색상을 선택하는 방법으로 라이트 색상의 기본값을 배정할 수 있다. ( 다른 방법을 사용하기 위해 일단 기본 설정값으로 놔둔다. )



컴포넌트 패널에서 Spotlight 를 선택하고 디테일 패널 Light - Light Color 을 클릭해 이미지에서 보이는 칸에서 좌클릭 드래그해, Drag & drop colors here to save ( 여기에 저장할 색을 끌어 놓습니다. ) 에 드롭하면 Light Color 노드의 디테일 패널 색상이 드래그 앤 드롭한 색상으로 바뀐다.



Construction Script 노드와 Set Light Color 노드를 연결해주고, Light Color ( 원래 New Var 이었던 ) 노드를 선택해 디테일 패널에서 Editable 항목을 체크해준다. ( 설명을 보면 ' 이 변수가 이 블루프린트의 인스턴스에서 공개적으로 편집가능한지의 여부설정 ' 이다. 다른말로하면 Editable 은 대상을 인스턴스로 설정 가능하게 만들어준다. )


추가한 Light Color 변수는 창 좌측 My Blueprint 패널의 Variables 항목에 추가되며, 이 항목 옆의 + 아이콘으로도 변수를 추가할 수 있다. ( https://youtu.be/z1SD-d9yJmQ?t=457 )

변수 좌측에 눈 모양이 생긴 것은 해당 변수가 Public ( 퍼블릭 편집 가능 ) 상태라는 것을 뜻한다. ( 이후 다시 설명 )



Light Color 노드를 선택해 디테일 패널의 Tooltip 항목에 ' Change color of the light ' 를 입력해주면  My Blueprint 패널 Variables 항목에서 변수 옆에 눈이 초록색으로 바뀌며 툴팁이 적용된다. ( 마우스를 변수위에 올리면 지정한 툴팁 내용이 뜨게된다. )



다시 레벨 화면으로 돌아와 레벨에 드래그 앤 드롭한 Light_BP 를 선택해보면, 디테일 패널에 Defult 항목의 Light Color 이 추가된 것을 볼 수 있다.

이 라이트를 수정하면 모든 클래스 블루프린트 라이트의 색상이 한번에 변경되었던 기존의 설정과 다르게, 이 설정에 따라 색상이 별개로 설정된다.



다시 클래스 블루프린트의 컨스트럭션 스크립트 창으로 돌아와 Spotlight 연결핀을 ( 이미지에 표시한 부분 ) 드래그해, set visability 노드를 검색해 추가해준다.

Set Visibility 노드는 해당 라이트를 제어하는 역할을 하며, Spotlight 디테일 패널 Rendering - Visible ( 점등과 소등을 제어했던 ) 과 같은 역할을 한다.



Set Light Color 노드와 Set Visibility 노드를 연결해주고, New Visibility 의 핀에 우클릭해 변수로 승격시켜 이름을 Visibility Setting, 툴팁에는 Trun on or off the light 를 적어준다.


컴파일 후 레벨의 라이트 디테일 패널의 Default 항목을 확인하면 Visibility Setting 프로퍼티 ( 항목 ) 이 추가된 것을 확인할 수 있다.

Comments