《2023年7月17日星火編輯器更新日志》


各位B站上的家人們,大家好
貼心的星火編輯器
趕來(lái)咯!
這周我們的更新
主打一個(gè)“聽(tīng)勸”
看看我們根據(jù)用戶反饋
究竟更新了哪些內(nèi)容吧!

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


開(kāi)發(fā)者中心
開(kāi)發(fā)者中心的相關(guān)配置和數(shù)據(jù)從此刻起會(huì)進(jìn)行Canary版本和創(chuàng)意工坊版本的隔離,大家如果Canary測(cè)試發(fā)現(xiàn)游戲模式為空,請(qǐng)去創(chuàng)作者中心重新配置一下Canary分類(lèi)下的配置。
施法錯(cuò)誤提示信息優(yōu)化
我們優(yōu)化了技能施放錯(cuò)誤時(shí)在屏幕上顯示的錯(cuò)誤信息(如:魔法不足,無(wú)法對(duì)指定目標(biāo)使用等)的提示邏輯。今后,只有玩家所下達(dá)的指令出錯(cuò)時(shí)才會(huì)顯示錯(cuò)誤信息,在這次改動(dòng)之前,我們的技能錯(cuò)誤信息會(huì)在當(dāng)前玩家的主控單位技能遇到任何錯(cuò)誤時(shí)顯示。這曾經(jīng)導(dǎo)致某些地圖使用連續(xù)施法,或者連續(xù)使用觸發(fā)器對(duì)主控單位下達(dá)指令時(shí)會(huì)頻繁地顯示錯(cuò)誤信息。今后,腳本、觸發(fā)器和數(shù)編所下達(dá)的技能指令遇到錯(cuò)誤而導(dǎo)致無(wú)法執(zhí)行時(shí),引擎會(huì)靜默處理,只對(duì)玩家(真人)所下達(dá)的技能指令錯(cuò)誤作出響應(yīng)。
此外,我們今后也將逐步支持技能搖桿對(duì)玩家的非主控單位下達(dá)指令的功能,令玩家可以同時(shí)操作一個(gè)以上的單位。相應(yīng)地,技能錯(cuò)誤信息今后會(huì)針對(duì)玩家對(duì)任何屬于自己的單位所下達(dá)指令時(shí)遇到的錯(cuò)誤作出響應(yīng),而不僅僅是只顯示主控單位遇到的錯(cuò)誤。
于此同時(shí),這次針對(duì)技能施法錯(cuò)誤信息的重構(gòu)也提高了施法錯(cuò)誤信息傳輸包體的容量,今后在需要顯示技能錯(cuò)誤消息時(shí),服務(wù)端只會(huì)對(duì)客戶端傳輸一串錯(cuò)誤數(shù)字代碼,而不會(huì)將整個(gè)錯(cuò)誤消息傳遞過(guò)去,大大減少錯(cuò)誤信息所占據(jù)的網(wǎng)絡(luò)流量。
此次重構(gòu)也使技能施法錯(cuò)誤提示信息支持了多語(yǔ)言化。為今后星火編輯器的全面多語(yǔ)言支持提供了基礎(chǔ)。
賬號(hào)連入與重連的事件變化
星火編輯器正在為允許玩家中途加入游戲做準(zhǔn)備,于此相對(duì)應(yīng)地,我們對(duì)玩家賬號(hào)的連入和重連邏輯進(jìn)行了一些重定義,而玩家連入相關(guān)的事件也有了對(duì)應(yīng)的改動(dòng)。
由于中途加入游戲邏輯的加入,我們無(wú)法再將在游戲開(kāi)始階段后連入的玩家一概視為重連玩家,因?yàn)樵撏婕铱赡苁且粋€(gè)全新的玩家賬號(hào),甚至可能出現(xiàn)一個(gè)特定槽位的舊玩家退出游戲后,又有一個(gè)新的賬號(hào)連入了同一個(gè)槽位。
玩家-連入事件
增加了【觸發(fā)事件的.是否在游戲開(kāi)始后連入】的事件參數(shù)
增加了連入的【觸發(fā)事件的.用戶虛擬Id】的參數(shù)。對(duì)于將來(lái)配置為允許中途加入的游戲,開(kāi)發(fā)者應(yīng)當(dāng)嚴(yán)格地判定每次連入的用戶虛擬Id是否與該玩家槽位的舊玩家賬號(hào)Id一致,以免出現(xiàn)問(wèn)題。
【觸發(fā)事件的.是否為重連】事件參數(shù)保留,但僅會(huì)在連入的玩家與舊有的玩家賬號(hào)Id一致時(shí)才會(huì)為真。當(dāng)一個(gè)新的玩家賬號(hào)頂替同一玩家槽位的舊玩家賬號(hào)時(shí),不再視為重連。
玩家-重連事件
改名為【玩家-在游戲開(kāi)始后連入】事件以準(zhǔn)確描述其邏輯。請(qǐng)使用了該事件的開(kāi)發(fā)者盡快將它改回玩家-連入事件,并使用是否為重連參數(shù)來(lái)判定是否是重連玩家。
物品技能與物品Buff等級(jí)
眾所周知,物品是通過(guò)關(guān)聯(lián)主動(dòng)技能和Buff來(lái)實(shí)現(xiàn)它們的主動(dòng)和被動(dòng)效果的。但很多時(shí)候我們或許希望某個(gè)特定物品所附加的Buff或者技能等級(jí)不是默認(rèn)的1級(jí)。
比如我們可能有一個(gè)物品提供一個(gè)1級(jí)光環(huán),又有另一個(gè)物品提供這個(gè)光環(huán)的2級(jí)版本。此時(shí),重新制作一個(gè)等級(jí)2的新光環(huán)似乎是一個(gè)不方便的實(shí)踐。為此,我們?cè)谖锲窋?shù)據(jù)中增加了一個(gè)等級(jí)字段。
若物品的等級(jí)大于0,則會(huì)直接影響物品附加的主動(dòng)技能的等級(jí)以及物品所附加的Buff效果的效果樹(shù)等級(jí)。注意,物品所附加的Buff效果不存在引發(fā)技能,故不應(yīng)該用獲取引發(fā)技能的等級(jí)的方式來(lái)獲取Buff的等級(jí),但可以直接獲取效果節(jié)點(diǎn)的等級(jí)。
若物品等級(jí)為0,則會(huì)回退到默認(rèn)的邏輯。技能的等級(jí)將由技能的初始等級(jí)字段決定。
效果樹(shù)可視化調(diào)試作弊碼
為了方便用戶理解調(diào)試數(shù)據(jù)編輯器中效果樹(shù)的概念,我們?cè)黾尤碌淖鞅状aVisualizeRefParam,縮寫(xiě)為vrp。
用戶可以在作弊碼輸入框輸入VisualizeRefParam來(lái)打開(kāi)和關(guān)閉效果樹(shù)可視化模式。效果樹(shù)可視化模式下,引擎會(huì)有以下的變化:


