디테일 패널과 초기 데이터 설정
- 디테일 패널에서 초기 데이터를 설정하는 행위는 해당 값이 기본값(default value)으로 설정된다는 의미
- 블루프린트의 컨스트럭션 스크립트(Construction Script)에서도 초기 데이터를 설정할 수 있음
- 디테일 패널에서 변경하는 값과 컨스트럭션 스크립트에서 변경하는 값이 충돌하면, 컨스트럭션 스크립트의 값이 우선됨
컴포넌트의 구분
모양(렌더링되는 컴포넌트)
- 뷰포트(Viewport)에 보이는 오브젝트 (예: Static Mesh, Skeletal Mesh, Sprite 등)
- 씬에 배치되며 계층구조를 가짐
프로그래밍적인 컴포넌트
- 화면에 보이지 않으며 계층을 가지지 않음
- 대표적인 예: AudioComponent, PhysicsHandleComponent, CameraComponent, MovementComponent 등
- 게임 로직과 관련된 기능을 수행함
컨스트럭션 스크립트 (Construction Script)
컨스트럭션 스크립트란?
- 블루프린트의 생성자(Constructor) 역할을 함
- 객체(Actor)가 씬에 배치될 때 실행되며, 초기 설정을 진행함.
- 디테일 패널에서 변경하는 것과 같은 역할을 수행하지만, 컨스트럭션 스크립트가 우선순위를 가짐
- 즉, 디테일 패널에서 값을 변경해도 컨스트럭션 스크립트에서 다시 덮어씌울 수 있음
컨스트럭션 스크립트의 역할
- 외부에서 입력을 받아 자동으로 조립(Setup)할 수 있도록 함
- 예를 들어, StaticMeshComponent에 SetStaticMesh()를 사용하여 특정 메쉬로 변경할 수 있음
예시
- MeshComponent가 SM_Chair로 설정되어 있음
- SetStaticMesh(SM_Rock)을 실행하면 뷰포트에서 SM_Rock으로 변경됨
- 즉, 컨스트럭션 스크립트의 설정이 우선 적용됨
컨스트럭션 스크립트를 사용하는 이유
디테일 패널에서도 설정이 가능한데 왜 사용할까?
- 컨스트럭션 스크립트에서는 변수를 추가할 수 있음
- 추가한 변수는 다른 사용자가 쉽게 조작할 수 있도록 UI에 노출할 수 있음 ( 인스턴스 편집 가능 )
- 디테일 패널에서 변경한 값과 연동하여 자동화된 설정을 제공할 수 있음
- 예를 들어, 특정 값을 변경하면 해당 값에 따라 다른 설정이 자동으로 적용되도록 구성할 수 있음
언리얼에서 오브젝트(Actor)를 생성하는 방법
드래그 앤 드랍
- 콘텐츠 브라우저에서 블루프린트(또는 스태틱 메쉬 등)를 씬으로 드래그하면 생성됨
스폰(Spawn)
- SpawnActor 함수를 사용하여 런타임 중 동적으로 생성할 수 있음
블루프린트 변수 설정
변수 타입
- 변수를 생성하면 다양한 속성을 설정할 수 있음
변수 타입 | 해당 변수가 어떤 타입인지 설정 (예: Static Mesh, int, float 등) |
설명 | 변수에 대한 부가 설명을 추가 가능 |
스폰 시 노출 | SpawnActor를 사용할 때 변수 값을 외부에서 설정 가능하도록 함 |
인스턴스 편집 가능 | 특정 오브젝트(인스턴스)에서 변수를 변경할 수 있도록 허용 |
블루프린트 읽기 전용 | const와 같은 역할을 하며, 블루프린트에서 값을 변경할 수 없음 |
프라이빗 | 기본적으로 Public이지만, 체크하면 Private 변수가 됨 (외부 접근 불가) |
카테고리 | 변수를 정리하기 위한 그룹을 설정 가능 |
리플리케이션 | 네트워크 통신에서 해당 변수를 동기화할지 여부를 결정 |
변수 슬라이더 및 범위 설정
- 변수 타입이 int, float 등 숫자형일 경우 슬라이더 및 입력 범위를 설정 가능
슬라이더 범위(Slider Range)
- 슬라이더를 조작할 때 이동 가능한 최소/최대 범위를 설정
- 하지만 입력 범위는 제한되지 않음 (즉, 직접 값을 입력하면 제한값을 넘을 수도 있음)
값 범위 설정(Value Range)
- 변수에 허용할 최소/최대 값을 강제 설정
- 입력 값이 범위를 벗어나면 자동으로 조정됨
변수 활용
- 변수를 오브젝트 레퍼런스(Object Reference) 타입으로 설정하면, 해당 변수는 특정 오브젝트를 참조할 수 있음
변수 Get/Set 단축키
- Ctrl + 드래그 앤 드랍 → Get 변수
- Alt + 드래그 앤 드랍 → Set 변수
변수를 사용하는 이유
- 외부에서 조작할 수 있도록 인스턴스 편집 가능(Instance Editable) 옵션을 활성화할 수 있음
- 프로그래밍적인 요소가 아니라도, 다른 사용자가 쉽게 값을 조작하여 다양한 변형을 줄 수 있음
블루프린트의 노드 및 기능
시퀀스 (Sequence)
- 여러 개의 실행 흐름을 순차적으로 실행할 때 사용
- "핀 추가(Add Pin)" 버튼을 눌러 실행 순서를 늘릴 수 있음
변수 승격 (Promote to Variable)
- 특정 값이나 노드를 변수로 승격시키면 자동으로 변수 생성됨
- 컴파일 후 변수 승격을 하면, 기존 설정된 값이 그대로 유지됨
단축키
- Drag + Q : 그나마가장 깔끔한 방법
- Drag + C : 선택된 노드에 주석(Comment) 추가
컨스트럭션 스크립트의 핵심 개념
- 결국 중요한 설정을 밖으로 빼서, 다른 사용자가 쉽게 조작할 수 있도록 하는 것
- 이를 통해 블루프린트의 자동화 및 편의성을 높일 수 있음
- 특정 요소(예: 메쉬, 머터리얼)를 변수로 설정하여 다른 사람이 쉽게 변경할 수 있도록 하면 작업 난이도를 낮출 수 있음
실습
lamp를 만들어 볼것
'Unreal' 카테고리의 다른 글
[Unreal] 3월 31일 수업정리 (0) | 2025.03.31 |
---|---|
[Unreal] 3월 28일 수업정리 (0) | 2025.03.28 |
[Unreal] 3월 26일 수업정리 (0) | 2025.03.26 |
[Unreal] 3월 25일 수업정리 (0) | 2025.03.25 |
[Unreal] 3월 24일 수업정리 (0) | 2025.03.24 |