게임 개발/Unreal Engine 기본
블루프린트의 Construction Script(CS) 노드와 SCS
지노윈
2025. 12. 30. 14:01
반응형
1. SCS vs Construction Script (CS)
| 구분 | SCS (Simple Construction Script) | Construction Script (블루프린트 노드) |
| 정체 | 컴포넌트 구조의 데이터(설계도) | 컴포넌트 생성 후 실행되는 로직(함수) |
| 하는 일 | "이 액터는 메쉬 1개, 라이트 1개가 있다" | "메쉬의 색상을 랜덤하게 바꾸고, 라이트 밝기를 조절해라" |
| 실행 시점 | 액터 생성 직후, 컴포넌트 탄생 단계 | SCS가 컴포넌트 조립을 마친 직후 |
| 편집 방법 | 컴포넌트 패널에서 마우스 드래그 | 그래프 에디터에서 노드 연결 |
2. 데이터의 흐름 (생성 순서)
액터가 월드에 배치되거나 스폰될 때, 데이터는 다음과 같은 순서로 흐릅니다.
- SCS 단계 (정적 구성): 에디터에서 미리 붙여둔 컴포넌트들이 실제 메모리에 할당됩니다.
- 이때 변수들은 CDO에 저장된 기본값을 따릅니다.
- 변수 주입: Expose on Spawn으로 설정된 변수들이 이 시점에 들어옵니다.
- Construction Script 단계 (동적 수정): 이제 막 생성된 컴포넌트들을 노드 로직을 통해 수정합니다.
- 예를 들어, "나의 팀 ID 변수가 1이면 메쉬를 빨간색으로, 2이면 파란색으로 바꿔라" 같은 로직이 여기서 돌아갑니다.
3. 런타임 컴포넌트 추가와의 차이점
게임 도중에 AddComponent 노드로 컴포넌트를 추가하는 것과 SCS의 차이점은 직렬화(Serialization)와 에디터 가시성입니다.
- SCS/CS 컴포넌트: 에디터 뷰포트에서 즉시 보이며, 레벨을 저장할 때 해당 컴포넌트의 설정값도 함께 저장됩니다.
- 런타임 추가 컴포넌트: 게임이 실행된 후에만 존재하며, 에디터 상의 액터 데이터에는 포함되지 않습니다. (휘발성)
실무 팁: 최적화 주의사항
Construction Script는 에디터에서 액터를 살짝만 움직여도 매 프레임 재실행됩니다.
- 따라서 CS 노드 안에 무거운 계산이나 복잡한 루프를 넣으면 에디터가 매우 버벅이게 됩니다.
- 반면 SCS는 단순히 "데이터"를 나열한 것이므로 성능 부하가 거의 없습니다. 가능하면 시각적인 구조는 SCS(컴포넌트 패널)에서 잡는 것이 좋습니다.
반응형