當(dāng)任何一個(gè)效果節(jié)點(diǎn)執(zhí)行時(shí),客戶端會(huì)在節(jié)點(diǎn)的位置顯示節(jié)點(diǎn)的名稱(chēng),并在當(dāng)前節(jié)點(diǎn)及其父節(jié)點(diǎn)之間連線,目標(biāo)為點(diǎn)的節(jié)點(diǎn)會(huì)顯示一個(gè)圓圈提示節(jié)點(diǎn)的位置。而目標(biāo)為單位的節(jié)點(diǎn)則會(huì)在對(duì)應(yīng)單位上顯示節(jié)點(diǎn)名稱(chēng)。
對(duì)于有持續(xù)時(shí)間的節(jié)點(diǎn):如周期性節(jié)點(diǎn)和延遲節(jié)點(diǎn),節(jié)點(diǎn)的標(biāo)志和名稱(chēng)會(huì)持續(xù)顯示直到效果結(jié)束。
對(duì)于有范圍概念的節(jié)點(diǎn):如圓形搜索、矩形搜索、扇形搜索和圓內(nèi)隨機(jī)點(diǎn)效果,會(huì)在節(jié)點(diǎn)執(zhí)行時(shí)顯示各自對(duì)應(yīng)的實(shí)際范圍和形狀。
對(duì)于存在發(fā)射位置和目標(biāo)位置概念的節(jié)點(diǎn):如發(fā)射投射物節(jié)點(diǎn)、添加移動(dòng)器節(jié)點(diǎn)、瞬移節(jié)點(diǎn),會(huì)顯示各自發(fā)射點(diǎn)和目標(biāo)點(diǎn)之間的連線。
我們相信可視化的效果樹(shù)能有效地幫助用戶了解到效果樹(shù)的實(shí)際組成、位置概念以及運(yùn)行中的邏輯。
搖桿觸控信息和多點(diǎn)觸控判定的初步支持
我們優(yōu)化了UI編輯器中技能搖桿和移動(dòng)搖桿的,為它們加入用戶廣為要求的“搖桿移動(dòng)按下”,“搖桿移動(dòng)進(jìn)行”,“搖桿移動(dòng)結(jié)束”事件,在所有這三個(gè)事件中,用戶都可以通過(guò)UI編輯器來(lái)獲得玩家所按下的搖桿的方向、距離以及觸控Id參數(shù),技能控件還能額外獲得搖桿綁定的技能參數(shù)。
觸控Id的概念:當(dāng)玩家有多個(gè)手指同時(shí)點(diǎn)擊觸摸屏?xí)r,UI系統(tǒng)會(huì)對(duì)每個(gè)觸控點(diǎn)進(jìn)行編號(hào)。使用戶可以獲取并區(qū)分不同的觸摸輸入。觸控Id為整數(shù)。
我們還在UI編輯器中增加了一個(gè)更為通用的“搖桿”類(lèi)型控件。它是現(xiàn)有技能搖桿和移動(dòng)搖桿的基類(lèi)控件,允許用戶進(jìn)行更多的自定義。當(dāng)然,搖桿控件也同樣可以獲取以上三種參數(shù)。
此外,我們也優(yōu)化了客戶端觸發(fā)器中的獲取鼠標(biāo)位置API,現(xiàn)在用戶可以通過(guò)輸入不同的觸控Id來(lái)獲取多個(gè)不同觸控點(diǎn)在屏幕上的位置(此函數(shù)雖然名為鼠標(biāo)位置,但也可以獲取任何形式的觸控坐標(biāo),如手指)。
物品品質(zhì)表現(xiàn)
在數(shù)據(jù)編輯器的『通用背包配置』中,每個(gè)品質(zhì)節(jié)點(diǎn)都可以掛接自定義的品質(zhì)表現(xiàn)。舉例而言,若在精良品質(zhì)的配置節(jié)點(diǎn)下掛接一個(gè)綠色光柱的表現(xiàn)節(jié)點(diǎn)。那么在游戲中,任何精良品質(zhì)的物品出現(xiàn)在地上時(shí)都會(huì)出現(xiàn)對(duì)應(yīng)的綠色光柱。
有了這一功能后,用戶將不再需要通過(guò)觸發(fā)器單獨(dú)地針對(duì)每個(gè)物品添加不同的品質(zhì)表現(xiàn)。
我們?yōu)椴煌钠焚|(zhì)配置了不同的默認(rèn)表現(xiàn),對(duì)默認(rèn)表現(xiàn)不滿意的用戶可以對(duì)它們進(jìn)行進(jìn)一步的自定義。
此外,在客戶端觸發(fā)器中,用戶將可以直接獲取物品身上的品質(zhì)表現(xiàn)對(duì)象列表。

