《2023年8月10日星火編輯器更新日志》


各位b站上的哈哈哈基米們
大家好!?。ü恼疲?/p>
是不是有機敏的小伙伴已經(jīng)發(fā)現(xiàn)
我們星火編輯器
昨晚又進行了一次大更新
快來看看都有啥吧
星火,啟動!

產(chǎn) 品 功 能 優(yōu) 化


多段連招技能配置優(yōu)化
自從之前的更新中加入了多段連招技能以后,我們收到了一些相關的反饋。有時候用戶可能希望每一次施法都提升技能階段,但每次都得執(zhí)行一個修改技能階段的節(jié)點。而另一些情況下,用戶設計的多段連招技能可能每一段的效果都差別極大,在同一個效果樹藍圖中通過公式來進行分支過濾可能會比較繁瑣。
針對這些情況,我們進一步簡化了多段連招技能的配置方式,多段連招技能獲得了以下兩個勾選標旗:
『每次施法自動提升段數(shù)』
勾選后每次施法成功后會自動使技能的連招階段屬性+1,無需手動修改。
需要注意的是,原有的修改技能連招段數(shù)節(jié)點依然有效。對于有復雜連招變化需求的技能,用戶依然可以不勾選這一標旗,并在效果樹中根據(jù)條件來手動推進連招階段。
我們已經(jīng)使用這一標旗修改了默認的三連擊技能樣例。
『每個連擊段配置不同的效果樹』
勾選后,技能的效果樹出口將變成一個數(shù)組。用戶直接可以針對不同的連擊段數(shù)來配置不同的效果樹。免去了使用驗證器或者switch節(jié)點來設置復雜分支的麻煩。
在效果節(jié)點中遍歷單位組
應用戶的需求,我們在數(shù)據(jù)編輯器中增加了一個全新的節(jié)點:『遍歷單位組』節(jié)點。
該節(jié)點允許輸入一個公式,返回任何一個用戶所指定的單位組。然后,該節(jié)點執(zhí)行時會遍歷用戶所指定的單位組中的所有單位,并像搜索單位節(jié)點一樣逐一對這些單位執(zhí)行用戶所連接的后續(xù)效果。
我們認為這一節(jié)點功能可以更好地取代略顯臃腫的『Buff單位組』系列節(jié)點。除此之外,我們還修復了獲取指定Buff上的Buff單位組的函數(shù),該函數(shù)獲取的Buff單位組也可以直接在遍歷單位組節(jié)點中使用。
技能射程公式優(yōu)化
技能射程公式是星火編輯器很久以前就加入的功能,但是該功能在一些情況下的運作方式并不符合用戶的預期:比如技能射程公式在過去對向量目標技能其實是無效的(因為向量技能的目標是一個方向)。而技能公式所改變的射程只影響技能的實際射程,卻沒有正確地反應在技能指示器的技能射程之上。
為此,我們對技能射程公式機制進行了重構。并將向量技能的『射程』定義為從施法者的沿著技能方向到技能終點見的距離。從今以后,技能射程公式將對向量技能也產(chǎn)生效果,而技能指示器也能正確地同步獲取服務端射程公式對技能射程所進行的修改。
屏幕坐標射線——獲取指定屏幕位置的單位和表現(xiàn)
過去的客戶端單位選中事件中,用戶只能捕捉到鼠標點擊位置的第一個單位。但是當單位被其它單位遮擋時,用戶將很難獲取鼠標位置下的其它單位。除此之外,我們也收到了用戶希望能夠獲取鼠標點擊位置下的表現(xiàn)的反饋。
我們加強了星火引擎中屏幕坐標射線功能的支持,令用戶可以獲取同一屏幕位置的多個單位和表現(xiàn)(如果你不了解什么是屏幕坐標射線也沒關系,只需要知道它可以幫助我們獲得指定屏幕坐標位置下所有的單位和表現(xiàn))
增加了以下兩個客戶端函數(shù):
『從屏幕坐標獲取所有單位』
用戶可以指定一個屏幕坐標,該函數(shù)會返回一個這個屏幕坐標位置下所有單位的數(shù)組。即使那個坐標下有多個單位重疊著。該數(shù)組以單位的先后遮擋順序排序。
如果需要獲取鼠標點擊位置下的所有單位,可以通過鼠標點擊事件來獲取屏幕坐標,然后傳入該函數(shù)來獲得該位置的單位。
『從屏幕坐標獲取所有表現(xiàn)』
與以上邏輯功能類似,但獲取的是指定位置的表現(xiàn)的列表。但要注意的是,為了優(yōu)化內存占用,在默認情況下該功能是不開放的。用戶需要事先使用『設置是否允許通過屏幕坐標獲取表現(xiàn)』動作來打開這一模式。且僅有在打開該模式后所創(chuàng)建的表現(xiàn)可以正常通過屏幕坐標來獲取。
注意以上兩個函數(shù)都需要通過模型外觀來判定單位和表現(xiàn)的選定范圍坐標。如果表現(xiàn)本身不具備模型(如本身是一個音效或者氛圍表現(xiàn)),可能很難通過坐標來將其選取。
施法實例與AI施法判定優(yōu)化
我們優(yōu)化了『單位正在施放的技能施法實例』觸發(fā)器函數(shù)?,F(xiàn)在,只要單位正在執(zhí)行一個施法指令,即使單位處于為接近目標的行走狀態(tài)下或是引導完成后的后搖狀態(tài)下,該函數(shù)都能獲得對應技能的施法實例。
考慮到過去的一些AI邏輯可能習慣通過該函數(shù)來判斷AI單位是否在施法過程中,而用戶可能預期AI會無視技能的后搖狀態(tài),并快速地進入下一個動作。我們?yōu)橛|發(fā)器中的AI對象添加了『是否在施法』的方法,這一方法更接近我們對AI的常規(guī)預期:當AI單位處于后搖狀態(tài),且該后搖狀態(tài)為不可打斷時,AI會認為該單位并沒有在施法,并可直接進行下一步的動作。
我們已經(jīng)修改了默認AI以及數(shù)據(jù)編輯器中官方AI的行為樹,令它們使用這一新的方式來判斷AI單位是否在施法。我們同樣建議過去使用了這一函數(shù)來構建AI行為樹的用戶盡快改用新的方式來判斷AI單位是否在施法。
這一改動同樣改善了默認AI會在一些特定技能配置下卡住的問題,比如用戶如果將AI單位的一些技能的后搖階段設置為不可打斷,那么在過去的配置中,AI可能會認為單位已經(jīng)結束了技能施放,而嘗試為單位下達新的指令而導致問題。
需要特別注意的是,AI對象的『是否在施法』方法僅在AI判定的語境下適用。在通常邏輯的編寫中,仍應當用『單位正在施放的技能施法實例』來判定單位是否在施法,此時,用戶依然可以獲取技能的當前階段,并通過讀取技能數(shù)編表配置來判斷技能是否處于不可打斷階段。
召喚物跟隨/攻擊AI
我們簡化了召喚物跟隨/攻擊AI的使用方法。增加了以下兩個觸發(fā)器動作。
『令單位跟隨另一個單位(僅跟隨)』
用戶可以指定一個寵物單位跟隨其主人,并可指定該寵物在主人周圍的巡邏范圍和巡邏頻率。
『令單位跟隨另一個單位(進行攻擊)』
表現(xiàn)與以上動作類似,但跟隨者會試圖保護主人,并對路途中的敵人進行攻擊。在主人遠離敵人的情況下,跟隨者會放棄攻擊并跟上主人。
用戶可以在AI編輯器(在數(shù)據(jù)編輯器左上角點擊齒輪,打開『自定義AI設置』)中修改『召喚物跟隨』AI的行為樹,以對以上兩個觸發(fā)器動作中AI單位的行為進行進一步的深度定制。
在運行時為UI控件添加事件
現(xiàn)在,由『創(chuàng)建組件實例』觸發(fā)器動作所動態(tài)創(chuàng)建的UI控件可以在觸發(fā)器中動態(tài)地添加事件了。具體方法為使用賦值語句為該控件的『.事件.[事件名].事件函數(shù)』屬性賦值一個指定的函數(shù)或匿名函數(shù)。
例如:
[按鈕1.事件.點擊.事件函數(shù)]<-[自定義的按鈕點擊事件處理函數(shù)]
這一方法同樣可以用來修改非動態(tài)創(chuàng)建的UI控件的事件處理函數(shù)。
效果樹的運行時動態(tài)拼接
我們?yōu)樾Ч?jié)點對象增加了『執(zhí)行子效果』方法。在觸發(fā)編輯器和數(shù)據(jù)編輯的公式中,用戶可以通過這一方法來在一個現(xiàn)有的效果樹中執(zhí)行任何一個指定的效果節(jié)點,而不是創(chuàng)建一個全新的效果樹來執(zhí)行。
該方法需要指定一個父節(jié)點和新效果節(jié)點的默認目標,若不指定目標,則視為繼承指定的父節(jié)點自身的節(jié)點目標。
新的效果節(jié)點在執(zhí)行時會將指定的父節(jié)點視為其父節(jié)點,即使該父節(jié)點很久之前就已經(jīng)結束。新的效果節(jié)點能獲得原效果樹中所有的公用數(shù)據(jù)(如施法者、引發(fā)物品等等),也可以正確獲取父節(jié)點和祖先節(jié)點的所有信息。
通過這一方法所拼接出的效果樹將與數(shù)據(jù)編輯器中的效果節(jié)點連線完全等價。用戶可以通過這一功能自由組合各種效果節(jié)點,實現(xiàn)效果樹動態(tài)自定義。(舉例:可在暴風雪命中目標后,動態(tài)拼接風暴之錘的投射效果節(jié)點,實現(xiàn)對被暴風雪命中的目標群體釋放風暴之錘的效果,這僅僅是效果樹自定義功能最基礎的應用,我們期待用戶使用這一功能實現(xiàn)更多的奇[腦]思[洞]妙[大]想[開])
文字和光束表現(xiàn)的動態(tài)自定義
光束和文字表現(xiàn)以往只能通過數(shù)據(jù)編輯器來創(chuàng)建和配置。為了加大自由度,我們?yōu)檫@兩種表現(xiàn)增加了動態(tài)修改和創(chuàng)建的支持。以下觸發(fā)器動作同時在客戶端和服務端觸發(fā)器都能生效:
光束表現(xiàn)
『設置表現(xiàn)的發(fā)射點位置』:可以設置光束表現(xiàn)發(fā)射位置的坐標,光束可以從一個單位身上發(fā)射也可以從一個點發(fā)射。
『設置表現(xiàn)的發(fā)射點z高度』:若光束表現(xiàn)的發(fā)射源為一個點,該函數(shù)可以修改該點的3D高度。
『設置表現(xiàn)的發(fā)射源單位和綁點』:設置光束表現(xiàn)發(fā)射源為指定單位的指定綁點位置。
注:在使用觸發(fā)器創(chuàng)建光束表現(xiàn)時,光束表現(xiàn)的創(chuàng)建坐標就是其目標點位置。如果想要將光束的目標位置也設置到單位身上,可以直接使用附著表現(xiàn)到單位上的動作直接附著這一表現(xiàn)。
文字表現(xiàn)
『設置表現(xiàn)的文字』:在創(chuàng)建文字表現(xiàn)后,用戶可以通過這一動作來動態(tài)修改文字表現(xiàn)所顯示的問題。
適合回合制游戲的技能指示器
為了加強對回合制游戲的支持,我們在數(shù)據(jù)編輯器中新增了兩種適合回合制游戲的技能指示器。
回合制單位目標選擇指示器
該指示器僅對單位目標技能生效。
點擊技能后無需拖拽,選中目標后需要再次點擊。
選中一個目標后會有目標選擇光圈并高亮描邊,只有符合目標過濾條件的目標可被選中。
再次點擊被光圈選中的主目標單位,則視為確認并施法。
當有任何單位被光圈選中時,再次點擊原技能也視為確認并施法。
目標選擇階段點其他技能會直接取消目標選擇。
目標選擇階段點取消區(qū)域或者空地會取消目標選+擇。
若技能啟用了智能施法,則在點擊了一次技能后直接在符合智能施法過濾和范圍的目標身上顯示目標選擇光圈,若用戶對此目標滿意,直接再次點擊該目標即可確認施法。(其它目標要點2次)。
若技能配置了施法光標范圍,則在主目標周圍范圍內符合智能施法過濾器的目標也會顯示次要的目標選擇光圈。
在數(shù)據(jù)編輯器的指示器節(jié)點上可配置主次目標的選中光圈表現(xiàn)。
回合制無目標技能指示器
僅對無目標技能生效。
點擊后,對周圍技能配置的施法光標范圍內的單位顯示目標光圈并高亮描邊。無需手動選擇目標。目標也需要符合智能施法過濾(今后無目標技能也可以配置智能施法單位過濾字段)。
再次點擊任何一個身上帶光圈的單位則視為確認并施法。
再次點擊原技能也視為確認施法。
目標選擇階段點其他技能會直接取消目標選擇。
目標選擇階段點取消區(qū)域或者施法光標范圍外的空地會取消目標選擇。
在數(shù)據(jù)編輯器的指示器節(jié)點上可配置選擇光圈表現(xiàn)。
我們今后也將進一步擴充星火編輯器所支持的游戲品類。
觸發(fā)器配置文件與腳本文件的分割
在過去,新版觸發(fā)器每個項目只會在客戶端和服務端各生成一個單獨的配置文件和腳本文件。但當一個項目過于龐大時,這個設置會使多人協(xié)同開發(fā)的難度提高,而過于臃腫的單個腳本文件也會產(chǎn)生各種各樣的腳本沙盒問題(如,lua語言不允許200個以上的局部變量)。
為此,在新版本中,我們將觸發(fā)器的配置文件及其生成的腳本文件進行了分割。今后觸發(fā)器配置文件將按照觸發(fā)器左側樹狀圖的每個單個元素分別保存。方便多個用戶協(xié)同開發(fā)同一個項目的腳本文件,也使得觸發(fā)器的版本控制更加自由。相應地,觸發(fā)器所生成的腳本文件也會自動進行分割,以免出現(xiàn)單個文件過大的問題。
地形編輯器
我們在地形編輯器的場景屬性中增加了一個『地圖邊界』字段,用戶可以設置一個指定寬度的地圖邊界。邊界外的地圖會被自動描述為不可通行區(qū)域,使單位無法抵達邊界之外。玩家的鏡頭也會受到這個邊界的限制。
觸發(fā)編輯器
我們優(yōu)化了玩家在觸發(fā)器中填寫四則運算表達式的體驗。
我們優(yōu)化了玩家在觸發(fā)器中填寫四則運算表達式的體驗。
例如,當用戶嘗試將一個數(shù)值類型的對象修改為[a]+[b]形式的四則運算表達式時,原有的值不再會消失,而是會被自動填入四則運算的左側值中。
在實際體驗中,我們發(fā)現(xiàn)用戶經(jīng)常需要擴充一個現(xiàn)有的四則運算表達式,但每次擴充時都需要用一個四則運算表達式覆蓋掉一個原值,之后多數(shù)情況下,用戶可能會需要再次輸入被覆蓋掉的值作為新表達式的操作數(shù)之一,因此我們針對這種情況進行了特殊處理,將原有的數(shù)值或變量保留了下來。
當然,在需要輸入復雜公式表達式的場合,我們仍然推薦用戶使用立即值中的『數(shù)值公式選項』,而非表達式中的+-*/四則運算選項。因為四則運算表達式一次只能輸入兩個操作數(shù),但數(shù)值公式選項允許用戶一次性對多個操作數(shù)進行數(shù)值運算。
我們優(yōu)化了觸發(fā)編輯器的前進后退行為,使其在進行定義跳轉后依然可以正確回退到之前的頁面。
現(xiàn)在自定義事件的文本內容可以通過搜索搜到了。
數(shù)據(jù)編輯器
我們增加了全新的『技能屬性修改』節(jié)點,與之前加入的冷卻和段數(shù)修改節(jié)點類似。該節(jié)點將允許用戶指定效果樹中某個單位身上的特定技能并修改其技能屬性,也可以直接修改效果樹當前技能的屬性。
我們優(yōu)化了『技能冷卻修改』節(jié)點、『技能連擊段數(shù)修改』節(jié)點和『技能屬性修改』節(jié)點在數(shù)據(jù)編輯器中的提示信息??梢愿行У貛椭脩衾斫獾皆摴?jié)點正在嘗試修改哪個單位的技能。
我們對自定義單位屬性公式進行了進一步的優(yōu)化,現(xiàn)在多個屬性之間可以實現(xiàn)連鎖影響(過去當屬性A影響屬性B,屬性B影響屬性C時,修改屬性A并不會自動刷新屬性C)。
新的作弊碼
我們增加了新的作弊碼,允許用戶通過它們來為選中的單位添加和刪除技能、Buff。、用戶也可以通過SetDebugUnit作弊碼來固定一個操作單位。
AddBuff [Buff的Id]
為選中單位(如果沒有選中任何單位,則使用主控單位)添加buff,縮寫為ab
RemoveBuff [Buff的Id]
移除指定Id的Buff,縮寫為rb
AddAbil [技能Id或技能的顯示名]
為單位添加指定的技能,縮寫為aa。
RemoveAbil [技能Id或技能的顯示名]
移除單位身上指定的技能,縮寫為ra
預制功能
通用背包配置中增加了背景圖片的支持,可以為不同配置的裝備設置不同的背景圖片了:如果物品的圖標為透明背景,可能會有更好的視覺表現(xiàn)。

