본문 바로가기

언리얼5 ai9

언리얼엔진5 c++ BehaviorTree(BTService 생성 및 사용) ▣ Add Service에서 Set  Default Focus를 추가하여 BehaviorTree에서 Ai에 Focus를 변경할 수 있습니다.  ▣ 서비스(Services)는 컴포짓(Composite) 또는 태스크(Task) 노드에 어태치 되며, 분기가 실행 중인 동안 정의된 빈도로 실행됩니다. 보통 블랙보드의 확인과 업데이트에 사용됩니다. 이 노드는 다른 비헤이비어 트리 시스템에서 전통적인 병렬(Parallel) 노드를 대체합니다. ▣ Default Focus는 AI 컨트롤러(AI Controller)의 포커스를 설정하여 블루프린트 및 코드의 액터에 액세스 하는 바로가기를 생성합니다. AI 컨트롤러의 포커스를 액터로 설정하면 블랙보드 키에 액세스 하지 않고 AI 컨트롤러에서 직접 액세스 할 수 있습니다... 2024. 4. 30.
언리얼엔진5 c++ BehaviorTree(BTTask 생성 및 Character 호출) ▣ c++ 클래스 생성에서 BTTaskNode를 선택하여 생성합니다. 블랙보드 키가 필요하지 않을 경우 BTTaskNode로 생성합니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/API/Runtime/AIModule/BehaviorTree/UBTTaskNode?application_version=5.3 UBTTaskNodeTask are leaf nodes of behavior tree, which perform actual actionsdev.epicgames.com   ▣ Build.cs 파일로 가서 "GameplayTasks"를 추가합니다.   ▣ 그리고 h 헤더파일로 가서 생성자 및 ExecuteTask 함수를 선언합니다.  ▣ E.. 2024. 4. 29.
언리얼엔진5 c++ BehaviorTree(Decorator, Selector, 플레이어 발견, 원위치로) ▣ 먼저 PlayerLocation을 활성화 비활성화하는 방식으로 AI를 이동하고 다시 원래위치로 돌아가는 코드를 작성하겠습니다.  ▣ LineOfSightTo() 함수로 플레이어를 발견하면 BlackBoard PlayerLocation를 세팅하고 아니면 PlayerLocation블랙키를 지우는 코드를 작성합니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/BlueprintAPI/AI/Components/Blackboard/ClearValue%3Fapplication_version%3D5.0%3Fapplication_version%3D5.0%3Fapplication_version%3D5.0?application_version=5.0 Clea.. 2024. 4. 28.
언리얼엔진5 c++ BehaviorTree(Blackboard Set, Ai Move) ▣ 먼저 Behavior Tree와 Blackboard를 생성합니다. 각각 이름 앞에 BT, BB를 붙여서 어떤 파일인지 의도에 맞게 작성합니다. ▣ 비헤이비어 트리는 블루프린트와 유사한 시각적 방식으로 생성됩니다. 비헤이비어 트리 그래프(Behavior Tree Graph)에 기능이 탑재된 다양한 노드를 추가하고 연결하는 방식입니다. 비헤이비어 트리가 로직을 실행하는 한편, 비헤이비어 트리가 결정을 내리는 데 필요한 정보인 블랙보드 키(Blackboard Key)는 블랙보드(Blackboard)라는 별도의 에셋에 저장됩니다. 일반적인 워크플로는 블랙보드를 생성하고, 블랙보드 키를 추가한 다음, 블랙보드 에셋을 사용하는 비헤이비어 트리를 생성하는 순서입니다. 블랙보드는 아래 이미지에서처럼 비헤이비어 트리.. 2024. 4. 27.
언리얼엔진5 c++ AIController(LineOfSightTo : 시선방향) ▣ LineOfSightTo() 함수를 활용하여 시선에 보이면 True로 시선에 있지 않으면 False로 반환하는 함수를 활용하여 조건문을 만들었습니다. ▣ LineOfSightTo() : 다른 배우의 중앙과 상단까지 라인을 확인합니다. ▣ AAIController::ClearFocus : 지정된 우선순위에 대해 Focus를 지우고 결과적으로 FocalPoint도 지워집니다. ▣ AAIController::StopMovement : 컨트롤러가 현재 수행 중인 이동을 중단합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Controller/LineOfSightTo?application_version=5.3 Line O.. 2024. 4. 27.
언리얼엔진5 Ai move to (Ai 랜덤이동, Ai 공격) ▣ Enemy ai를 만들 Character 클래스를 생성합니다. ▣ BP_EnemyAi로 이름을 지정하고 메뉴 들어가서 Mesh를 지정하고 PawnSensing 컴포넌트를 추가합니다. ▣ Event Graph에서 Add Custom Event를 추가하여 Follow Player, RandomMove 두 개 Event를 생성합니다. Follow Player는 플레이어를 발견하면 플레이어를 따라가는 이벤트 RandomMove는 플레이어를 발견하지 않는 상태에서는 랜덤으로 이동하는 이벤트입니다. ▣ Ai move to를 검색하여 Ai move to 노드도 추가합니다. https://dev.epicgames.com/documentation/ko-kr/unreal-engine/BlueprintAPI/AI/AIM.. 2024. 4. 6.
언리얼엔진5 소리 감지 ▣ 감지할 적 Enemy를 Pawn으로 생성합니다. ▣ Static Mesh를 추가하고 Pawn Sensing 컴포넌트를 추가합니다. ▣ 디테일탭에서 소리 감지 영역 값을 지정합니다. ▣ On Hear Noise 이벤트를 추가하고 소리가 감지되면 Line Trace를 쏘는 노드를 완성합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/EventDispatchers/OnHearNoise?application_version=5.3 On Hear Noise On Hear Noise dev.epicgames.com ▣ 소리를 발생시킬 Player블루프린트로 가서 PawnNoiseEmitter 컴포넌트를 추가합니다. 그리고 위.. 2024. 4. 4.
언리얼엔진5 폰 감지 ▣ 먼저 Enemy Pawn Class를 생성합니다. ▣ Enemy에 Static Mesh를 추가하고 Pawn Sensing 컴포넌트를 추가합니다. https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/AI/Components/PawnSensing/GetPeripheralVisionAngle Get Peripheral Vision Angle Get Peripheral Vision Angle dev.epicgames.com ▣ Details에서 Pawn 감지 영역값을 지정합니다. ▣ Evets메뉴에서 On See Pawn 이벤트를 추가합니다. ▣ Find Look at Rotation 노드를 사용하여 플레이어가 감지되면 해당 위치.. 2024. 4. 4.
언리얼엔진5 Auto Possess AI ▣ Pawn에서 AI Controller Class 설정 https://docs.unrealengine.com/5.0/ko/behavior-tree-in-unreal-engine---quick-start-guide/ 비헤이비어 트리 퀵 스타트 가이드 이 가이드에서는 순찰하거나 플레이어를 추격하는 AI 캐릭터를 비헤이비어 트리로 구성하는 방법을 알아봅니다. docs.unrealengine.com ▣ Disabled 기능이 비활성화되었습니다(AI를 자동으로 보유하지 않음). ▣ PlacedInWorld 폰이 세계에 배치된 경우에만 AI 컨트롤러가 소유합니다. ▣ Spawned 월드가 로드된 후 Pawn이 스폰된 경우에만 AI 컨트롤러가 소유합니다. ▣ PlacedInWorldOrSpawned 폰은 생성될 때.. 2024. 2. 2.