hyunjunstar 님의 블로그

고정 헤더 영역

글 제목

메뉴 레이어

hyunjunstar 님의 블로그

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (69)
    • C (3)
    • C++ (12)
    • Unreal Engine (0)
    • BluePrint (0)
    • Unreal C++ (20)
    • Git (2)
    • TeamProject C++ (3)
    • C, C++ 복습 (29)

검색 레이어

hyunjunstar 님의 블로그

검색 영역

컨텐츠 검색

분류 전체보기

  • Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 최종

    2026.05.28 by hyunjunstar

  • Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 구조 정리 및 트러블슈팅

    2026.05.26 by hyunjunstar

  • Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 4

    2026.05.23 by hyunjunstar

  • Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 3

    2026.05.21 by hyunjunstar

  • Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 2

    2026.05.20 by hyunjunstar

  • Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 1

    2026.05.19 by hyunjunstar

  • Unreal C++ 게임 루프 및 UI 설계 후 코인 획득 게임 구현 트러블슈팅

    2026.04.30 by hyunjunstar

  • Unreal C++ 게임 루프 및 UI 설계 후 코인 획득 게임 구현

    2026.04.29 by hyunjunstar

Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 최종

https://hyunjunstar.tistory.com/101 위 링크에서는 적 AI의 TargetActor 갱신 문제와 공격 데미지 타이밍 문제를 수정했다. TargetActor가 한 번만 설정되던 문제는 SetTimer()를 반복 실행하도록 변경하여 해결했고, BTTask_AttackTarget에서 ApplyDamage()를 즉시 호출하던 구조는 Anim Notify 시점에 데미지를 적용하는 방식으로 수정했다. 또한 Montage, Anim Notify, Anim Graph를 활용해 공격, 사망, 이동 애니메이션이 더 자연스럽게 연결되도록 개선했다. 이번 글에서는 최종적으로 완성된 적 AI의 전체 흐름과 코드를 정리하려고 한다. 적 AI 전체 흐름1. 전체 통합 구조 적 AI는 EnemySpaw..

Unreal C++ 2026. 5. 28. 23:03

Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 구조 정리 및 트러블슈팅

적 AI 구현 EnemySpawner - NavMesh 위에 적 랜덤 생성 EnemyAIController - 플레이어를 0.2초마다 탐지 - 감지되면 Blackboard.TargetActor에 저장 Behavior Tree - TargetActor가 있으면 추적 - 공격 범위 안이면 공격 Task 실행 BTDecorator_IsInAttackRange - 플레이어가 공격 범위 안인지 검사 BTTask_AttackTarget - 이동 정지 - 플레이어 방향으로 회전 - 공격 애니메이션 실행 EnemyCharacter - HP, 공격력, 탐지/공격 범위 관리 - Anim Notify 시점에 실제 데미지 적용 - 사망 시 점수 지급, 이동/충돌 비활성화1. 적 캐릭터 구현1-1. 체력 /..

Unreal C++ 2026. 5. 26. 23:55

Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 4

https://hyunjunstar.tistory.com/100이전 글인 위 링크의 Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 3 에서는 Behavior Tree와 Blackboard의 블루프린트 구조를 정리하고, EnemyCharacter 블루프린트를 생성 및 Nav Mesh Bounds Volume를 설정 하였다. 하지만 2, 3 단계 구조에는 첫번째로 TargetActor 갱신이 한번만 실행되는 문제와,ApplyDamage()를 즉시 호출 하는 문제가 있었다. 이번 글에서는 이 부분을 수정하고,Montage와 Anim Notify, Anim Graph를 사용하여 더 자연스러운 AI 캐릭터를 만들어 보려고 한다.C++ CodeEnemyAIController.cppSetT..

Unreal C++ 2026. 5. 23. 02:37

Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 3

https://hyunjunstar.tistory.com/99이전 글인 위 링크의 Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 2 에서는 Behavior Tree와 Blackboard 기반으로 적 AI 캐릭터를 구현 하였다. 이번 글에서는 Behavior Tree와 Blackboard의 블루프린트 구조를 정리하고,EnemyCharacter 블루프린트를 생성 해보려고 한다. BlackboardNew Key로 TargetActor를 추가하여 Key Type은 Object로 설정하고,Base Class에 Actor를 지정하였다. TargetActor는 AI가 추적하거나 공격할 대상을 저장하는 값이며, EnemyAIController에서 플레이어를 감지하면 Blackboard의 Ta..

