[Unreal Engine C++] 연속 공격의 구현
UnrealEngine/공부2024. 2. 27. 16:42[Unreal Engine C++] 연속 공격의 구현

이득우 언리얼 C++을 공부하면서 배운 연속 공격은 왼쪽 마우스 버튼을 연속적으로 입력해야지만 구현이 가능했다. 이를 버튼을 꾹 눌러도 구현되게 수정해보자. 캐릭터의 몽타주는 다음과 같이 구현되어 있다. Attack1 ~ Attack3까지 연속적으로 애니메이션이 재생되게 하고, 각 섹션이 시작하기 전에 NextAttackCheck를 하도록 했다. //TOAnimInstance.cpp ... void UTOAnimInstance::PlayAttackMontage() { Montage_Play(AttackMontage, 1.0); } void UTOAnimInstance::StopAttackMontage() { Montage_Stop(0.1f, AttackMontage); } void UTOAnimInsta..

UnrealEngine/공부2024. 2. 27. 16:38[Unreal Engine C++] SaveData의 구현

게임에 내용을 저장해서 나중에 불러오는 기능을 추가해야 한다. 이전 프로젝트에서 구현되어 있는 기능 중에 HP, Level 그리고 Player Location을 저장해보자. //TOSaveGame.h #include "Tellours.h" #include "GameFramework/SaveGame.h" #include "TOSaveGame.generated.h" /** * */ UCLASS() class TELLOURS_API UTOSaveGame : public USaveGame { GENERATED_BODY() public: UTOSaveGame(); UPROPERTY() FVector PlayerLocation; UPROPERTY() int32 HP; UPROPERTY() int32 Level; }..

UnrealEngine/공부2024. 2. 27. 16:28[Unreal Engine C++] Dash의 이펙트 구현

Shift키를 눌러서 Dash를 실행할 때, Niagara VFX를 이용하여 이펙트를 구현하였다. 이 기능의 문제점은 SpawnSystemAtLocation을 이용해 일정한 크기 값으로 스폰하기 때문에 막상 어떤 물체에 막혀 이동한 거리가 짧아도 이펙트는 정해진 길이만큼 출력되는 문제가 존재하였다. 이를 LineTrace기능을 이용하여 앞에 액터가 있는지 확인 후 있으면 그 액터와의 거리를 크기로 변환하여 이펙트의 크기를 줄이고, 없으면 정해진 길이만큼 스폰되도록 변경하였다. // TOCharacter.cpp void ATOCharacter::Dash() { if (!GetCharacterMovement()->IsFalling()) { if (!IsDashCoolDown) { // Line Trace를 ..

[Unreal Engine C++] Dash 구현
UnrealEngine/공부2024. 2. 27. 16:26[Unreal Engine C++] Dash 구현

캐릭터의 Dash를 구현할 때, Launch Character를 사용하여 구현하면 간단하지만 공중으로 Dash할 때와 지면에서 Dash할 때의 이동 거리가 다르다는 문제점이 발생하였다. 이는 지면에 있을 때엔 지면 마찰(CharacterMovement에 Ground Scale)의 영향을 받기 때문에 지면에서는 적게 가지만, 공중에서는 지면 마찰을 받지 않기 때문에 일어나는 현상이다. 이를 Timeline을 사용한 방법으로 수정하여 보자. 먼저, 언리얼 에디터에서 기타 → 커브로 해서 커브를 제작한다. CurveFloat을 사용해 (0, 0), (0.25, 1)의 값을 가지는 커브를 구현하였다. ​ //Character.h public: //타임라인에 사용할 Curve UPROPERTY(EditAnywhe..

[Unreal Engine C++] UI IMAGE Animation 적용
UnrealEngine/공부2024. 1. 17. 21:53[Unreal Engine C++] UI IMAGE Animation 적용

UI Image FadeIn을 적용해보자개요 게임 제작 프로젝트를 진행하면서 상호작용 스크립트를 사용자가 고를 수 있게 시스템을 만들었다.이 스크립트에서 연출을 위해 캐릭터가 고를 수 있는 선택지가 바로 등장하는 것보단 천천히 드러나게 하는 것을 원했다.그러므로 스크립트 양 옆의 선택지를 서서히 등장해서 그 뒤에 고를 수 있게 할 것이다.이를 위해 위젯 블루프린트 애니메이션 기능을 활용해서 FadeIn 기능을 구현해보도록 하자. 클래스 생성 및 기본 설정 언리얼 에디터 좌측 상단의 파일 > 새로운 C++클래스 생성을 눌러 UserWidget을 상속받는 NScript라는 이름의 Class파일을 만든다.현재 스크립트 표시를 담당하는 위젯 블루프린트는 다음과 같다.여기서 양 옆의 Border인 이파리와 그 안..

image