일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 구현
- 시뮬레이션
- 스택
- 트리
- XR Interaction Toolkit
- 투 포인터
- 우선순위 큐
- Team Fortress 2
- 자료구조
- 그리디 알고리즘
- 정렬
- c++
- DFS
- 알고리즘
- VR
- 백트래킹
- 유니티
- 문자열
- 유니온 파인드
- Unreal Engine 5
- 백준
- ue5
- 수학
- 다이나믹 프로그래밍
- 그래프
- 누적 합
- 브루트포스
- 재귀
- BFS
- 다익스트라
- Today
- Total
목록언리얼/Gameplay Ability System (7)
1일1알
Gameplay Effect (GE)GAS는 게임에 영향을 주는(대부분 게임 데이터를 변경) 객체를 별도로 분리해서 관리하는데, 이것이 Gameplay Effect대부분의 GE와 어트리뷰트는 함께 동작세가지 타입 존재Instant : 어트리뷰트에 바로 적용되는 GE, 한 프레임에 실행됨Duration : 지정한 시간 동안 동작하는 GEInfinite : 명시적으로 종료하지 않으면 계속 동작하는 GEGameplayEffect 클래스를 상속받아서 구현, 함수를 통해 구현되는 기능은 거의 없고 대부분 기본 설정을 통해 사용DurationPolicy를 지정어트리뷰트에 어떻게 적용할지에 대한 명세를 지정해줘야 함, 이것을 Modifier라고 함Gameplay Effect ModifierGE에서 어트리뷰트의 변경 ..
Attribute 어트리뷰트는 구조체 FGameplayAttributeData 에 정의된 float값이다. 오브젝트의 체력, 공격력 등 수치에 관련된 값들을 나타낼 수 있고, 일반적으로 GE로 수정한다. Attribute Set(어트리뷰트 셋)은 어트리뷰트들에 대한 정보들을 정의하고 관리한다.Attribute Set단일 어트리뷰트 데이터인 GameplayAttributeData의 묶음어트리뷰트는 AttributeSet이라는 클래스를 상속받아서 구현한다.GameplayAttributeData는 하나의 값이 아닌 두 가지 값으로 구성되어 있음BaseValue : 기본값, 영구적으로 적용되는 고정 스탯 값을 관리하는데 사용CurrentValue : 변동값, 버프 등으로 임시적으로 변동된 값을 관리하는데 사용A..
Ability Task (AT)Gameplay Ability (GA)는 한 프레임에서만 실행되기 때문에 유연한 기능을 제공하지 못할 수도 있다. 따라서 시간이 지남에 따라 발생하거나 특정 시점에 실행된 델리게이트에 응답해야 할 때에는 Ability Task를 사용한다. 예를들어 점프라는 GA가 발동되었을때 Ability Task를 생성하여 착지 시점에 호출되는 델리게이트를 등록하여 착지 시점에 맞춰서 GA를 종료시킬 수 있다. GA는 발동되면 EndAbility가 호출되기 전까지 끝나지 않는다. 애니메이션 재생 같이 시간이 소요되고 상태를 관리해야 하는 어빌리티는 보통 비동기적으로 작업을 수행하고 결과를 통보받는 형태로 구현하고, 이러한 상황을 위해 GAS는 AT를 제공한다. AT의 제작 규칙AT는 Ab..
Gameplay Tags게임플레이 태그는 계층적으로 설계할 수 있는 Enum같은 것이고, 오브젝트의 상태를 분류하는데 유용하다. 예를들어 캐릭터가 기절했다는 상태를 설계하고 싶다면 State.Debuff.Stun 태그를 만들 수 있다. 게임플레이 태그는 GAS뿐만 아니라 다른 곳에서도 유용하게 사용될 수 있다.에디터의 Project Settings에서 원하는 태그를 생성할 수 있고, 생성된 태그들은 DefaultGameplay.ini파일에 저장된다. 태그들은 GameplayTagContainer라는 별도의 저장소에서 관리되고 저장소에 특정 태그가 있는지 체계적으로 검색할 수 있다. GA에 특정 태그를 부착하여 해당 GA를 대표하는 태그로 설정하면 태그를 통해 GA를 발동시킬 수 있다.특정 태그에 대해 실..
Gameplay Abilities (GA)GA는 액터가 게임에서 할 수 있는 모든 행동 또는 스킬을 뜻한다. 점프나 공격같은 행동들을 GA로 만들 수 있다.ASC에 등록하여 발동시킬 수 있다. GA의 발동 과정 ASC의 GiveAbility 함수를 통해 ASC에 GA를 등록하고 TryActivateAbility함수를 통해 ASC에 등록된 GA를 발동시킬 수 있다.GiveAbility 를 통해 GA정보를 넘길때는 클래스정보를 바로 넘기는 것이 아닌 GameplayAbilitySpec이라고 하는 GAS에서 제공하는 어빌리티에 대한 정보를 넘겨주도록 되어있다. Gameplay Ability Spec (스펙) : GA에 대한 정보를 담고 있는 구초제, ASC는 직접 어빌리티를 참조하지 않고 스펙 정보를 가지고..
Ability System Component (ASC)ASC는 GAS의 핵심이 되는 액터 컴포넌트로, GAS시스템과의 상호작용을 처리한다. GA를 실행하거나 Attribute를 가지거나 GE에 의해 영향을 받으려는 액터에는 반드시 ASC가 있어야 한다. ASC에는 OwnerActor와 AvatarActor가 있다. ASC와 직접적으로 연결된 액터를 ASC의 OwnerActor라고 하고, 물리적으로 표현되는 액터를 AvatarActor라고 한다. OwnerActor와 AvatarActor는 같은 액터일 수도 있고, 다른 액터일 수도 있다.대부분의 액터는 OwnerActor와 AvatarActor가 같고, 본인이 플레이하는 플레이어의 경우에는 OwnerActor는 PlayerState, AvatarActor..