UE4 - Creating a RPG #6 - Regenerating Health & Mana

노기현·2024년 9월 30일

Today's Lesson: Regenerating Health & Mana

Summary

1. Today we take a look at how we can make both our health and mana regenerate inside of our unreal engine 4 RPG.

2. We also go over how we can set up variables to control the speed and the amount that the player regenerates.

Virtus Learning Hub


✅ Implementation Regenerating Health

◼️ Character Blueprint <ThirdPersonCharacter> - Event Graph

  • New Node: Event Tick
    //매 프레임 이벤트를 발생시키는 노드
  • Event Tick → Sequence
    //입력된 핀을 순서대로 실행시키는 노드. Event Tick 노드는 여러 번 사용될 가능성이 높기 때문에, Sequence노드를 통해 여러 개의 시퀀스 사용 가능
  • Sequence_Then 0 → Branch
    //Condition(Boolean)을 통해 Branch(분기)를 만드는 노드
  • Branch_Condition: Float(Health) < Float(1) ?
    //Health가 max(1)값 미만인가?
  • New Variable: HealthRegen
    Type: Float
    Default: 0.05
    //Health가 재생되는 양을 결정할 변수
  • Branch_True → Set Health
    Float(Health) + Float(HealthRegen)
    //새 Health = 기존 Health + HealthRegen
  • Set Health → Branch
    Branch_True → Set Health
    Health: 1 //더해진 Health의 결과값이 max(1)를 초과할 경우 max로 재설정
  • New Variable: HealthRate
    Type: Float
    Default: 1
    //Health가 재생되는 주기(Dealy의 Input)를 결정할 변수
    //변수 명명 아쉬움: 나였으면 HealthRate -> HealthRegenInterval
  • Sequence_then0 → New Node: Delay → Branch
    Duration(딜레이의 길이, sec): HealthRate
  • 코멘트 생성: Health Regen
    //단축키 c

✅ Implementation Regenerating Mana

◼️ Character Blueprint <ThirdPersonCharacter> - Event Graph
구현 방법은 'Implementation Regenerating Health'와 같다

  • New Variable: ManaRegen
    Type: Float
    Default: 0.05
    //Health가 재생되는 양을 결정할 변수
  • New Variable: ManaRate
    Type: Float
    Default: 1
    //Mana가 재생되는 주기(Delay의 Input)를 결정할 변수
  • ManaRate 주기로 흐름 제어
  • Mana가 max 미만인 경우 → 기존 마나에 Mana Regen 더함
  • 더해진 Mana 값이 max를 초과하는 경우, max값(상한)으로 설정
  • 코멘트 생성: Mana Regen

✅ Result

  • 시간이 지남에 따라, Health와 Mana 재생성됨

profile
RPG 기획자 지망생

0개의 댓글