Unreal

[Unreal] 6월 27일 수업정리

k-codestudy 2025. 6. 28. 21:29

비헤이비어트리에 대한 수업을 이어서 들었다.

 

AIController 세팅

on Possess - Run Behavior Tree 연결 ( BTAsset : bt_enemy로 설정 )

  • on Target Perception Update : Actor Has Tag (Player) && break AISimulation - Seccessfully Sensed 일때
  • False : set Timer by Event -> return value 변수 승격 ( Eneny Timer ) / Event : create Event (e-startEnemyTimer) / Time : 변수 승격 ( LineOfSightTimer, 4초 )
  • e-startEnemyTimer : BlackBoard -> set Value as Bool (Key Value 변수 승격 : Has Line Of Sight) - set Value as Object ( Key Value 변수 승격 : Enemy Actor ) -> 전부 디폴트
  • True : Clear and Invailidate Timer by Handle ( Handle : Enemy Timer ) - set Value as Bool ( Bool Value : True )  - set Value as Object ( on Target Perception Update의 Actor 연결 )

시퀀스 우클릭 - 데코레이터 추가 - blackBoard 클릭
추가 후 디테일 패널 - 관찰자 중단 : Both, BlackBoard Key : HasLineOfSigth로 설정
실행 : 잘 따라오는것을 확인 가능

 

 

Enum을 이용한 방법 

생성
비헤이비어 트리 설정 - 그냥 택스트만 출력되게 새 태스크에 BTTask_PrintText 생성
[BTTask_PrintText] - print String - is String 변수 승격 (is String , 인스턴스 편집 On ) - finish Execute On
Enum 설정 - > Idle, Attack, Flee
[AIController]

  • Possess - run Behavior Tree (bt-enemy)
  • 커스텀 이벤트 ( e-set AIState, 입력 : state(e-AIMonster)) : get BlackBoard - set Value as Enum - key Name 변수 승격 (m-bbAiState)
  • on Target Perception Update : break AISimulation - Seccessfully Sensed -> True : e-set AIState : attack / False  : e-set AIState : Idle

[블랙보드] 새키 Bool 형 (State) - Enum Type : E-aiMonster 설정
[비헤이비어 트리] 시퀀스 우클릭 - 데코레이터 - blackboard 추가
복붙 후 각각 enum에 맞게 설정
실행 : 범위에서 벗어나게 되면 Idle
실행 : 범위 안에 들어오게 되면 Attack 출력

'Unreal' 카테고리의 다른 글

[Unreal] 7월 1일 수업정리  (3) 2025.07.01
[Unreal] 6월 30일 수업정리  (0) 2025.06.30
[Unreal] 6월 26일 수업정리  (1) 2025.06.27
[Unreal] 6월 25일 수업정리  (0) 2025.06.25
[Unreal] 6월 24일 수업정리  (0) 2025.06.24