商店合成預(yù)置功能改動(dòng)
我們重新梳理了商店合成的預(yù)制功能,并解決了許多用戶廣泛反饋的痛點(diǎn):
我們?cè)跀?shù)據(jù)編輯器的獎(jiǎng)勵(lì)數(shù)據(jù)中增加了新字段:在商店中合成自動(dòng)購(gòu)買(mǎi)缺失獎(jiǎng)勵(lì)。在嘗試在商店中合成時(shí),如果缺少某個(gè)材料,且該材料勾選了這一標(biāo)旗的獎(jiǎng)勵(lì),則會(huì)嘗試自動(dòng)購(gòu)買(mǎi)/合成這一材料。
如果沒(méi)有勾選這一字段,商店合成系統(tǒng)將不會(huì)再嘗試自動(dòng)合成子素材。
商店合成的自動(dòng)購(gòu)買(mǎi)今后只會(huì)嘗試購(gòu)買(mǎi)當(dāng)前商店能夠買(mǎi)到的物品。
此前的邏輯是可以買(mǎi)到任何材料獎(jiǎng)勵(lì),即使該獎(jiǎng)勵(lì)沒(méi)有被配置在商店內(nèi)。這導(dǎo)致如果一個(gè)合成材料沒(méi)有配置任何價(jià)格和子合成材料,玩家可以免費(fèi)地憑空獲得該合成材料,這顯然是不合邏輯的。
增加了“Moba商店物品獎(jiǎng)勵(lì)”模版,并配置了適合Moba商店合成物品的對(duì)應(yīng)默認(rèn)值。
自定義TypeScript腳本文件夾
自從此前版本星火加入了自定義TS和Lua腳本的支持后。我們收到了一些同學(xué)的反饋,認(rèn)為每個(gè)TypeScript腳本文件都需要在觸發(fā)編輯器中聲明一次的流程過(guò)于繁瑣。
為了方便用戶的使用體驗(yàn),在這個(gè)版本中我們?cè)黾恿俗远xTypeScript腳本文件夾的功能,用戶可以在觸發(fā)器中建立一個(gè)指定名字的自定義文件夾,此后,用戶在該文件夾中新建的所有.ts文件都將被自動(dòng)編譯,無(wú)需逐一聲明。我們今后也將會(huì)酌情地提升腳本用戶的使用體驗(yàn)。
觸發(fā)編輯器
現(xiàn)在右鍵點(diǎn)擊任何觸發(fā)器元素可以跳轉(zhuǎn)到定義。方便用戶找到聲明和實(shí)現(xiàn)該觸發(fā)器元素的地方。此外,當(dāng)在觸發(fā)編輯器中勾選顯示依賴庫(kù)時(shí),跳轉(zhuǎn)到定義功能將可以直接跳轉(zhuǎn)到官方庫(kù)中對(duì)應(yīng)API的聲明位置,方便用戶查看對(duì)應(yīng)元素的文檔。
觸發(fā)編輯器和數(shù)據(jù)編輯器一樣,現(xiàn)在也增加了前進(jìn)和后退按鈕,用戶可以通過(guò)這一功能后退到之前查看過(guò)的頁(yè)面。我們今后還將進(jìn)一步優(yōu)化觸發(fā)編輯器的導(dǎo)航功能。
現(xiàn)在服務(wù)端和客戶端都可以獲得指定物品上面所附加的詞綴數(shù)組了。
優(yōu)化了多數(shù)條件下的地圖觸發(fā)器保存速度。
客戶端也有獲取單位身上所有的技能API了。(目前而言,客戶端獲取非主控單位的技能還比較困難,我們今后會(huì)對(duì)此作出改進(jìn))
集合和數(shù)組現(xiàn)在都增加了獲取其下一個(gè)隨機(jī)元素和指定個(gè)數(shù)個(gè)隨機(jī)元素的方法。
隨著效果樹(shù)可視化調(diào)試作弊碼功能的加入,我們也在觸發(fā)器中加入了對(duì)應(yīng)的畫(huà)點(diǎn)、畫(huà)線、畫(huà)圈、畫(huà)扇形、畫(huà)四邊形、顯示調(diào)試文字的API。它們將由全新的表現(xiàn)類(lèi)型:“調(diào)試?yán)L圖表現(xiàn)”來(lái)統(tǒng)一控制。請(qǐng)注意,調(diào)試?yán)L圖表現(xiàn)中的調(diào)試文字與數(shù)據(jù)編輯器中新增的“字體表現(xiàn)”屬于不同種類(lèi)的表現(xiàn),字體表現(xiàn)是3D字體。
現(xiàn)在客戶端觸發(fā)器也可以選到“數(shù)據(jù)編輯器表”類(lèi)型了(所有數(shù)編表類(lèi)型的父類(lèi))。
通用背包細(xì)節(jié)優(yōu)化
上一次UI更新后,我們發(fā)現(xiàn)了通用UI和游戲自定義模塊之間可能存在交互沖突的問(wèn)題。
近期我們又對(duì)通用背包進(jìn)行了一些細(xì)節(jié)的調(diào)整:
可以通過(guò)觸發(fā)語(yǔ)句只打開(kāi)A類(lèi)或者B類(lèi)的背包,解決通用背包和其他模塊的遮擋問(wèn)題
剪影不再是必須的元素,可以通過(guò)去除剪影縮小背包的模塊尺寸
優(yōu)化了自定義背包和關(guān)閉、丟棄交互的兼容性
優(yōu)化了部分極端情況下的UI適配問(wèn)題
這些細(xì)節(jié)調(diào)整當(dāng)前還停留在開(kāi)發(fā)環(huán)境,我們會(huì)在本周內(nèi)完成測(cè)試并更新至線上版本
數(shù)據(jù)編輯器
我們隱藏了移除單位效果節(jié)點(diǎn)的目標(biāo)類(lèi)型字段,因?yàn)橐瞥龁挝恍Ч?jié)點(diǎn)只有當(dāng)目標(biāo)為單位時(shí)才有意義。隱藏該字段有助于減少用戶誤將該字段設(shè)置為點(diǎn)目標(biāo)時(shí)的錯(cuò)誤。
我們優(yōu)化了官方物品欄庫(kù)的邏輯,使得物品在被拾取狀態(tài)下時(shí),默認(rèn)無(wú)法再被區(qū)域搜索效果搜索到。(盡管如此,我們?nèi)匀唤ㄗh用戶在配置搜索效果時(shí),如果該搜索效果不應(yīng)對(duì)物品生效,則應(yīng)當(dāng)保持目標(biāo)過(guò)濾中的”物品”項(xiàng)為“不允許”,這是一種良好的開(kāi)發(fā)實(shí)踐)
我們優(yōu)化了在數(shù)據(jù)編輯器中新建藍(lán)圖時(shí)起名的體驗(yàn)。新建藍(lán)圖時(shí)將允許起任何名稱(chēng),即使已經(jīng)存在了和當(dāng)前藍(lán)圖擁有相同顯示名稱(chēng)的藍(lán)圖。(比如,可以有兩個(gè)狼人)請(qǐng)注意擁有相同名稱(chēng)的藍(lán)圖間,彼此的內(nèi)部Id實(shí)際上也是不同的。
我們?cè)黾恿巳碌谋憩F(xiàn)類(lèi)型:字體表現(xiàn)。允許在游戲場(chǎng)景中創(chuàng)建和顯示3D平面文字。

