Unreal 6

[Unreal Engine] Anim Notify와 Anim Notify State

1. Anim Notify개념애니메이션 재생 중 특정 프레임에 한 번만 호출됨즉발성 이벤트에 적합예시공격 소리 재생 (PlaySound)이펙트 스폰 (SpawnEmitter)콤보 카운트 증가상태 리셋사용 코드 예시virtual void Notify(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation) override; 2. Anim Notify State개념애니메이션 내에서 시작-끝 시간 지정시작과 끝 각각에 콜백이 존재상태 유지 중 반복 처리 가능주요 메서드// 시작 타이밍 호출virtual void NotifyBegin(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation, f..

[Unreal Engine] Reflection System

1. Reflection System문서 링크 : Reflection System / Unreal Object Handling 1) 언리얼 오브젝트의 구성 언리얼 오브젝트에는 특별한 프로퍼티와 함수를 지정할 수 있음관리되는 클래스 멤버 변수: UPROPERTY관리되는 클래스 멤버 함수: UFUNCTION에디터와 연동되는 메타 데이터를 심을 수 있음리플렉션 시스템을 사용해 접근 지시자와 무관하게 값을 설정할 수 있음언리얼 오브젝트에는 항상 클래스 정보를 담은 UClass 객체가 매칭되어 있음클래스를 사용해 자신이 가진 프로퍼티와 함수 정보를 컴파일 타임과 런타임에서 조회할 수 있음NewObject API를 사용해 생성해야 함 2) 클래스 기본 오브젝트 (CDO, Class Default Object) 언..

[Unreal Engine] Object

1. Unreal Object문서 링크 : Unreal Object 1) 모던 객체 지향 설계 원칙디자인 패턴을 필두로 안정적인 설계 방법이 연구됨유지보수와 유연함, 확장성 향상을 위한 객체 지향 프로그래밍 원칭 (SOLID)Single responsibility principle: 하나의 클래스는 하나의 책임만 가져야 한다.Open/closed principle: 클래스 설계를 변경하지 않고 동작을 확장할 수 있어야 한다.Liskov substitution principle: 자식 클래스는 부모 클래스를 대체 사용할 수 있어야 한다.Interface segregation principle: 작고 명확한 인터페이스들로 분리해 관리해야 한다.Dependency inversion principle: 구현을 ..

[Unreal Engine] 기본 타입과 문자열

1. 기본 타입1) Unreal 에서 C++의 데이터 타입을 그대로 사용하지 않는 이유?C++의 경우 플랫폼 파편화 때문에 데이터를 저장할 때 데이터 타입의 크기를 확신할 수 없는 문제가 있음게임 제작의 특성 상 데이터 정보가 명확하고 안정적으로 데이터가 통신되어야 하므로 명시적인 데이터 타입을 정의해야 함 2) 데이터 타입의 종류 3) bool 타입의 선언bool 타입은 크기가 불명확헤더 파일에서 사용 시 uint8 타입에 Bit Field 오퍼레이터 사용: 1비트로 제한해 데이터 양을 최소화시킴일반 uint8 타입과 구분을 위해 b접두사를 사용소스 파일에서는 bool 타입 사용 가능 2. 캐릭터 인코딩문서 링크: 캐릭터 인코딩 1) Unreal 에서 문자열을 따로 지정하는 이유?다양한 나라의..

[Unreal Engine] 언리얼 코드 컴파일 방법

※ Visual Studio에서 수동으로 클래스를 추가하지 말 것헤더 파일 혹은 생성자 코드에 변경 사항이 발생한다면 → 에디터를 끄고 Visual Studio에서 컴파일 (Ctrl + Shift + B)소스 파일에만 변경 사항이 발생한다면 → 에디터의 라이브 코딩으로 컴파일 (Ctrl + Alt + F11) 즉, 설계 변경 시 에디터를 끄고 Visual Studio 내에서 컴파일을 진행한 후에 Unreal Engine을 실행 (Ctrl + F5)구현만 변경 시 에디터의 라이브 코딩으로 컴파일 진행 (Ctrl + Alt + F11)

[Window API] 코드 구조 설계 (Unreal, Unity 방식)

게임 프로그래머 입문 올인원 강의 수강 후 복습용으로 작성   1. Unreal 방식 : Scene에서 Actor 사용1) DevScene 수정// DevScene.h#pragma once#include "Scene.h"class Actor;class DevScene : public Scene{public: DevScene(); virtual ~DevScene(); virtual void Init() override; virtual void Update() override; virtual void Render(HDC hdc) override;public: vector _actors;};// DevScene.cpp// ...void DevScene::Init(){ GET_SINGLE(ResourceMana..