휴매너티 프로젝트 일지 - 2

May 8, 2026 (1mo ago)

오늘 한 것:

  • 기획 발표
  • CharacterBase 클래스 develop에 올리기
#pragma once    #include "CoreMinimal.h"  #include "GameFramework/Character.h"  #include "BACharacterBase.generated.h"    UENUM(BlueprintType)  enum class EBACharacterState : uint8  {      Alive     UMETA(DisplayName = "Alive"),      Invincible UMETA(DisplayName = "Invincible"), // i-frame 등 무적 상태      Dead      UMETA(DisplayName = "Dead"),  };    UCLASS()  class BAPROJECT_API ABACharacterBase : public ACharacter  {      GENERATED_BODY()    public:      ABACharacterBase();        virtual void Attack();      virtual float TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) override;        FORCEINLINE bool IsAlive() const {     return CharacterState != EBACharacterState::Dead; }      FORCEINLINE bool IsInvincible() const { return CharacterState == EBACharacterState::Invincible; }      FORCEINLINE bool CanReceiveDamage() const { return IsAlive() && IsInvincible() == false; }      FORCEINLINE EBACharacterState GetCharacterState() const { return CharacterState; }    protected:      UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Combat")      EBACharacterState CharacterState;        virtual void OnDamaged(float FinalDamage, AActor* DamageCauser);      virtual void OnDeath();  };

주말에 할 것들:

  • 1챕터 맵 그레이박싱
  • 캐릭터 베이스 공용 컴포넌트 작성하기
    • 스탯
    • 전투관리자(BattleManager) 싱글톤

남은 것들:

  • 캐릭터
    • 카메라 에이밍
    • input 매핑
    • 대미지 증감
    • 걷기/달리기/전력질주
      • 스테미너 소모/리젠
      • 애니메이션
    • 구르기
      • 스패밍 방지 → 스택 사용
    • 락온
      • 카메라 고정
      • 구르기를 회피로