我們對(duì)發(fā)射投射物節(jié)點(diǎn)進(jìn)行了一些特殊處理,使其下所掛接的播放動(dòng)畫(huà)節(jié)點(diǎn)擁有了和默認(rèn)邏輯下不同的功能:當(dāng)發(fā)射投射物節(jié)點(diǎn)掛接了一個(gè)播放動(dòng)畫(huà)表現(xiàn)時(shí),該表現(xiàn)會(huì)令對(duì)應(yīng)的投射物單位在投射物移動(dòng)器運(yùn)作期間內(nèi)播放指定的動(dòng)畫(huà)。
數(shù)據(jù)編輯器中的Buff節(jié)點(diǎn)增加了“屬性最大值”字段,可以顯示Buff所附加的單位對(duì)應(yīng)屬性的最大值。當(dāng)有多個(gè)限制同一屬性的最大值的Buff存在時(shí),單位的對(duì)應(yīng)屬性會(huì)被限制到其中所設(shè)置最小的那個(gè)值。當(dāng)每個(gè)實(shí)例消失或添加時(shí),屬性最大值都會(huì)重新計(jì)算。使用范例:有時(shí)候我們希望將單位定身,但卻依然想要允許它被瞬移,此時(shí)我們就不能使用會(huì)使單位無(wú)法瞬移的定身標(biāo)記,但卻可以將單位的移動(dòng)速度最大值限制為0。
我們模型素材節(jié)點(diǎn)增加了全新的“屏外同步”字段。在默認(rèn)情況下,星火編輯器會(huì)優(yōu)化玩家屏幕外看不見(jiàn)的模型運(yùn)算,減少不必要的CPU和顯卡消耗。但在某些極端情況下,某些模型動(dòng)畫(huà)的運(yùn)動(dòng)幅度可能過(guò)大,導(dǎo)致模型或者角色在運(yùn)動(dòng)過(guò)程中會(huì)暫時(shí)地離開(kāi)屏幕可見(jiàn)范圍,但又會(huì)在之后恢復(fù)。在這種情況下,由于星火編輯器的優(yōu)化,這類(lèi)動(dòng)畫(huà)可能會(huì)在角色離開(kāi)屏幕可見(jiàn)范圍后就暫停動(dòng)畫(huà),使模型卡在屏幕外回不來(lái)。為此,我們特地為此類(lèi)模型增加了這一字段。勾選了屏外同步的模型素材在更新動(dòng)畫(huà)時(shí)不會(huì)受到屏幕可見(jiàn)范圍的影響。顯而易見(jiàn)的,出于執(zhí)行效率的考慮,我們建議用戶僅在必要的時(shí)候使用這一選項(xiàng)。
UI編輯器
增加了小地圖類(lèi)型的UI控件,我們將在今后對(duì)小地圖相關(guān)功能提供更加全面的支持。

