上一篇:合併&導出篇下
經過前兩篇,我們終於將多件衣服合併成一件,並且成功的導出覆蓋了原版的服裝
現在我們只剩下最後一步了
因為我們合併了
首先要確定你的模型用的.xml文件是哪個:
用Nifskope打開你合併完的.nif,展開左側的部件一欄就能看到這個文件
可以看到我的這個用的是arm.xml
如果沒有的話,那就打開原服裝mod的.nif,挑一個複製上去(最好用的是和你這個碰撞區塊所在的同一個.xml)
既然知道了我們所用的.xml(後稱主.xml),那就找到另外的.xml(副.xml)並把它們合併起來就行了
.xml文件一般所在的位置:服裝mod文件夾——meshes——依次打開
就能看到多個.xml了
我這裡有三個,我們合併模型的時候都用到了他們的物理部件
在這裡我的主.xml就是上圖看到的arm.xml了,先打開它(主.xml),再打開另一個skirt.xml,剩下的low.xml我們最後再合併
左‘主.xml',右'副.xml'
是不是感到眼花繚亂?
別急,這裡面什麼意思你都不需要弄懂,只要跟著我學會把它們分開,然後複製粘貼一部分就行了
下面正式開始操作:
1通用聲明(一般不管):
棄
首先是最開頭的這一部分,相當於是編程語言的頭文件,
2碰撞箱聲明(替換):
一般的格式為:
以<per-triangle-shape name ="xxx">作為開頭
······
以<per-triangle-shape>作為結尾
上圖這一部分是對.nif裡的碰撞箱,也就是第一篇說的’碰撞區塊‘的聲明(在第一篇我們說了儘量留下體積最大的碰撞箱,這樣對於所有smp物理部件都能起到效果)
可以在.nif裡查看,一般碰撞箱的名字都會帶'box'或者'collision'
碰撞箱的聲明只能有一個,主.xml裡的碰撞箱一定要跟.nif裡的是同一個,如果不是,那就替換掉
但是我們主.xml裡自帶的就是’boxarm‘,和.nif裡用的是同一個,所以這裡我就不需要操作了
3物理骨骼聲明(添加):
下一部分的骨骼聲明分成多組,除了第一組,格式一般為下圖
框起來的為一組
在開始之前,還記得上一篇為了解決裙子和手臂的骨骼衝突,而把裙子的骨骼名字將‘coco’改成'c‘了嗎,那麼在複製粘貼這些骨骼之前我們先把這些名字也改了
快捷鍵ctrl+F——選擇替換——打上要替換的名字——全部替換
全部替換
替換後的骨骼名
之後就可以開始複製粘貼了
操作如下:
將副.xml裡的這些後面帶數字比如'01'的骨骼,全部複製到主.xml同樣是'01'骨骼的後面,
如圖
從副部件到主部件
然後重複,直到把所有骨骼都複製到主.xml中帶有相同數字的骨骼後面
假設:如果副.xml的骨骼最高數字比主.xml的高,比如副.xml有'15'而主部件最高只有'14',那麼就要把整個骨骼聲明覆制到主部件
把整組’15'複製到主.xml的'14'後面
4骨骼間限制聲明(添加):
接下來這部分處理方法跟前面的骨骼聲明類似,但是更直接更簡單粗暴
骨骼間限制的代碼有兩種,一種是'lnB’,一種是'lnLerp'。
這一大堆就是骨骼限制說明了,只是看著很唬人
骨骼限制代碼分兩種,一種是上圖的‘lnB’,一種是‘lnLerp’,如下圖
’lnB‘
'lnB'後接著的一般就是‘lnLerp’了
而一個.xml文件可以存在多個'lnB'和多個'lnLerp',所以我們只要把'lnB‘這一整串複製到主.xml的’lnB‘後面就行了,’lnLerp‘也是同樣操作。
對’lnLerp‘同操作
5smp部件模型聲明(添加):
這個更加的簡單粗暴
上面這一堆以<per-vertex-shape name = xxxx>開頭的就是模型聲明瞭
因為一個.xml可以有很多個,我們直接把所有<per ~~~ "xxxx">一起復制到最後就行了
一直複製到</per-vertex-shape>,也就是</system>的上面
然後粘貼到主.xml的相同位置,也就是最後</system>上方就行了
那麼不出意外的話.xml就這麼改完了,但是我們有三個.xml,所以把剩下的也按同一個套路的做一遍。
(剩下的這個沒改過他的骨骼名字,直接複製就行了)
6smp部件和碰撞箱的連接:
我們剛剛添加的smp部件沒有經過修改還不能跟當前碰撞箱產生物理碰撞。
先回到主文件開頭查看一下我們碰撞箱的標籤
上圖可以看到,碰撞箱標籤為aa2,第二個紅框中的意思是可以與標籤為bb2的物理部件產生碰撞。
下圖就是原本就存在的物理部件,可以看到它的標籤正好是bb2,可以與aa2產生碰撞
那我們對其餘的物理部件照著改就行了
最後記得保存退出,文件位置也不用動(.nif裡的就是目前的路徑)。
進遊戲看看效果
所有物理部件都有效果了
NICE!!
我們第一個服裝替換就這樣完成了
總結一下這幾篇教程的內容吧
準備:製作一個空mod,用BAE打開meshes0.bsa並把裡面的服裝meshes並解壓到空mod中
第一步:將多個.nif文件拖入outfitstudio中進行合併
第二步:將所有模型的部位(partitions)改成替換的原版服裝部位
第三步:導入參照、映射所有
第四步:導出,導出時記得輸出文件名和文件夾跟要替換的原版服裝對應(其他的為了方便重新打開項目作修改,可以選擇同一個shapeDataFolder和sliderset)
第五步:打開導出的.nif看看有沒有骨骼錯位, 如果有,先在副.nif中重命名這些骨骼,然後再拖入主.nif,修改完後替換掉原來的.nif,再用outfit studio拖入其他部件進行合併
第六步:將多個.xml文件合併,如果前面哪個部件改過了骨骼名,記得重新替換一下骨骼名再合併文件
第七步:打開Bodyslide,找到你的這個替換服裝名字,點擊建立(build)
最後:進遊戲看看效果
再補充幾點:
前面我們替換的只是人物穿上的模型,但是在揹包裡或者掉落物模型還是原版的,那麼我們就也把原版服裝對應的gnd也替換掉就行了(可以用OS像前面一樣創建一個新項目,或者直接把mod服裝的gnd拖進meshes文件夾裡覆蓋掉就行了,如果mod服裝沒有gnd,那隨便一個部件的.nif也是可以用來替換的)
至於第一人稱手模,如果服裝mod裡也有1stXXXXXXX.nif,那跟gnd一樣直接替換掉原版就行了,如果沒有那隻能將就一下了:)(因為我大部分時間都是第三人稱,所以對這個不挑,如果想要的人多我可以試著學一下,重新發個補充貼)
如果替換完服裝後打開遊戲直接閃退的話,這是個很正常的事情,我就遇到過兩種情況
如何排查閃退:很麻煩但是也很管用,那就是在outfitstudio中一個一個的刪部件,刷完bs進遊戲。直到刪掉哪個部件就不閃退了。一種情況是帶發光材質合併完後會導致閃退,我們只要用.nifskope打開他然後刪掉髮光的材質就行了。另一種情況是某個碰撞箱,我不知道什麼原理,刪掉它就行了。
刪掉這個BSLightingShaderProperty,一般在下方能看到他的顏色是很亮的
那麼我們的教程到這裡就結束。
如果有什麼這方面的問題想問的可以來找我,或者有什麼服裝想要合併+替換的,也可以找我試著幫忙,但是鑑於本人還是在讀學生,因為時間原因可能不能處理掉所有請求,但是我會記錄下來後面再發個補充貼之類的。
點點關注+收藏,說不定你就是下一個mod大神
指路:
準備篇/合併&替換篇上/合併&替換篇下