알고리즘/GameAI

Smart Object

조규현15 2023. 4. 29. 15:09
반응형

Smart Object 를 처음 접하여 빠르게 개념을 이해하고 싶은 사람, 기억이 나지 않을 때를 위해 내용을 정리합니다.

Smart Object 란?
상호 작용이 가능한 Object 를 정의하기 위한 데이터를 ( 행동 양식 ) 을 직접 지정하여, 외부에서 요청에 의한 미리 정의된 패턴 ( 행동 양식 ) 을 손쉽게 수행할 수 있는 도구 입니다.

동작의 흐름
Actor 에 Smart Object Component 를 추가하면서 시작됩니다.
Smart Object Component 가 추가된 Actor 는 Smart Object 로써 동작할 수 있습니다.

Smart Object Component 에는 Slot 의 개념이 추가됩니다.

Slot 이란 위치를 기반으로 행동 양식을 직접 지정할 수 있는 데이터 포맷입니다.
Slot 은 특징으로 "예약 → 점유 → 반환" 을 할 수 있는 생명 주기를 가지고 있습니다.
Slot 데이터는 Slot 을 점유할 수 있는 조건과 행동 양식 그리고 위치 값이 있으며 상호작용을 요청하는 액터 ( 질의자 ) 에 의해 주변의 Smart Object 를 대상으로 조건이 만족 되는 Smart Objet 와 Slot 을 얻을 수 있습니다.
( BT 의 Task 로 동작합니다 )


얻어진 Smart Object 와 Slot 은 질의자에게 점유된 상태로 전환되어 소유자가 반환하기 전까지는 또 다른 점유를 허용하지 않습니다.

점유된 Smart Object 를 대상으로 소유자는 미리 정의된 행동 양식을 수행할 수 있으며, 행동 양식이 끝난 이후에는 자동으로 점유가 반환 됩니다.
( BT 의 Task 로 동작합니다 )


이는 Smart Object 가 직접 행동을 수행하지 않고 질의자 ( AI NPC ) 가 미리 정의된 패턴을 수행한다는 의미 입니다.


실제 적용된 Smart Object 와 예시를 보면 벤치에 앉거나 ( UE5 예제 ), TV 를 바라보는 소파에 앉는 ( 심즈 ) 등...
복잡한 행동 양식이 아닌 간단하고 연출로 이해할 수 있는 행동 양식에 국한되어 있습니다.

물론, Smart Object 의 행동 양식이 더 복잡하게 쓰일 수 도 있지만 타 시스템 ( BT ) 과의 영역이 불분명해지면 개별 시스템이 복잡해질 우려가 있어 위의 사례와 같이 간단하고 휘발적인 행동 양식에 쓰이는 것이 현실적입니다.

정리
무언가의 대상 ( 위치 ) 을 점유하면서 미리 정의된 행동 양식을 간단하게 수행할 수 있다는 점에서 Smart Object 가 쓰이는 목적과 효과는 분명합니다.

 

https://docs.unrealengine.com/5.0/Images/making-interactive-experiences/artificial-intelligence/smart-objects/smart-objects-overview/SO-Ov-Diagram-Claim-SO.png

Appendix

  • SubSystem 을 사용하는 이유?
    • 여러 액터가 하나의 Smart Object Slot 을 점유한다는 작업은 동시성에 위배될 수 있기에 월드 상에 하나밖에 존재할 수 없는 시스템을 두어 처리합니다
  • 동시에 여러 Slot ( Smart Object ) 가 수집되면 어떻게 처리하는가?
    • UE5 에서는 인접한 거리의 수집된 Smart Object 를 대상으로 조건을 수행하고 있습니다. 조건을 만족하는 복수 개의 대상에서는 가장 처음으로 확보된 대상을 결정합니다
  • 행동 양식에는 제한이 있는가?
    • 본문과 같이 UE5 에서는 점유된 Slot 이 수행하는 행동 양식에 제한이 없습니다. BP 에 열려있는 API 는 모두 호출이 가능합니다. UE 문서의 "스마트 오브젝트는 예약 시스템을 통해 사용할 수 있는 레벨 내 활동" 표현과 같이 활동을 특별히 제한하진 않고 있습니다

Reference

반응형

'알고리즘 > GameAI' 카테고리의 다른 글

AI Perception  (0) 2023.05.05
HTN ( Hierarchy Task Network )  (0) 2023.04.29
G.O.A.P ( Goal Oriented Action Planning )  (0) 2023.04.29