회피 추가; 현재 플레이어의 방향 각도 확인 후 각도 별로 설정한 애니메이션 재생 (inRange Float 활용)
각종 공격 사용 시 콤보 어택 초기화 추가
Attack Actor Component에서 플레이어를 캐스팅한 뒤 가져오는 변수는 활성화되지만, 변수를 조건으로 삽입 시 변수 인식이 안되는 문제 발견 -> 해결하면 대시 어택 정상 작동
차지 어택, 패리 어택, 궁극기 후 움직이지 않았던 현상 수정; delay 노드보다 앞쪽에 Set Movement 노드 배치
각종 공격 사용 시 조건 추가해야함
*프로젝트가 터진 원인: 생성자 문제
ABP EventGraph에서 Blueptrint BeginPlay에 플레이어를 Casting 한 후 바로 변수를 추가하면 오류 발생; 변수는 업데이트 돼야하는데 업데이트가 되지 않기 때문

BP로 ABP에서 변수를 가져올 시 아래와 같이 해줘야함

이번에는 이쪽 부분을 BP로 하지 않고 코드로 처리
|
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
31
32
33
34
35
36
37
|
PlayerControl.h
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Input")
bool isFist;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Input")
bool isKatana;
PlayerAnimInstance.h
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Character")
bool isFist = false;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Character")
bool isKatana = false;
PlayerAnimInstance.cpp
void UPlayerAnimInstance::NativeUpdateAnimation(float DeltaSeconds)
{
Super::NativeUpdateAnimation(DeltaSeconds);
if (!Player) return;
isFist = Player->isFist;
isKatana = Player->isKatana;
if (Movement)
{
Velocity = Movement->Velocity;
MoveSpeed = Velocity.Size2D();
Angle = UAnimInstance::CalculateDirection(Velocity, Player->GetActorRotation());
isFalling = Movement->IsFalling();
}
}
|
cs |
위와 같이 PlayerContorl에서 변수 추가 후, PlayerAnimInstance에서 해당 변수를 가져와서 사용
|
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
|
PlayerAnimInstance.h
//UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Character")
//class ACharacter* Owner;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Character")
class APlayerControl* Player;
PlayerAnimInstance.cpp
void UPlayerAnimInstance::NativeInitializeAnimation()
{
Super::NativeInitializeAnimation();
//Owner = Cast<ACharacter>(GetOwningActor());
Player = Cast<APlayerControl>(TryGetPawnOwner());
//if (Owner)
//{
//Movement = Owner->GetCharacterMovement();
//}
if (Player)
{
Movement = Player->GetCharacterMovement();
}
}
|
cs |
코드로 작성하는 김에 Owner를 Player로 바꿔줌; Owner에서 가져온 ACharacter는 언리얼에서 제공되는 캐릭터 액터를 참조하지만 지금 여기서는 PlayerControl + PlayerAnimInstance를 연동해서 사용할 것이기에 바로 Player를 캐스팅 하여 효율 높임
*아래와 같이 Visual Studio에서 빨간 밑줄이 생기는 이유: 경로 탐색 실패



Generate 실행
이렇게 해도 안되면 위 그림과 같이 폴더와 프로젝트 파일을 남긴 후 Generate
'Unreal Engine > Personal Portfolio Report - ARPG' 카테고리의 다른 글
| 7일차 (0) | 2025.05.14 |
|---|---|
| 6일차 (0) | 2025.05.12 |
| 4일차 (0) | 2025.05.10 |
| 3일차 (0) | 2025.05.09 |
| 2일차 (0) | 2025.05.08 |