게임 개발/Unreal Engine 기본
Unreal Engine SCS(Simple Construction Script)
지노윈
2025. 12. 30. 13:59
반응형
언리얼 엔진에서 SCS(Simple Construction Script)는 우리가 블루프린트 에디터의 '컴포넌트(Components)' 패널에서 컴포넌트를 추가하고, 계층 구조를 잡고, 설정을 변경하는 모든 시각적 작업을 코드로 관리하는 시스템입니다.
쉽게 말해, "블루프린트에서 마우스로 컴포넌트를 조립한 내역을 담고 있는 청사진"이라고 정의할 수 있습니다.
1. SCS의 핵심 역할
우리가 블루프린트 에디터에서 StaticMesh를 추가하고 SceneComponent 아래에 배치하면, 엔진 내부적으로는 다음과 같은 일이 일어납니다.
- 계층 구조 저장: 어떤 컴포넌트가 부모이고 자식인지에 대한 정보를 저장합니다.
- 프로퍼티 기록: 컴포넌트의 위치(Transform), 할당된 메쉬, 라이트 강도 등의 수정 사항을 기록합니다.
- 인스턴스화: 게임이 실행되거나 액터가 월드에 배치될 때, SCS에 기록된 정보를 바탕으로 실제 컴포넌트 객체들을 생성하고 부착합니다.
2. SCS와 C++의 관계
SCS는 주로 블루프린트에서 추가된 컴포넌트를 다룹니다. C++ 코드와 비교하면 이해가 빠릅니다.
- C++ 방식: CreateDefaultSubobject<T>()를 호출하여 생성자에서 직접 컴포넌트를 만듭니다. 이 정보는 앞서 배운 CDO에 포함됩니다.
- SCS 방식: 블루프린트 에디터에서 'Add Component' 버튼으로 추가합니다. 이 정보는 SCS라는 데이터 구조에 저장되었다가, 액터가 생성될 때 실행됩니다.
[!NOTE] 만약 C++ 클래스를 상속받은 블루프린트를 만들면, 해당 액터는 **[C++에서 만든 CDO의 컴포넌트] + [블루프린트 SCS에서 추가한 컴포넌트]**가 합쳐진 형태가 됩니다.
3. 액터 생성 시 동작 순서
액터가 생성될 때 컴포넌트들이 조립되는 과정은 대략 다음과 같습니다.
- C++ 생성자 호출: C++에 정의된 기본 컴포넌트들이 먼저 생성됩니다.
- SCS 실행: 블루프린트에서 추가한 컴포넌트들이 생성되고 계층 구조에 따라 부착(Attach)됩니다.
- Construction Script 실행: 사용자가 블루프린트의 Construction Script 그래프에 짠 로직이 실행되며 최종 세팅을 마칩니다.
4. 왜 SCS라고 부르나요?
- Simple: 복잡한 프로그래밍 없이 시각적인 도구로 구성할 수 있다는 의미입니다.
- Construction: 액터가 "건설(생성)"되는 과정에서 필요한 설계도라는 의미입니다.
- Script: 명령문처럼 차례대로 컴포넌트를 생성하고 설정하는 절차를 담고 있기 때문입니다.
요약하자면
SCS는 블루프린트 에디터에서 우리가 조립한 컴포넌트들의 설계도 정보이며, 이를 통해 엔진은 액터가 생성될 때마다 매번 똑같은 구조의 컴포넌트들을 자동으로 생성하고 붙여줄 수 있습니다.
반응형