
언리얼에서 객체를 생성하는 방법Objcet를 상속받으면 메모리를 자동으로 관리, Reflectoin 등을 지원한다기존 C++ 에선 new 키워드를 사용했지만 언리얼에선 NewObject <>를 통해 객체를 생성할 수 있다 Reflection과 GC를 통해
액터는 레벨에 배치할 수 있는 오브젝트TObjectPtr은 포인터 하나를 들고있는 것과 같다장기적으로 ObjectPtr으로 통일해서 만들면 정보를 추가해서 디버깅 등에서의 이점이 있다생성자에서는 게임 로직과 관련된 부분이 들어가면 안되고 최소한의 작업만 하는 것을 권장
x, y, z 축 좌표에 대한 정보를 가지고 있는 구조체크기와 방향을 가지고 있다특정 방향으로 액터를 이동시키는 방법특정 Target을 따라가도록 만들어보자현재 맵에 있는 특정 Actor를 찾는 방법

Actor는 언리얼 엔진의 레벨에 배치할 수 있는 오브젝트를 의미한다Pawn는 Actor를 상속받았으며 Controller를 통해 Pawn에 Poesses(빙의)하여 플레이어나 AI가 제어할 수 있다Pawn의 멤버 변수 중 중요한 부분 Auto Possess Play
UE4에서 Input을 관리하던 방법 UE5로 오면서 Input을 관리하는 방식이 바뀌었다 장점이 많지만 단점으로는 복잡하고 처음에 세팅하는 것이 어렵다 상황에 맞게 Input 시스템을 바꿀 수 있다는 장점이 있다 UE5 Enhanced Input
Enum처럼 열거형으로 사용 가능하고 계층 구조를 가진다 Project Settings → GameplayTags → Manage Gamaplay Tags에서 추가 가능 해당 방법은 C++에선 사용할 수 없기 때문에 권장되지 않는다. Build.cs에 Gamepla
Project Settings → Engine → Asset Manager 리소스 매니저 역할로 초반에 에셋을 모두 불러 읽어와 들고있으며 필요없으면 unload 하기도 한다 AssetManager를 상속받은 class 생성 에셋 매니저는 싱글톤 패턴으로 구
RAssetData에 에셋을 가져오는 함수 추가 PreSave를 override 하여 에셋을 캐싱할 수 있다 이후 캐싱되어 있는 에셋이 있다면 가져온다 Emplace는 C++ 벡터의 emplace_back AssetNameToPath에는 단순히 이름과 경로를 가지
로딩화면에서 모두 로딩하거나 다른 스레드에게 로딩을 위임하거나 비동기로 하는 방법이 있다 동기 함수의 경우 함수가 끝날때까지 멈추고 기다리기 때문에 마우스 뿐만 아니라 렌더링도 멈추기 때문에 게임에서 사용하기 적합하지 않다 비동기 방식은 완료가 되었는지 매번 체크하거나
RCharacter를 최상위 클래스로 두고 Player, Monster, NPC등을 제작하기 위해 RCharacter를 상속받은 RPlayer, RMonster 클래스 생성 기존 RCharacter에 있는 SpringArm과 Camera는 최상위 클래스가 아닌 Pla
Animation Blueprint는 AnimInstance를 상속받은 블루프린트 클래스이다 AnimInstance를 상속받은 C++ 클래스 생성 NativeInitializeAnimation: BeginPlay처럼 딱 한 번 초기화하는 함수 NativeUpdateA
언리얼 샘플의 Anim_Graph 따라 만들어보자 우클릭 → Animation → Animation Blueprint 이전에 만들어준 AnimInstance를 상속받아 애니메이션 블루프린트 생성 캐릭터의 Mesh에서 해당 애니메이션 블루프린트 클래스를 선
Animation retargeting은 캐릭터의 모션 데이터를 다른 캐릭터에 맞게 자동으로 변환하는 기술 Rig 만들기 우클릭 → Animation → Retargeting → IK Rig Retarget Chain 만들기 Bone 선택 → 우클릭 → New Re
여러 개의 애니메이션을 편집해 하나의 애니메이션을 만드는 기능 Animation Montage 만들기 우클릭 → Animation → Animation Montage 사용 할 애니메이션을 추가 A→B→C 순으로 애니메이션이 실행된다 Montage Sect
충돌은 크게 2가지 종류가 있다 물리적인 충돌 캐릭터가 뚫고 가지 못하는 벽 등과 같은 물리적으로 물체끼리 부딪히는 것 물리적인 충돌이 아닌 특정 영역 안에 들어왔음을 감지하는 충돌 특정 위치에서 문이 열리거나 몬스터가 소환되거나 피격 판정과 같은 충돌을 감지하지만
Object Channel과 Trace Channel Project Settings → Collision Object Channel: 새로운 Object Type을 만드는 것 Trace Channel: 물체와 물체의 충돌은 아니지만 레이캐스팅이나 공격 범위 판정에 대
Delegate C++에서 함수 포인터와 비슷한 개념으로 특정 이벤트나 동작이 발생했을 때 해당 이벤트에 반응하도록 함수를 연결하는 기능 이를 통해 객체간의 느슨한 결합을 유지하면서도 이벤트 기반의 시스템을 쉽게 구현할 수 있습니다 Single Cast Delgate
Highlight 특정 오브젝트나 영역을 시각적으로 강조하는 기능 게임 내에서 플레이어가 특정 오브젝트를 인식할 수 있도록 도와주는 역할 PostProcess Volume을 사용해 씬의 특정 부분에 효과를 주거나 Dynamic Material Instance를 이용해
PlayerController에서 TargetActor 업데이트 마우스로 대상을 클릭하면 Target Actor로 업데이트 해준다. Target을 따라가서 공격하는 함수 추가 일정 범위안에 들어오면 공격하고 그렇지 않으면 대상에게 다가간다 공격 애니메이션 추가
Animation Notify 애니메이션 재생 중 특정 시점에 이벤트를 발생시키기 위해 사용하는 기능으로 애니메이션의 특정 프레임에서 소리 재생, 이펙트 트리거, 게임 로직 호출 등의 작업을 수행할 수 있다. Animation Notify 만들기 AnimNotify를
AI AI는 언리얼 엔진에서 제공하는 Behavior Tree를 이용하거나 FSM을 통해 구현할 수 있다. Behavior Tree를 사용해서 AI를 구현할 수 있지만 작은 규모의 AI 같은 경우엔 FSM으로 충분히 대체할 수 있다. AIController를 상속받은
UI 언리얼 엔진에서는 UMG(Unreal Motion Graphics)라는 도구를 이용해 UI를 설계하고 블루프린트 또는 C++로 UI 기능을 구현할 수 있습니다. Widget Blueprint 만들기 우클릭 -> User Interface -> Widget Blu
인벤토리 시스템 만들기 Inventory Slot 만들기 인벤토리의 한 칸을 의미한다. 이미지는 추후 아이템 아이콘으로 교체된다. Inventory Slots 만들기 GridPanel_Slots에서는 Inventory slot을 여러개 들고 있음 UMyInv
이전에 만든 MyUserWidget을 상속받은 클래스 생성 SizeBox를 통해 아이템의 사이즈를 정하고 ImageIcon 위에 마우스를 갖다대면 ImageHover의 불투명도를 조절하여 호버링 표시 아이템에 대한 정보와 아이템의 아이콘으로 InventorySlots
GAS(Game Ability System) 복잡한 스킬과 상태 효과를 쉽게 관리하고 구현할 수 있도록 돕는 프레임워크 능력(Ability), 효과(Effect), 속성(Attribute)등의 개념을 중심으로 작동합니다. 클라이언트와 서버 간의 동기화 작업을 자동으로
Gameplay Attribute 캐릭터의 상태를 나타내는 값으로 예를 들어 체력, 마나, 스태미나같은 스탯이 있습니다. 속성은 능력이나 효과의 영향을 받으며 게임 내 캐릭터의 능력 발동과 직접적으로 연결됩니다. 지금은 캐릭터 클래스에서 Hp 같은 스탯을 관리하지만 G
Gameplay Ability 게임 내 캐릭터가 사용할 수 있는 동작이나 스킬 시작, 실행, 종료라는 기본 단계를 가지고 있으며 조건부로 발동될 수 있다. Gameplay Ability를 상속받은 클래스 생성 해당 클래스를 상속받아 여러 어빌리티를 만든다. 기본 공