KR20180105678A - 상태 제어 방법 및 장치 - Google Patents

상태 제어 방법 및 장치 Download PDF

Info

Publication number
KR20180105678A
KR20180105678A KR1020187023912A KR20187023912A KR20180105678A KR 20180105678 A KR20180105678 A KR 20180105678A KR 1020187023912 A KR1020187023912 A KR 1020187023912A KR 20187023912 A KR20187023912 A KR 20187023912A KR 20180105678 A KR20180105678 A KR 20180105678A
Authority
KR
South Korea
Prior art keywords
node
state
behavior tree
server
state machine
Prior art date
Application number
KR1020187023912A
Other languages
English (en)
Other versions
KR102085686B1 (ko
Inventor
레이 쟝
하오보 산
진위안 저우
Original Assignee
텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 filed Critical 텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Publication of KR20180105678A publication Critical patent/KR20180105678A/ko
Application granted granted Critical
Publication of KR102085686B1 publication Critical patent/KR102085686B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • H04L67/327
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0233Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks

Abstract

본 발명은 상태 제어 방법과 장치를 공개한다. 이 방법은 제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구하는 작업 실행 이벤트를 서버가 검측하는 단계와, 서버가 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하는 단계, 여기서, 혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고, 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 구비하며, 현재 노드 다음의 노드가 제1 상태 노드로 판단되면 서버가 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 수행하는 단계와, 현재 상태의 다음 노드가 제1 행동 트리 노드로 판단되면 서버가 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행하는 단계를 포함한다. 본 발명에 의하면 기존기술에서 유한 상태 기계로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 효율이 낮은 기술과제를 해결한다.

Description

상태 제어 방법 및 장치
본 출원은 2016년 3월 3일에 중국특허국에 출원한 출원번호가 201610121881.1이고 발명명칭이 “상태 제어 방법 및 장치”인 중국특허출원의 우선권을 주장하고 그 모든 내용을 인용하여 본 출원에 결합시킨다.
본 발명은 컴퓨터 분야에 관한 것으로, 특히 상태 제어 방법 및 장치에 관한 것이다.
현재, 애플리케이션에서 개체를 제어하여 작업을 실행하는 방식은 통상 유한 상태 기계와 행동 트리를 포함하는데 유한 상태 기계와 행동 트리는 작업을 실행하는 과정에 모두 문제가 존재한다. 구체적으로, 유한 상태 기계인 경우, 상태가 아주 많을 경우, 유한 상태 기계는 대량의 상태 변환 관계를 처리하여야 하여 설계자의 작업량을 증가시킬 뿐만 아니라 유한 상태 기계의 보수에도 불리하고 애플리케이션에서의 개체가 작업을 실행하는 효율이 낮다. 행동 트리인 경우, 행동 트리는 상태 점프 측면에서 직관적이지 못하고 행동 트리는 계획에 따라 일련의 행위를 수행하는데 적합하고 이상 상황과 특수 상황에서의 상태 점프를 유효하게 처리할 수 없다.
상기 문제에 대하여 아직 유효한 해결책을 제시하지 못하였다.
본 발명의 실시예는 적어도 기존기술에서 유한 상태 기계로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 효율이 낮은 기술과제를 해결할 수 있는 상태 제어 방법 및 장치를 제공한다.
본 발명의 실시예의 일 측면에 따르면, 제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구하는 작업 실행 이벤트를 서버가 검측하는 단계와, 서버가 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하는 단계와, 여기서, 혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고, 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 가지고, 현재 노드 다음의 노드가 제1 상태 노드로 판단되면 서버가 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 수행하는 단계와, 현재 상태의 다음 노드가 제1 행동 트리 노드로 판단되면 서버가 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행하는 단계를 포함하는 상태 제어 방법을 제공한다.
본 발명의 실시예의 다른 일 측면에 따르면, 제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구하는 작업 실행 이벤트를 서버가 검측하는 검측수단과, 서버가 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하는 판단수단과, 여기서, 혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고, 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 가지고, 현재 노드 다음의 노드가 제1 상태 노드로 판단되면 서버가 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 수행하는 제1 작업수단과, 현재 상태의 다음 노드가 제1 행동 트리 노드로 판단되면 서버가 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행하는 제2 작업수단을 포함하는 상태 제어 장치를 제공한다.
본 발명의 실시예에 있어서, 서버가 작업 실행 이벤트를 검측하였으면 제1 객체가 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하고, 제1 상태 노드이면 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 실행하고 제1 행동 트리 노드이면 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행함으로써, 유한 상태 기계와 행동 트리를 이용하여 공동으로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 목적을 실현하고 애플리케이션 중의 개체가 작업을 실행하는 효율을 향상시키는 기술효과를 실현하고 기존기술에서 유한 상태 기계로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 효율이 낮은 기술과제를 해결한다.
도면은 본 발명에 대해 이해를 돕기 위한 것으로 본 발명의 명세서의 일부분이고 본 발명에 예시적으로 나타낸 실시예 및 그 설명은 본 발명을 해석하기 위한 것으로 본 발명을 한정하는 것이 아니다.
도 1은 본 발명의 실시예에 따른 상태 제어 방법의 하드웨어 환경을 나타낸 도이다.
도 2는 본 발명의 실시예에 따른 선택 가능한 상태 제어 방법의 흐름도이다.
도 3은 본 발명의 실시예에 따른 유한 상태 기계를 나타낸 도이다.
도 4a는 본 발명의 실시예에 따른 상태 패킷 사이의 유한 상태 기계를 나타낸 도이다.
도 4b는 본 발명의 실시예에 따른 계층 상태 기계를 나타낸 도이다.
도 5는 본 발명의 실시예에 따른 스택 기반 상태 기계를 나타낸 도이다.
도 6은 본 발명의 실시예에 따른 행동 트리를 나타낸 도이다.
도 7은 본 발명의 실시예에 따른 혼합 상태 기계를 나타낸 도이다.
도 8은 본 발명의 실시예에 따른 상태 제어 장치를 나타낸 도이다.
도 9는 본 발명의 실시예에 따른 선택 가능한 상태 제어 장치를 나타낸 도이다.
도 10은 본 발명의 실시예에 따른 다른 한 선택 가능한 상태 제어 장치를 나타낸 도이다.
도 11은 본 발명의 실시예에 따른 또 다른 선택 가능한 상태 제어 장치를 나타낸 도이다.
도 12는 본 발명의 실시예에 따른 단말의 구조를 나타낸 블록도 이다.
이 분야의 기술자들이 본 발명의 기술방안을 더욱 쉽게 이해할 수 있도록 아래 본 발명의 실시예 중의 도면을 결합하여 본 발명의 실시예의 기술방안을 명확하고 완벽하게 설명하는데 아래에서 설명하는 실시예는 본 발명의 모든 실시예가 아니라 일부 실시예이다. 본 발명의 실시예에 근거하여 이 분야의 기술자가 창조성이 있는 노동이 필요하지 않고 얻은 모든 기타 실시예는 모두 본 발명의 보호범위에 속한다.
그리고, 본 발명의 명세서, 특허청구범위 및 도면에 기재된 용어 “제1”, “제2” 등은 유사한 대상을 구별하기 위한 것으로 특정된 순서 또는 선후 순서를 표시하기 위한 것이 아니다. 본 발명의 실시예를 도면 또는 상기에서 설명한 순서와 다른 순서로 실시할 수 있도록 이렇게 사용된 대상이 적절한 상황에서 서로 교체될 수 있음은 이해할 수 있는 것이다. 그리고 용어 “포함”, “구비” 및 이러한 용어의 임의의 변형은 비배제적 포함을 커버하기 위한 것으로, 예를 들어 일련의 단계 또는 유닛을 포함하는 프로세스, 방법, 시스템, 제품 또는 기기는 명확히 기재된 단계 또는 유닛에 한정되지 않고 기재하지 않은 또는 이러한 프로세스, 방법, 제품 또는 기기 고유의 기타 단계 또는 유닛을 포함할 수도 있음을 표시한다.
실시예1
본 발명의 실시예에 의하면 상태 제어 방법의 방법 실시예를 제공한다.
본 실시예에 있어서, 상기 상태 제어 방법을 도 1에 도시한 서버(102)와 단말(104)로 구성된 하드웨어 환경에 응용할 수 있다. 도 1에 도시한 바와 같이 서버(102)는 네트워크를 통하여 단말(104)과 연결되고 상기 네트워크는 광역 통신망, 도시 지역 통신망 또는 로컬 통신망을 포함하지만 이에 한정되는 것은 아니다. 단말(104)은 PC, 휴대폰, 태블릿PC 등에 한정되지 않는다. 본 발명의 실시예의 데이터 처리 방법을 서버(102)가 실행할 수 있고 단말(104)이 실행할 수도 있으며 서버(102)와 단말(104)이 공동으로 실행할 수도 있다. 여기서, 단말(104)이 본 발명의 실시예의 데이터 처리 방법을 실행하는 것을 단말에 설치된 클라이언트로 실행할 수 있다.
도 2는 본 발명의 실시예에 따른 선택 가능한 상태 제어 방법의 흐름도로, 도 2에 도시한 바와 같이 이 방법은 단계 S202, 단계 S204, 단계 S206, 단계 S208을 포함한다.
단계 S202에 있어서, 서버가 작업 실행 이벤트를 검측하고, 여기서, 작업 실행 이벤트는 제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구한다.
단계 S204에 있어서, 서버가 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하고, 여기서, 혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 가진다.
단계 S206에 있어서, 현재 노드 다음의 노드가 제1 상태 노드로 판단되면 서버가 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 수행한다.
단계 S208에 있어서, 현재 상태의 다음 노드가 제1 행동 트리 노드로 판단되면 서버가 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행한다.
상기 단계 S202~단계 S208을 통하여, 서버가 작업 실행 이벤트를 검측하면 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하고 제1 상태 노드이면 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 실행하고 제1 행동 트리 노드이면 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 실행함으로써 유한 상태 기계와 행동 트리를 이용하여 공동으로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 목적을 실현하고 애플리케이션 중의 개체가 작업을 실행하는 효율을 향상시키는 기술효과를 실현하고 기존기술에서 유한 상태 기계로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 효율이 낮은 기술과제를 해결한다.
단계 S202에서 제공한 기술방안에서, 제1 애플리케이션은 게임형 애플리케이션, 인스턴트 메시징형 애플리케이션 또는 기타 유형의 애플리케이션일 수 있고 본 발명은 제1 애플리케이션을 한정하지 않는다. 제1 애플리케이션에 다수의 객체를 포함할 수 있고 이 다수의 객체에 제1 객체가 포함될 수 있고 제1 객체는 이러한 다수의 객체 중의 임의의 한 객체일 수 있다. 다만, 여기서 말하는 객체는 애플리케이션 중의 이벤트를 실행하는 이벤트 객체, 예를 들어 게임 캐릭터일 수 있다. 제1 애플리케이션은 서버에 설치될 수 있고 클라이언트(예를 들어 스마트폰, 전기 에너지 등)에 설치될 수도 있으며 서버가 이 제1 애플리케이션 중의 이벤트와 객체의 처리와 보수를 책임진다. 작업 실행 이벤트는 제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구하는 것일 수 있고, 여기서, 제1 객체에 수행하는 작업은 제1 객체의 이동 경로를 조절하거나 제1 객체를 제어하여 기능을 발휘하는 등일 수 있고 본 발명은 이를 한정하지 않는다.
서버는 작업 실행 이벤트를 실시간으로 검측하여 그 작업 실행 이벤트에 즉시 정확하게 응답하여 제1 애플리케이션 중의 제1 객체에 작업을 수행할 수 있다. 서버는 작업 실행 이벤트를 실시간으로 검측하는 동시에 제1 애플리케이션 중의 제1 객체가 어느 한 작업을 수행하고 있는가를 실시간으로 검측할 수 있고 서버가 제1 객체가 어느 한 작업을 수행하고 있음을 검측하였으면 그 작업 실행 이벤트를 검측하였을 경우 제1 객체가 현재 실행중의 작업이 완료되기를 대기한 후 제1 객체를 제어하여 그 작업 실행 이벤트에 응답한다. 서버가 제1 객체가 어떠한 작업도 수행하고 있지 않다고 검측하였으면 그 작업 실행 이벤트를 검측하였을 경우 즉시 제1 객체를 제어하여 그 작업 실행 이벤트에 응답한다.
단계 S204에서 제공한 기술방안에 있어서, 혼합 상태 기계는 제1 객체를 제어하여 작업을 수행할 수 있고, 다만, 혼합 상태 기계는 하다 또는 다수의 제1 애플리케이션 중의 객체를 제어하여 작업을 수행할 수도 있다. 혼합 상태 기계는 유한 상태 기계와 행동 트리로 구성되고 혼합 상태 기계를 명확하게 설명하기 위하여 본 발명의 실시예에서 우선 유한 상태 기계와 행동 트리를 구체적으로 설명한다.
유한 상태 기계는 애플리케이션 중의 개체 객체를 제어하여 작업을 실행할 수 있고 유한된 수량의 상태와 상태 사이의 변환 조건을 포함한다. 같은 시간 내에 개체 객체는 어느 한 상태에만 처하고 유한 상태 기계는 한 상태로부터 다른 한 상태로 변환시켜 다른 작업을 실행한다. 예를 들어, 도 3에 게임 애플리케이션 중의 하나의 게임 캐릭터의 유랑, 공격, 도망, 치료 찾기 등 4개 상태 및 상기 4개 상태 사이의 변환 관계를 나타냈는데, 예를 들어 게임 캐릭터가 치료 찾기로부터 유랑으로의 변환 조건은 약물 발견이고 공격으로부터 유랑으로의 변환 조건은 객체가 시야 범위 내에 있지 않은 것이고 기타도 이와 마찬가지로 여기서는 상기 4가지 상태 사이의 변환 조건을 일일이 설명하지 않는다.
유한 상태 기계는 계층 상태 기계(Hierarchical Finite State Machines, HFSM로 약칭)과 스택 기반 상태 기계(Stack based Finite State Machines, SFSM로 약칭)의 두가지로 나누어진다. 여기서, 계층 상태 기계는 상태를 패킷화하는 개념을 제시하여 서로 다른 패킷 사이의 상태가 동일한 변환 관계를 공유한다. 이로하여 상태 제어 입도를 향상시켰고 반복되는 상태 변환 관계를 대폭 줄였으며 설계자가 상태 변환을 더욱 잘 제어할 수 있다. 도 4a에 도시한 바와 같이 유한 상태 기계에는 상태 A, B, C의 3개 상태가 포함되고 여기서, A와 B 상태가 β 조건에서 트리거되어 모두 C 상태로 점프될 수 있으며 A와 B 상태를 패킷으로 하고 이로 하여 반복되는 β 조건에서 트리거되는 상태 변환을 줄이고 패킷화한 후의 유한 상태 기계, 즉 유한 상태 기계는 도 4b에 도시한 바와 같다.
스택 기반 상태 기계는 스택 구조를 사용하여 상태의 변환 관계를 관리하고, 도 5에 도시한 바와 같이 스택 맨 위에 현재 활성화된 상태 C가 보존되고 상태 사이의 변환은 스택 진입과 스택 출입 작업을 통하여 실현할 수 있고 이 구조에 의하면 이벤트에 의하여 트리거된 상태가 중단되거나 계속되는 상황을 유효하게 처리할 수 있다. 예를 들어, 컴퓨터AI를 수시로 중지시키기 위하여 게임 애플리케이션에 새로운 기능을 추가하여야 할 경우 중지 상태를 추가한다. 기존의 유한 상태 기계이면 그 중지 상태와 유한 상태 기계에 존재하는 매개 상태 사이의 변환 관계를 설계하여야 한다. 하지만 스택 기반 상태 기계인 경우, 이벤트가 트리거된 후 중지시켜야 할 경우 중지 상태에 스택을 누르면 되고 중지가 결속되면 그 중지 상태를 스택 출입시키면 원래 상태로 되돌아가서 계속하여 실행할 수 있어 상태 변환 관계의 설계를 대폭 절약할 수 있다.
다만, 본 발명의 실시예 중의 혼합 상태 기계로 계층 상태 기계를 이용할 수 있고 스택 기반 상태 기계를 이용할 수도 있으며 본 발명에서 이를 한정하지 않는다.
행동 트리도 애플리케이션 중의 개체 객체를 제어하여 작업을 실행할 수 있는데 행동 트리의 노드는 하기와 같이 구분된다 :
조합 노드(Composite) : 행동 트리 중의 지류, 즉 비 리프 노드로 선택 노드(Selector), 시퀀스 노드(Sequence), 간단 병렬 노드(Simple Parallel)를 포함할 수 있다.
임무 노드(Task) : 행동 트리 중의 리프 노드로 한 구체적인 임무를 완성하고, 예를 들어 AI이동 등을 완성한다.
수식 노드(Decorator) : Composite 노드 또는 Task 노드에 의지하여 어느 지류 또는 리프 노드가 실행가능한가를 판단한다.
서비스 노드(Service) : Composite 노드에 의지하여 일정한 주파수로 호출되어 그 지류의 정보를 갱신한다.
루트 노드(Root) : 행동 트리의 뿌리이다.
선택 노드(Selector) : 좌측으로부터 우측으로 서브노드를 실행하고 서브노드중의 하나가 성공하여 반환하면 본 노드는 즉시 실행을 중지한다. 서브노드가 성공적으로 반환하면 그 노드도 반환에 성공하고 모든 서브노드가 반환에 실패하면 그 노드도 반환에 실패한다.
시퀀스 노드(Sequence) : 좌측으로부터 우측으로 서브노드를 실행하고 서브노드 중의 하나가 실행에 실패하고 반환하면 본 노드는 즉시 실행을 중지한다. 서브노드가 반환에 실패하면 그 노드도 반환에 실패하고 모든 서브노드가 반환에 성공하면 그 노드도 반환에 성공한다.
행동 트리의 기본원리는 하기와 같다 : 루트 노드로부터 위로부터 아래로 일정한 조건으로 그 트리를 검색하고 최종적으로 실행하여야 할 리프 노드를 결정하여 실행한다. 트리 중의 루트 노드를 제외한 매개 노드는 모두 반환 값을 가지고 실행상황에 따라 반환에 성공 또는 실패한다. 노드의 반환 값은 그 노드의 상위 노드로 피드백하고 상위 노드의 반환 값에 일정한 영향을 미친다. 도 6에 도시한 행동 트리에 있어서, 루트 노드로부터 검색을 시작하여 실행하여야 하는 리프 노드가 각각 임무 노드0, 임무 노드1, 임무 노드2, 임무 노드3, 임무 노드4임을 확정한다. 시작하여 임무 노드0의 실행에 실패하고 이를 상위 노드인 선택 노드0에 반환하고 계속하여 임무 노드1를 실행한다. 임무 노드1를 성공적으로 실행하였고 이를 상위 노드인 선택 노드0로 반환한다. 임무 노드0, 임무 노드1, 임무 노드2의 상위 노드인 선택 노드0가 선택 노드임으로 즉시로 성공을 반환한다. 마찬가지로 임무 노드3의 실행에 성공하고 이를 그 상위 노드인 순서 노드1로 반환하고 계소갛여 임무 노드4를 실행한다. 임무 노드4의 실행이 실패하고 이를 상위 노드인 순서 노드1로 반환한다. 임무 노드3, 임무 노드4의 상위 노드인 순서 노드1이 순서 노드임으로 즉시 실패를 반환한다. 선택 노드0, 순서 노드1의 상위 노드인 순서 노드0는 순서 노드이고 선택 노드0, 순서 노드1의 반환 값을 수신하면 순서 노드0의 반환 값이 실패라고 확정한다. 순서 노드0는 반환 값을 루트 노드로 반환함으로 행동 트리 전체를 완성한 후, 결과는 실패이다.
혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 구비하며, 구체적으로 혼합 상태 기계에서의 상태 노드 사이, 행동 트리 노드 사이, 상태 노드와 행동 트리 노드 사이에 상태 점프 관계를 구비한다. 도 7은 본 발명의 실시예에 따른 혼합 상태 기계를 나타낸 도로, 도 7에 도시한 바와 같이 게임 애플리케이션 중의 게임 캐릭터에 대응되는 혼합 상태 기계를 예로 하면, 혼합 상태 기계에 다수의 노드가 포함되고 이러한 다수의 노드에 상태 노드와 행동 트리 노드가 포함되며, 여기서, 대기, 길찾기, 추적이 상태 노드이고, 발휘되는 기능은 행동 트리 노드이며, 혼합 상태 기계에서의 상태 노드와 상태 노드 사이, 상태 노드와 행동 트리 노드 사이, 행동 트리와 행동 트리 노드 사이에 변환 조건이 존재하며, 도 7중의 화살표는 노드 사이에 변환 관계를 가짐을 표시하고 노드 사이의 구체적인 변환 조건은 여기서 구체적으로 설명하지 않고, 행동 트리에 다수의 노드가 포함되고, 도 7에 도시한 바와 같이 행동 트리 노드에 예를 들어 순서 노드, 선택 노드, 수식 노드, 임무 노드 등 적어도 하나의 노드가 포함된다. 다만, 본 발명의 실시예에서 혼합 상태 기계에서의 상태 노드와 행동 트리 노드의 수량은 한정하지 않고 노드 사이에의 변환 조건도 한정하지 않으며 행동 트리 중의 노드 수량, 노드 유형, 노드 관계도 한정하지 않는다.
단계 S204에서 제공한 기술방안에 있어서, 서버는 작업 실행 이벤트를 검측한 후, 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 행동 트리 노드인가를 판단한다. 다만, 작업 실행 이벤트에 혼합 상태 기계에서 제1 객체가 위치한 현재 노드가 포함될 수 있고 제1 객체가 현재 노드에 대응되는 작업을 실행한 후 변환되는 목표 노드, 즉 현재 노드의 다음의 노드가 포함될 수도 있으며, 작업 실행 이벤트에 트리거되어 제1 객체가 혼합 상태 기계에서 현재 노드로부터 다음 노드로 변환될 수 있고, 여기서, 다음 노드는 상태 노드일 수 있고 행동 트리 노드일 수도 있다.
단계 S206과 단계 S208에서 제공한 기술방안에 있어서, 혼합 상태 기계에서의 임의의 한 상태 노드(제1 상태 노드를 포함)에 대응되는 상태에 제1 객체에 수행한 작업이 포함되고, 혼합 상태 기계에서의 임의의 한 행동 트리 노드에 대응되는 행동 트리에 제1 객체에 수행한 작업(제1 행동 트리 노드를 포함)이 포함된다. 서버가 현재 노드 다음의 노드가 제1 상태 노드로 판단되면, 서버는 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 실행하고, 현재 상태의 다음 노드가 제1 행동 트리 노드로 판단되면 서버는 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 실행한다. 다만, 본 발명의 실시예에서 제1 상태 노드에 대응되는 제1 상태 중의 작업 및 제1 행동 트리에 대응되는 작업을 한정하지 않는다.
본 발명의 실시예에서 혼합 상태 기계에 유한 상태 기계와 행동 트리의 장점을 융합시켜 일정한 프로세스에 따라 수행할 필요가 있는 계획에 대하여 행동 트리로 처리하고 이벤트에 의하여 트리거되는 행위 또는 일부 이상 상황에 대하여서는 유한 상태 기계로 처리한다. 이상 상황과 특수 상황에서의 상태 점프를 실현할 수 있을 뿐만 아니라 계획에 따라 일련의 계단성 행위를 실행할 수도 있다.
실제로 응용함에 있어서, 도 7에 도시한 바와 같이 게임 애플리케이션 중의 게임 캐릭터의 경우, 주로 대기, 추적, 길찾기, 기능 발휘 등 4개 상태가 있다. 여기서, 기능 발휘의 상태가 비교적 복잡하고 많은 서로 다른 기능을 특정된 배열에 따라 조합하여 게임 캐릭터의 기능 표현을 풍부하게 하여야 한다. 따라서 본 발명의 실시예에서 기능 발휘를 큰 범용 상태로 하고 행동 트리를 통하여 관리하고 기능 발휘 상태와 대기, 추적, 길찾기 등 기타 상태의 변환은 유한 상태 기계로 제어한다. 유한 상태 기계는 프로그램 코드로 유지하여 대부분의 상황에서 AI가 각종 상황을 처리하는 안정성을 보장한다. 실제로 사용함에 있어서 유한 상태 기계로 스택 기반 상태 기계를 선택하면 다수의 상태 변환으로 인한 복잡성을 진일보로 낮출 수 있다. 기능 발휘 상태 내부에서는 행동 트리로 관리하고 게임 캐릭터 기능 기획자는 그 행동 트리를 편집 수정하면 되고 그 행동 트리와 외부 기타 상태와의 변환 관계를 고려할 필요가 없다. 그 행동 트리 내부의 대부분의 논리가 기능의 조합과 단계의 제어임으로 전체의 AI 논리에 영향을 주지 않고 기획자는 혼자서 작업할 수 있고 프로그램 설계자의 도움이 필요 없다. 이러한 방식에 의하면, 기획자는 자신에 필요한 기능만을 고려하고 움직임(moves) 프로세스를 제어하고 게임의 리듬감 평형을 이루면 되어 기획장의 작업량을 대폭 줄일 수 있다. 그리고 본 발명의 실시예에 의하면 아주 간편하게 중단과 회복을 실현할 수 있다. 기능 발휘 후 게임 캐릭터가 현기증이 나는 경우를 예로 하면 게임 캐릭터는 현기증이 사라진 후 계속하여 중단점으로부터 실행을 시작할 수 있다. 기존의 행동 트리로 이러한 문제를 해결하면 아주 복잡하거나 아주 많은 임무를 통하여서만 실현할 수 있다. 하지만 본 발명의 실시예에 의하면 외부 유한 상태 기계를 통하여 유한 상태 기계에 현기증 상태를 추가하고 현기증이 트리거되면 AI가 현재 상태로부터 현기증 상태로 점프하여 끝난 후 계속하여 그전의 상태로 되돌아갈 수 있다. 이로 하여 상태의 중단과 회복을 간단하고 빠르게 실현할 수 있다.
한 선택 가능한 실시예로, 단계 S204에서 서버가 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하는 단계가, 작업 실행 이벤트에 지시된 것이 이벤트에 의하여 트리거되는 작업 또는 이상 작업이면 서버가 현재 노드 다음의 노드가 제1 상태 노드라고 판단하고 작업 실행 이벤트에 지시된 것이 프로세스형 작업이면 서버가 현재 노드 다음의 노드가 제1 행동 트리 노드라고 판단하는 단계를 포함할 수 있다.
이 실시예에 있어서 서버는 검측된 작업 실행 이벤트에 지시된 작업에 근거하여 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 결정할 수 있고 작업 실행 이벤트에 지시된 작업은 이벤트에 의하여 트리거되는 작업, 이상 작업, 프로세스형 작업 등을 포함할 수 있고, 이 실시예에서 작업 실행 이벤트에 지시된 작업의 내용을 한정하지 않는다. 상기한 내용 외, 기타 내용을 포함할 수도 있고 여기서는 상세한 설명을 생략한다. 이 실시예에 의하면 작업 실행 이벤트에 지시된 작업에 근거하여 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단함으로써 현재 노드 다음의 노드의 유형을 정확하게 판단하는 목적을 실현하고 서로 다른 노드 유형에 따라 제1 객체에 서로 다른 작업을 실행하는 효과를 실현할 수 있다.
한 선택 가능한 실시예로, 단계 S208에서 서버가 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행하는 단계가, 서버가 제1 객체에 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 수행하는 단계를 포함한다.
이 실시예에서 서버는 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 행동 트리 노드로 판단된 경우, 서버는 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 실행할 수 있다. 예를 들어 제1 객체가 게임 캐릭터이고 제1 행동 트리 노드가 기능 발휘이면 제1 행동 트리 중의 작업은 기능 강도의 조절, 기능 유형의 선택 등을 포함할 수 있다. 제1 행동 트리에 하나 또는 다수의 리프 노드를 포함하고 매개 리프 노드는 하나의 제1 행동 트리 중의 작업에 대응되고, 즉 제1 행동 트리 중의 작업은 하나를 포함할 수 있고 다수를 포함할 수도 있다. 서버가 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 실행할 때, 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 실행할 수 있고, 구체적인 실행 과정은 행동 트리의 원리를 설명하면서 이미 설명하였음으로 여기서는 상세한 설명을 생략한다. 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 실행한 후, 제1 객체의 속성에 영향을 줄 수 있고, 예를 들어 게임 캐릭터의 헬스 포인트, 기능 잔여량 등에 영향을 줄 수 있다. 이 실시예에서 행동 트리로 제1 객체에 프로세스형 작업을 실행하여 유한 상태 기계를 사용할 때 아주 복잡한 변환 관계를 설정하여야 하는 것을 피하고 애플리케이션 중의 객체를 제어하여 작업을 실행하는 효율을 높이는 기술효과를 실현할 수 있다.
한 선택 가능한 실시예로, 단계 S202에서 서버가 작업 실행 이벤트를 검측하기 전에, 이 실시예에서 단계 S2012, 단계 S2014를 더 포함할 수 있다.
단계 S2012에 있어서, 서버가 제1 배치 정보를 획득하고, 여기서, 제1 배치 정보는 상태 노드, 행동 트리 노드 및 상태 점프 관계를 지시한다.
단계 S2014에 있어서, 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성한다.
단계 S2012에서 제공한 기술방안에 있어서, 제1 배치 정보는 제1 객체를 위하여 혼합 상태 기계를 생성할 때 의거로 한 정보일 수 있고, 혼합 상태 기계에서의 상태 노드, 행동 트리 노드 및 상태 점프 관계를 지시할 수 있다. 다만, 상태 점프 관계는 상태 노드 사이, 행동 트리 노드 사이, 상태 노드와 행동 트리 노드 사이의 상태 점프 관계를 포함할 수 있다. 제1 배치 정보는 혼합 상태 기계 중의 상태 노드의 수량, 행동 트리 노드의 수량, 상태 노드 사이의 변환 조건, 행동 트리 노드 사이의 변환 조건, 상태 노드와 행동 트리 노드 사이의 변환 조건, 상태 노드에 대응되는 상태 중의 작업, 행동 트리 노드에 대응되는 행동 트리 중의 작업 등을 포함할 수 있다. 이 실시예에서 제1 배치 정보를 한정하지 않고 제1 배치 정보는 실제 응용상황의 수요에 따라 대응되게 조절할 수 있다. 이 제1 배치 정보를 사용자의 실제 수요에 따라 설정하고 조절할 수 있다.
단계 S2014에서 제공한 기술방안에 있어서, 서버는 제1 배치 정보를 획득한 후, 이 제1 배치 정보에 근거하여 제1 객체의 혼합 상태 기계를 생성할 수 있다. 예를 들어 제1 배치 정보 중의 상태 노드의 수량에 근거하여 혼합 상태 기계에서의 상태 노드를 생성할 수 있고, 행동 트리 노드의 수량에 근거하여 혼합 상태 기계에서의 행동 트리 노드를 설정할 수 있으며, 제1 배치 정보 중의 상태 노드 사이의 변환 조건에 근거하여 혼합 상태 기계에서의 상태 노드 사이의 점프 관계를 설정할 수 있고, 제1 배치 정보 중의 행동 트리 노드 사이의 변환 조건에 근거하여 혼합 상태 기계에서의 행동 트리 노드 사이의 점프 관계를 설정할 수 있고, 제1 배치 정보 중의 상태 노드와 행동 트리 노드 사이의 변환 조건에 근거하여 혼합 상태 기계에서의 상태 노드와 행동 트리 노드 사이의 점프 관계를 설정할 수 있고, 제1 배치 정보 중의 상태 노드에 대응되는 상태 중의 작업에 근거하여 혼합 상태 기계에서의 상태 노드에 대응되는 상태의 작업을 배치할 수 있고, 제1 배치 정보 중의 행동 트리 노드에 대응되는 행동 트리 중의 작업에 근거하여 혼합 상태 기계에서의 행동 트리 노드에 대응되는 상태의 작업을 배치할 수 있다. 상기한 것은 제1 객체의 혼합 상태 기계의 배치 작업의 예로 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성하는 과정에 기타 배치 작업도 포함할 수 있고 여기서는 일일이 설명하지 않는다.
이 실시예에 의하면 제1 객체를 위하여 혼합 상태 기계를 생성하는데 필요한 제1 배치 정보를 사전에 획득하고 이 제1 배치 정보를 실제 응용 상황의 수요에 따라 설정할 수 있음으로 사용자의 실제 수요를 만족시키는 효과를 실현하는 동시에 혼합 상태 기계를 생성하는데 필요한 제1 배치 정보를 사전에 획득하여 혼합 상태 기계 생성 시간을 줄이는 효과를 실현할 수 있다.
한 선택 가능한 실시예로, 단계 S2014에서 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성한 후, 이 실시예는 단계 S2016, 단계 S2018을 더 포함한다.
단계 S2016에 있어서, 서버가 제2 배치 정보를 획득한다.
단계 S2018에 있어서, 서버가 제2 배치 정보에 근거하여 혼합 상태 기계를 갱신한다.
단계 S2016에서 제공한 기술방안에서, 제2 배치 정보는 제1 배치 정보에 근거하여 제1 객체를 위하여 생성한 혼합 상태 기계를 갱신하는데 이용되고, 제2 배치 정보는 제1 배치 정보 중의 내용을 포함하고 제1 배치 정보 외, 혼합 상태 기계 중의 상태 노드에 대응되는 상태 중의 작업의 수정, 혼합 상태 기계 중의 행동 트리 노드에 대응되는 행동 트리 중의 작업의 수정, 혼합 상태 기계 중의 노드 사이의 변환 조건과 점프 관계의 수정, 혼합 상태 기계에서의 노드의 추가 또는 삭제, 혼합 상태 기계 중의 노드 사이의 변환 조건과 점프 관계의 추가 또는 삭제 등 기타 내용을 더 포함할 수도 있다. 이 실시예에서 제2 배치 정보를 구체적으로 한정하지 않고 제2 배치 정보는 기타 내용을 포함할 수 있으며 여기서는 일일이 설명하지 않는다.
단계 S2018에서 제공한 기술방안에서, 서버는 제2 배치 정보를 획득한 후, 이 제2 배치 정보에 근거하여 혼합 상태 기계를 생산할 수 있는데, 혼합 상태 기계 중의 노드를 갱신하는 것을 포함할 수 있고 혼합 상태 기계 중의 노드 사이의 점프 관계를 갱신하는 것을 포함할 수도 있다.
단계 S2018에서 서버가 제2 배치 정보에 근거하여 혼합 상태 기계를 갱신하는 단계가, 서버가 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 갱신하는 단계, 서버가 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 삭제하는 단계, 서버가 혼합 상태 기계에 상태 노드 및/또는 행동 트리 노드를 추가하고, 및/또는 추가된 상태 노드 및/또는 행동 트리 노드와 이미 존재하는 상태 노드 및/또는 이미 존재하는 행동 트리 노드 사이에 상태 점프 관계를 구축하는 단계 중의 적어도 하나를 포함할 수 있다.
상기한 혼합 상태 기계의 갱신 작업은 본 발명의 한 선택 가능한 실시예이고, 본 발명은 혼합 상태 기계의 갱신 작업을 한정하지 않고, 상기한 갱신 작업 외에도 기타 갱신 작업을 더 포함할 수 있고 여기서는 일일이 설명하지 않는다. 이 실시예에 의하면 혼합 상태 기계를 갱신하기 위한 제2 배치 정보를 사전에 획득하여 혼합 상태 기계의 갱신 시간을 줄이고 혼합 상태 기계를 실시간으로 갱신함으로써 혼합 상태 기계의 실시간성 및 정확성을 향상시키고 혼합 상태 기계를 이용하여 제1 객체에 작업을 실행하는 효율을 향상시키는 효과를 실현한다.
다만, 상기한 각 방법 실시예에 있어서 설명의 편의를 위하여 일련의 동작의 조합으로 설명하였지만 본 발명에 의하면 일부 단계를 기타 순서 또는 동시에 수행할 수도 있음으로 이러한 동작의 순서에 한정되지 않음을 이 분야의 기술자라면 이해할 수 있다. 그리고 명세서에 설명한 실시예는 모두 바람직한 실시예로 그 동작과 수단이 본 발명에 반드시 필요한 것은 아님을 이 분야의 기술자라면 이해할 수 있다.
상기한 실시형태의 설명으로부터 이 분야의 기술자는 상기 실시예의 방법을 소프트웨어에 필요한 범용 하드웨어 플랫폼을 결합하는 방식으로 실현할 수 있고 하드웨어를 통하여 실현할 수도 있지만 대부분 경우 전 방법으로 실시하는 것이 바람직함을 알 수 있다. 이에 근거하여 본 발명의 기술방안의 본질 또는 기존기술에 공헌이 있는 부분을 소프트웨어 제품 형식으로 구현할 수 있고 그 컴퓨터 소프트웨어 제품은 기억매체(예를 들어 ROM/RAM, 디스크, CD)에 기억되며 단말 기기(휴대폰, 컴퓨터, 서버 또는 네트워크 기기 등 일 수 있다)로 하여금 본 발명의 각 실시예에 기재된 방법을 실현하도록 하는 명령을 포함할 수 있다.
실시예2
본 발명의 실시예에 의하면 상기 상태 제어 방법을 실시하는 상태 제어 장치를 제공한다. 도 8은 본 발명의 실시예에 따른 상태 제어 장치를 나타낸 도로, 도 8에 도시한 바와 같이 이 장치는
제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구하는 작업 실행 이벤트를 서버가 검측하는 검측수단(22)과, 서버가 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하는 판단수단(24)과, 여기서, 혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고, 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 가지고, 현재 노드 다음의 노드가 제1 상태 노드로 판단되면 서버가 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 수행하는 제1 작업수단(26)과, 현재 상태의 다음 노드가 제1 행동 트리 노드로 판단되면 서버가 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행하는 제2 작업수단(28)을 포함한다.
다만, 이 실시예 중의 검측수단(22)은 본 출원의 실시예1 중의 단계 S202를 더 실행할 수 있고, 이 실시예 중의 판단수단(24)은 본 출원의 실시예1 중의 단계 S204를 더 실행할 수 있고, 이 실시예 중의 제1 작업수단(26)은 본 출원의 실시예1 중의 단계 S206를 더 실행할 수 있고, 이 실시예 중의 제2 작업수단(28)은 출원의 실시예1 중의 단계 S208를 더 실행할 수 있다.
다만, 상기 수단과 대응되는 단계에 의하여 실현되는 예와 응용 환경은 동일하고 상기 실시예1에 공개된 내용에 한정되는 것은 아니다. 다만, 상기 수단은 장치의 일부로 도 1에 도시한 하드웨어 환경에서 실행될 수 있고 소프트웨어로 실현될 수 있고 하드웨어로 실현될 수도 있다.
상기 수단을 통하여 서버가 작업 실행 이벤트를 검측하면 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하고 제1 상태 노드이면 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 실행하고 제1 행동 트리 노드이면 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 실행함으로써 유한 상태 기계와 행동 트리를 이용하여 공동으로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 목적을 실현하고 애플리케이션 중의 개체가 작업을 실행하는 효율을 향상시키는 기술효과를 실현하고 기존기술에서 유한 상태 기계로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 효율이 낮은 기술과제를 해결한다.
한 선택 가능한 실시예로, 도 9는 본 발명의 실시예에 따른 선택 가능한 상태 제어 장치를 나타낸 도로, 도 9에 도시한 바와 같이 판단수단(24)은 작업 실행 이벤트에 지시된 것이 이벤트에 의하여 트리거되는 작업 또는 이상 작업이면 서버가 현재 노드 다음의 노드가 제1 상태 노드이라고 판단하는 제1 판단수단(242)과, 작업 실행 이벤트에 지시된 것이 프로세스형 작업이면 서버가 현재 노드 다음의 노드가 제1 행동 트리 노드이라고 판단하는 제2 판단수단(244)을 포함한다.
이 실시예에서 서버는 검측된 작업 실행 이벤트에 지시된 작업에 근거하여 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 결정할 수 있고 작업 실행 이벤트에 지시된 작업은 이벤트에 의하여 트리거되는 작업, 이상 작업, 프로세스형 작업 등을 포함할 수 있고, 이 실시예에서 작업 실행 이벤트에 지시된 작업의 내용을 한정하지 않는다. 상기한 내용외, 기타 내용을 포함할 수도 있고 여기서는 상세한 설명을 생략한다. 이 실시예에 의하면 작업 실행 이벤트에 지시된 작업에 근거하여 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단함으로써 현재 노드 다음의 노드의 유형을 정확하게 판단하는 목적을 실현하고 서로 다른 노드 유형에 따라 제1 객체에 서로 다른 작업을 실행하는 효과를 실현할 수 있다.
한 선택 가능한 실시예로, 도 10은 본 발명의 실시예에 따른 다른 한 선택 가능한 상태 제어 장치를 나타낸 도로, 도 10에 도시한 바와 같이 제2 작업수단(28)은 서버가 제1 객체에 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 실행하는 제1 작업서브수단(282)을 포함한다.
이 실시예에 있어서 제1 행동 트리에 하나 또는 다수의 리프 노드를 포함하고 매개 리프 노드는 하나의 제1 행동 트리 중의 작업에 대응되고, 즉 제1 행동 트리 중의 작업은 하나를 포함할 수 있고 다수를 포함할 수도 있다. 서버는 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 행동 트리 노드로 판단된 경우, 서버는 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 실행할 수 있다. 예를 들어 제1 객체가 게임 캐릭터이고 제1 행동 트리 노드가 기능 발휘이면 제1 행동 트리 중의 작업은 기능 강도의 조절, 기능 유형의 선택 등을 포함할 수 있다. 제1 객체에 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 실행하는 구체적인 실행 과정은 행동 트리의 원리를 설명하면서 이미 설명하였음으로 여기서는 상세한 설명을 생략한다. 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 실행한 후, 제1 객체의 속성에 영향을 줄 수 있고, 예를 들어 게임 캐릭터의 헬스 포인트, 기능 잔여량 등에 영향을 줄 수 있다. 이 실시예에서 행동 트리로 제1 객체에 프로세스형 작업을 실행하여 유한 상태 기계를 사용할 때 아주 복잡한 변환 관계를 설정하여야 하는 것을 피하고 애플리케이션 중의 객체를 제어하여 작업을 실행하는 효율을 높이는 기술효과를 실현할 수 있다.
한 선택 가능한 실시예로, 도 11은 본 발명의 실시예에 따른 또 다른 선택 가능한 상태 제어 장치를 나타낸 도로, 도 11에 도시한 바와 같이 이 실시예의 상태 제어 장치는 서버가 작업 실행 이벤트를 검측하기 전에, 서버가 상태 노드, 행동 트리 노드 및 상태 점프 관계를 지시하는 제1 배치 정보를 획득하는 제1 획득수단(212)과, 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성하는 생성수단(214)을 더 포함한다.
다만, 이 실시예 중의 제1 획득수단(212)은 본 출원의 실시 예1 중의 단계 S2012를 더 실행할 수 있고 이 실시예 중의 생성수단(214)은 본 출원의 실시 예1 중의 단계 S2014를 더 실행할 수 있다.
제1 배치 정보는 제1 객체를 위하여 혼합 상태 기계를 생성할 때 의거로한 정보일 수 있고, 혼합 상태 기계에서의 상태 노드, 행동 트리 노드 및 상태 점프 관계를 지시할 수 있다. 다만, 상태 점프 관계는 상태 노드 사이, 행동 트리 노드 사이, 상태 노드와 행동 트리 노드 사이의 상태 점프 관계를 포함할 수 있다. 제1 배치 정보는 혼합 상태 기계 중의 상태 노드의 수량, 행동 트리 노드의 수량, 상태 노드 사이의 변환 조건, 행동 트리 노드 사이의 변환 조건, 상태 노드와 행동 트리 노드 사이의 변환 조건, 상태 노드에 대응되는 상태 중의 작업, 행동 트리 노드에 대응되는 행동 트리 중의 작업 등을 포함할 수 있다. 이 실시예에서 제1 배치 정보를 한정하지 않고 제1 배치 정보는 실제 응용상황의 수요에 따라 대응되게 조절할 수 있다. 이 제1 배치 정보를 사용자의 실제 수요에 따라 설정하고 조절할 수 있다. 서버는 제1 배치 정보를 획득한 후, 이 제1 배치 정보에 근거하여 제1 객체의 혼합 상태 기계를 생성할 수 있다. 예를 들어 제1 배치 정보 중의 상태 노드의 수량에 근거하여 혼합 상태 기계에서의 상태 노드를 생성할 수 있고, 행동 트리 노드의 수량에 근거하여 혼합 상태 기계에서의 행동 트리 노드를 설정할 수 있으며, 제1 배치 정보 중의 상태 노드 사이의 변환 조건에 근거하여 혼합 상태 기계에서의 상태 노드 사이의 점프 관계를 설정할 수 있고, 제1 배치 정보 중의 행동 트리 노드 사이의 변환 조건에 근거하여 혼합 상태 기계에서의 행동 트리 노드 사이의 점프 관계를 설정할 수 있고, 제1 배치 정보 중의 상태 노드와 행동 트리 노드 사이의 변환 조건에 근거하여 혼합 상태 기계에서의 상태 노드와 행동 트리 노드 사이의 점프 관계를 설정할 수 있고, 제1 배치 정보 중의 상태 노드에 대응되는 상태 중의 작업에 근거하여 혼합 상태 기계에서의 상태 노드에 대응되는 상태의 작업을 배치할 수 있고, 제1 배치 정보 중의 행동 트리 노드에 대응되는 행동 트리 중의 작업에 근거하여 혼합 상태 기계에서의 행동 트리 노드에 대응되는 상태의 작업을 배치할 수 있다. 상기한 것은 제1 객체의 혼합 상태 기계의 배치 작업의 예로 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성하는 과정에 기타 배치 작업도 포함할 수 있고 여기서는 일일이 설명하지 않는다.
이 실시예에 의하면 제1 객체를 위하여 혼합 상태 기계를 생성하는데 필요한 제1 배치 정보를 사전에 획득하고 이 제1 배치 정보를 실제 응용 상황의 수요에 따라 설정할 수 있음으로 사용자의 실제 수요를 만족시키는 효과를 실현하는 동시에 혼합 상태 기계를 생성하는데 필요한 제1 배치 정보를 사전에 획득하여 혼합 상태 기계 생성 시간을 줄이는 효과를 실현할 수 있다.
한 선택 가능한 실시예로, 도 11에 도시한 바와 같이 이 실시예의 상태 제어 장치는 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성한 후, 서버가 제2 배치 정보를 획득하는 제2 획득수단(216)과, 서버가 제2 배치 정보에 근거하여 혼합 상태 기계를 갱신하는 갱신수단(218)을 더 포함한다.
다만, 이 실시예 중의 제2 획득수단(216)은 본 출원의 실시예1 중의 단계 S2016를 더 실행할 수 있고 이 실시예 중의 갱신수단(218)은 본 출원의 실시예1 중의 단계 S2018를 더 실행할 수 있다.
제2 배치 정보는 제1 배치 정보에 근거하여 제1 객체를 위하여 생성한 혼합 상태 기계를 갱신하는데 이용되고, 제2 배치 정보는 제1 배치 정보 중의 내용을 포함하고 제1 배치 정보 외, 혼합 상태 기계 중의 상태 노드에 대응되는 상태 중의 작업의 수정, 혼합 상태 기계 중의 행동 트리 노드에 대응되는 행동 트리 중의 작업의 수정, 혼합 상태 기계 중의 노드 사이의 변환 조건과 점프 관계의 수정, 혼합 상태 기계에서의 노드의 추가 또는 삭제, 혼합 상태 기계 중의 노드 사이의 변환 조건과 점프 관계의 추가 또는 삭제 등 기타 내용을 더 포함할 수도 있다. 이 실시예에서 제2 배치 정보를 구체적으로 한정하지 않고 제2 배치 정보는 기타 내용을 포함할 수 있으며 여기서는 일일이 설명하지 않는다.
도 11에 도시한 바와 같이 갱신수단(218)은 서버가 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 갱신하는 제1 갱신서브수단(2182), 서버가 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 삭제하는 삭제수단(2184), 서버가 혼합 상태 기계에 상태 노드 및/또는 행동 트리 노드를 추가하고, 및/또는 추가된 상태 노드 및/또는 행동 트리 노드와 이미 존재하는 상태 노드 및/또는 이미 존재하는 행동 트리 노드 사이에 상태 점프 관계를 구축하는 추가수단(2186) 중의 적어도 하나를 포함할 수 있다.
상기한 혼합 상태 기계의 갱신 작업은 본 발명의 한 선택 가능한 실시예이고, 본 발명은 혼합 상태 기계의 갱신 작업을 한정하지 않고, 상기한 갱신 작업 외에도 기타 갱신 작업을 더 포함할 수 있고 여기서는 일일이 설명하지 않는다. 이 실시예에 의하면 혼합 상태 기계를 갱신하기 위한 제2 배치 정보를 사전에 획득하여 혼합 상태 기계의 갱신 시간을 줄이고 혼합 상태 기계를 실시간으로 갱신함으로써 혼합 상태 기계의 실시간성 및 정확성을 향상시키고 혼합 상태 기계를 이용하여 제1 객체에 작업을 실행하는 효율을 향상시키는 효과를 실현한다.
다만, 상기 수단과 대응되는 단계에 의하여 실현되는 예와 응용 환경은 동일하고 상기 실시예1에 공개된 내용에 한정되는 것은 아니다. 다만, 상기 수단은 장치의 일부로 도 1에 도시한 하드웨어 환경에서 실행될 수 있고 소프트웨어로 실현될 수 잇고 하드웨어로 실현될 수도 있다.
실시예3
본 발명의 실시예에 의하면 상기 상태 제어 방법을 실시하기 위한 단말을 제공한다.
도 12는 본 발명의 실시예에 따른 단말의 구조를 나타낸 블록도로, 도 12에 도시한 바와 같이 이 단말은 하나 또는 다수(도면에는 하나만을 도시)의 프로세서(201)와, 메모리(203)와, 전송장치(205)를 포함하고, 도 12에 도시한 바와 같이 이 단말은 입출력기기(207)를 더 포함할 수도 있다.
여기서, 메모리(203)는 소프트웨어 프로그램 및 수단을 기억하고, 예를 들어 본 발명의 실시예 중의 상태 제어 방법과 장치에 대응되는 프로그램 명령/수단을 기억하고, 프로세서(201)는 메모리(203)에 기억된 소프트웨어 프로그램 및 수단을 실행함으로써 각종 기능 애플리케이션 및 데이터 처리를 수행하고, 즉 상기한 상태 제어 방법을 실현한다. 메모리(203)로는 고속 랜덤 메모리를 포함할 수 있고, 예를 들어 하나 또는 다수의 자성 기억장치, 플래시 메모리 등 비휘발성 메모리 또는 기타 비휘발성 고체 메모리를 포함할 수도 있다. 일부 실시예에 있어서, 메모리(203)는 진일보로 프로세서(201)에 대하여 원격 설치된 메모리를 포함하고 이러한 원격 설치된 메모리는 네트워크를 통하여 단말에 연결될 수 있다. 상기 네트워크의 실시예로는 인터넷, 인트라넷, 로컬 통신망, 이동 통신 네트워크 및 그 조합을 포함하지만 이에 한정되지 않는다.
상기한 전송장치(205)는 네트워크를 통하여 데이터를 송수신하고 프로세서와 메모리 사이의 데이터 전송을 수행할 수도 있다. 상기한 네트워크의 구체적인 실시예로는 유선 네트워크 및 무선 네트워크를 포함한다. 한 실시예에 있어서, 전송장치(205)는 네트워크 어댑터(Network Interface Controller, NIC)를 포함하고 케이블을 통하여 기타 네트워크 기기와 라우터에 연결되어 인터넷 또는 로컬 통신망과 통신을 수행한다. 일 실시예에 있어서, 전송장치(205)는 무선 주파수(Radio Frequency, RF)수단일 수 있고 무선 방식으로 인터넷과 통신을 수행할 수 있다.
여기서, 구체적으로, 메모리(203)는 애플리케이션 프로그램을 기억한다.
프로세서(201)는 전송장치(205)를 통하여 메모리(203)에 기억된 애플리케이션 프로그램을 호출하여, 제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구하는 작업 실행 이벤트를 서버가 검측하는 단계와, 서버가 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하는 단계와, 여기서, 혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고, 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 가지고, 현재 노드 다음의 노드가 제1 상태 노드로 판단되면 서버가 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 수행하는 단계와, 현재 상태의 다음 노드가 제1 행동 트리 노드로 판단되면 서버가 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행하는 단계를 실행한다.
프로세서(201)는 진일보로, 작업 실행 이벤트에 지시된 것이 이벤트에 의하여 트리거되는 작업 또는 이상 작업이면 서버가 현재 노드 다음의 노드가 제1 상태 노드라고 판단하고 작업 실행 이벤트에 지시된 것이 프로세스형 작업이면 서버가 현재 노드 다음의 노드가 제1 행동 트리 노드라고 판단하는 단계를 실행한다.
프로세서(201)는 진일보로, 서버가 제1 객체에 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 실행하는 단계를 실행한다.
프로세서(201)는 진일보로, 서버가 작업 실행 이벤트를 검측하기 전에, 서버가 상태 노드, 행동 트리 노드 및 상태 점프 관계를 지시하는 제1 배치 정보를 획득하는 단계와, 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성하는 단계를 실행하고, 여기서, 혼합 상태 기계에서의 상태 노드와 행동 트리 노드 사이에 상태 점프 관계를 구비한다.
프로세서(201)는 진일보로, 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성한 후, 서버가 제2 배치 정보를 획득하는 단계와, 서버가 제2 배치 정보에 근거하여 혼합 상태 기계를 갱신하는 단계를 실행한다.
프로세서(201)는 진일보로, 서버가 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 갱신하는 단계, 서버가 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 삭제하는 단계, 서버가 혼합 상태 기계에 상태 노드 및/또는 행동 트리 노드를 증가하고, 및/또는 증가된 상태 노드 및/또는 행동 트리 노드와 이미 존재하는 상태 노드 및/또는 이미 존재하는 행동 트리 노드 사이에 상태 점프 관계를 구축하는 단계를 실행한다.
본 발명의 실시예에 의하면 상태 제어 방법과 장치를 제공한다. 서버가 작업 실행 이벤트를 검측하면 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하고 제1 상태 노드이면 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 실행하고 제1 행동 트리 노드이면 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 실행함으로써 유한 상태 기계와 행동 트리를 이용하여 공동으로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 목적을 실현하고 애플리케이션 중의 개체가 작업을 실행하는 효율을 향상시키는 기술효과를 실현하고 기존기술에서 유한 상태 기계로 애플리케이션 중의 개체를 제어하여 작업을 실행하는 효율이 낮은 기술과제를 해결한다.
또한, 본 실시예 중의 구체 실시예로는 상기 실시예1과 실시예2에서 설명한 실시예를 참조할 수 있고 본 실시예에서는 상세한 설명을 생략한다.
도 12에 도시한 구조는 예시적인 것이고 단말은 스마트폰(예를 들어 Android휴대폰, iOS휴대폰 등), 태블릿PC, 포켓PC 및 모바일 인터넷 기기(Mobile Internet Devices, MID), PAD 등 단말기기일 수 있음을 이 분야의 기술자는 이해할 수 있다. 도 12는 상기한 전자 장치의 구조를 한정하는 것이 아니다. 예를 들어, 단말은 도 12에 도시된 것보다 많은 또는 적은 부품(예를 들어 네트워크 인터페이스, 표시장치 등)을 포함할 수 있고 또는 도 12와 다르게 배치될 수 도 있다.
상기한 실시예의 각종 방법 중의 모든 또는 일부 단계를 프로그램을 통하여 단말기기의 관련되는 하드웨어에 완성하도록 명령할 수 있고 이 프로그램은 컴퓨터가 판독 가능한 기억매체에 저장될 수 있고 기억매체는 플래시 메모리, 판독 전용 메모리(ROM:Read-Only Memory), 랜덤 액세스 메모리(RAM:Random Access Memory), 플로피 디스크 또는 광 디스크 등 을 포함할 수 있다.
실시예4
본 발명의 실시예에 의하면 기억매체를 제공한다. 본 실시예에 있어서, 상기 기억매체는 상태 제어 방법의 프로그램 코드를 실행할 수 있다.
본 실시예에 있어서, 상기 기억매체는 상기 실시예에서 제공한 네트워크 중의 다수의 네트워크 기기중의 적어도 하나의 네트워크 기기에 위치할 수 있다.
본 실시예에 있어서, 기억매체는 하기 단계를 실행하는 프로그램 코드를 저장하도록 구성될 수 있다.
S1, 서버가 작업 실행 이벤트를 검측하는 단계, 여기서, 작업 실행 이벤트는 제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구한다.
S2, 서버가 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하는 단계, 여기서, 혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 구비한다.
S3, 현재 노드 다음의 노드가 제1 상태 노드로 판단되면 서버가 제1 객체에 제1 상태 노드에 대응되는 제1 상태 중의 작업을 수행하는 단계이다.
S4, 현재 상태의 다음 노드가 제1 행동 트리 노드로 판단되면 서버가 제1 객체에 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행하는 단계이다.
기억매체는 진일보로, 작업 실행 이벤트에 지시된 것이 이벤트에 의하여 트리거되는 작업 또는 이상 작업이면 서버가 현재 노드 다음의 노드가 제1 상태 노드라고 판단하고 작업 실행 이벤트에 지시된 것이 프로세스형 작업이면 서버가 현재 노드 다음의 노드가 제1 행동 트리 노드라고 판단하는 단계를 실행하는 프로그램 코드를 저장하도록 구성될 수 있다.
기억매체는 진일보로, 서버가 제1 객체에 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 실행하는 단계를 실행하는 프로그램 코드를 저장하도록 구성될 수 있다.
기억매체는 진일보로, 서버가 작업 실행 이벤트를 검측하기 전에, 서버가 상태 노드, 행동 트리 노드 및 상태 점프 관계를 지시하는 제1 배치 정보를 획득하는 단계와, 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성하는 단계를 실행하는 프로그램 코드를 저장하도록 구성될 수 있고, 여기서, 혼합 상태 기계에서의 상태 노드와 행동 트리 노드 사이에 상태 점프 관계를 구비한다.
기억매체는 진일보로, 서버가 제1 배치 정보에 근거하여 제1 객체를 위하여 혼합 상태 기계를 생성한 후, 서버가 제2 배치 정보를 획득하는 단계와, 서버가 제2 배치 정보에 근거하여 혼합 상태 기계를 갱신하는 단계를 실행하는 프로그램 코드를 저장하도록 구성될 수 있다.
기억매체는 진일보로, 서버가 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 갱신하는 단계, 서버가 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 삭제하는 단계, 서버가 혼합 상태 기계에 상태 노드 및/또는 행동 트리 노드를 증가하고, 및/또는 증가된 상태 노드 및/또는 행동 트리 노드와 이미 존재하는 상태 노드 및/또는 이미 존재하는 행동 트리 노드 사이에 상태 점프 관계를 구축하는 단계를 실행하는 프로그램 코드를 저장하도록 구성될 수 있다.
또한, 본 실시예 중의 구체 실시예로는 상기 실시예1과 실시예2에서 설명한 실시예를 참조할 수 있고 본 실시예에서는 상세한 설명을 생략한다.
또한, 본 실시예에 있어서, 상기 기억매체는 USB 메모리, 판독 전용 메모리(ROM:Read-Only Memory), 랜덤 액세스 메모리(RAM:Random Access Memory), 외장 하드, 플로피 디스크 또는 광 디스크 등 각종 프로그램 코드를 기억할 수 있는 매체이다.
상기한 본 발명의 실시예의 번호는 설명의 편의를 위한 것으로 실시예의 우열을 타나내는 것이 아니다.
상기 실시예 중의 집성된 유닛을 소프트웨어 기능유닛 형식으로 구현하여 단독 제품으로 판매하거나 사용할 경우, 상기 컴퓨터가 판독 가능한 기억매체에 저장할 수 있다. 이에 근거하여 본 발명의 기술방안의 본질 또는 기존기술에 공헌이 있는 부분 또는 기술방안의 전부 또는 일부를 소프트웨어 제품 형식으로 구현할 수 있고 컴퓨터 소프트웨어 제품은 기억매체에 저장되고 하나 또는 다수의 컴퓨터 기기(개인용 컴퓨터, 서버 또는 네트워크 기기 등)로 하여금 본 발명의 각 실시예에서 설명한 방법의 전부 또는 일부 단계를 수행하도록 하는 명령을 포함할 수 있다.
본 발명의 상기 실시예에 있어서, 각 실시예의 설명에는 중요시하는 부분이 있고 어느 한 실시예에서 상세하게 설명하지 않은 부분은 기타 실시예의 관련 설명을 참조할 수 있다.
본 출원에서 제공하는 몇 실시예에 있어서, 공개된 클라이언트는 기타 방식으로 실현될 수도 있다. 이상에서 설명한 장치 실시예는 예시적인 것이고, 예를 들어 상기 유닛의 분할은 논리 기능의 분할로 실제로 실현함에 있어서는 이와 다른 방식으로 분할할 수도 있고, 예를 들어 다수개의 유닛 또는 부품을 결합시키거나 다른 한 시스템에 집성시킬 수 있고, 또는 일부 특징을 무시하거나 또는 수행하지 않을 수도 있다. 그리고, 표시하거나 또는 검토한 상호 결합 또는 직접 결합 또는 통신 연결은 인터페이스, 유닛 또는 수단을 통한 간접 결합 또는 통신 연결일 수 있고 전기적 또는 기타 형식일 수도 있다.
상기 분리된 부품으로 설명한 유닛은 물리적으로 분리된 것이거나 분리되지 않은 것일 수도 있고 유닛으로 나타낸 부품은 물리 유닛이거나 물리 유닛이 아닐 수도 있으며, 즉 한 위치에 위치하거나 또는 여러 개 네트워크 유닛에 분포될 수도 있다. 실제 수요에 따라 그중의 일부 또는 전부 유닛을 선택하여 본 실시예의 방안을 실현하는 목적을 실현할 수 있다.
그리고, 본 발명의 각 실시예 중의 각 기능유닛을 하나의 처리유닛에 집성시킬 수 있고 각 유닛이 물리적으로 단독으로 존재할 수도 있으며 두개 또는 두개 이상의 유닛을 하나의 유닛에 집성시킬 수도 있다. 상기 집성된 유닛을 하드웨어 형식으로 구현할 수 있고 소프트웨어 기능 유닛 형식으로 구현할 수도 있다.
상기한 내용은 본 발명의 바람직한 실시형태이고 이 분야의 기술자는 본 발명의 원리를 벗어나지 않는 범위 내에서 여러 가지 변경과 수정을 가져올 수 있고 이러한 개변과 수정은 본 발명의 보호 범위에 속한다.

Claims (12)

  1. 상태 제어 방법에 있어서,
    제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구하는 작업 실행 이벤트를 서버가 검측하는 단계;
    상기 서버가 상기 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하는 단계와, 여기서, 상기 혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고, 상기 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 가지고,
    상기 현재 노드 다음의 노드가 제1 상태 노드로 판단되면 상기 서버가 상기 제1 객체에 상기 제1 상태 노드에 대응되는 제1 상태 중의 작업을 수행하는 단계; 및
    상기 현재 상태의 다음 노드가 상기 제1 행동 트리 노드로 판단되면 상기 서버가 상기 제1 객체에 상기 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행하는 단계
    를 포함하는 상태 제어 방법.
  2. 청구항 1에 있어서,
    상기 서버가 상기 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하는 단계가,
    상기 작업 실행 이벤트에 지시된 것이 이벤트에 의하여 트리거되는 작업 또는 이상 작업이면 상기 서버가 상기 현재 노드 다음의 노드가 상기 제1 상태 노드라고 판단하고,
    상기 작업 실행 이벤트에 지시된 것이 프로세스형 작업이면 상기 서버가 상기 현재 노드 다음의 노드가 상기 제1 행동 트리 노드라고 판단하는 단계를 포함하는, 상태 제어 방법.
  3. 청구항 1에 있어서,
    상기 서버가 상기 제1 객체에 상기 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 실행하는 단계가,
    상기 서버가 상기 제1 객체에 상기 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 실행하는 단계를 포함하는, 상태 제어 방법.
  4. 청구항 1에 있어서,
    상기 서버가 작업 실행 이벤트를 검측하기 전에,
    상기 서버가 상기 상태 노드, 상기 행동 트리 노드 및 상기 상태 점프 관계를 지시하는 제1 배치 정보를 획득하는 단계와,
    상기 서버가 상기 제1 배치 정보에 근거하여 상기 제1 객체를 위하여 상기 혼합 상태 기계를 생성하는 단계를 더 포함하는 상태 제어 방법.
  5. 청구항 4에 있어서,
    상기 서버가 상기 제1 배치 정보에 근거하여 상기 제1 객체를 위하여 상기 혼합 상태 기계를 생성한 후,
    상기 서버가 제2 배치 정보를 획득하는 단계와,
    상기 서버가 상기 제2 배치 정보에 근거하여 상기 혼합 상태 기계를 갱신하는 단계를 더 포함하는 상태 제어 방법.
  6. 청구항 5에 있어서,
    상기 서버가 상기 제2 배치 정보에 근거하여 상기 혼합 상태 기계를 갱신하는 단계가,
    상기 서버가 상기 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 갱신하는 단계;
    상기 서버가 상기 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 삭제하는 단계; 및
    상기 서버가 상기 혼합 상태 기계에 상태 노드 및/또는 행동 트리 노드를 증가하고, 및/또는 증가된 상태 노드 및/또는 행동 트리 노드와 이미 존재하는 상태 노드 및/또는 이미 존재하는 행동 트리 노드 사이에 상태 점프 관계를 구축하는 단계 중의 적어도 하나를 포함하는, 상태 제어 방법.
  7. 상태 제어 장치에 있어서,
    제1 애플리케이션 중의 제1 객체에 작업을 수행하도록 요구하는 작업 실행 이벤트를 서버가 검측하도록 구성되는 검측수단;
    상기 서버가 상기 제1 객체의 혼합 상태 기계에서의 현재 노드 다음의 노드가 제1 상태 노드인가 제1 행동 트리 노드인가를 판단하도록 구성되는 판단수단과, 여기서, 상기 혼합 상태 기계에서의 노드는 상태 노드와 행동 트리 노드를 포함하고, 상기 혼합 상태 기계에서의 노드 사이에 상태 점프 관계를 가지고,
    상기 현재 노드 다음의 노드가 제1 상태 노드로 판단되면 상기 서버가 상기 제1 객체에 상기 제1 상태 노드에 대응되는 제1 상태 중의 작업을 수행하도록 구성되는 제1 작업수단; 및
    상기 현재 상태의 다음 노드가 상기 제1 행동 트리 노드로 판단되면 상기 서버가 상기 제1 객체에 상기 제1 행동 트리 노드에 대응되는 제1 행동 트리 중의 작업을 수행하도록 구성되는 제2 작업수단
    을 포함하는 상태 제어 장치.
  8. 청구항 7에 있어서,
    상기 판단수단이,
    상기 작업 실행 이벤트에 지시된 것이 이벤트에 의하여 트리거되는 작업 또는 이상 작업이면 상기 서버가 상기 현재 노드 다음의 노드가 상기 제1 상태 노드이라고 판단하도록 구성되는 제1 판단수단; 및
    상기 작업 실행 이벤트에 지시된 것이 프로세스형 작업이면 상기 서버가 상기 현재 노드 다음의 노드가 상기 제1 행동 트리 노드이라고 판단하도록 구성되는 제2 판단수단을 포함하는, 상태 제어 장치.
  9. 청구항 7에 있어서,
    상기 제2 작업수단이,
    상기 서버가 상기 제1 객체에 상기 제1 행동 트리 중의 매개 리프 노드에 대응되는 작업을 실행하도록 구성되는 제1 작업서브수단을 포함하는, 상태 제어 장치.
  10. 청구항 7에 있어서,
    상기 서버가 작업 실행 이벤트를 검측하기 전에, 상기 서버가 상기 상태 노드, 상기 행동 트리 노드 및 상기 상태 점프 관계를 지시하는 제1 배치 정보를 획득하도록 구성되는 제1 획득수단; 및
    상기 서버가 상기 제1 배치 정보에 근거하여 제1 객체를 위하여 상기 혼합 상태 기계를 생성하도록 구성되는 생성수단을 더 포함하는 상태 제어 장치.
  11. 청구항 10에 있어서,
    상기 서버가 상기 제1 배치 정보에 근거하여 상기 제1 객체를 위하여 상기 혼합 상태 기계를 생성한 후, 상기 서버가 제2 배치 정보를 획득하도록 구성되는 제2 획득수단; 및
    상기 서버가 상기 제2 배치 정보에 근거하여 상기 혼합 상태 기계를 갱신하도록 구성되는 갱신수단을 더 포함하는 상태 제어 장치.
  12. 청구항 11에 있어서,
    상기 갱신수단이,
    상기 서버가 상기 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 갱신하도록 구성되는 제1 갱신서브수단;
    상기 서버가 상기 혼합 상태 기계에 이미 존재하는 상태 노드, 및/또는 이미 존재하는 행동 트리 노드, 및/또는 이미 존재하는 상태 노드와 이미 존재하는 행동 트리 노드 사이의 상태 점프 관계를 삭제하도록 구성되는 삭제수단; 및
    상기 서버가 상기 혼합 상태 기계에 상태 노드 및/또는 행동 트리 노드를 추가하고, 및/또는 추가된 상태 노드 및/또는 행동 트리 노드와 이미 존재하는 상태 노드 및/또는 이미 존재하는 행동 트리 노드 사이에 상태 점프 관계를 구축하도록 구성되는 추가수단중의 적어도 하나를 포함하는, 상태 제어 장치.
KR1020187023912A 2016-03-03 2017-01-24 상태 제어 방법 및 장치 KR102085686B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610121881.1 2016-03-03
CN201610121881.1A CN105656688B (zh) 2016-03-03 2016-03-03 状态控制方法和装置
PCT/CN2017/072456 WO2017148233A1 (zh) 2016-03-03 2017-01-24 状态控制方法和装置

Publications (2)

Publication Number Publication Date
KR20180105678A true KR20180105678A (ko) 2018-09-28
KR102085686B1 KR102085686B1 (ko) 2020-04-23

Family

ID=56493068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187023912A KR102085686B1 (ko) 2016-03-03 2017-01-24 상태 제어 방법 및 장치

Country Status (6)

Country Link
US (1) US11184216B2 (ko)
EP (1) EP3425849B1 (ko)
JP (1) JP6755325B2 (ko)
KR (1) KR102085686B1 (ko)
CN (1) CN105656688B (ko)
WO (1) WO2017148233A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210060998A (ko) * 2019-11-19 2021-05-27 주식회사 카카오뱅크 유한 상태기계 생성 방법, 유한 상태기계 운영 방법, 이를 수행하는 서버 및 컴퓨터 프로그램

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105656688B (zh) 2016-03-03 2019-09-20 腾讯科技(深圳)有限公司 状态控制方法和装置
CN106815009A (zh) * 2016-12-05 2017-06-09 上海时年信息科技有限公司 模拟多个运动体行为的方法和系统
CN108270604B (zh) * 2016-12-30 2022-01-07 北京亿阳信通科技有限公司 一种业务数据变更的追踪方法和系统
CN106861190B (zh) * 2017-02-16 2020-07-10 网易(杭州)网络有限公司 Ai构建方法及装置、游戏控制方法及装置、ai系统
CN107678804B (zh) * 2017-08-22 2021-04-09 腾讯科技(深圳)有限公司 行为执行方法和装置、存储介质及电子装置
CN109426239B (zh) * 2017-08-31 2020-05-08 株洲中车时代电气股份有限公司 一种机车顺序控制系统及方法
CN108415709B (zh) * 2018-02-12 2022-01-28 北京梆梆安全科技有限公司 一种基于有限状态机加固源代码的方法及装置
CN109189504B (zh) * 2018-09-20 2020-04-28 腾讯科技(深圳)有限公司 行为执行方法、行为树生成方法、装置和计算机设备
CN109731334B (zh) * 2018-11-22 2020-08-11 腾讯科技(深圳)有限公司 状态的切换方法和装置、存储介质、电子装置
JP7193623B2 (ja) * 2019-04-23 2022-12-20 日立Astemo株式会社 車両制御装置及びコンピュータプログラム
CN110377040A (zh) * 2019-07-31 2019-10-25 北京智行者科技有限公司 基于行为树的自动驾驶决策方法及装置
CN112306850B (zh) * 2019-07-31 2024-03-08 腾讯科技(成都)有限公司 一种测试用例生成方法、装置及存储介质
CN110688301B (zh) * 2019-08-22 2021-03-02 浙江口碑网络技术有限公司 服务器测试方法、装置、存储介质及计算机设备
CN111135559B (zh) * 2019-12-27 2023-06-27 北京像素软件科技股份有限公司 游戏数据处理方法、装置、电子设备及存储介质
CN111249733B (zh) * 2020-01-09 2023-10-13 完美世界(北京)软件科技发展有限公司 一种创建虚拟对象的方法和装置
CN111660815B (zh) * 2020-05-20 2021-11-02 摩登汽车有限公司 电池管理系统的控制方法
CN112221129A (zh) * 2020-10-19 2021-01-15 杭州电魂网络科技股份有限公司 一种基于有向图的任务触发方法及系统
CN112190945B (zh) * 2020-10-22 2024-03-15 网易(杭州)网络有限公司 游戏数据处理方法和装置、计算机可读存储介质、电子设备
KR102531765B1 (ko) * 2020-12-07 2023-05-11 인하대학교 산학협력단 Put 오브젝트 처리속도 상향을 위한 하이브리드 오브젝트 스토리지 시스템 및 그 동작 방법
WO2022140880A1 (zh) * 2020-12-28 2022-07-07 深圳元戎启行科技有限公司 有限状态机的控制方法、装置、计算机设备和存储介质
CN113379590B (zh) * 2021-06-07 2023-06-30 腾讯科技(上海)有限公司 动画数据处理方法、装置、计算机设备和存储介质
CN113750537A (zh) * 2021-09-08 2021-12-07 福建天晴在线互动科技有限公司 一种编辑游戏状态迁移的方法及其系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060235548A1 (en) * 2005-04-19 2006-10-19 The Mathworks, Inc. Graphical state machine based programming for a graphical user interface
KR20110000689A (ko) * 2008-04-02 2011-01-04 아이로보트 코퍼레이션 로보틱스 시스템
US20120010772A1 (en) * 2008-04-10 2012-01-12 Robert Todd Pack Advanced Behavior Engine

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08194612A (ja) 1994-11-15 1996-07-30 Nippon Telegr & Teleph Corp <Ntt> プログラム実行制御方法及びプログラム実行制御システム
US6031549A (en) * 1995-07-19 2000-02-29 Extempo Systems, Inc. System and method for directed improvisation by computer controlled characters
US6317638B1 (en) * 1997-08-22 2001-11-13 Honeywell Inc. Multi-layer state machine for a hybrid real-time control system and method of operation thereof
CN101626420A (zh) * 2008-07-08 2010-01-13 中国移动通信集团公司 Lfc资源管理方法及其设备和系统
KR20100088049A (ko) * 2009-01-29 2010-08-06 삼성전자주식회사 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치
EP2461248A4 (en) * 2009-07-31 2013-02-13 Nec Corp CONTROLLER, SERVICE DELIVERY SYSTEM, AND METHOD FOR PROVIDING A VIRTUAL INFRASTRUCTURE
US8766666B2 (en) * 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
US9747440B2 (en) * 2012-08-15 2017-08-29 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
CN103049264A (zh) * 2012-12-17 2013-04-17 国电南京自动化股份有限公司 一种通过状态机动态建模实现对业务系统控制的方法
CN103049838B (zh) * 2012-12-26 2017-05-31 华中科技大学 基于有限状态机的包裹运输状态监控方法
CN104077121A (zh) * 2013-03-29 2014-10-01 北京大学深圳研究生院 一种实现和管理状态机信息的装置
JP6303300B2 (ja) * 2013-06-25 2018-04-04 富士通株式会社 制御依頼方法、情報処理装置、システム、およびプログラム
JP6514352B2 (ja) 2015-03-13 2019-05-15 株式会社スクウェア・エニックス 情報処理装置、情報処理方法、非一時的なコンピュータ読み取り可能な記憶媒体
CN106034246A (zh) * 2015-03-19 2016-10-19 阿里巴巴集团控股有限公司 一种基于用户操作行为的服务提供方法及装置
CN105117575B (zh) * 2015-06-17 2017-12-29 深圳市腾讯计算机系统有限公司 一种行为处理方法及装置
CN105656688B (zh) * 2016-03-03 2019-09-20 腾讯科技(深圳)有限公司 状态控制方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060235548A1 (en) * 2005-04-19 2006-10-19 The Mathworks, Inc. Graphical state machine based programming for a graphical user interface
KR20110000689A (ko) * 2008-04-02 2011-01-04 아이로보트 코퍼레이션 로보틱스 시스템
US20120010772A1 (en) * 2008-04-10 2012-01-12 Robert Todd Pack Advanced Behavior Engine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210060998A (ko) * 2019-11-19 2021-05-27 주식회사 카카오뱅크 유한 상태기계 생성 방법, 유한 상태기계 운영 방법, 이를 수행하는 서버 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
US20180367365A1 (en) 2018-12-20
US11184216B2 (en) 2021-11-23
EP3425849A1 (en) 2019-01-09
WO2017148233A1 (zh) 2017-09-08
CN105656688A (zh) 2016-06-08
EP3425849B1 (en) 2024-03-06
KR102085686B1 (ko) 2020-04-23
CN105656688B (zh) 2019-09-20
JP2019518257A (ja) 2019-06-27
EP3425849A4 (en) 2019-10-30
JP6755325B2 (ja) 2020-09-16

Similar Documents

Publication Publication Date Title
KR20180105678A (ko) 상태 제어 방법 및 장치
US10877639B2 (en) Page shortcut display method, apparatus, terminal, and server, and storage medium
CN107431651A (zh) 一种网络服务的生命周期管理方法及设备
CN106663023B (zh) 对云应用中的虚拟机进行分组
US20170010673A1 (en) Gesture based sharing of user interface portion
CN111966633B (zh) 用于查询目录下子节点的方法、装置、电子设备及介质
US20180046489A1 (en) Storage medium, method, and device
CN110210212A (zh) 一种数据处理方法、装置以及相关设备
KR20200062299A (ko) 블록체인 트랜잭션들을 선택하기 위한 트랜잭션 선택 디바이스
CN105094603A (zh) 一种关联输入的方法与装置
CN109828840A (zh) 资源编排方法、装置、存储介质及电子设备
CN109032614A (zh) 一种物联网应用程序开发与维护的系统及方法
CN108211360B (zh) 多人在线网络游戏的跨地图寻路方法
US20200053150A1 (en) Network topology templates for internal states of management and control planes
CN108536447B (zh) 运维管理方法
US20220342742A1 (en) Graphical management of big data pipelines
US10200445B2 (en) Method for analyzing performance of network application program in software defined networking environment, apparatus therefor, and computer program therefor
CN109412944B (zh) 基于微服务的请求转发方法、装置和服务器
CN113347268A (zh) 基于分布式网络组网方法、装置、存储介质及计算机设备
CN107451167A (zh) 站内点击位的点击数据获取方法和系统
WO2019244446A1 (ja) システム構成導出装置、方法およびプログラム
CN111367597A (zh) 一种颜色切换方法、装置及电子设备
JP2019205080A (ja) 変換装置、および、変換プログラム
JP2012221147A (ja) 計算機及びリソース管理方法
CN116501386B (zh) 一种基于数据池的计算程序自动求解方法及相关装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant