본문 바로가기

언리얼5 & C++17

[Unreal 5, Blueprint & C++] 캐릭터 점프 구현과 오류 해결 Animation Transition STEP 1 : 상태 만들고 조건 연결하기 캐릭터의 점프를 구현하기 위해선 AnimGraph 의 State Machine 인 Locomotion 에서 수정을 해줄 것 이다. 기본적으로, 캐릭터의 Animation Blueprint 파일에서 시작한다고 가정할 것이다. Locomotion을 더블 클릭하여 들어가 보면 기존에 이동을 구현했던 Movement 상태가 존재한다. 이동 중에 캐릭터가 점프를 할 것이므로, movement에서 화살표를 뻗어 새로운 상태를 만들어 줄 필요가 있다. 사이드바에 Asset Browser 메뉴에서 Jump를 검색하여 점프 애니메이션을 가져온다. 여기서 Start, Apex(공중에 있는 동작), Recovery(착륙하는 동작) 세가지를 가져올 건데, 애니메이션 에셋의 이름은 에.. 2022. 6. 28.
[Unreal 5, C++] 언리얼5 C++ 로그 찍는법 UE_LOG(LogTemp, Display, TEXT("로그 내용")); int32 number = 123; UE_LOG(LogTemp, Display, TEXT("%d"), number); 첫 번째는 원하는 텍스트만 찍기 두 번째는 변수를 인자로 주고 출력할 수 있다. 두 번째 인수로 Display가 들어가있는데, Display는 흰 글씨로 로그를 찍고 Warning은 노란 글씨로 찍어주고 그 외에도 종류가 더 다양하니 찾아보면 좋다. Logging | Unreal Engine Community Wiki (unrealcommunity.wiki) Logging | Unreal Engine Community Wiki Logging means keeping an ordered record of events,.. 2022. 6. 18.
[Unreal 5, C++] 언리얼 C++에서 변수를 에디터에 보이게 하는법 / C++ 변수 블루프린트에서 호출하기 : UPROPERTY, UFUNCTION 변수 선언 시에 UPROPERTY를 사용하면 에디터에서 내가 선언한 변수를 볼 수 있다. UPROPERTY(EditAnywhere) // 에디터에서 수정가능 int32 HP; UPROPERTY(VisibleAnywhere) // 에디터에서 보기만 가능 float Speed; 블루프린트에서 C++변수를 사용하기 위해서는 다음 두가지가 쓰인다. UPROPERTY(BlueprintReadWrite) // 읽기 쓰기 가능 bool IsWalking; UFUNCTION(BlueprintReadOnly) // 읽기 전용 void Move(); UFUNCTION은 C++함수를 블루프린트에서 사용가능하게 만들어준다! 다만 주의 점은 원인은 아직 잘 모르겠지만 특정 함수 내에서 특정 변수 값을 변경할 때 그 변수가 UP.. 2022. 6. 18.
[Unreal, C++] 3인칭 슈팅게임 연습 일지 - 2 : 사격, 이펙트 구현 저번에 했던 Shoot 함수 안에는 PullTrigger()함수가 있었다. 이번에는 이 함수에 대해 적어볼 것이다. void APlayerCharacter::Shoot() { if(IsAiming) // Aiming == true then { if(CanShoot) { IsShoot = true; Gun->PullTrigger(); UE_LOG(LogTemp, Warning, TEXT("One Shot")); CanShoot = false; } } else IsShoot = false; } Gun 은 헤더 파일에서 무기 클래스를 Gun이라는 이름으로 선언한 것이다. APistol_Gun* Gun; Pistol_Gun.cpp 에 PullTrigger에 대한 내용이 있다. (앞에 A는 Actor를 의미하며 .. 2022. 6. 18.
[Unreal 5, C++] 3인칭 슈팅 게임 연습 일지 - 1 : 타이머 사용법, 이동, 사격 https://youtu.be/DkwEQc-N2a8 유데미 Sam Pattuzzi 의 언리얼 강좌를 수강하면서 3인칭 슈팅 게임을 만들어보면서 공부하기로 했다. 장르는 3인칭 슈팅게임. 매 판마다 웨이브가 존재하고 웨이브마다 몰려오는 적들을 타파하면 돈과 경험치를 얻고 강해져서 점점 높은 웨이브로 올라가는 게임으로 기획해보았다. 이동 구현 void APlayerCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); // PC // Keyboard Movement PlayerInputComponent->BindAxis(TEX.. 2022. 6. 18.