最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

【群星mod制作】批處理物種肖像及注冊

2023-06-14 02:15 作者:lNekoMT  | 我要投稿

分享一下自制mod時(shí)遇到的一種批處理文件的問題,因?yàn)楸容^麻煩,就直接做了流程式方案,去解決批量注冊肖像的問題。

素材準(zhǔn)備

下載

只有三個(gè)要求:高清高清還是TMD高清(其實(shí)不一定,自己喜歡就完事了)

上面我瞎說的

圖片集最好具有以下幾點(diǎn):高清,基本無背景(換言之,基本是透明背景,JPG格式的文件基本就要出問題了),大小最好超過1280×360。

如果說下載的文件有背景,或有大部分區(qū)域不是透明的,或是JPG文件,得酌情考慮扣一扣圖。

PS處理

PS處理所要達(dá)到的目的,是將下載過來的圖片,制成1280×360大小的png文件(當(dāng)然,直接制成DDS文件應(yīng)該也可以,但是直接儲(chǔ)存為DDS文件,是不能夠作為PS的動(dòng)作,從而進(jìn)行大量的文件批處理的,因此最好還是先制成PNG文件。)

去實(shí)現(xiàn)這個(gè)目的,過程相當(dāng)簡單,首先需要開啟PS的動(dòng)作功能,設(shè)置動(dòng)作圖層以及動(dòng)作。

其次,只要將目標(biāo)文件置于圖層中間(大部分情況是這樣,由于要用PS的動(dòng)作實(shí)現(xiàn)圖片批處理,所以過多的移動(dòng)圖層位置,有可能會(huì)導(dǎo)致批處理的時(shí)候有些文件錯(cuò)位,屆時(shí)需要額外處理錯(cuò)位文件。當(dāng)然,如果原圖片集的位置就比較合適,那么批處理也就方便很多。)

然后就是需要進(jìn)行畫布大小的修改,直接再PS內(nèi)部更改畫布大小就行了,當(dāng)然需要注意,要根據(jù)你的圖片集的立繪位置,決定畫布改變大小時(shí)的中心點(diǎn)在哪,這也就是為什么需要提前對(duì)立繪的位置進(jìn)行調(diào)整。

最后儲(chǔ)存文件。

請(qǐng)注意,上述操作全都在一個(gè)動(dòng)作內(nèi)。

完成動(dòng)作錄制之后,我們就可以通過PS的批處理,來處理圖片集。

批處理成DDS文件

我們導(dǎo)出之后的圖片集是PNG格式,但是群星mod要識(shí)別的,應(yīng)該是DDS文件,我們的PS可以通過Novdia的插件,來實(shí)現(xiàn)DDS文件的導(dǎo)出,但是并不能作為動(dòng)作進(jìn)行批處理。(不要問我如何安裝Novdia的插件,自己去找,大佬們寫的群星模組教程內(nèi)有。實(shí)在不行,可以試試看GIMP軟件,免費(fèi)使用的,但是操作起來沒有PS順手就是了。)

此時(shí)我想了一計(jì)陰招,雖然不知道合不合理,但是事實(shí)證明能用。既然能跑,你管他使用手跑的還是用頭跑的呢()

