国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

原神雷蛇燈效的探究與利用

2021-11-29 15:21 作者:克莉絲諾  | 我要投稿

在2.3版本的更新中,原神增加了對(duì)雷蛇燈效的支持,本文對(duì)這一功能進(jìn)行了探究與利用。

注意:本文僅作為過程記錄,非詳細(xì)教程,轉(zhuǎn)載請(qǐng)注明出處。


首先來到雷蛇的英文官網(wǎng),在Chroma Workshop的Games里找到原神,可以看到原神的燈效機(jī)制:

- 在登陸界面和畫面配合

- 在角色選擇界面和當(dāng)前角色的元素屬性配合

- 在地圖上和當(dāng)前角色的元素屬性配合

- 施放元素爆發(fā)時(shí)和元素屬性配合

- 在武器詳情界面和武器星級(jí)配合

- 在祈愿時(shí)和獲得的角色或武器星級(jí)配合

雖然手頭沒有支持雷蛇Chroma燈效的設(shè)備,但雷蛇提供了一個(gè)模擬器,可以實(shí)時(shí)預(yù)覽不同類型設(shè)備的燈效。模擬器只支持SDK設(shè)置的燈效,不支持管理軟件里的設(shè)置。在使用模擬器前,先安裝雷蛇的驅(qū)動(dòng)軟件Synapse,安裝時(shí)需要勾選Chroma Connect。即使不啟動(dòng),它所安裝的一大堆后臺(tái)服務(wù)也會(huì)一直運(yùn)行,所以平時(shí)不用打開。無論是Synapse還是模擬器都會(huì)強(qiáng)制安裝到C盤,比較煩人。

從模擬器的預(yù)覽可以看出,除了祈愿是固定單色之外,其他情況的燈效應(yīng)該都是循環(huán)的圖像,且所有類型的設(shè)備燈效參數(shù)相同。祈愿的燈效只在角色或武器的圖片跳出時(shí)出現(xiàn);元素爆發(fā)時(shí)圖像變化更快,但不確定是否是同一組圖像。圖像的顏色范圍較大,在模擬器里看到的顏色相對(duì)連貫,但從實(shí)物視頻來看效果并不理想:巖元素的淺棕和深棕色變成了黃色和粉色;火元素的橙紅色變成了淺黃色和淺粉色;冰元素和水元素的區(qū)分沒有模擬器中明顯;部分圖案變化時(shí)會(huì)閃現(xiàn)雜色。圖像的變化速度也比較大,無論是能看出圖案的鍵盤能還是其他燈較少的設(shè)備都閃得很快。雖然實(shí)際設(shè)備一般自帶柔光,可以緩解閃爍,但看起來仍然比較奇怪。Chroma?SDK提供的API是可以對(duì)6種設(shè)備類型設(shè)置不同的參數(shù)的,也可以對(duì)單個(gè)設(shè)備設(shè)置。所以目前原神對(duì)雷蛇燈效的設(shè)置是比較偷懶的:沒有對(duì)不同類型的設(shè)備分開設(shè)置,沒有優(yōu)化閃爍過快的問題,也沒有優(yōu)化實(shí)際設(shè)備的色差問題。

看完了燈效效果,接下來研究如何在沒有Chroma設(shè)備的情況下利用燈效。首先需要研究如何拿到燈效參數(shù)。從SDK可以得知游戲?qū)粜У脑O(shè)置是通過調(diào)用雷蛇的動(dòng)態(tài)庫完成的,動(dòng)態(tài)庫安裝在系統(tǒng)目錄且有數(shù)字簽名。游戲調(diào)用的時(shí)候會(huì)驗(yàn)證簽名,驗(yàn)證不通過則不會(huì)開啟功能,所以替換文件行不通,而其他在內(nèi)存里進(jìn)行的方法會(huì)被當(dāng)成外掛,也是不可行的。

這時(shí)候就該模擬器發(fā)揮作用了,只要能仿照它接收燈效參數(shù),就可以達(dá)到目的。模擬器可以在Github上的razerofficial/ChromaEmulator下載,目前還在測試階段,版本為2.1.1,以后可能會(huì)改動(dòng)。觀察模擬器目錄可以確定是用electron寫的,解包之后發(fā)現(xiàn)代碼沒有做混淆。包的里外各有一個(gè)ChromaEmulatorService.exe,在任務(wù)管理器查看命令行可知是包里的在實(shí)際運(yùn)行,是和模擬器同時(shí)運(yùn)行的服務(wù)程序。閱讀模擬器的代碼可知它是通過websocket通信來獲得燈效參數(shù)的,通信的對(duì)象就是服務(wù)程序。只要手動(dòng)運(yùn)行該程序,用同樣的方法通信,就能拿到燈效參數(shù),解析后得到每個(gè)燈的RGB顏色值。

拿到燈效顏色后,接下來研究如何應(yīng)用到自己的鍵盤上。本人的鍵盤配置為一個(gè)可以單鍵設(shè)置背光的主鍵盤和一個(gè)只能統(tǒng)一設(shè)置背光的小鍵盤。主鍵盤的驅(qū)動(dòng)軟件比較難搞,但是小鍵盤的驅(qū)動(dòng)軟件也是electron寫的,所以可以研究一下。解包后發(fā)現(xiàn)代碼做了混淆,好在操作設(shè)備的方法名都在,分析一番可知是通過node-hid讀寫HID設(shè)備實(shí)現(xiàn)功能的,照葫蘆畫瓢即可讀寫背光顏色。該鍵盤的背光是通過亮度、色相和飽和度設(shè)置的,即HSV模型,而燈效顏色是RGB顏色,所以需要進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換公式可以在維基百科查到。

讀寫HID時(shí)遇到了一個(gè)坑,記錄如下。一般打開設(shè)備時(shí)使用的是設(shè)備的兩個(gè)ID,但是測試時(shí)發(fā)現(xiàn)不能正常讀寫。枚舉設(shè)備可以發(fā)現(xiàn)有若干ID相同但路徑不同的設(shè)備,使用ID只能打開其中某一個(gè)。解決的方法是枚舉出所有該ID對(duì)應(yīng)的路徑,再使用路徑打開設(shè)備,進(jìn)行一次測試讀寫,從而找到正確的設(shè)備。

為了節(jié)約生命,使用Python實(shí)現(xiàn)所有功能。首先運(yùn)行模擬器的服務(wù)程序,然后使用websocket-client進(jìn)行通信,最后在消息處理函數(shù)中用hidapi設(shè)置鍵盤背光顏色。獲取燈效參數(shù)時(shí)選擇了只有2個(gè)LED的設(shè)備,但原神給出的顏色仍然很閃,目前做了簡單的平滑處理。代碼已上傳到Github上的Xrysnow/MyChromaDevice。

原神雷蛇燈效的探究與利用的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
三门峡市| 饶平县| 巴东县| 中方县| 定兴县| 托里县| 新安县| 漯河市| 天气| 樟树市| 康乐县| 普宁市| 拉孜县| 清镇市| 溧水县| 寿光市| 吴堡县| 南康市| 盐池县| 上栗县| 壶关县| 上高县| 修武县| 木里| 鄂温| 大埔区| 东宁县| 会同县| 八宿县| 任丘市| 双城市| 巨野县| 玛纳斯县| 怀远县| 崇信县| 岢岚县| 新巴尔虎左旗| 利辛县| 高唐县| 咸宁市| 尚志市|