本發明涉及游戲技術領域,具體地,涉及自動生成行為樹代碼的方法及系統。
背景技術:
為了便于實現游戲中的人工智能行為,很多游戲里面采用行為樹作為人工智能的解決方案。如何描述行為樹有很多種方法,例如直接編寫代碼去描述行為樹。直接編寫行為樹代碼的方式不方便進行維護,且不能清晰的顯示人工智能的邏輯。
經檢索,申請號為:201480033537.6,名稱為:自動源代碼生成,提出了從包括變量代碼元素和方法的簡檔中自動生成源代碼語句。簡檔從具有已標識的變量代碼元素的現有代碼基構建,已標識的變量代碼元素在被用于源代碼語句的不同版本中時不同。開發者可定義變量代碼元素的值,其接著被簡檔中的方法用于自動生成對應的源代碼語句。
申請號為:201110391484.3,名稱為:代碼自動生成方法及裝置,提出了一種代碼自動生成方法及裝置,該方法包括:獲取通過用戶界面輸入的待生成代碼的代碼配置信息,根據獲取的所述代碼配置信息得到表結構信息;根據確定的代碼類型和選擇的操作類型,提取相應的代碼模板;將所述表結構信息以及用戶配置的配置信息填充到提取的所述代碼模板中,得到所述待生成代碼。可以自動生成各種不同類型的代碼,具有普遍適用性。
上述專利申請針對源代碼的自動生成,但是不能用來描述游戲中的人工智能行為,目前還未檢索到關于行為樹代碼的自動生成技術。
為此,本發現提供了一種用數據和文本描述行為樹的方法和系統,可以根據數據文本自動生成行為樹代碼。
技術實現要素:
針對現有技術中的缺陷,本發明的目的是提供一種自動生成行為樹代碼的方法及系統。
根據本發明提供的自動生成行為樹代碼的方法,包括如下步驟:
步驟1:定義需要用到的行為樹節點;
步驟2:配置人工智能數據,具體地,利用步驟1中定義的行為樹節點組裝成具有人工智能的行為樹;
步驟3:加載步驟2的人工智能配置數據,按照數據描述的各種節點以及節點之間的組裝關系組建成能夠運行的行為樹代碼;
步驟4:重復步驟3,依次遍歷配置數據中的所有節點以及節點之間的組裝關系,直到遍歷完所有配置數據,遍歷完所有配置數據后,返回創建的整套行為樹代碼;其中,遍歷是指按照配置數據的順序依次讀取配置數據。
優選地,所述步驟1包括:由于每個行為樹節點都有一個列表用于存儲孩子節點,每個行為樹節點都有一個位置描述,所述位置描述表示在兄弟節點里面該行為樹節點所處的順序;其中,行為樹節點是指能夠按照特定邏輯運行的一套代碼;行為樹節點能夠相互嵌套,即一個行為樹節點能夠嵌套若干個不同的行為樹節點,形成層級關系;
孩子節點是指:嵌套在行為樹節點上的下一層級的行為樹節點,相對于上層行為樹節點,下一層的行為樹節點被稱為孩子節點;
兄弟節點是指:屬于同一層級的行為樹節點,該同一層級的行為樹節點互為兄弟節點;
具體地,所述行為樹節點包括:順序節點、選擇節點、條件節點、動作節點;
所述順序節點是指:按照順序依次執行,一旦某一個節點執行失敗則返回結果;
所述選擇節點是指:按照順序依次執行,一旦某一個節點執行成功則返回;
所述條件節點是指:用來判斷條件是否符合的節點;
所述動作節點是指:執行具體業務邏輯的節點。
優選地,所述步驟2中配置人工智能數據是指用不同的行為樹節點進行組合的文本描述,其中的人工智能數據由多個行為樹節點組成,組成方式包括嵌套和順序組合。
根據本發明提供的自動生成行為樹代碼的系統,包括如下模塊:
定義模塊:用于定義需要用到的行為樹節點;
配置模塊:用于配置人工智能數據,具體地,根據定義的行為樹節點組成人工智能的行為樹;
行為樹代碼組建模塊:用于加載人工智能配置文件,按照數據文本描述的各種節點以及節點之間的關系依次組建可運行的行為樹代碼;
遍歷模塊:用于對所有配置數據進行遍歷,遍歷結束后,返回創建的整套行為樹代碼。
優選地,所述定義模塊中由于每個行為樹節點都有一個列表用于存儲孩子節點,每個行為樹節點都有一個位置描述,所述位置描述表示在兄弟節點里面該行為樹節點所處的順序;其中,行為樹節點是指能夠按照特定邏輯運行的一套代碼;行為樹節點能夠相互嵌套,即一個行為樹節點能夠嵌套若干個不同的行為樹節點,形成層級關系;
孩子節點是指:嵌套在行為樹節點上的下一層級的行為樹節點,相對于上層行為樹節點,下一層的行為樹節點被稱為孩子節點;
兄弟節點是指:屬于同一層級的行為樹節點,該同一層級的行為樹節點互為兄弟節點;
具體地,所述行為樹節點包括:順序節點、選擇節點、條件節點、動作節點;
所述順序節點是指:按照順序依次執行,一旦某一個節點執行失敗則返回結果;
所述選擇節點是指:按照順序依次執行,一旦某一個節點執行成功則返回;
所述條件節點是指:用來判斷條件是否符合的節點;
所述動作節點是指:執行具體業務邏輯的節點。
優選地,所述配置模塊中配置人工智能數據是指用不同的行為樹節點進行組合的文本描述,其中的人工智能數據由多個行為樹節點組成,組成方式包括嵌套和順序組合。
與現有技術相比,本發明具有如下的有益效果:
本發明提供的自動生成行為樹代碼的方法及系統,根據lua數據文本自動生成lua代碼,減少了大量代碼的編寫工作,讓行為樹的生成過程更加簡單易懂。從而能夠更加有效地實現游戲中的人工智能行為,加快游戲開發進度,便于代碼的升級和維護。
附圖說明
通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發明的其它特征、目的和優點將會變得更明顯:
圖1為本發明提供的自動生成行為樹代碼的方法的流程圖。
具體實施方式
下面結合具體實施例對本發明進行詳細說明。以下實施例將有助于本領域的技術人員進一步理解本發明,但不以任何形式限制本發明。應當指出的是,對本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變化和改進。這些都屬于本發明的保護范圍。
根據本發明提供的自動生成行為樹代碼的方法,包括如下步驟:
步驟1:定義需要用到的行為樹節點;每個行為樹節點都有一個列表存儲孩子節點,每個行為樹節點都有一個位置描述,所述位置描述表示在兄弟節點里面該行為樹節點所處的順序;其中,行為樹節點是指可以按照特定邏輯運行的一套代碼,行為樹節點可以嵌套,即一個行為樹節點可以嵌套若干個其他節點,運行若干個其他節點代碼,形成層級關系;
孩子節點是指:嵌套在其他節點的行為樹節點,相對于上層節點,下面一層的節點稱為孩子節點。
兄弟節點是指:相對于同一層級的節點,互相稱為兄弟節點。
所述行為樹節點包括:順序節點(按照子節點順序依次執行,一旦某一個節點執行失敗則返回結果);選擇節點(按照子節點順序依次執行,一旦某一個節點執行成功則返回),條件節點(專門用來判斷條件是否符合的節點),動作節點(執行具體業務邏輯的節點)
步驟2:配置人工智能數據用步驟1中定義的幾種行為樹節點組成人工智能的行為樹。其中配置是指用不同的行為樹節點進行組合的文本描述。其中的數據由多個行為樹節點組成,組成方式包括嵌套和順序組合。
步驟3:加載人工智能配置文件,按照數據文本描述的各種節點以及節點之間的關系依次組建可運行的行為樹代碼,重復這個步驟進行編譯,遍歷結束后,返回創建的整套代碼。
任何應用行為樹技術的方案,都可以采用這種方法進行自動代碼的生成技術。所以任何應用行為樹技術的實例都可以用到。
本發明還提供了一種自動生成行為樹代碼的系統,包括如下模塊:
定義模塊:用于定義需要用到的行為樹節點;
配置模塊:用于配置人工智能數據,具體地,根據定義的行為樹節點組成人工智能的行為樹;
行為樹代碼組建模塊:用于加載人工智能配置文件,按照數據文本描述的各種節點以及節點之間的關系依次組建可運行的行為樹代碼;
遍歷模塊:用于對所有配置數據進行遍歷,遍歷結束后,返回創建的整套行為樹代碼。
所述定義模塊中由于每個行為樹節點都有一個列表用于存儲孩子節點,每個行為樹節點都有一個位置描述,所述位置描述表示在兄弟節點里面該行為樹節點所處的順序;其中,行為樹節點是指能夠按照特定邏輯運行的一套代碼;行為樹節點能夠相互嵌套,即一個行為樹節點能夠嵌套若干個不同的行為樹節點,形成層級關系;
孩子節點是指:嵌套在行為樹節點上的下一層級的行為樹節點,相對于上層行為樹節點,下一層的行為樹節點被稱為孩子節點;
兄弟節點是指:屬于同一層級的行為樹節點,該同一層級的行為樹節點互為兄弟節點;
具體地,所述行為樹節點包括:順序節點、選擇節點、條件節點、動作節點;
所述順序節點是指:按照順序依次執行,一旦某一個節點執行失敗則返回結果;
所述選擇節點是指:按照順序依次執行,一旦某一個節點執行成功則返回;
所述條件節點是指:用來判斷條件是否符合的節點;
所述動作節點是指:執行具體業務邏輯的節點。
所述配置模塊中配置人工智能數據是指用不同的行為樹節點進行組合的文本描述,其中的人工智能數據由多個行為樹節點組成,組成方式包括嵌套和順序組合。
以上對本發明的具體實施例進行了描述。需要理解的是,本發明并不局限于上述特定實施方式,本領域技術人員可以在權利要求的范圍內做出各種變化或修改,這并不影響本發明的實質內容。在不沖突的情況下,本申請的實施例和實施例中的特征可以任意相互組合。