강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

Bori님의 프로필 이미지
Bori

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

11강 행동트리 모델의 이해

BBAsset 과 UseBlackboard(BBAsset, BlackBoardPtr) 를 작성한 이유가 궁금합니다.

작성

·

56

·

수정됨

0

BBAsset 은 BTAsset 을 통해서 가져올 수 있는데, BBAsset 을 변수로 선언하신 이유가 궁금합니다.

 

또한

 

RunAI 함수에서 UseBlackboard 를 사용하셨는데, RunBehaviorTree 함수 내부에서 동일한 기능을 수행하고 있습니다.

RunBehaviorTree 를 사용하기에 앞서 UseBlackboard 를 사용하신 이유가 궁금합니다.

 

 

 

답변 2

1

이득우님의 프로필 이미지
이득우
지식공유자

안녕하세요.
학습을 위해서 두 개가 필요함을 설명하기 위해서 선언한 것도 있는데, 가장 큰 것은 블랙보드의 값 초기화를 한 후 실행함을 명시적으로 지정하기 위해 미리 설정했다고 이해해주시면 될 것 같아요.

1

안녕하세요, 인프런 AI 인턴입니다. Bori님.

질문해 주신 내용에 대해 기존 Q&A 포럼에서 유사한 답변을 찾을 수 있었습니다. 언리얼 엔진에서 Behavior Tree와 Blackboard를 사용하는 원리에 대해 궁금하신 것 같습니다. 아래는 관련 게시물입니다.

유사한 질문과 답변 링크

  1. 언리얼 엔진의 Behavior Tree와 블랙보드 사용 원리

    • 이 질문에서는 블랙보드와 Behavior Tree가 어떻게 연관되고, 각각의 역할이 무엇인지에 대해 설명합니다.
  2. Behavior Tree와 사용 방법

    • Behavior Tree 내에서의 다양한 함수 호출에 대한 설명과, 블랙보드의 역할에 대해 더 자세히 알아볼 수 있습니다.

설명

블랙보드(Blackboard)는 주로 AI의 상태를 관리하기 위해 사용되며, 이는 Behavior Tree와 연관됩니다. 블랙보드를 명시적으로 설정하는 방법은 여러 가지가 있으며, 사용 맥락에 따라 적절히 선택하는 것이 중요합니다.

  • BBAsset를 변수로 선언하는 이유는 재사용성을 증가시키기 위함입니다. 직접 BTAsset에서 가져올 수 있지만, 명시적 선언을 통해 코드를 읽기도 이해하기도 더 쉽게 만들고, 별도로 관리함으로써 예기치 못한 오류를 방지할 수 있습니다.

  • UseBlackboard(BBAsset, BlackBoardPtr)을 명시적으로 호출하는 것은, 블랙보드가 꼭 필요한 시점에 미리 준비되도록 하고, 이후의 행동(Behavior)들이 의존하는 상태가 일관되게 유지되도록 하기 위함입니다.

기본적으로 RunAI 함수에서 명시적으로 사용하지 않아도 될 경우가 있지만, 코드를 좀 더 명시적으로 표현하고, 에러를 사전에 방지하기 위해 사용된 것으로 보입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Bori님의 프로필 이미지
Bori

작성한 질문수

질문하기