블루프린트 내의 각각의 인스턴스에 다양성을 줄 수 있는 스크립트.
- 게임 내 레벨을 구축하거나, 블루프린트 내의 프로퍼티를 업데이트 할 때 등등을 구현한다.
- 블루프린트 인스턴스 생성시 컴포넌트 리스트 다음에 실행되는 부분이다. 따라서 블루프린트 인스턴스에서 필요한 초기화 작업을 할 수 있다.
- 블루프린트와 관련된 가장 최신의 정보를 제공
- 같은 블루프린트로 만든 인스턴스라도 이 Construction Script 을 통해 인스턴스마다 개별적인 특성을 부여할 수 있다.
- 이 Construction Script 안에서 각각의 인스턴스마다 다르게 부여할 프로퍼티들을 public 변수로 에디터에서도 열고 에디터에서 각각의 인스턴스마다 이 변수 값들을 설정하게 한 후 이를 Setting 하는 작업을 한다.
- 2 개의 변수를 선언한다.
- Linear Color 타입의 Light Color
- Set Light Color 에서 New Light Color 에 연결 시킬 변수로서 생성한 것이기 때문에 New Light Color 입력에 우클하고 변수로 승격 변수를 생성하는 것도 편한 방법이다. (알아서 입력 핀에 맞는 타입의 변수를 만들어주므로)
- Boolean 타입의 Visiblity Settings
- Linear Color 타입의 Light Color
- 두 변수의 값에 의하여 블루프린트의 인스턴스의 Spot Light 컴포넌트의 Light Color 와, Visible 값을 초기화 할 것이다.
변수 패널에서 두 변수의 눈을 뜨게 해주거나 디테일 패널에서 인스턴스 편집 가능을 체크하면 public이 되어 에디터에서도 이 변수 값을 수정할 수 있도록 슬롯이 열린다. (+ 툴팁은 에디터에서 보일 변수에 대한 부가 설명이다. 자주 사용하자!)
컴파일하고 에디터로 돌아가서 디테일 패널을 확인하면 ‘기본’에 두 변수의 값을 설정할 수 있는 슬롯이 생긴 것을 볼 수 있다. 커서를 위에 올리면 설정했던 툴팁도 확인할 수 있다! 에디터에서 public으로 연 이 변수들로 값을 설정하여 각각의 인스턴스마다 값을 다르게 설정할 수 있다. 즉, 에디터에서 이 값을 인스턴스마다 다르게 설정하여 Light Color, Visility Settings 값을 다르게 할 수 있다는 것이다. 이 변수들의 값에 따라 Spot Light` 컴포넌트의 Light Color 와, Visible 값을 세팅하기로 Construction Script 안에서 스크립트를 짰으므로 각각의 인스턴스들은 에디터에서 수정한 이 변수값에 따라서 라이트의 색깔과 라이트의 디폴트 상태를 보이는 상태로 할지 아닐지로 다르게 설정할 수 있게 되었다. 이처럼 인스턴스 생성시 실행되는 Construction Script 부분에서 여러 변수들을 public으로 생성한 후 이 변수 값을 통해 인스턴스의 속성을 결정짓게 하면, 편리하게 에디터에서 이 변수 값들을 수정해 인스턴스 각각을 다르게 설정할 수 있다.
꿀팁! 색깔도 위에 ‘여기에 저장할 색을 끌어 놓습니다.’ 에 색을 임시로 저장해둘 수 있다. 색 편집기를 어디에서로든 다시 실행하면 저장해놧던 색이 보존되어 있는 것을 확인할 수 있다.
같은 블루프린트로 생성한 인스턴스라도 두 인스턴스의 Light Color 변수 값을 다르게 설정했기 때문에 이렇게 달라질 수 있다! 블루프린트에서 수정하면 모든 인스턴스에도 수정 사항이 똑같이 반영되는데, 이렇게 Construction Script 를 활용하면 인스턴스 각각의 설정값을 다르게 해줄 수 있어 좋다!
출처 : UE4 Construction Script - 평생 공부 블로그 : Today I Learned 🌙 (ansohxxn.github.io)
'게임엔진 > Unreal' 카테고리의 다른 글
[Unreal] Could not find NetFxSDK install dir; 오류 해결 (0) | 2023.04.23 |
---|---|
[Unreal] 오브젝트 테두리 선 메터리얼로 구현 (0) | 2023.03.26 |
[Unreal] 클래스 블프 및 메쉬, 텍스처 등 로딩 Finder (0) | 2022.12.03 |
[Unreal] 멀티플레이 개념잡기 Replicated (0) | 2022.11.27 |
[Unreal] 디버깅용 드로워 이용 방법 (Draw Debug) (0) | 2022.11.22 |