GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/350956311be0247df882a7db1caf725a5285c672
인공지능을 구현할 때, 대부분 초보자들은 Boolean으로 접근을 하려는 경우가 굉장히 많다. 나도 예전에 그랬다.
예를 들면, 불리언 변수를 계속 만들어서 멈춰있느냐 아니면 정찰을 가느냐 즉 어느 상태에 있느냐 체크를 했다. 이렇게 불리언을 계속 늘리게되면 나중에 로직이 꼬일 수가 있기 때문에 굉장히 좋지 않은 방법이다.
권장하는 방법은 상태를 이용해서 관리하는 방법이 좋다. 이전 글 중에 State 라는 변수를 사용했는데, 각 상태에 따라 로직을 구분해주면 훨씬 깔끔하고 만들기도 쉽다.
이 방법을 조금 유식하게 표현하면 유한 상태 기계에 해당한다고 생각하면 된다. FSM, Finite State Machine.
Behavior Tree까지 가지 않고, FSM 방식으로 대부분의 인공지능을 다 만들 수가 있다.
보스 패턴이 정말 복잡해서 와우게임의 보스급이 아닌 이상, 기본 몬스터같은 경우는 대부분 유한 상태 기반으로 만드는 게 굉장히 깔끔하게 만들 수가 있다.
인공지능을 깊이 만드려면 너무 방대하기 떄문에 아주 간단하게 만들었다.
Get Actor Of Class로 플레이어를 찾은 다음 Validation(null) 체크를 한 다음, Move 상태로 간다.
그 다음 틱에서, Move로 들어오게 되면 Vaildation 체크를 해준 다음에 아직도 플레이어가 유효하다라고 하면 그 플레이어를 향해서 가게끔 방향 벡터를 먼저 구해준다.
방향 벡터로 따라가게끔 유도를 해주고, 일정거리 안에 들어왔으면 Begin Attack을 호출해줘서 공격을 하는 식으로 만들어졌다.
'UE5 : Paper 2D (Blueprint) > 인공지능과 컨트롤러' 카테고리의 다른 글
[UE5 : Paper2D(BP) - 인공지능과 컨트롤러] Chapter 02. Controller (0) | 2024.01.09 |
---|
댓글