我們優(yōu)化了Buff顯示控件中Buff在即將消失前的閃爍表現(xiàn),使其不再那么令人閃瞎眼。
單位屬性面板現(xiàn)在可以通過『綁定的單位』屬性來直接設置其綁定的單位,而不需要再使用『綁定的單位Id』。
我們統(tǒng)一了官方聊天庫和觸發(fā)器中獲取玩家昵稱的方式,今后兩個地方獲取的玩家昵稱應當不會出現(xiàn)不一致的情況了。此外,我們在服務端和客戶端增加了新版本的『發(fā)送聊天信息』動作。該動作能顯示一條自定義的聊天信息。此外,用戶可以指定該信息的發(fā)送者顯示為哪一個玩家,也可以輸入一個完全自定義的發(fā)送者名稱。
注:該觸發(fā)器動作需要在預制功能庫中應用『局內聊天』庫才可使用。
我們進一步優(yōu)化了在按住移動搖桿時使用技能的反饋體驗。
其他編輯器更新:
現(xiàn)在上傳項目時會檢測所有被項目引用、有本地修改且未上傳的資源;例如開發(fā)者在本地的資源添加了武器但未上傳更新;過去這些問題會帶來編輯器調試和手機調試表現(xiàn)不一致的情況,預期這一環(huán)節(jié)可以減少此類情況的出現(xiàn)。
『我的資源』中音效預覽頁面可以切換循環(huán)播放和單次播放了,對于一些短促的音效可以更好的感受其真實效果。
地形編輯器中的光源可以通過圖標區(qū)分動態(tài)光和靜態(tài)光了。

