목록언리얼 엔진 (77)
게임 개발 메모장
체크인 (Check-in) 체크인은 변경된 코드 또는 에셋을 프로젝트의 버전 관리 시스템에 반영하는 과정입니다. 변경된 내용을 현재 개발 중인 브랜치나 메인 브랜치에 반영하고 다른 개발자와 공유합니다. 이 과정은 새로운 기능 추가, 버그 수정, 에셋 업데이트 등과 같은 작업을 완료한 후에 이루어집니다. 주로 버전 관리 시스템의 커밋(Commit) 기능을 통해 이루어집니다. 체크아웃 (Check-out) 체크아웃은 프로젝트의 특정 버전이나 브랜치를 개발 환경으로 가져오는 과정입니다. 다른 개발자가 체크인한 최신 변경사항을 가져와 자신의 로컬 환경에서 작업할 수 있게 합니다. 이 과정을 통해 협업자 간에 일관된 작업 환경을 유지할 수 있습니다. 주로 버전 관리 시스템의 체크아웃(Checkout) 또는 클론(..
AuraInputConfig.h // Copyright Druid Mechanics #pragma once #include "CoreMinimal.h" #include "Engine/DataAsset.h" #include "GameplayTagContainer.h" #include "AuraInputConfig.generated.h" USTRUCT(BlueprintType) struct FAuraInputAction { GENERATED_BODY() UPROPERTY(EditDefaultsOnly) const class UInputAction* InputAction = nullptr; UPROPERTY(EditDefaultsOnly) FGameplayTag InputTag = FGameplayTag();..
전역 AbilitySystem AbilitySystemGlobals 클래스는 GAS에 대한 전역 정보를 담고 있습니다. 대부분의 변수는 DefaultGame.ini에서 설정할 수 있습니다. 일반적으로 이 클래스와 상호작용할 필요는 없지만, 그 존재를 알고 있어야 합니다. GameplayCueManager 또는 GameplayEffectContext와 같은 것을 서브클래싱해야 하는 경우, AbilitySystemGlobals를 통해 서브클래싱해야 합니다. AbilitySystemGlobals를 서브클래싱하려면 DefaultGame.ini에서 클래스 이름을 설정합니다: [/Script/GameplayAbilities.AbilitySystemGlobals] AbilitySystemGlobalsClassName..
GameplayCue 정의 GameplayCue(GC)는 사운드 효과, 파티클 효과, 카메라 흔들림 등 게임 플레이와 관련이 없는 것들을 실행합니다. GameplayCue는 일반적으로 (명시적으로 로컬에서 실행, 추가 또는 제거되지 않는 한) 리플리케이트되고 예측됩니다. GameplayCue를 트리거하기 위해서는 ASC를 통해 GameplayCue의 필수 부모 이름과 이벤트 유형(실행, 추가 또는 제거)이 포함된 해당 GameplayTag를 GameplayCueManager에 전송합니다. GameplayCueNotify 오브젝트와 IGameplayCueInterface 를 구현하는 다른 액터는 GameplayCue의 GameplayCueTag를 기반으로 이러한 이벤트에 구독할 수 있습니다. 💡Note: ..
AbilityTask 정의 GameplayAbility는 한 프레임에서만 실행됩니다. 이는 그 자체로는 많은 유연성을 허용하지 않습니다. 시간이 지남에 따라 발생하거나 나중에 특정 시점에 발동된 델리게이트에 응답해야 하는 액션을 수행하려면 AbilityTask라는 잠재 액션을 사용합니다. GAS에는 다양한 AbilityTask가 기본으로 제공 루트모션 소스로 캐릭터를 이동하는 작업 애니메이션 몽타주 재생 작업 어트리뷰트 변경에 대응하기 위한 작업 GameplayEffect 변경에 대응하기 위한 작업 플레이어 입력에 응답하기 위한 작업 그 외 UAbilityTask 생성자는 게임 전체에 하드코딩된 최대 1,000개의 AbilityTask 동시 실행을 강제합니다. RTS 게임처럼 월드에 수백 명의 캐릭터가 ..
Gameplay Ability 정의 GameplayAbility(GA)는 엑터가 게임에서 할 수 있는 모든 액션 또는 스킬입니다. 예를 들어 전력 질주나 총을 쏘는 등 한 번에 두 개 이상의 GameplayAbility를 활성화할 수 있습니다. Blueprint 또는 C++로 만들 수 있습니다. UGameplayAbility Abilities define custom gameplay logic that can be activated by players or external game logic docs.unrealengine.com GameplayAbility의 예시입니다: 점프 질주 총 쏘기 특정 초마다 수동적으로 공격 차단하기 물약 사용 문 열기 자원 수집 건물 건설 GameplayAbility로 구현..
Gameplay Effect 정의 GameplayEffect(GE)는 어빌리티가 자신과 다른 플레이어의 Attribute와 GameplayTag를 변경하는 통로입니다. 피해나 치유와 같은 즉각적인 어트리뷰트 변화를 일으키거나 이동 속도 부스트나 기절과 같은 장기적인 상태 버프/디버프를 적용할 수 있습니다. UGameplayEffect 클래스는 하나의 GameplayEffect를 정의하는 데이터 전용 클래스입니다. GameplayEffect에 추가 로직을 추가해서는 안 됩니다. 보통 디자이너는 UGameplayEffect의 블루프린트 자식 클래스를 많이 만듭니다. GameplayEffect는 모디파이어와 실행을 통해 Attribute를 변경합니다. (GameplayEffectExecutionCalculat..
Attribute 정의 Attribute는 구조체 FGameplayAttributeData에 정의된 실수값입니다. 캐릭터의 체력부터 캐릭터의 레벨, 포션의 충전 수까지 모든 것을 나타낼 수 있습니다. 엑터에 속한 게임 플레이 관련 수치인 경우, Attribute를 사용하는 것을 고려해야 합니다. Attribute는 일반적으로 GameplayEffect에 의해서만 수정해야 ASC가 변경 사항을 예측할 수 있습니다. Attribute는 AttributeSet에 의해 정의되고 그 안에 존재합니다. AttributeSet는 리플리케이션을 위해 표시된 Attribute를 리플리케이트할 책임이 있습니다. 속성을 정의하는 방법은 속성 집합 섹션을 참조하세요. 💡 NOTE: 에디터의 Attribute 목록에 Attri..
FGameplayTag는 GameplayTagManager에 등록된 Parent.Child.Grandchild... 형식의 계층적 이름입니다. 이러한 태그는 오브젝트의 상태를 분류하고 설명하는 데 매우 유용합니다. 예를 들어, 어떤 캐릭터가 기절하면 우리는 그 캐릭터에게 스턴 시간 동안 State.Debuff.Stun GameplayTag을 줄 수 있습니다. 여러분은 bool이나 열거형으로 다루던 것들을 GameplayTag로 바꾸고 객체에 특정 GameplayTag가 있는지 여부에 대해 bool로 체크하는 자신을 발견하게 될 것입니다. 오브젝트에 태그를 부여할 때는 일반적으로 해당 오브젝트에 ASC가 있는 경우 이를 추가하여 GAS가 해당 오브젝트와 상호작용할 수 있도록 합니다. UAbilitySyst..
게임플레이 어빌리티 시스템은 RPG나 MOBA 타이틀에서 볼 수 있는 유형의 능력(Ability)과 속성(Attribute)을 구축하기 위한 매우 유연한 프레임워크입니다. 게임 내 캐릭터가 사용할 액션이나 패시브 어빌리티 등 이러한 액션의 결과로 다양한 어트리뷰트를 높이거나 낮출 수 있는 상태 효과를 구축하고, '쿨타임' 타이머나 리소스 비용을 구현하여 이러한 액션의 사용을 조절하고, 각 레벨에서 어빌리티의 레벨과 효과를 변경하고, 파티클이나 사운드 효과를 활성화하는 등의 작업을 수행할 수 있습니다. 간단히 말해, 이 시스템을 사용하면 점프처럼 간단한 게임 내 어빌리티부터 최신 RPG 또는 MOBA 타이틀에서 즐겨 사용하는 캐릭터의 어빌리티 세트처럼 복잡한 어빌리티까지 설계, 구현하고 효율적으로 네트워크..