Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
WeaponDefinition.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Engine/DataAsset.h"
7#include "Engine/DataTable.h"
8#include "GameplayTagContainer.h"
9#include "GAS/GA/GA_Base.h"
10#include "WeaponDefinition.generated.h"
11
12class UAnimInstance;
13class UAnimMontage;
14class UAudioData;
15class UGameplayAbility;
16class UGameplayEffect;
17class USkeletalMesh;
18class UStaticMesh;
19class UTexture2D;
20
21USTRUCT(BlueprintType)
23{
24 GENERATED_BODY()
25
26 // 무기별 Animation Layer Interface 구현 AnimBP
27 UPROPERTY(EditDefaultsOnly, Category = "Visual|Animation")
28 TSubclassOf<UAnimInstance> WeaponAnimLayerClass;
29
30 // 캐릭터 손 소켓에 부착할 무기 메시
31 UPROPERTY(EditDefaultsOnly, Category = "Visual|Weapon")
32 TObjectPtr<USkeletalMesh> WeaponMesh;
33
34 // 분리형 무기를 부착할 캐릭터 메시 소켓 이름
35 UPROPERTY(EditDefaultsOnly, Category = "Visual|Weapon")
36 FName WeaponSocketName = TEXT("Weapon_r_socket");
37
38 UPROPERTY(EditDefaultsOnly, Category = "Visual|Weapon")
39 FTransform WeaponOffset;
40};
41
42
43USTRUCT(BlueprintType)
45{
46 GENERATED_BODY()
47
48 UPROPERTY(EditDefaultsOnly, Category = "GAS|Stats")
49 TSubclassOf<UGameplayEffect> StatBaselineEffect;
50
51 UPROPERTY(EditDefaultsOnly, Category = "GAS|Abilities", meta = (Categories = "Input"))
52 TMap<FGameplayTag, TSubclassOf<UGA_Base>> InputAbilityMap;
53
54 UPROPERTY(EditDefaultsOnly, Category = "GAS|Abilities")
55 TSubclassOf<UGA_Base> SwapInSkill;
56};
57
58
59USTRUCT()
61{
62 GENERATED_BODY()
63
64public:
65 UPROPERTY(EditDefaultsOnly, Category = "Knockdown")
66 TObjectPtr<UAnimMontage> KnockDownMontage;
67
68 UPROPERTY(EditDefaultsOnly, Category = "Knockdown", meta = (ClampMin = "0.0"))
69 float KnockDownDuration = 0.0f;
70
71 UPROPERTY(EditDefaultsOnly, Category = "Knockdown", meta = (ClampMin = "0.0"))
72 float KnockDownDistance = 300.0f;
73};
74
75UCLASS(BlueprintType)
76class CK_UE_API UWeaponDefinition : public UPrimaryDataAsset
77{
78 GENERATED_BODY()
79
80public:
81 virtual FPrimaryAssetId GetPrimaryAssetId() const override;
82
83public:
84 // 무기 식별 태그
85 UPROPERTY(EditDefaultsOnly, Category = "Identity", meta = (Categories = "Weapon"))
86 FGameplayTag WeaponTag;
87
88 // 시각 데이터.
89 UPROPERTY(EditDefaultsOnly, Category = "Visual", meta = (ShowOnlyInnerProperties))
91
92 // 어빌리티/GAS 데이터.
93 UPROPERTY(EditDefaultsOnly, Category = "Ability", meta = (ShowOnlyInnerProperties))
94 FWeaponAbilityData AbilityData;
95
96 UPROPERTY(EditDefaultsOnly, Category = "Audio")
97 TObjectPtr<UAudioData> AudioData;
98
99 UPROPERTY(EditDefaultsOnly, Category = "Stats", meta = (RowType = "/Script/CK_UE.WeaponTableRow"))
100 FDataTableRowHandle WeaponStatRow;
101
102 // 히트 확정 시 무기별 히트 이펙트 태그.
103 UPROPERTY(EditDefaultsOnly, Category = "Combat", meta = (Categories = "GameplayCue.Combat.HitEffect"))
104 FGameplayTag HitCueTag;
105
106 // 피격 리액션 몽타주 - 기본 Idle 상태에서 피격 시.
107 UPROPERTY(EditDefaultsOnly, Category = "Combat")
108 TObjectPtr<UAnimMontage> HitReactMontage_Idle;
109
110 // 피격 리액션 몽타주 - Attack Idle 상태에서 피격 시.
111 UPROPERTY(EditDefaultsOnly, Category = "Combat")
112 TObjectPtr<UAnimMontage> HitReactMontage_AttackIdle;
113
114 UPROPERTY(EditDefaultsOnly, Category = "Combat", meta = (ShowOnlyInnerProperties))
115 FWeaponKnockdownData KnockdownData;
116
117 // 무기별 기본 공격 범위.
118 UPROPERTY(EditDefaultsOnly, Category = "Combat", meta = (ClampMin = "0.0"))
119 float AttackRange = 450.0f;
120
121 // AttackRange에 추가로 허용할 무기별 공격 범위 보정 거리.
122 UPROPERTY(EditDefaultsOnly, Category = "Combat|Correction", meta = (ClampMin = "0.0"))
123 float AttackRangeCorrectionDistance = 250.0f;
124
125 // 보정 이동 후 적을 공격 범위 안쪽으로 더 넣을 거리.
126 UPROPERTY(EditDefaultsOnly, Category = "Combat|Correction", meta = (ClampMin = "-20.0", ClampMax = "20.0"))
127 float AttackRangeCorrectionInnerOffset = 20.0f;
128};
Definition CK_UE.Build.cs:6
Definition AudioData.h:76
Definition GA_Base.h:14
Definition WeaponDefinition.h:77
Definition WeaponDefinition.h:45
Definition WeaponDefinition.h:61
Definition WeaponDefinition.h:23