diff --git a/Config/DefaultEditor.ini b/Config/DefaultEditor.ini index e69de29..8b13789 100644 --- a/Config/DefaultEditor.ini +++ b/Config/DefaultEditor.ini @@ -0,0 +1 @@ + diff --git a/Content/Blueprints/Character/Animation/BlasterAnimBP.uasset b/Content/Blueprints/Character/Animation/BlasterAnimBP.uasset new file mode 100644 index 0000000..473f3f5 Binary files /dev/null and b/Content/Blueprints/Character/Animation/BlasterAnimBP.uasset differ diff --git a/Content/Blueprints/Character/Animation/UnequippedIdleWalkRun.uasset b/Content/Blueprints/Character/Animation/UnequippedIdleWalkRun.uasset new file mode 100644 index 0000000..352f2eb Binary files /dev/null and b/Content/Blueprints/Character/Animation/UnequippedIdleWalkRun.uasset differ diff --git a/Content/Blueprints/Character/BP_BlasterCharacter.uasset b/Content/Blueprints/Character/BP_BlasterCharacter.uasset index d05a144..3cbab2f 100644 Binary files a/Content/Blueprints/Character/BP_BlasterCharacter.uasset and b/Content/Blueprints/Character/BP_BlasterCharacter.uasset differ diff --git a/Content/Maps/Lobby.umap b/Content/Maps/Lobby.umap index fef659b..c2866bc 100644 Binary files a/Content/Maps/Lobby.umap and b/Content/Maps/Lobby.umap differ diff --git a/Source/Blaster/Character/BlasterAnimInstance.cpp b/Source/Blaster/Character/BlasterAnimInstance.cpp new file mode 100644 index 0000000..75e02cc --- /dev/null +++ b/Source/Blaster/Character/BlasterAnimInstance.cpp @@ -0,0 +1,34 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "BlasterAnimInstance.h" + +#include "BlasterCharacter.h" +#include "GameFramework/CharacterMovementComponent.h" + +void UBlasterAnimInstance::NativeInitializeAnimation() +{ + Super::NativeInitializeAnimation(); + + BlasterCharacter = Cast(TryGetPawnOwner()); +} + +void UBlasterAnimInstance::NativeUpdateAnimation(float DeltaSeconds) +{ + Super::NativeUpdateAnimation(DeltaSeconds); + + if (BlasterCharacter == nullptr) + { + BlasterCharacter = Cast(TryGetPawnOwner()); + } + + if (BlasterCharacter == nullptr) return; + + FVector Velocity = BlasterCharacter->GetVelocity(); + Velocity.Z = 0.f; + Speed = Velocity.Size(); + + bIsInAir = BlasterCharacter->GetCharacterMovement()->IsFalling(); + bIsAccelerating = BlasterCharacter->GetCharacterMovement()->GetCurrentAcceleration().Size() > 0.f; + +} diff --git a/Source/Blaster/Character/BlasterAnimInstance.h b/Source/Blaster/Character/BlasterAnimInstance.h new file mode 100644 index 0000000..eca5894 --- /dev/null +++ b/Source/Blaster/Character/BlasterAnimInstance.h @@ -0,0 +1,35 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Animation/AnimInstance.h" +#include "BlasterAnimInstance.generated.h" + +/** + * + */ +UCLASS() +class BLASTER_API UBlasterAnimInstance : public UAnimInstance +{ + GENERATED_BODY() + +public: + + virtual void NativeInitializeAnimation() override; + virtual void NativeUpdateAnimation(float DeltaSeconds) override; + +private: + + UPROPERTY(BlueprintReadOnly, Category="Character", meta=(AllowPrivateAccess = "true")) + class ABlasterCharacter* BlasterCharacter; + + UPROPERTY(BlueprintReadOnly, Category="Movement", meta=(AllowPrivateAccess = "true")) + float Speed; + + UPROPERTY(BlueprintReadOnly, Category="Movement", meta=(AllowPrivateAccess = "true")) + bool bIsInAir; + + UPROPERTY(BlueprintReadOnly, Category="Movement", meta=(AllowPrivateAccess = "true")) + bool bIsAccelerating; +}; diff --git a/Source/Blaster/Character/BlasterCharacter.cpp b/Source/Blaster/Character/BlasterCharacter.cpp index 2f21d9b..c010c97 100644 --- a/Source/Blaster/Character/BlasterCharacter.cpp +++ b/Source/Blaster/Character/BlasterCharacter.cpp @@ -4,6 +4,7 @@ #include "BlasterCharacter.h" #include "Camera/CameraComponent.h" +#include "GameFramework/CharacterMovementComponent.h" #include "GameFramework/SpringArmComponent.h" @@ -19,6 +20,9 @@ ABlasterCharacter::ABlasterCharacter() FollowCamera = CreateDefaultSubobject(TEXT("FollowCamera")); FollowCamera->SetupAttachment(CameraBoom, USpringArmComponent::SocketName); FollowCamera->bUsePawnControlRotation = false; + + bUseControllerRotationYaw = false; + GetCharacterMovement()->bOrientRotationToMovement = true; } void ABlasterCharacter::BeginPlay()