Unreal C++ 2026. 5. 21. 21:55

Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 2

https://hyunjunstar.tistory.com/97이전 글인 위 링크 의 Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 1 에서는 초기 구현을 정리하였다. 초기 버전에는 EnemyAIController가 Tick에서 매 프레임마다 플레이어와 거리를 계산하고,그에 맞는 상태를(Idle / Chase / Attack / Dead) 직접 관리하는 코드 방식으로 구현했다. 이번 글에서는 구조를 개선하여 Behavior Tree와 Blackboard를 사용하고,NavMesh 기반 경로 탐색과 장애물 회피까지 포함한 AI 구조를 구현해보려고 한다.Behavior Tree 사용 후 변경된 부분기존 구조에서는 EnemyAIController가 모든 판단을 직접 처리했다. Enemy..

Unreal C++ 2026. 5. 20. 23:55

Unreal C++ 싱글플레이 FPS 슈터 게임 팀 프로젝트 적 AI - 1

AI 구조적 AI에서 아래 기능들을 구현 하였다. - 적 캐릭터 구현 - 체력/방어력 시스템 - 피격/사망 처리 - 플레이어 탐지 - 플레이어 추적 - 공격 범위 내 공격 - NavMesh 기반 경로 탐색 - 장애물 회피AI 폴더 구조구현한 코드맨 처음 구현했던 코드는 EnemyAIController가 모든 판단을 직접 처리하게끔 구현하였다.플레이어와의 거리를 매 프레임마다 계산 후 거리에 따라 상태를 변경하였다. EnemyAIController.henum을 사용해서 적이 현재 어떤 상태인지를 구분하였다.// EnemyAIController.h#pragma once#include "CoreMinimal.h"#include "AIController.h"#include "EnemyAIControl..

Unreal C++ 2026. 5. 19. 20:50

Unreal C++ 게임 루프 및 UI 설계 후 코인 획득 게임 구현 트러블슈팅

1. 맵 이름 변경 후 Start 버튼이 동작하지 않는 문제처음에는 기존 맵 이름이 BasicLevel이었는데, 과제 진행 중 맵 이름을 Level1로 변경하였다. 하지만 게임 시작 버튼을 눌러도 다음 레벨로 이동하지 않고, 로그에 Invalid URL 관련 오류가 발생하였다. 원인을 확인해보니 StartGame() 함수와 레벨 이동 배열 쪽에서 아직 이전 맵 이름을 참조하고 있었다. // SpartaPlayerControllerUGameplayStatics::OpenLevel(GetWorld(), FName("BasicLevel")); // 위 코드에서 맵 이름을 Level1로 변경했으니 코드에서도 동일하게 수정해주었다.UGameplayStatics::OpenLevel(GetWorld(), FName(..

Unreal C++ 2026. 4. 30. 22:10

Unreal C++ 게임 루프 및 UI 설계 후 코인 획득 게임 구현

오늘은 Unreal C++ 과제로 기존 프로젝트에 게임 루프와 UI를 재설계 하는 작업을 진행했다. GameState에서 레벨과 웨이브 흐름을 관리,SpawnVolume과 데이터 테이블을 활용해서 아이템들이 확률 기반으로 스폰 되도록 구현 하였으며, HUD와 메인 메뉴를 별도 위젯 클래스로 분리하여 점수, 시간, 레벨, 웨이브, 게임오버 메뉴 등을 구현하였다. 게임 루프 - GameState에서 레벨과 웨이브 진행 관리 - 각 레벨마다 3개의 웨이브 진행 - 웨이브별 제한 시간과 아이템 스폰 수 설정 - 시간이 끝나거나 코인을 모두 획득하면 다음 웨이브로 이동 - 모든 웨이브가 끝나면 다음 레벨로 이동 - 마지막 레벨 종료 시 게임오버 메뉴 출력아이템 스폰 - SpawnVolume을 활용한 랜덤..

Unreal C++ 2026. 4. 29. 23:22

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 ··· 9
다음
TISTORY
hyunjunstar 님의 블로그 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바