修 復(fù) 問(wèn) 題 b u g


錯(cuò)誤修復(fù)
修復(fù)了地圖設(shè)置中,『正常視野』下無(wú)法看到敵方粒子表現(xiàn)的問(wèn)題。
修復(fù)了觸發(fā)器服務(wù)端斷點(diǎn)調(diào)試失效的問(wèn)題
修復(fù)了在數(shù)據(jù)編輯器中使用單位變量ABC時(shí),節(jié)點(diǎn)提示信息會(huì)提示你使用了點(diǎn)變量的錯(cuò)誤。(該錯(cuò)誤僅僅是編輯器中的顯示錯(cuò)誤,并不影響實(shí)際邏輯)
修復(fù)了雙擊觸發(fā)器元素進(jìn)行修改時(shí),觸發(fā)器元素選擇框沒(méi)有正確定位到原有值的問(wèn)題。
修復(fù)了客戶端獲取物品品質(zhì)函數(shù)的錯(cuò)誤。
修復(fù)了當(dāng)AI嘗試施放向量技能時(shí)會(huì)偶現(xiàn)腳本報(bào)告”對(duì)空值y2進(jìn)行四則運(yùn)算”的錯(cuò)誤。
修復(fù)了觸發(fā)器數(shù)組遍歷會(huì)反復(fù)輸出索引0的元素的問(wèn)題。
修復(fù)了數(shù)據(jù)編輯器中使用動(dòng)畫(huà)別名修改Idle動(dòng)畫(huà)失效的問(wèn)題。
修復(fù)了偶現(xiàn)的中文路徑導(dǎo)致的報(bào)錯(cuò)問(wèn)題。
修復(fù)了由于路徑生成問(wèn)題導(dǎo)致Canary上看不到模型的問(wèn)題
修復(fù)了品質(zhì)為0的裝備和物品無(wú)法丟棄的問(wèn)題
修復(fù)了用戶昵稱(chēng)、用戶名在部分情況下獲取失敗的問(wèn)題
修復(fù)了多語(yǔ)言ID中帶有單引號(hào)導(dǎo)致文件加載失敗的問(wèn)題
修復(fù)了雙擊觸發(fā)器元素時(shí)自動(dòng)定位原先元素失敗的問(wèn)題
修復(fù)了局內(nèi)聊天的昵稱(chēng)異常問(wèn)題
修復(fù)了部分情況下開(kāi)發(fā)者無(wú)法正常提交更新的問(wèn)題