전체 글 177

[UE5] 무적 프레임(i-frame) 구현하기

한 줄 요약: 구르기 몽타주의 특정 프레임 구간에서만 TakeDamage를 조기 반환시켜, "정확한 타이밍에 굴렀다"는 감각을 만드는 무적 프레임 시스템을 UE 5.7의 AnimNotifyState로 구현합니다. 1. 왜 이 기능이 필요한가? (Why)소울라이크(Souls-like) 장르에서 회피(Dodge / Roll)는 단순한 이동이 아닙니다. 적의 공격을 몸으로 통과하는 행위입니다.다크 소울을 처음 플레이할 때 가장 인상적인 순간은 보스의 거대한 대검이 캐릭터를 관통했는데 체력이 깎이지 않는 장면입니다. 이때 플레이어가 느끼는 것은 "운이 좋았다"가 아니라 "내가 정확한 타이밍에 굴렀다"는 명확한 성취감입니다.이 감각을 만드는 것이 무적 프레임(i-frame, invincibility frame) ..

[UE5] 소울라이크 보스 패턴 확장하기 - 넉다운·스트레이프·공중 공격

한 줄 요약: 보스에게 "쓰러뜨리는 공격", "간보는 이동", "뛰어오르는 공격" 세 가지 패턴을 추가하면서, 애니메이션 몽타주(Montage)의 블렌드 아웃 타이밍과 입력 잠금(Input Lock) 수명주기를 다루며 배운 것들을 기록합니다. 1. 왜 이 기능들이 필요한가? (Why)지난 작업에서 보스의 뼈대를 만들었습니다. 추격하고, 공격하고, 죽으면 무기를 떨구는 것까지는 됩니다. 그런데 실제로 붙어보니 보스전이 지루했습니다. 이유는 명확했습니다.보스가 늘 같은 리듬으로 움직였습니다. 스태미나(Stamina)가 있든 없든 계속 달려들기만 하니, 플레이어 입장에서는 "언제 공격해도 되는 안전한 순간"이 보이지 않았습니다. 소울라이크의 전투 리듬은 적이 쉬는 틈에서 나옵니다. 다크 소울의 보스들이 큰 공..

[UE5] 소울라이크 보스 캐릭터 구현하기

한 줄 요약: 기존 잡몹(Enemy) 클래스를 상속해 TwoHanded 무기를 든 첫 보스를 만들고, 보스 전용 행동 트리(Behavior Tree)·공격 타입 제어·무기 충돌 판정 개선까지 "손맛 나는 보스전 한 덩어리"를 완성한 과정을 기록합니다. 1. 왜 보스 캐릭터가 필요한가? (Why)소울라이크(Souls-like)에서 보스전(Boss Fight) 은 게임의 심장입니다. 탐험과 잡몹 전투로 갈고닦은 스태미나(Stamina) 운영, 회피(Dodge), 패턴 읽기가 보스 앞에서 시험받습니다. 그래서 보스는 잡몹과 요구사항이 다릅니다.체력바가 다릅니다. 잡몹은 머리 위 작은 바로 충분하지만, 보스는 다크 소울·엘든 링처럼 화면 중앙 상단에 큰 2D 바로 "이제 보스전이다"라는 긴장을 줘야 합니다.행동..

[UE5] 회복 포션 시스템 구현하기

한 줄 요약: 다크소울/엘든링의 에스트병처럼 "마시는 동안 무방비가 되는" 소모형 회복 포션을, 애니메이션 노티파이와 상태 태그로 UE5.7에서 구현한 과정을 정리합니다. 1. 왜 이 기능이 필요한가? (Why)소울라이크 장르에서 회복은 단순히 체력을 채우는 버튼이 아닙니다. "지금 마셔도 되는가?"를 판단하는 리스크 관리가 핵심입니다.다크소울의 에스트병, 엘든링의 성배병을 떠올려 봅시다. 회복을 시도하면 캐릭터가 병을 꺼내 들이켜는 긴 모션이 재생됩니다. 이 동안 플레이어는 공격도, 회피도 할 수 없습니다. 보스가 이 틈을 노려 달려들면, 마시려다 오히려 얻어맞고 회복은 취소됩니다. 그래서 플레이어는 "적이 긴 후딜을 보이는 순간"을 노려 회복 타이밍을 재게 됩니다.즉, 회복 포션은 거리 재기와 심리전..

[UE5] 패링(Parry) 시스템과 적 스턴(Stun) 구현하기

한 줄 요약: 방패를 든 플레이어가 적의 공격을 정확한 타이밍에 받아쳐 무효화하고 적을 경직시키는 패링 시스템, 그리고 적이 확률적으로 행동 불능에 빠지는 스턴 효과를 UE 5.7로 구현한 과정을 정리합니다. 더불어 패링과 맞물리는 회피·가드 조작감 개선까지 다룹니다.1. 왜 이 기능이 필요한가? (Why)소울라이크 전투의 핵심은 방어가 곧 공격의 기회라는 점입니다. 다크 소울의 패링, 피의 거짓(Lies of P)의 퍼펙트 가드처럼, 그저 막기만 하는 수동적 방어를 넘어 "정확한 타이밍에 받아쳐 적을 무너뜨리는" 능동적 방어는 이 장르의 손맛을 결정짓는 요소입니다.플레이어 입장에서 패링은 큰 위험을 감수하는 대신 큰 보상을 얻는 선택지입니다. 가드(Block)는 안전하지만 스태미나를 깎이며 버티는 데 ..