我們需要找到導(dǎo)出的圖片集位置(這個(gè)是你自己決定導(dǎo)出到哪的,我怎么可能知道你導(dǎo)出到哪去。當(dāng)然我覺得應(yīng)該沒多少人會(huì)找不到

然后我們需要新建一個(gè)TXT文件,名字隨意,在里面輸入:

ren?*.png*?*.dds

然后保存,退出,將.txt文件的后綴改成.bat。

這樣一個(gè)更改格式的批處理命令就做好了。

這個(gè)命令實(shí)現(xiàn)的是,像我們改txt文件為bat文件一樣,將所有(也就是.png的.的含義)通通改為和原本一樣的名字,但是是.dds后綴的文件。

但事實(shí)上png改成dds文件不應(yīng)該這樣操作,這種改后綴的方式就像windows提示的那樣,可能會(huì)造成文件產(chǎn)生錯(cuò)誤,可是除了這個(gè)辦法,我也想不到其他的辦法能夠批量更改成dds。

如果PS有可供使用的接口,那應(yīng)該還可以用代碼實(shí)現(xiàn)這種功能,但是……我不會(huì)?。ǎ?/p>

所以我說,這是一計(jì)陰招。

代碼預(yù)處理

地址預(yù)處理

我們處理完圖片集之后,得到的是DDS格式的圖片集,然后我們最好提前將你的圖片集歸類(當(dāng)然不歸類也行),放入你的模組的/gfx/models/portraits/大類/小類內(nèi),這樣方便后續(xù)操作。(大類并不是說你的文件夾的名字叫大類,小類同理,文件夾的名字都是自設(shè)的,但是最好不要或者都可以說一定不要是中文,不確定游戲是否能夠正常讀取中文文件。而且要注意 /gfx/models/portraits/?不能更改,必須保持文件夾名字一致

再之后,我們將所有的圖片選中,右鍵復(fù)制地址,然后同目錄下新建一個(gè)TXT文件,將復(fù)制的地址粘貼進(jìn)去。這樣,我們就得到了所有圖片的地址。

但是這樣是不夠的,除非你并不想要上傳mod,否則是一定需要將圖片集放在你的mod文件夾內(nèi),因此,一開始圖片集的地址是不能使用的,而且導(dǎo)入idea的時(shí)候也是需要按照p社語言來注冊的。

注冊時(shí)的格式如下:

sniper_32_3=?{?textureFile=?"gfx/models/portraits/*肖像大類*/*小類*/*.dds"}

而我們得到的地址,基本上都是C: D: E:等等磁盤下的格式,與注冊時(shí)的代碼有所區(qū)別。此時(shí)需要運(yùn)用txt文件的查找替換功能(所以其實(shí)word也可以做到,但是一下用txt講述),不過此時(shí)就能看出為什么要提前將圖片集放入mod文件夾內(nèi)了,不然你的地址文件都不包含/gfx/models/portraits/,這樣后續(xù)操作會(huì)變得很麻煩。

我們找到文件編輯欄內(nèi)的替換,或者按下 CTRL+R,選取任意一行的gfx/models/portraits/前面的所有內(nèi)容,復(fù)制粘貼進(jìn)替換的上面一欄,然后將:

=?{?textureFile=?"

輸入到替換欄下面一欄,點(diǎn)擊全部替換。

同理,復(fù)制.dds 更改為 .dds"}
按上述操作,應(yīng)該就能夠把你的所有地址改為:
= { textureFile= "gfx/models/portraits/肖像大類/小類/ (圖片名).dds "}
形式。

導(dǎo)入EXCEL

誰都能發(fā)現(xiàn),我們按照上述操作之后,地址文件缺少類似 sniper_32_3= 的內(nèi)容。這是你注冊肖像時(shí),你個(gè)這一張立繪取的名字,你當(dāng)然可以取你喜歡的名字,但是這不方便批處理,所以不建議使用。

要添加這一內(nèi)容,我們可以通過excel實(shí)現(xiàn)。

因?yàn)槲易龅氖侵鄣男は裉幚?,所以,我將肖像注冊分成了職業(yè)干員編號(hào)立繪編號(hào)。

基于這種命名方式,我們新建一個(gè)excel文件,我們把第一列(A)、第二列(B)、第四列(D)分別作為職業(yè)、干員編號(hào)、立繪編號(hào),第三列(C)填入。

然后在excel內(nèi)導(dǎo)入你之前做好的地址文件的地址(獲取地址很簡單,在之前的模組文件夾內(nèi),右鍵你的地址文件夾,復(fù)制它的地址粘貼進(jìn)excel文件即可)。

在設(shè)置列的時(shí)候,需要根據(jù)你自己的需求進(jìn)行處理。

舉個(gè)自己的例子。
guard_11_1= { textureFile= "gfx/models/portraits/rhodes_island/guard/立繪_幽靈鯊_1.dds"}
這是我的一張圖片,你可以看到,職業(yè)為guard,干員編號(hào)為11,立繪編號(hào)為1

而我還有

guard_11_2= { textureFile= "gfx/models/portraits/rhodes_island/guard/立繪幽靈鯊_2.dds"} guard_11_3= { textureFile= "gfx/models/portraits/rhodes_island/guard/立繪幽靈鯊skin1.dds"} guard_12_1= { textureFile= "gfx/models/portraits/rhodes_island/guard/立繪羽毛筆_1.dds"}
這三張圖片

我要通過excel做到的是,區(qū)分干員的名字,每一行檢測干員名字是否與上一行不同,不同則編號(hào)加一;相同則立繪編號(hào)加一。

那么我們的思路很清晰。

地址文件的內(nèi)容基本上都是:
= { textureFile= "gfx/models/portraits/rhodes_island/guard/立繪_羽毛筆_1.dds"}

那么excel設(shè)置列的時(shí)候,我們要在
= { textureFile= "gfx/models/portraits/rhodes_island/guard/立繪_ 處,做出中斷

這樣以后再導(dǎo)入excel,我們應(yīng)該能夠得到在E列為
= { textureFile= "gfx/models/portraits/rhodes_island/guard/立繪_

F列為
羽毛筆_1.dds"}

這樣,初步的設(shè)定就算完成了。

另外,中文的文件夾能不能識(shí)別我不知道,但是中文的圖片文件居然可以識(shí)別是我沒想到的,本來還以為需要對(duì)文件名稱進(jìn)行批處理,不需要真是萬幸了。

公式運(yùn)用

之前說過,我們需要根據(jù)圖片名稱設(shè)置干員編號(hào)以及立繪編號(hào),這一點(diǎn)excel所具有的函數(shù)功能就能夠?qū)崿F(xiàn)。

雖然我不是很精通,但是可以用簡單粗暴卻不易維護(hù)的方式,提供一個(gè)大致思路。

我們把地址分成了E(通用地址),F(xiàn)(文件名+句末雜項(xiàng)),F(xiàn)列的開頭是干員的名字,那么我們可以在B列寫入

=IF(MID(Fn+1,1,2)=MID(Fn,1,2),Bn,Bn+1)
//n為當(dāng)前行數(shù),n0為1

MID函數(shù)是取F(n)單元格的第1個(gè)字符到第2個(gè)字符,可能會(huì)產(chǎn)生錯(cuò)誤的原因是,文件名字含有重復(fù),比如,一個(gè)圖片文件叫做瑪麗,還有個(gè)加瑪麗蘇,所以MID函數(shù)的終止位置需要自己設(shè)定。

IF判斷本行F列的前幾個(gè)字符是否與上一行一致,如果一致,則本單元格延續(xù)上一格,不一致,則加一。

D列的內(nèi)容與B列相似,就不過多贅述。

最后將公式拉至底端,就完成了神似:
sniper_32_3= { textureFile= "gfx/models/portraits/肖像大類/小類/(圖片名).dds"}
的格式。

導(dǎo)出TXT文件并再次處理

最后,只需要選中文件另存為,選擇更多格式,找到txt文件,然后隨便命名,放在自己找得到的地方。

然后我們打開文件,照理來說,導(dǎo)出后因?yàn)槲覀儗?dǎo)出了多列內(nèi)容,不提前設(shè)定的話基本上是由tab的占位符的,這個(gè)很簡單,只需要把占位符復(fù)制,替換成空值就行。

記得先不要關(guān)閉excel,后面有用!

寫入編譯器

肖像注冊

完成上述操作之后,我們應(yīng)該已經(jīng)得到了全部文件的規(guī)范化注冊代碼。

之后就是要找到mod文件內(nèi)的肖像注冊文件(.txt文件,存放在/gfx/portraits/portrais內(nèi)),寫上:

portraits?=?{

}

把你剛剛搞好的記事本內(nèi)的注冊代碼復(fù)制進(jìn)去就行了。

導(dǎo)入種族

最后,已經(jīng)是收尾工作了!

種族需要定義,需要包含各種立繪。
再在/gfx/portraits/portrais下創(chuàng)建一個(gè)txt,命名隨意,但是一定要讓自己看得懂這是啥文件。
在里面輸入:

portrait_groups={
????"uva_caster"//種群的名稱,比如我這個(gè)就是我的mod下的術(shù)士分支種族。
????default?=?{}
????game_setup?=?{}
????species?=?{}
????pop?=?{}
????leader?=?{}
????ruler?=?{}
}

這一串代碼,如果你是使用IDEA或者VSCode,那么可以直接創(chuàng)建這個(gè)格式,不用自己輸入,但是如果不是,那你也可上wiki查找這一模板。

這里有些小麻煩,我們需要獲得之前注冊的內(nèi)容,把他們?nèi)糠湃胄は窠M內(nèi)。

這樣說可能有些抽象,但是意思就是說,excel文件內(nèi)的ABCD列,我們將他們放入模板內(nèi)的大部分區(qū)域。

這里不過這樣也很簡單,你直接復(fù)制abcd列,到之前的地址文件內(nèi),再做一次替換tab占位符就行,然后全部復(fù)制到模板內(nèi)。

這樣種群的肖像設(shè)定就完成了,至于如何制作自己的種群,b站上已經(jīng)有很多內(nèi)容了,建議自行查找。


【群星mod制作】批處理物種肖像及注冊的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
平罗县| 登封市| 广元市| 志丹县| 延津县| 桐城市| 颍上县| 浪卡子县| 建平县| 内乡县| 衢州市| 巴中市| 嘉善县| 汝州市| 大同市| 遂宁市| 和田县| 绥滨县| 汝阳县| 南陵县| 中牟县| 襄汾县| 乌兰察布市| 邓州市| 英吉沙县| 荔波县| 平安县| 唐山市| 老河口市| 科技| 邹城市| 宁陕县| 裕民县| 大连市| 清新县| 德令哈市| 乌鲁木齐县| 民县| 桂平市| 昌宁县| 肇庆市|