일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- UE4 커스텀로그
- 프로그래머스
- 정렬알고리즘
- BFS
- moreeffectiveC++
- unorder_map
- dataasset
- C++
- 자료구조
- 언리얼가비지컬렉터
- 람다
- 람다사용정렬
- 스마트포인터
- 언리얼엔진구조체
- 애셋로드
- 델리게이트
- 강참조
- 선택정렬
- map
- 알고리즘
- enumasByue
- UELOG
- UML관련
- stl
- 정렬
- 데이터애셋
- UE_LOG
- 약참조
- 크리티컬섹션
- C++최적화
- Today
- Total
목록UnrealEngine/UE- BehaviorTree (4)
기억을 위한 기록들
...캐릭터가 방에 진입하려할 때 어느 방에 들어가야하는지에 대한 정보의 표현이 없다면 BT를 구성할 때 레벨 상에 존재하는 모든 방을 별도의 분기로 처리해야 할 것입니다. 이건 정말 말도 안되는 비효율적인 낭비겠죠? 아시다시피 BT의 Task들은 프로그래밍 언어로 치자면 서브루틴 또는 함수로 간주할 수 있습니다. 프로그래밍 언어에서 함수에 파라미터를 집어넣어 처리하듯 BT도 이런 식으로 접근한다면 분명 효율적일 겁니다. 함수의 효율성은 단지 파라미터를 사용할 수 있다는 것 뿐 아니라, 한번 만들어 놓으면 재사용이 가능하다는 큰 장점을 지닙니다. 우리가 BT를 만들때도 마찬가지로 이러한 재사용성의 고려가 분명히 필요합니다. 잘못된 Data의 사용은 직관적이고 단순하게 표현할 수 있는 BT의 큰 장점을..
서비스는 연결된 컴포짓이 활성화돼있는 한 계속해서 구동된다. 속성에서 설정한 간격에 따라 Tick이 일어난다. 서비스는 항상 호출되기 때문에 AI 상태를 변경하는데에 주로 사용 된다고 한다. - Action RPG 샘플 참고 주로 서비스에서는 특정 이벤트를 실행시켜 주기적으로 블랙보드 변수를 업데이트한다. 후에 하위 노드들에 그 변수에 따라 다양한 액션으로 실행시킨다.
데코레이터는 객체지향설계에서 자주 언급되는 디자인 패턴 중 하나인 Decorator Design pattern과 같은 의미의 단어입니다. 즉 기존에 존재하는 class를 수정하지 않고 기능을 변경하기 위해 기존 class를 감싸서(wrap한다고 하죠) 이 목적을 달성하는 패턴입니다. 사용자는 기존 class의 변경없이 부가적인 기능을 덧붙일 수 있는 장점을 지닙니다(이때 인터페이스는 동일해야 합니다.). BT에서 데코레이터가 하는 역할도 똑같습니다. 데코레이터는 오직 하나의 자식 노드(즉 Task)를 가지는데(즉 바로 아래의 자식노드를 감싸는 역할을 한다는 의미겠지요..), 이 노드의 행위에 데코레이터가 영향을 줍니다. 데코레이터는 정말 다양하게 쓰일 수 있는데 본 글에서는 대표적으로 쓸만한 간단한 데코..
보통 글을 잘쓰는것보다 잘쓰여져 있는글을 가져오는게 낫다고 생각 할 때가 있다. 인터넷은 너무나도 많은 정보들을 담고 있 해당 비헤이비어 트리에 관련되서, 2014년도에 글을 작성해주신 분이 계신데 내가 엉성하게 쓰는것보다 해당 글을 가져오는게 낫다고 생각했다. 컴포짓(Composites)이란? - 컴포짓은 상태들의 시작점이다. 상태가 복귀와 실행 플로우에서 어떻게 행동해야하는지 정의한다. 여기에는 Selector/Sequence/Simple Parallel 이렇게 세가지 종류가 있다. 1. Background BT는 AI 캐릭터를 만들기 위한 매우 유명한 도구 중 하나입니다. Halo2[Bungie Software, 2004]가 BT를 사용한 최초의 게임으로 알려져 있고, 그 후 많은 게임에서 BT를 ..