修 復 問 題 b u g


數(shù)據(jù)編輯器
修復了模型數(shù)據(jù)節(jié)點的額外動畫沒有正確被重定向的問題。
修復了模型數(shù)據(jù)節(jié)點的額外動畫無法被設置別名的問題。
修復了擁有碰撞半徑的物品在被拾取后依然會在原地留下碰撞阻擋非英雄單位的問題。
修復了部分模型表現(xiàn)在附加到單位身上后陰影錯位的問題。
觸發(fā)編輯器
修復了『修改單位血條模版』觸發(fā)器錯誤地出現(xiàn)在了服務端而非客戶端的問題。(用戶可以使用這一觸發(fā)器動作動態(tài)修改一個單位所使用的血條,若設為空,則會隱藏血條)
修復了遍歷數(shù)組、Map、簡單表語句中的語句變量無法在『變量』選項卡中被選到的問題。
修復了條件分支語句和賦值語句在被禁用后,保存地圖再次打開會使它們的禁用狀態(tài)消失的問題。
修復了在服務端和客戶端之間復制內容導致的錯誤。
修復了獲取指定Buff上Buff單位組的函數(shù)。
修復了預設值選擇界面中,驗證器代碼的預設值顯示了兩份的問題。
UI編輯器
修復了聊天庫在一些情況下報錯的問題。
修復了『多功能格子』控件在拖入UI編輯器時報錯的問題。
官方技能樣例
修復了暴風雪技能的冰片在特定情況下無法被顯示的問題。
編輯器信息列表
修復了部分觸發(fā)器出錯時僅僅顯示了一句『co.lua錯誤』的問題。這個問題是此前所添加的觸發(fā)器線程控制功能所導致的。
預制功能
修復了技能搖桿和自定義搖桿所觸發(fā)的搖桿按下事件和搖桿移動事件沒有正確給出搖桿方向和距離參數(shù)的問題。
修復了『背包面板』和『拾取』圖標在點擊的時候會觸發(fā)“背后”單位的點擊事件的問題。