TSubclassOf란?언리얼 엔진에서 특정 클래스의 서브 클래스를 안전하게 참조할 수 있도록 도와주는 템플릿 클래스이다.언리얼 엔진에서 UObject 또는 AActor 기반 클래스를 다룰 때, 특정 클래스의 하위 클래스(서브 클래스)만을 저장할 수 있는 변수를 만들 때 사용된다.하드 레퍼런스클래스가 항상 메모리에 로드된 상태에서 바로 접근한다. 왜 필요한가?일반적인 UClass* 포인터를 사용하면 모든 UObject 타입을 받을 수 있어 타입 안전성이 떨어진다.TSubclassOf는 UClass*로 변환될 수 있어, 언리얼 엔진의 클래스 시스템과 자연스럽게 통합된다. 사용법TSubclassOf ActorClass; ActorClass 변수에는 AActor를 상속한 클래스만 저장 가능 TSoftClass..
1. 캐릭터 클래스에서 입력 액션 연결의 개념PlayerController는 키나 마우스 입력을 감지하고, 각 IA를 활성화해 줄 뿐이다.그 다음 캐릭터 클래스에서 "어떤 함수가 호출될지"를 바인딩해 주어야 최종적으로 동작이 이루어진다.PlayerController는 IMC를 활성화한다.해당 IMC에는 UInputAction들이 키보드/마우스와 맵핑되어 있다.캐릭터는 SetupPlayerInputComponent() 함수를 통해 "각 액션이 발생했을 때 어떤 함수를 실행할지"를 등록한다.이렇게 등록한 함수들이, 실제로 움직이거나 점프하는 등 캐릭터 동작을 수행한다.2. 캐릭터에 액션 바인딩 추가하기Character.h FInputActionValue를 전방 선언한다. IA_Move와 IA_Jump 등을..
1. PlayerController란?PlayerController는 사용자가 키보드, 마우스, 게임 패드 등에서 입력을 받으면, 그 입력을 해석하여 캐릭터나 다른 오브젝트에게 동작을 명령하는 핵심 클래스이다.특히 멀티플레이 환경에서는, 각 플레이어마다 개별 PlayerController가 생성되므로, 여러 사용자의 입력을 충돌 없이 분리하고 관리할 수 있다.언리얼 엔진의 중요한 철학 중 하나는 "플레이어 입력은 PlayerController에서 처리한다."이다.이를 통해 입력 처리 로직과 실제 캐릭터의 동작 로직을 분리할 수 있어, 코드를 구조적으로 관리하기가 훨씬 수월해진다. 1-1. 입력이 처리되는 기본 흐름키보드, 마우스, 게임 패드 등 입력 장치로부터 사용자 조작 신호가 들어온다.이 신호는 Pl..
1. Pawn 클래스란?Pawn은 플레이어 혹은 AI가 소유(Possess)할수 있는 가장 상위 클래스이다. 즉, 엔진에서 "무언가를 조종한다"고 할 때 기본이 되는 형태가 Pawn이다.Pawn에는 이동 로직이나 충돌 처리, 중력, 네트워크 이동을 위한 기능들이 기본적으로 포함되어 있지 않다.보행(걷기, 달리기, 점프 등)에 필요한 시스템(캡슐 콜리전, 중력, 지형 따라가기)을 모든 단계에서 직접 구현해야 하므로, 사람 캐릭터를 처음부터 Pawn으로 만들기에는 다소 부담이 크다.이러한 특성 덕분에, 비행기, 드론, 카메라처럼 기존 Characater의 이동 방식을 벗어난 특수한 로직을 완전히 자유롭게 구현할 때 유용하다.2. Character 클래스란?Character는 Pawn을 상속받아 만들어진 자식..
1. GameMode란?GameMode는 게임의 전반적인 규칙과 흐름을 총괄 관리하는 역할을 하는 클래스이다.싱글 플레이에서는 서버와 클라이언트 개념이 나뉘지 않으므로, GameMode가 온전히 로컬에서 동작하여 게임 전체를 제어한다.어떤 Pawn(또는 Character)을 플레이어에게 스폰해 줄지, 어떤 PlayerController를 사용할지, 승패 조건이나 점수 계산 방식은 어떻게 설정할지 등 게임 플레이의 핵심 로직을 담당한다.프로젝트 전역 혹은 레벨별로 필요한 GameMode를 구분해 설정할 수 있다.2. GameMode의 주요 기능과 책임플레이어 Pawn/Character 스폰게임이 시작될 때(또는 플레이어가 리스폰될 때) DefaultPawnClass 또는 지정한 Pawn 클래스를 자동으로 ..
1. 리플렉션 시스템 이해하기1 - 1. Blueprint(시각적 스크립팅) 이해Blueprint는 언리얼 엔진에서 제공하는 시각적 스크립팅 도구로, 노드(블록)을 연결하여 게임 로직을 작성한다.장점Blueprint 그래프를 수정 후, 에디터에서 Play 버튼을 누르면 곧바로 결과를 확인할 수 있다.아이디어를 빠르게 검증하고 반복할 때 큰 장점이 된다.레고 블록을 쌓듯이 노드를 연결해 로직을 작성하므로, 프로그래밍 언어에 익숙하지 않은 초급자들도 쉽게 접근할 수 있다.한계점노드 수가 많아질수록 그래프가 복잡해져, 가독성과 유지보수가 어려워질 수 있다.C++과 비교했을 때, Blueprint는 내부적으로 추가 해석 과정을 거친다. 따라서 물리 연산이나 AI 같이 높은 성능이 필요한 시스템에서는 병목이 될 ..
Transform액터의 위치, 회전, 크기를 제어하는 컴포넌트이다. 위치, 스케일: FVector(x, y, z)로 표현됨.회전(중요!): FRotator(Pitch, Yaw, Roll)로 표현됨.더보기Pitch -> y축으로 회전Yaw -> z축으로 회전Roll -> x축으로 회전Tick게임 프레임 업데이트와 Tick언리얼 엔진은 게임 실행 중 매 프레임마다 여러 작업을 수행한다.특정 액터가 "매 프레임마다" 수행할 로직이 있다면, 언리얼 엔진은 그 액터의 Tick 함수를 매 프레임 호출해준다.렌더링: 화면 그리기물리 연산: 충돌/중력/마찰 등 물리 엔진 처리오브젝트 업데이트: 게임 내 액터들의 상태 갱신Tick 함수 활성화하기액터를 생성할 때 기본적으로 Tick 함수를 사용하려면, 아래와 같이 생성자..