언리얼 구조도 사이트
Object → Actor → Pawn → Character 순으로 점점 게임 오브젝트로 발전
1. Object (최상위 클래스)
모든 언리얼 클래스의 부모
GC(가비지 컬렉션) 대상이 될 수 있음 (UObject 기반)
트랜스폼(위치, 회전, 크기) 없음 → 화면에 보이지 않음
2. Actor (월드에 배치 가능한 기본 객체)
트랜스폼(위치, 회전, 크기) 보유
컴포넌트 시스템 사용 가능 (Scene Component로 계층 구조 생성 가능)
게임에서 월드에 배치 가능
3. Pawn (조종 가능한 객체)
Actor의 자식 클래스
플레이어나 AI가 조종 가능
Controller와 상호작용 가능
캐릭터, 차량 등 조종 가능한 모든 객체의 기반이 됨
4. Character (애니메이션, 이동 기능 포함)
Skeletal Mesh(본 기반 애니메이션) 지원
Capsule Component(충돌체) 기본 장착
CharacterMovement로 기본 이동 시스템 포함 (걷기, 점프 등)
언리얼 엔진 기본 시스템 및 블루프린트 개념 정리
개념 | 설명 | 시작 클래스 | 주요 기능 |
Component (컴포넌트) |
오브젝트를 구성하는 요소 | Actor | 메시, 충돌, 사운드, 이펙트 추가 |
Transform (좌표 변환) |
Position, Rotation, Scale | Actor | SetActorLocation(), SetActorRoation() |
Controller (빙의) |
Pawn을 조종하는 시스템 | Pawn | PlayerController, AIController |
BluePrint (비주얼 스크립팅) |
C++ 없이 게임 로직 작성 | Actor | 이벤트, 함수, 변수, 타임라인 활용 |
BluePrint(비주얼 스크립팅 시스템)
1.Viewport - 블루프린트에서 만든 작업물을 미리 보는 곳(Preview개념)
2.Event Graph - 게임이 실행된 후 이벤트가 발생하면 실행되는 곳
[유니티의 Update(), Start(), OnTriggerEnter() 같은 역할을 함.]
- Event BeginPlay: 액터가 게임에서 처음 생성될 때 실행 (유니티의 Start()와 유사)
- Event Tick: 매 프레임마다 실행 (유니티의 Update()와 유사)
- Event ActorBeginOverlap: 다른 액터와 충돌했을 때 실행 (OnTriggerEnter()와 비슷)
- Custom Event: 직접 만든 이벤트를 실행할 수 있음
3. Construction Script - "에디터에서 오브젝트가 생성되거나 변경될 때 실행되는 부분"
이 부분이 유니티의 Start(), Awake(), Reset()처럼 보이지만 다름!
작동 방식
- 게임 실행 전에 실행됨 (플레이 모드가 아니라도 실행 가능)
- 블루프린트 인스턴스가 에디터에서 수정될 때마다 다시 실행됨
- 레벨에 액터를 배치할 때마다 실행됨
개념 | 유니티 (C#) | 언리얼 블루프린트 |
게임 시작 전 실행 | Awake() | ❌ |
오브젝트 생성 시 | Start() | Event BeginPlay |
에디터에서 값 변경 시 | ❌ | Construction Script |
Construction Script는 게임이 실행되면 더 이상 실행되지 않음.
게임 실행 후 동적인 변화를 주려면 Event Graph에서 처리해야함.
유니티 Reset() vs 언리얼 Construction Script
유니티 Reset() | 언리얼 Construction Script | |
언제 실행? | 컴포넌트가 추가될 때 한 번 실행 | 블루프린트가 수정될 때마다 실행 |
어디서 실행? | Inspector에서 "Reset"버튼 클릭 시 실행 | 에디터에서 변수를 수정할 때마다 실행 |
어떤 용도? | 기본 값 설정 (초기화) | 오브젝트의 설정을 동적으로 변경 |
게임 실행 후? | 실행 되지 않음 | 실행 되지 않음 |
게임 실행 중 Construction Script 변수 변경 시 발생하는 문제
- 1. Construction Script에서 설정한 값은 게임 실행 후 다시 적용되지 않음
Construction Script는 오직 에디터에서 실행되고, 게임 실행 후에는 멈춤.
따라서, 게임 실행 중에는 Event Graph에서 변수 값을 따로 변경해야 적용됨.
- 2. 게임 실행 중 변경한 변수가 다시 초기화될 수 있음
만약 Construction Script가 에디터에서 다시 실행되면, 게임 중 변경한 값이 덮어씌워질 수 있음.
예를 들어, 블루프린트 인스턴스를 새로 생성하거나 레벨을 리로드하면 Construction Script가 다시 실행되어,
게임 중 변경한 값이 사라질 수 있음.
최근 공부 중인 BluePrint를 활용해 나이아가라와 머티리얼 제어하는 영상들이다.
MPC(Material Parameter Collection)와 블루프린트의 타임라인, 그리고 Construction Script관련 공부 후 영상들이다.
눈(Instance Editable)을 통해 디테일패널에 표시유무를 정할 수있다.