Unreal

[Unreal] 6월 30일 수업정리

k-codestudy 2025. 6. 30. 14:36

오늘은 인바이런먼트 쿼리에 대한 수업을 들었다.

 

기본 세팅

블랙보드, 캐릭터, 비헤이비어트리, ai컨트롤러, 인바이런먼트 쿼리, 인바이런먼트 컨스트 생성

  • 인바이런먼트 쿼리 : eqc를 실행하는 역활 (위치, 각도, 시야에서 보이는지 안보이는지만으로 작업)
  • 인바이런먼트 컨스트 : eqc의 원소를 작업하는 공간

캐릭터 세팅 - use Controller Desired Rotation On, Use Accelertaion for Paths On, AIcontroller 설정
AIController - possess -> run behavior Tree (bt-monster)

 

인바이런먼트 쿼리 세팅

인바이럴먼트 쿼리 컨스트 (eqc-player) -> 함수 provide Single Actor 호출 -> return : get Player Character ( 캐릭터를 알려줌 )
인바이런먼트 쿼리 - 루트에서 Gird 연결
래벨에 끌어와 보면 이런식으로 보이게 되는데 저 구체들이 AI가 움직일수있는 좌표? 라고 생각하면 될것이다.
Grid에서 우클릭 후 Trace (보이는지) 호출
Trace 설정
이 코드는 태스트용이지 절대로 게임에 넣으면 안된다 ( 랙 오지게 먹을것이다 )
확인해보면 저런식으로 초록색 구체로 보이게 된다.
Trace 세팅
확인
Distance 추가
distance 세팅
이런식으로 값이 뜨게 되는데 값이 가장 큰 곳으로 Ai는 이동을 하게 될것이다. ( 위에 세팅은 절대적인것은 아니며 원하는 동작을 하도록 알아서 설정하면 됨 )

  • 주의점 : 누구 기준으로 값을 계산하냐에 따라 결과값이 달라질 것이다. 몬스터를 기준으로 계산을 하게되면 몬스터가 이동하면서 결과값은 바뀌면서 버그를 유발할 수도있고, 플래이어를 기준으로 하게 되면 몬스터들이 한곳으로 모이게 되는 현상을 볼수있다. 이런 부분을 주의해 가면서 최선의 결과값을 도출해 내 설정하면 될것이다.

비헤이비어 트리 세팅

enum 추가 ( Idle, Chase )
블랙보드 : state(Enum) , Location (Vector) 추가
비헤이비어트리 세팅 ( IDLE, CHASE의 경우 blackboard를 추가하여 enum으로 구별 )
aicontroller : on Target Perception Update : if (Stimulus Successfully Sensed) True - set Value as Enum ( target : blackboard / Key name : Make literal Name : state / Enum Value : Literal enum e-monsterstate (Chase) 세팅
run EQS Query 설정
실행

'Unreal' 카테고리의 다른 글

[Unreal] 7월 2일 수업정리  (0) 2025.07.02
[Unreal] 7월 1일 수업정리  (0) 2025.07.01
[Unreal] 6월 27일 수업정리  (0) 2025.06.28
[Unreal] 6월 26일 수업정리  (1) 2025.06.27
[Unreal] 6월 25일 수업정리  (0) 2025.06.25