목록언리얼 (116)
초보 코린이의 성장 일지
#pragma once #include "CoreMinimal.h" #include "Components/ActorComponent.h" #include "Kismet/KismetSystemLibrary.h" #include "Engine/DataTable.h" #include "CParkourComponent.generated.h" UCLASS() class U2212_06_API UCParkourComponent : public UActorComponent { GENERATED_BODY() private: void CheckTrace_Land(); // 떨어질때 밑에 추적하기 용도 private: bool Check_FallMode(); void DoParkour_Fall(); public: bool..
#pragma once #include "CoreMinimal.h" #include "Components/ActorComponent.h" #include "Kismet/KismetSystemLibrary.h" #include "Engine/DataTable.h" #include "CParkourComponent.generated.h" UENUM(BlueprintType) enum class EParkourArrowType : uint8 { // 추적할 화살표 Type Center = 0, Ceil, Floor, Left, Right, Land, Max, }; UENUM(BlueprintType) enum class EParkourType : uint8 { // 파쿠르 수행할 Type Climb = 0, ..
1. 파쿠르를 구현하기에 앞서서 맵을 늘려주고, 기물들을 배치해준다. 1. Actor Component를 상속받아 클래스를 생성해준다. 2. 테이블에 배열을 활용하여 파쿠르 동작을 구현해볼 것인데, BP에서는 불가능하고 C++에서만 가능한 방법이다. #pragma once #include "CoreMinimal.h" #include "Components/ActorComponent.h" #include "Kismet/KismetSystemLibrary.h" #include "Engine/DataTable.h" #include "CParkourComponent.generated.h" UENUM(BlueprintType) enum class EParkourArrowType : uint8 { // 추적할 화살표..
화살을 만들어서 날린 후 충돌처리까지 구현해 볼 것이다. 1. 만들어 놓은 에임 오프셋인 AO_Aim을 최종 애니메이션 전인 블렌딩하고 나서 붙여준다. 2. 그래야만 몽타주까지 포함해서 AO가 진행된다. 1. 이제 조준 후 상하로 이동해도 에임한 자세로 자연스럽게 나오는걸 확인할 수 있다. 1. Actor를 상속받아 화살을 만들기 위해 생성해준다. #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "CArrow.generated.h" DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FProjectileHit, class AActor*, InCauser, class ACharacte..
Bow를 장착했을때, 활 시위를 당겼을때, 당기고 줄이 돌아왔을때 Player 오른손이 붙어있는지와 활과 활줄이 당겨졌다가 원래대로 돌아가는것을 구현해볼 것이다. 1. DoAction을 상속받아 Bow 클래스를 생성한다. #pragma once #include "CoreMinimal.h" #include "Weapons/CDoAction.h" #include "CDoAction_Bow.generated.h" UCLASS(Blueprintable) class U2212_06_API UCDoAction_Bow : public UCDoAction { GENERATED_BODY() public: UCDoAction_Bow(); void BeginPlay ( class ACAttachment* InAttachme..
지난 코드작성에 실수한 부분이 하나 있다. #pragma once #include "CoreMinimal.h" #include "UObject/NoExportTypes.h" #include "CSubAction.generated.h" UCLASS(Abstract) // 기능이 없으므로, 할당 x class U2212_06_API UCSubAction : public UObject { GENERATED_BODY() public: virtual void Pressed(); virtual void Released(); public: // BP랑 상호연동 가능하도록, // BlueprintNativeEvent로 정의하면 Implementation 붙여주기 UFUNCTION(BlueprintNativeEvent)..
1. SubAction을 BP 클래스로 생성해준다. 1. SubAction에 만들어준 Bow를 선택해준다. #pragma once #include "CoreMinimal.h" #include "Components/TimelineComponent.h" #include "Weapons/CSubAction.h" #include "CSubAction_Bow.generated.h" USTRUCT() struct FAimData { GENERATED_BODY() public: UPROPERTY(EditAnywhere) float TargetArmLength = 100; UPROPERTY(EditAnywhere) FVector SocketOffset = FVector(0, 30, 10); UPROPERTY(EditA..
Bow를 이제 만들어 볼 것이다. BP때와 동일하게 어려운 부분이 많을 것이다. 1. 파생클래스로 Attachment_Bow를 생성해준다. #pragma once #include "CoreMinimal.h" #include "Weapons/CAttachment.h" #include "CAttachment_Bow.generated.h" UCLASS() class U2212_06_API ACAttachment_Bow : public ACAttachment { GENERATED_BODY() private: // Pitch 각 제한하기위해 UPROPERTY(EditDefaultsOnly, Category = "View") FVector2D ViewPitchRange = FVector2D(-40, +30); pr..
이번에는 나이아가라를 사용해 위에서 아래로 떨어지는 스킬을 구현해 볼 것이다. 1. CSubAction을 상속받아 클래스를 생성해준다. #pragma once #include "CoreMinimal.h" #include "Weapons/CSubAction.h" #include "Weapons/CWeaponStructures.h" #include "CSubAction_Around.generated.h" UCLASS(Blueprintable) class U2212_06_API UCSubAction_Around : public UCSubAction { GENERATED_BODY() private: UPROPERTY(EditDefaultsOnly, Category = "Action") FDoActionData ..
플레이어 주변을 회전하는 스킬을 만들어 볼 것이다. 1. 먼저 DataAsset를 생성해준다. 2. Attach은 사용하지 않을 것이다. 1. Action을 할 수 있도록 DoAction을 상속받아 생성해준다. #pragma once #include "CoreMinimal.h" #include "Weapons/CDoAction.h" #include "CDoAction_Around.generated.h" UCLASS(Blueprintable) class U2212_06_API UCDoAction_Around : public UCDoAction { GENERATED_BODY() public: void DoAction() override; void Begin_DoAction() override; }; #inc..