언리얼 엔진 GameSubsystem의 숨겨진 보석: InitializeDependency로 의존성 완벽 관리하기 FSubsystemCollectionBase::InitializeDependency로 서브시스템 초기화 순서를 명확히 다루는 방법 목차 서브시스템 의존성에서 발생하는 문제 해결책: InitializeDependency 개념과 동작 실전 예제: LoggingSubsystem ← MainGameSubsystem 의존성 다이어그램 실행 로그로 확인하기 주의 사항과 설계 팁 정리 서브시스템 의존성에서 발생하는 문제 UGameInstanceSubsystem 여러 개가 동시..
인사말 안녕하세요. 이번 포스트에서는 언리얼엔진에서 패키징한 프로그램(.exe)가 윈도우상에서 1개만 존재하는지 체크하고 2개 이상의 프로그램이 중복으로 실행되지 않도록 하는 것에 대해 작성하겠습니다. 사용법 아래의 코드를 참고해서 GameInstace 의 초기화 부분에 함수 또는 코드블럭을 작성해서 넣어주면 게임(프로그램)이 실행될 때 인스턴스를 체크해서 프로그램이 1개만 실행되도록 합니다. 코드 const UGeneralProjectSettings& ProjectSettings = *GetDefault(); const FString LockFilePath = FPlatformProcess::UserTempDir() + ProjectSettings.ProjectID.ToString(); if (!IFi..
인사말 안녕하세요. 이번 포스트에서는 GAS 에서 사용될 Effect Actor 클래스를 생성하고 사용해보도록 하겠습니다. Effect Actor(AActor) 우선 AActor 클래스를 상속받는 Effect Actor 클래스를 생성합니다. Effect Actor 는 오버랩 이벤트를 발생시키기 위한 SphereComponent와 보여질 StaticMeshComponent를 만들어 줍니다. // Copyright mane #pragma once #include "GameFramework/Actor.h" #include "AuraEffectActor.generated.h" class USphereComponent; UCLASS() class AURA_API AAuraEffectActor : public AA..
서론 언리얼 엔진의 Gameplay Ability System에서 능력 시스템 구성요소(Ability System Component, ASC)의 소유자(Owner)와 아바타(즉, 게임 내에서의 대리자 또는 표현)를 설정하는 과정을 설명해드리겠습니다. 이 과정은 네트워크 멀티플레이어 게임에서 중요하며, 능력 시스템 구성요소가 올바르게 복제되고 초기화되어 각 플레이어의 캐릭터에 대한 능력이 적절히 작동하도록 합니다. 능력 시스템 구성요소의 초기화 과정은 소유자 액터와 아바타 액터에 대한 정보를 설정하는 것을 포함합니다. 이 설정은 서버에서 수행되며, 클라이언트는 서버에서 설정된 값을 복제받아 사용합니다. UAbilitySystemComponent::InitAbilityActorInfo 함수 UAbilityS..
Gameplay Effect 복제 모드 (EGameplayEffectReplicationMode) 언리얼 엔진의 GameplayEffect 복제 모드는 게임플레이 효과가 네트워크를 통해 클라이언트에게 어떻게 복제될지를 결정하는 방법을 정의합니다. 이 열거형은 멀티플레이어 게임에서 중요한 부분으로, 효과의 네트워크 트래픽과 성능에 직접적인 영향을 줍니다. // Engine\Plugins\Runtime\GameplayAbilities\Source\GameplayAbilities\Public\AbilitySystemComponent.h /** How gameplay effects will be replicated to clients */ UENUM() enum class EGameplayEffectReplic..
언리얼 엔진에서 Tick과 PlayerTick의 차이점 언리얼 엔진에서 Tick과 PlayerTick의 차이점을 이해하는 것은 게임의 업데이트 메커니즘을 제어하고 최적화하는 데 중요합니다. 여기서 Tick은 언리얼 엔진의 가장 기본적인 업데이트 함수 중 하나로, 게임 내의 거의 모든 액터와 컴포넌트가 매 프레임마다 수행해야 하는 작업을 정의합니다. 반면, PlayerTick은 플레이어의 입력과 관련된 업데이트를 처리하는 특수한 경우에 사용됩니다. Tick Tick 함수는 AActor 클래스와 UActorComponent 클래스에서 가장 자주 볼 수 있으며, 이 함수는 게임의 각 프레임마다 호출됩니다. 이를 통해 개발자는 액터의 위치 업데이트, 애니메이션 상태 변경, 물리 계산 수행 등 매 프레임마다 수행..