Unreal Engine 4

AIPerceptionComponent의 OnTargetPerceptionUpdated 이벤트는 AIPerceptionComponent에 등록된 SensesConfig에 대한 결과를 나타내는 Stimulus(자극) 구조체를 반환합니다. 값 설명 Age 자극이 발생한 시간입니다. Expiration Age 자극이 무효화되기까지의 시간입니다. Strength 자극에 정의된 가중치입니다. Stimulus Location 자극이 시작된 곳입니다. PlayerCharacter의 AIPerceptionStimuliSourceComponent에서 설정한 Senses를 가졌다면 PlayerCharacter의 위치를 나타냅니다. Recevier Location 자극이 AIPerceptionComponent에 등록된 곳입..
Nofity Observer(관찰자 알림) On Result Change: 조건이 변경되었을 때마다 재시작합니다. On Value Change: 관찰되는 블랙보드 값이 바뀔 때마다 재시작합니다. Observer Aborts(관찰지 중단) None: 아무것도 중단하지 않습니다. Self: 자신과 이 노드 아래 실행중인 서브 트리도 중단합니다. Lower Priority: 이 노드의 오른쪽에 있는 모든 노드를 중단합니다. Both: 자신, 그 아래 실행중인 서브 트리, 이 노드 오른쪽에 있있는 모든 노드를 중단합니다.
비헤이비어 트리는 태스크를 실행할 때 태스크 클래스의 ExecuteTask라는 멤버 함수를 실행합니다. ExecuteTask 함수는 다음 중 하나의 값을 반환해야합니다. 반환 값 설명 Aborted 태스크 실행 중에 중단되었습니다. 결과적으로 실패했습니다. Failed 태스크를 수행했지만 실패했습니다. Succeeded 태스크를 성공적으로 수행했습니다. InProgress 태스크를 계속 수행하고 있습니다. ExecuteTask 함수의 실행 결과에 따라 컴포짓 내에 있는 다음 태스크를 계속 수행할지, 중단할지가 결정됩니다.
블랙보드 블랙보드는 인공지능의 판단에 사용하는 데이터 집합을 의미합니다. NPC의 의사 결정은 블랙보드에 있는 데이터를 기반으로 진행됩니다. 비헤이비어 트리 블랙보드 데이터에 기반해 설계한 비헤이비어 트리의 정보를 저장한 애셋입니다. 언리얼 에디터에서는 비헤이비어 트리를 시각화해 저장할 수 있는도록 편집기능을 제공합니다. 비헤이비어 트리 노드의 종류 비헤이비어 트리의 노드는 루트(Root), 컴포짓(Composite), 태스크(Task), 데코레이터(Decorator), 서비스(Service). 총 5 가지의 종류가 존재합니다. 루트(Root) 비헤이비어 트리의 시작을 나타내는 노드이며, 한 개의 노드만 연결할 수 있습니다. 디테일 패널에서 이 비헤이비어 트리에서 사용할 블랙보드 애셋을 설정할 수 있습니..
AIControllerClass = APRAIController::StaticClass(); AutoPossessAI = EAutoPossessAI::PlacedInWorldOrSpawned; PRAIController 클래스를 생성하고 생성한 AIController를 사용하도록 AIController의 클래스 속성을 PRAIController의 클래스로 설정하고 AI의 생성옵션을 PlaceInWorldOrSpawned로 설정합니다. 레벨에 배치하거나 새롭게 생성하는 캐릭터마다 PRAIController 액터가 생성되고 캐릭터는 각 PRAIController의 지배를 받습니다.
언리얼 실행 환경은 메모리에 떠있는 언리얼 오브젝트가 사용 중인지 아닌지를 주기적으로 검사하고, 사용하지 않는 물체를 발견하면 메모리에서 자동으로 제거합니다. 이를 가비지 컬렉션(Garbage Collection)이라고 합니다. 언리얼 오브젝트가 사용 중인지 여부는 다른 언리얼 오브젝트가 해당 오브젝트를 참조하는지로 판단하는데, 예를 들어 FHitResult의 멤버 변수 Actor의 선언이 일반 참조로 선언된다면 해당 함수에서의 참조로 인해 제거돼야 할 액터가 메모리에 그대로 남아있는 문제가 발생할 수 있습니다. 이런 문제를 방지하기 위해 FHitResult는 참조로부터 자유롭게 포인터 정보를 전달해주는 약 포인터(TWeakObjectPtr) 방식으로 멤버 변수를 선언했습니다. 약포인터로 지정된 액터에 ..
OwnerPRPlayerCharacter->OnCoolDownRatioChangedDelegate.AddUFunction(this, FName("BindSkillSlot")); OwnerPRPlayerCharacter->OnCoolDownRatioChangedDelegate.AddUObject(this, &UPRSkillPaletteWidget::BindSkillSlot); UObject의 멤버 함수를 바인딩 할 경우 AddUObject를 사용합니다. 멤버 함수 중 UFUNCTION 키워드를 사용하여 선언한 함수는 AddUFunction으로 바인딩 할 수 있습니다. AddUObject의 경우 함수 포인터를 넘겨주고, AddUFunction은 함수 이름을 인자로 넘겨주면 됩니다.
한돌이
'Unreal Engine 4' 태그의 글 목록 (2 Page)