언리얼 엔진 5(Unreal Engine 5)에서 ‘Construction Script’는 액터가 월드에 배치되거나 에디터에서 특정 동작이 필요할 때 실행되는 스크립트입니다. 이는 주로 블루프린트(Blueprint)에서 사용되며, 액터의 초기화, 변형, 자원 생성 등의 작업을 수행할 수 있게 해줍니다.
주요 특징과 기능:
- 실행 시점:
Construction Script
는 에디터 내에서만 실행됩니다. 게임이 실행되기 전에만 작동하며, 런타임에는 실행되지 않습니다.- 액터가 배치될 때 또는 블루프린트가 에디터에서 변경될 때마다 실행됩니다.
- 예를 들어, 액터의 크기를 변경하거나 월드에서 다른 오브젝트를 참조할 때 이 스크립트가 실행됩니다.
- 사용 목적:
- 동적 생성: 다양한 컴포넌트를 동적으로 생성하거나, 특정 로직에 따라 초기화할 수 있습니다. 예를 들어, 액터가 배치될 때 랜덤한 모양의 메쉬를 생성하거나 위치를 조정할 수 있습니다.
- 디자이너 편의성 제공: 에디터에서 액터의 미리보기를 통해 변화를 즉각적으로 확인할 수 있습니다. 이를 통해 디자이너는 게임을 실행하지 않아도 블루프린트의 변화를 실시간으로 확인할 수 있습니다.
- 변경 사항 즉시 반영: 액터의 속성 또는 블루프린트 내부에서 변동이 있을 때, 에디터 내에서 즉시 그 결과를 반영할 수 있습니다.
- 호출 제한:
Construction Script
는 가능한 한 최적화된 상태로 작성해야 합니다. 에디터 내에서 반복적으로 호출될 수 있기 때문에, 무거운 연산이나 불필요한 작업이 포함되면 성능 저하가 발생할 수 있습니다.- 너무 자주 재실행되는 것을 방지하기 위해, 게임 플레이 중에 자주 바뀌지 않는 데이터는 이 스크립트에서 처리하는 것이 적합하지 않습니다.
- 대표적인 활용 사례:
- 랜덤 레벨 생성: 레벨 디자인 시, 건물이나 트랩 같은 오브젝트를 배치할 때 매번 같은 모양이 아니라 랜덤하게 생성되도록 할 수 있습니다.
- 오브젝트 변형: 건축물이나 환경을 구성하는 요소들의 크기, 색상, 위치 등을 액터가 생성될 때마다 변경할 수 있습니다.
- 컴포넌트 초기화: 액터의 기본 컴포넌트들을 생성하거나 구성하는 데 사용됩니다.
예시
- 만약 블루프린트로 벽을 생성하는 액터를 만들고 싶다면,
Construction Script
에서 벽의 크기나 텍스처를 다양한 입력값에 따라 동적으로 설정할 수 있습니다. 벽의 높이나 폭을 지정하는 변수를 사용해 액터가 배치될 때마다 그 값을 조정해 벽이 자동으로 변형되도록 할 수 있습니다.
주의점:
Construction Script
에서 동적으로 생성된 컴포넌트는 런타임에 다시 생성되지 않으므로, 게임 내에서 계속해서 변화를 필요로 하는 작업은 이곳이 아니라 다른 블루프린트 노드를 사용해 처리하는 것이 좋습니다.