내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
이번 글에서는 계속해서 스킬을 최적화하고 있으며, 이제 캐릭터에 추가된 액티브 스킬을 UI에 동기화할 수 있습니다. 이번 글에서는 스킬 소모(마나 감소를 위한 스킬 해방)와 쿨링 메커니즘을 개선해보겠습니다.
스킬 클래스의 기본값에서 냉각 및 소모 GE를 설정할 수 있음을 알 수 있습니다.
따라서 다음에는 GE를 활용하여 스킬의 쿨링 및 소모 설정을 해보겠습니다.
먼저 블루프린트를 생성하고 선택한 상위 클래스는 Gameplay Effect입니다.
이름을 GE_Cost_FireBolt로 지정합니다. 이는 파이어볼 비용을 의미합니다.
지속 시간을 소비하려면 즉시를 선택하세요.
그런 다음 캐릭터의 마나 양을 줄이기 위해 수정자를 추가하여 스킬을 사용할 때마다 마나 양을 20씩 줄입니다.
간단한 소비 GE가 생성되고 이를 스킬에 적용합니다.
다음으로, 스킬에서 Commit Ability 노드를 호출해야 합니다. 이 노드는 스킬에 필요한 마나를 차감하며, 쿨다운이 있는 경우 스킬은 쿨다운 시간에 들어갑니다.
Commit Ability는 마나 차감과 쿨링을 위한 통합 노드입니다. 물론 분리하여 소비와 쿨링을 차감하는 노드를 별도로 가질 수도 있습니다.
테스트 효과 실행
먼저, 마나가 부족할 경우 스킬 발동 여부를 결정하여 소모 처리 전 데이터를 출력합니다.
마나량이 충분하면 성공적으로 인쇄할 수 있지만, 마나량이 스킬 출시를 뒷받침할 수 없을 경우 인쇄되지 않습니다. 이는 자원이 충분하지 않으면 스킬이 입력되지 않음을 의미하며, 자원 노드에만 사용되는 커밋 능력으로 판단되지 않습니다.
우리는 소스 코드를 보고 그것이 호출하는 코드는 K2_CommitAbility입니다.
내부적으로 CommitAbility를 호출하여 로직을 구현한 후, 스킬을 제공할 만큼 소모량이 충분한지 확인하고, 리소스를 차감하는 함수를 호출합니다.
CommExecute는 자원 추출 및 냉각을 내부적으로 호출하는 자원 추출 기능입니다.
스킬 레벨을 취하고 GE를 ASC에 적용하는 Apply Cooldown을 살펴보십시오.
동일한 방식으로 애플리케이션 리소스가 소비되며 스킬 레벨도 획득됩니다.
이제 우리는 스킬 소비를 사용하면 스킬 레벨에 따라 소비하는 마나의 양을 수정할 수 있다는 것을 알고 있습니다. 테이블을 사용하여 다양한 레벨과 마나 소비를 정의할 수 있습니다.
그래서 우리는 다양한 레벨에서 스킬의 마나 소비를 설정하기 위해 새로운 곡선 테이블을 만들었습니다.
커브 테이블을 생성하고 유형을 Constant로 선택한 후 각 레벨의 마나 소모량을 고정 값으로 설정합니다.
CT_Cost로 명명됨
파이어볼 1레벨부터 10레벨까지 스킬 마나 소모량을 내부적으로 추가합니다.
그런 다음 여기 GE의 곡선 테이블을 사용하여 생성된 행을 선택하고 값을 -1로 설정합니다.
그런 다음 테스트용 코드에서 초기 기술 수준을 수정합니다.
스킬 해방 후 마나량이 이전보다 3배 많아 설정에 문제가 없음을 입증했다.
스킬 냉각의 원리는 냉각 단계에서 ASC에 냉각 태그를 적용하는 것입니다. 냉각 태그가 존재하는 동안에는 해당 스킬을 다시 사용할 수 없습니다.
그래서 우리는 냉각을 구현하고 싶은데, 먼저 냉각을 위한 라벨을 만듭니다.
FGameplayTag Cooldown_Fire_FireBolt; //火球术冷却标签
그런 다음 태그 관리자에 등록하세요.
GameplayTags.Cooldown_Fire_FireBolt = UGameplayTagsManager::Get()
.AddNativeGameplayTag(
FName("Cooldown.Fire.FireBolt"),
FString("火球术冷却标签")
);
GE를 냉각시키기 위해 불덩어리를 생성합니다.
GE를 시간에 민감한 Has Duration으로 수정합니다.
여기에서 볼 수 있듯이 이전에 값을 수정하는 데 사용한 다양한 방법을 사용하여 냉각 시간을 설정할 수 있습니다. 여기서는 가장 간단한 방법을 사용하여 직접 1초로 설정합니다.
여기서는 캐릭터 관련 콘텐츠를 수정할 필요가 없습니다. 이 GE가 적용될 때 냉각 태그만 추가하면 됩니다.
이 구성 요소를 통해 액터에 냉각 레이블을 추가하고 우리가 만든 냉각 레이블을 추가합니다.
그런 다음 스킬에 쿨타임을 적용하세요.
테스트를 진행해보니 초당 한 번만 스킬을 해제할 수 있다는 사실을 발견했습니다.
우리는 일반적으로 캐릭터에 대한 캐릭터 스킬 인스턴스를 하나만 생성합니다. 스킬이 트리거되기 전에 클라이언트가 스킬을 끄는 것을 방지하기 위해 스킬의 몽타주 애니메이션이 끝나거나 믹스인이 완료되면 스킬을 종료합니다. 강제로 취소되며, 스킬이 종료된 후에도 몽타주를 계속 플레이할 수 있습니다.
또한 Retrigger Instanced Ability를 켜서 다시 트리거할 때 이전 트리거가 꺼지도록 해야 합니다.
후속 조치: 이제 소모량이 있어 UI에 올바르게 표시될 수 있지만, 아직 쿨링이 구현되지 않은 상태에서 스킬 사용 후 스킬 쿨링 진행 상황을 스킬 UI에 표시할 수 없게 되었습니다. 향후 쿨링 스킬의 변경 사항을 UI 위에 표시해 줍니다.