[UE5] 방패 블로킹(Shield Blocking) 시스템 구현하기

한 줄 요약: 소울라이크의 방패 가드를 GameplayTag · Enhanced Input · TakeDamage 분기로 구현하고, 디버깅 과정에서 "방향 판정"을 무기 스윙이 아닌 공격자 위치 기준으로 바로잡은 기록입니다. 1. 왜 이 기능이 필요한가? (Why)다크 소울이나 엘든 링을 해보면, 방패를 드는 행위는 단순히 "데미지를 0으로 만드는 무적 버튼"이 아닙니다. 가드(Guard)는 스태미나(Stamina)라는 자원을 거는 선택입니다.막으면 데미지는 줄지만 스태미나가 깎입니다.스태미나가 바닥나면 가드가 깨지고(가드 브레이크) 무방비로 노출됩니다.정면에서 오는 공격만 막을 수 있고, 측면·후면은 그대로 맞습니다.즉 가드는 "안전"이 아니라 "자원을 쓰는 트레이드오프"입니다. 플레이어는 "지금 막을..

[UE5] 방어구 시스템 구현하기

한 줄 요약: 4부위 방어구를 장착해 외형을 갈아입고 방어력을 누적하며, 같은 부위를 주우면 기존 방어구가 바닥에 떨어지는 소울라이크 장비 시스템을 UE5.7 C++로 구현한 과정을 정리합니다. 1. 왜 이 기능이 필요한가? (Why)다크 소울이나 엘든 링을 떠올려 보면, 방어구는 단순한 외형 꾸미기가 아닙니다. 어떤 갑옷을 입느냐에 따라 받는 피해가 달라지고, 무게·방어력·내성 사이에서 선택과 교환(trade-off) 이 생깁니다. 이 선택의 묘미가 빠지면 플레이어와 적의 전투는 그저 체력(HP)을 깎아내는 숫자 싸움이 되어버립니다.Bloodwake는 전투 코어를 GAS(Gameplay Ability System) 없이 먼저 손으로 완성하는 1단계 개발 중입니다. 이미 무기·방패·피격 시스템은 갖춰져 ..

[UE5] 적(Enemy) 전투 피드백 3종 세트 구현하기 - HP 바·데미지 감각·행동 패턴

한 줄 요약: 소울라이크 적 AI에 "살아있음을 보여주는 HP 바", "시야 밖에서 맞아도 반응하는 데미지 감각", "행동을 한 곳에서 결정하는 BT 서비스"를 한 덩어리로 구현한 기록입니다. 1. 왜 이 기능이 필요한가? (Why)소울라이크 전투의 핵심은 명확한 피드백입니다. 플레이어가 적을 때렸을 때 "얼마나 깎였는지", 적이 "지금 나를 인식했는지", "다음에 무엇을 할지"가 화면과 행동으로 드러나야 손맛이 살아납니다.기존 Bloodwake의 적 AI에는 순찰(Patrol), 시야 기반 추격, 근접 공격까지는 있었지만 세 가지가 빠져 있었습니다.적의 남은 체력을 알 수 없었습니다. 내 공격이 유효한지 체감되지 않았죠.시야 밖에서 기습해도 적이 반응하지 않았습니다. 등 뒤를 쳐도 태평하게 순찰을 돌았..

[UE5] 적 캐릭터 공격 및 플레이어 피격 시스템

한 줄 요약: 적(Enemy)이 무기를 들고 플레이어를 공격하고, 플레이어가 피격·사망하는 "맞고 때리는" 순환을 UE 5.7에서 인터페이스·비헤이비어 트리(Behavior Tree)·공용 애니메이션 인스턴스로 구현한 기록입니다.1. 왜 이 기능이 필요한가? (Why)지금까지 Bloodwake의 적(Enemy)은 플레이어를 인식하고 추격까지는 했지만, 정작 때리지는 못했습니다. 플레이어 역시 공격 모션은 있어도 맞아서 경직되거나 죽지는 않았습니다. 전투의 절반만 존재했던 셈입니다.소울라이크(Souls-like)에서 긴장감은 "한 대 맞으면 크게 아프다"는 위협에서 나옵니다. 적의 공격이 스태미나(Stamina)를 매개로 플레이어와 같은 규칙을 따르고, 플레이어가 맞은 방향대로 휘청이며(히트 리액션, Hi..

[UE5] 적 순찰·플레이어 인식 AI 구현하기

한 줄 요약: 비헤이비어 트리(Behavior Tree)와 AI 퍼셉션(AI Perception)으로 적의 순찰→추격을 구현하면서, "추격이 자꾸 끊기는" 문제와 "절대 포기하지 않는" 문제를 차례로 잡아낸 기록입니다.소울라이크에서 적(Enemy)은 단순히 가만히 서 있다가 플레이어를 보면 달려드는 존재가 아닙니다. 평소엔 정해진 경로를 순찰(Patrol) 하고, 플레이어를 인식(Perception) 하면 쫓아오며, 충분히 멀어지면 다시 자기 자리로 돌아가야 합니다. 이번 글에서는 Unreal Engine 5.7 기반 프로젝트 Bloodwake에서 이 "순찰↔추격" 사이클을 구현합니다.1. 왜 이 기능이 필요한가? (Why)소울라이크의 긴장감은 적의 행동을 읽을 수 있다는 신뢰에서 나옵니다. 플레이어는 ..