Make Unreal REAL.
article thumbnail
능력 간의 관계 설정

Advanced Unreal Engine 5 Multiplayer Gameplay Programming GAS를 통해 서로 다른 능력 간의 관계를 설정할 때, 항상 C++로 모든 것을 구현할 필요는 없다. 현재 점프 중에 앉기를 수행할 수 있도록 되어 있다. Cancel Abilities with Tag 여기에 등록된 태그를 Ability Tags로 가진 능력은, 이 능력이 활성화되면 종료된다. Block Abilities with Tag 여기에 등록된 태그를 Ability Tags로 가진 능력은, 이 능력이 활성화 상태이면 실행할 수 없다. Activation Owned Tags 여기에 등록된 상태 태그는 액터의 Ability System Component에 추가된다. Activation Require..

article thumbnail
벽 달리기 능력

Advanced Unreal Engine 5 Multiplayer Gameplay Programming 달리기 Ability를 생성하기 전에, Tick처럼 동작하며 벽 달리기를 수행할 Ability Task C++ 클래스를 생성한다. Ability Task는 델리게이트를 통해 다룰 수 있다. 벽 달리기를 수행할 벽면이 정해졌을 때 발동할 FOnWallRunWallSideDeterminedDelegate 델리게이트를 정의한다. 콜백 함수에는 벽면의 방향을 전달한다. 벽 달리기가 끝났을 때 발동할 FOnWallRunWallFinishedDelegate 델리게이트를 정의한다. 더 이상 벽 달리기를 수행할 수 없을 때이다. 필요한 클래스를 전방 선언한다. 델리게이트를 선언한다. 이 함수는 매우 중요하다. 모든 ..

article thumbnail
뛰어넘기 능력

Advanced Unreal Engine 5 Multiplayer Gameplay Programming 이번에 할 것은 점프 버튼에 장애물을 뛰어넘는 기능을 추가하는 것이다. 이것을 응용하면 향후에 벽타기 등도 추가할 수 있다. Motion Warping 플러그인을 활성화한다. Motion Warping은 애니메이션이 재생되는 동안, 설정된 Warp Target의 위치와 회전으로 액터의 위치와 회전을 보간시켜주는 기능이다. Character Movement 컴포넌트의 이동 모드가 Flying일 때만 작동한다. 빌드 설정에 MotionWarping 모듈을 추가한다. VaultOver 애니메이션을 통해 VaultOver_Montage 애니메이션 몽타주를 생성한다. 마지막 착지 부분은 필요 없기 때문에, Va..

article thumbnail
달리기 능력

Advanced Unreal Engine 5 Multiplayer Gameplay Programming 새로운 달리기 애니메이션을 구할 필요 없이 블렌드 스페이스에서 걷기 애니메이션을 1개 더 배치한 후, 재생 속도인 Rate Scale을 조정해 빠르게 달리는 것처럼 보이도록 한다. 달리기 시 적용할 GE_State_Sprint 이펙트를 생성한다. 달리기 상태임을 나타내고, 이동 속도 변수의 값을 Modifier를 통해 조절한다. 달리는 동안 이펙트를 지속할 것이므로 Duration Policy를 Infinite로 설정한다. Modifier를 통해 캐릭터의 속성을 정의하고 있는 AG_AttributeSetBase 클래스의 MaxMovementSpeed 값을 조정해 이동 속도를 바꾸도록 한다. Attrib..

article thumbnail
앉기 능력

Advanced Unreal Engine 5 Multiplayer Gameplay Programming GA_Crouch 앉기 능력 C++ 클래스와 상속 받은 BP_GA_Crouch 블루프린트 클래스를 생성한다. Ability Tags에 Ability.Movement.Crouch 태그를 설정한다. 이 태그는 능력의 고유 태그이며, 액터의 Ability System 컴포넌트에서 능력을 실행하거나 취소할 때 사용된다. 앉기 상태를 나타내기 위해 적용할 GE_State_Crouch 이펙트를 생성한다. 단발성이 아니라, 태그를 통해 앉기 상태임를 나타내기 위한 이펙트이므로 Duration Policy를 Infinite로 설정한다. 앉기가 끝날 때 이펙트를 제거한다. Gameplay Effect의 고유 태그인 G..

article thumbnail
베이스 능력

Advanced Unreal Engine 5 Multiplayer Gameplay Programming 여러 능력들을 추가하기 전에, 베이스 능력을 만들어 이펙트 적용 같은 자주 쓰이는 기능들을 미리 구현해놓는 것이 좋다. Non Instanced Ability 객체화되지 않은 능력은 읽기 전용(const) CDO(Class Default Object)를 통해 실행되므로, 값(기본 값)을 외부에서 변경할 수 없다. 그러므로, 값이나 상태를 저장할 수 없고 모든 액터는 전부 동일한 CDO를 통해 능력을 실행하게 된다. CDO에 특별하게 관리되는 값이 있다면, 여러 액터가 동일한 CDO를 통해 능력을 실행할 경우 충돌이 생길 수 있다. Instanced Per Actor Ability 따라서 액터나 실행 단..

검색 태그