728x90
1. 개발 현황
1. Enemy AI
1. Blackboard (BB_EnemyBase)
Behavior Tree에서 활용할 변수 선언
2. Blueprint Interface (BPI_EnemyAI)
3. Behavior Tree (BT_EnemyBase)
3.1. BTT_SetMovementSpeed
3.2. BTT_ClearFocus
3.3. BTT_FocusTarget
3.4. BTT_DefaultAttack
4. AI Controller (AIC_EnemyBase)
- Controller 동작:
(1) Blackboard 변수 설정
(2) TODO: Event에 따른 Blackboard 변수 제어
+) 초기 Delay 적용이 생략된 경우 Error 발생 (compile 순서에 따른 버그로 추정됨 -> 추후에 Error 원인을 분석해서 개선해보도록 하자)
5. Character Blueprint (BP_EnemyBase)
- 동작:
(1) Attack: BPI 호출 시, Montage 동작 함수 구현
TODO: 추후 Interface를 만들어 C++ Base Class에서 기초 Animation을 함수화 하는 방향 고민 중
#pragma once
#include "WeaponBase.h"
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "EnemyBase.generated.h"
class AWeaponBase;
DECLARE_DELEGATE(FDele_Single);
UCLASS()
class OPENWORLD_3D_V0_3_API AEnemyBase : public ACharacter
{
GENERATED_BODY()
public:
// Sets default values for this character's properties
AEnemyBase();
private:
UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = "Equip", meta = (AllowPrivateAccess = "true"))
AWeaponBase* WeaponActor;
UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = "Equip", meta = (AllowPrivateAccess = "true"))
bool bIsWieldingWeapon;
FDele_Single Fuc_DeleSingle;
protected:
};
2. TODO
- Delegate
(1) C++ Class 내 Event 선언 및 Bind를 통한 활용 구현
- AIC
(1) Event에 따른 Blackboard 변수 제어 추가
(2) 초기 Delay 적용이 생략된 경우 Error 발생, compile 순서에 따른 버그로 추정됨 -> 추후에 Error 원인을 분석해서 개선
- behavior
(1) perception 기능 추가
(2) EQS 기능 추가
- EnemyBase
(1) 근거리, 원거리에 따른 상속 구현
3. 참고자료
'--------게임만들기-------- > |Unreal|' 카테고리의 다른 글
[Unreal] Day 15 - Enemy Type 구현 (Blueprint, Behavior Tree) (0) | 2024.07.13 |
---|---|
[Unreal] Day 14 - Enemy AI 구현 (Perception) (0) | 2024.07.04 |
[Unreal] Day 12 - Enemy AI 반복개발 (0) | 2024.07.01 |
[Unreal] Day 11 - 반복 개발 (2) | 2024.06.30 |
[Unreal] Day 10 - Enemy AI (Enemy Type) (0) | 2024.06.29 |