Dev

    GAS in Multiplayer

    하나의 Server는 여러 명의 Player를 보유하고 있다. Server의 종류 Dedicated Server Human player 존재 x 화면에 렌더링 작업x Listen Server Human player 존재 o Host는 자신이 서버이므로 Lag이 없고 딜레이가 적은 이점을 가짐. Server는 Authority(권한)을 가지고 있음 Game의 올바른 버전을 설정 Server에서 게임 재시작이라던지 중요한 작업을 수행 Replication 서버에서 Replicated 변수의 값을 변화시키면, Client들의 변수 또한 서버와 같게 하도록 Update하는 것이 Replication이다.

    [UE5 C++] 언리얼엔진 LNK2001에러 해결방법

    플러그인을 설치하고 Build.cs파일에 모듈을 추가하지 않았더니 LNK에러가 발생함. public Aura(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore","EnhancedInput","GameplayTasks" }); PrivateDependencyModuleNames.AddRange(new string[] { }); // Uncomment if you are using Slate UI // PrivateDepe..

    Gameplay Ability System

    게임플레이 어빌리티 시스템(Gameplay Ability System) 은 RPG나 MOBA 타이틀에서 볼 수 있는 어빌리티 및 어트리뷰트 유형을 구축하기 위한 고도로 유연한 프레임워크입니다. 게임 내 캐릭터가 사용할 액션이나 패시브 어빌리티, 이러한 액션의 결과로 다양한 어트리뷰트를 높이거나 낮추는 상태 이펙트를 만들 수 있고, '재사용 대기 시간' 타이머나 자원 비용을 구현하여 액션의 사용 빈도를 조절하거나, 어빌리티의 레벨과 레벨에 따른 이펙트를 변경하거나, 파티클 및 사운드 이펙트를 활성화하는 등의 작업이 가능합니다. 게임플레이 어빌리티 시스템을 사용하면 점프처럼 단순한 것부터 최신 RPG나 MOBA 타이틀 내 인기 캐릭터의 기술 모음처럼 복잡한 것까지 다양한 인게임 어빌리티를 설계 및 구현하고 ..

    bReplicates

    멀티플레이어 게임이 실행되면 언리얼의 Replication System은 각 인스터스가 가지고 있는 UGameInstance 의 싱크를 맞추기 위해 일한다. 이를 위해 Replication System은 3개의 클래스가 필요하다. UNetDriver : 서버 인스턴스가 시작하면 UGameEngine 이 만들어지고 이 때, UNetDriver 는 사용자로부터 접속을 기다릴 수 있도록 InitListen() 을 시작한다. 반대로 클라이언트의 UNetDriver 의 InitListen() 은 서버에게 연결을 요청한다. UNetConnection : 만약 서버와 클라이언트 간 연결이 성공하면 UNetDriver는 UNetConnection을 생성한다. 서버는 각 클라이언트의 연결마다 UNetConnection ..

    gitignore 적용이 안될 때

    git rm -r --cached . git add . git commit -m "fixed untracked files" git의 캐시 때문에 발생된 문제로 캐시 모두 삭제 후 add commit하면 해결된다.

    [UE5] 뷰포트 조작법

    일반적으로 wasd는 오픈월드에서 굉장히 느리기 때문에 답답하다. 하지만 우클릭 wasd에서 휠을 이용하면 뷰포트 카메라의 이동속도를 조절할 수 있다. Landscape 작업할 때 이러한 기능은 매우 유용했다.

    [UE5 C++] Mobility

    Static 라이팅은 인게임에서 변경 불가 가장 계산이 빠름( 변하지 않기때문) 라이팅 굽기 허용 Stationary 색과 빛의 강도는 인게임내에서 변경 가능하지만 위치나 회전은 불가능 부분적으로 라이팅 굽기 허용 Movable 움직이고 변경 가능(태양이 움직이는 것 처럼) 그림자가 움직임 가장 비용이 비쌈

    [UE5 C++] Network Role

    EnetRole ENetRole::Role_Autority ENetRole::Role_SimulatedProxy ENetRole::Role_AutonomousProxy ENetRole::Role_None 서버 입장 - 컨트롤 가능한 액터들은 모두 Autority 클라이언트 입장 - 컨트롤 가능한 액터의 LocalRole은 Autonomous Proxy, 이외에 다른 액터들은 Simulated Proxy

    [UE5 C++] Seamless Travel

    Non-Seamless Travel - 다른 맵을 이동하거나 할 때 Client와 Server가 잠깐 Disconnect하고 다시 Reconnect하는 식으로 연결을 끊었다가 붙였다가 하는 방식 Seamless Travel - 연결을 끊는 것이 없기 때문에 재접속 문제가 없다. 다만 맵 간의 이동을 할 때 Transition Map이 필요하다. 이는 다음 Map을 Loading하는 과정에서 시간과 메모리가 많이 들기 때문이다. ServerTravel vs ClientTravel

    [UE5 C++] Animation

    언리얼에서 애니메이션은 하나의 클래스에서 모두 관리한다. Trygetpawn = 현재 소유 중인 pawn 정보 가져옴 [참조] https://erikanes.tistory.com/288