10、建立AI感知
在介紹完理論知識后,我們將為AI角色添加一個AI感知組件,首先,我們將設置第一種感受——視覺,接着,我們會把玩家角色標記成AI能夠感知的對象,為此,我們將為角色添加一個刺激源組件。
首先為AI角色添加一個AI感知組件,在內容瀏覽器中打開“AI ThirdPersonCharacter”,找到左上角的組件面板,選擇“添加組件”,然后輸入“AI感知”直至在下拉菜單中看到它,選中它,然后找到右側的細節面板。在細節面板的“AI感知”分段中,找到“感官配置”,當前是一個空數組。這意味着默認狀態AI不會有任何感官。點擊加號圖標,在數組中添加一個元素,並在下拉菜單中選擇“AI視力配置”,現在AI就獲得了一種感官。展開這個分段,然后展開“感官”分段,查看感官配置的全部細節。“視線半徑”定義了AI能夠感知到目標的距離;“失去視線半徑”則定義了查看已被看到的目標的最大視線距離;底部是“次要視覺半角角度”定義了AI視線相對於AI本身正向向量的錐角。暫時我們無法定義目標是敵人、中立單位或是敵方,所以直接勾選“檢測中立方”選項。之后在配置玩家時,它會被正確地識別為中立。
接下來,我們需要將玩家角色標記為刺激源,這樣AI就可以在場景中看到玩家。首先在內容瀏覽器中打開第三人稱玩家,在組件面板中點擊“添加組件”按鈕,輸入“AI感知刺激源”,添加組件后,選中它。在右側細節面板中,在“AI感知”分段中,勾選“自動注冊為源”。現在我們需要確定其為正確的感官注冊源。在感官注冊源中添加一個元素,在下拉菜單中選擇“AISense_Sight”。
11、AI感知和Gameplay調試器
在這一部分,為了更好觀察AI角色,需要將AI角色靜止,這只需在其藍圖中,使用“Alt+左鍵”將事件“Beginplay”連接的線取消即可。記得編譯。在播放游戲前,我們最好禁止臨時抗鋸齒,這是因為TAA工作時會把若干幀混合在一起,這樣單像素線條,例如我們即將看到的調試線條會很難看到。找到“項目設置”中“渲染”,“默認設置”,然后找到“抗鋸齒方法”,在下拉菜單中從“臨時抗鋸齒”改為無。
現在我們播放游戲,激活Gameplay調試器,按1和2數字鍵取消行為樹和AI相關信息,按5來顯示感知信息,如圖所示,如果玩家周圍出現繪制的球體,則說明此時玩家可以被AI觀察到。信息“視線”是1表示完全可見;“age”表示感知數據的年齡,其值為0表示是最新的信息。
按“Tab”鍵進入旁觀者模式,拉開距離如圖可以看到綠色和粉色的邊界線,說明AI角色的感知距離過大,不合適。我們可以調整視覺感官的參數,讓他更加符合當前的場景大小。回到AI角色的感官配置,大幅降低內測和外側的范圍。