LV. 12
GP 300

RE:【心得】上古卷軸5之CTD解決方案(可能,大概有點長)

樓主 雙手拍死蟑螂 hocealypee
GP38 BP-
附加概念篇
  
零、CTD排除順序
  
        其實會CTD的範圍不外乎硬體跟軟體兩方面,而整個會CTD的範圍基本上非常的大。
  
        建議最開始由:
  
        1.Windows系統更新:將Windows更新到最新版本,最且保持更新系統漏洞。如果連平台本身都不穩定的話,那玩遊戲當然會CTD。
  
        2.遊戲附加元件更新或安裝:例如Microsoft .NET Framework及DirectX等等的東西。
  
        3.顯示卡驅動程式更新:版本過舊的驅動程式其實也會造成不穩定。等遇到太新的驅動程式有些破圖或閃爍的現象,再降一些版本,讓驅動程式半新不舊。

        4.防毒軟體請設定遊戲中的防護範圍:不要以為防毒軟體不會鬼打牆,有些有玩家模式可以調整就使用玩家模式,不然選擇遊戲中會暫停部分防護為主。
  
        5.安裝Skyrim正版遊戲軟體:另外從steam線上更新到1.9.32.0.8版本。繁體傳奇版本建議線上下載英文版,再使用大學漢化覆蓋。另外要提醒的是,迷版基本上沒有救,好了。
  
        6.檢查遊戲主程式安裝所在硬碟:安裝遊戲過後,至少預留10GB以上。其實建議越大越好,之後安裝MOD,Skyrim的資料夾只會越來越大。就算沒用,或不再使用MOD也請保持10GB以上的預留空間。
  
        7.檢查虛擬記憶體位置:請找控制台=>系統及安全性=>系統=>進階=>效能(設定)=>效能選項(進階)=>虛擬記憶體(變更)。檢查虛擬記憶體所在位置,最好不要跟skyrim所在硬碟(已分割的子硬碟)相同。不然請變更虛擬記憶體位置,網路上很多教學請自行查閱。
  
        8.安裝MOD管理器:穩定排序,然後下面有些簡單排序教學。
  
        9.使用BOSS檢查排序:BOSS只會幫你排序,並不會檢查衝突。儘管有些會標註那些會衝突,不過依舊只是少數,而且標註基本上是英文,看不懂英文的請開GOO大神一旁伺候。
  
        10.最後開始CTD排除:大致上如此。
  
一、基礎MOD排序(最基礎)
  
        因為我左找找右看看,發現都不夠直觀,而且太過原理的東西,其實蠻噁心人的。所以我光速弄了三張圖,把最基礎的概念講完。
  
(圖一)概念上,有父才有子。可是老母怎麼沒有呢?
  
        在這裡解釋一下MOD排序的第一個概念是,既有者先行,也就是主要建立遊戲資料的部分開始排起。從主程式、程式更新,再到DLC,然後介面類、顯示框架修改、主題音樂、陰影光源、紋理材質、音效配樂、著色器等等的。
  
        以實際遊玩的情況來看,從進入遊戲開始看到Bethada,然後看到選項聽到主題音樂,整個關於MOD修改標題、選項及主題音樂的排序,都要以這種遊戲讀取的順序為主。不過,有時候也不完全需要比照辦理,只是按照一般程序會更為流暢。當然,撇開這些枝微末節的MOD,Skyrim真正噁心人的地方,還是在整個遊戲架構修改的MOD,特別是針對Skyrim.esm及全部DLC,還有擴充遊戲性的地方,時常會耗費玩家大量時間在父系與子系間打轉。以下是說明。
  
        我們稱Skyrim.esm主程式的部分為父系,當然也是最為原始的檔案,而Update.esm則為Skyrim.esm的子系。但是這種父子間的關係並非一成不變的。
  
        在管理器點開(點開的意思請看圖三)DLC資料片的Dawnguard.esm,會發現它的Masters(父系)有,Skyrim.esm及Update.esm,這時候Dawnguard.esm又是Update.esm的子系,而Update.esm則是父系。整個實際的關係應該看作──頂天的1號「爺爺」Skyrim.esm,還有2號「爸爸」Update.esm,最後才是3號「孫子」Dawnguard.esm。
  
        而原則上DLC的部分,Dawnguard.esm、HearthFires.esm及Dragonborn.esm都是平輩的,照理說三者應該可以隨便排,但是這時候又牽扯到MOD排序的第二個觀念了,覆蓋。
  
        事實上,MOD排序主要的機制是一種強調覆蓋的機制。簡單來說,如果最上面提到的三個MOD部分都有匕首攻擊力的資料,例如:Skyrim.esm的「匕首」攻擊力為5,Update.esm的「匕首」攻擊力為3,而Dawnguard.esm的攻擊力為18,那麼以最後覆蓋的MOD為優先,也就是遊戲中的匕首攻擊力將會是18。儘管Skyrim.esm偉大到一定要排在第一位,但它其實弱爆了,只有被覆蓋的份。
  
(圖二)其實我覺得截肢裝新的比較快。Unofficial Skyrim Patch.esp是唯一一個放在Update.esm下面,跟其他完全不一樣的Fix MOD。主要是因為Update.esm是Skyrim.esm的更新MOD。
  
        而Skyrim這種MOD的覆蓋機制,衍生出的就是Fix類的修正MOD。例如上圖的Official Skyrim Patch,專門修正Skyrim BUG的MOD。
  
        其實MOD排序,還要歸咎於一般CPU只能依據編號讀取的方式。如果要找MOD內項目排列第500個平民的資料,CPU要先檢查代碼次序的編號關係,由第1位開始找,然後第2位、第3、第4........然後到第500位總算找到,才會開始擷取資料運作。那怕MOD內有五萬個項目,甚至是五億個項目,CPU還是會從編號一開始,只是因為CPU越來越快了,很少人發現電腦依舊是個笨蛋。而這也是MOD讀取會有唯一性的主因。
  
        撇開這些不三不四的不談,其實我們明白覆蓋的現象,就可以發現常常會有那種,父系同為Skyrim.esm及Update.esm的兩種不同名稱的A與B子系MOD,這時候又該怎麼辦?
  
        答案是,看MOD作者的排序說明來排。如果沒有排序說明,就先用BOSS排序看看。若是連BOSS都沒有相關資料,就依據MOD的作用來排──如果MOD裡面的資料,或者作用沒有重複到原有的MOD,就可以隨便排在Skyrim.esm及Update.esm下面。
  
        不過細節上還要看是屬於哪一類的,如果有牽涉到介面框架類的,就要排靠前一點,其他的基本上可以亂排。但亂排也要注意因為重複的資料會覆蓋,所以可能很多時候有些MOD會沒有作用,這時候我們就要不斷手動調整,A上B下,或者B上A下,不斷嘗試,盡可能的讓MOD都能發揮作用。
  
(圖三)你好,我證明了MOD只有公的。
  
        我們一般在BOSS排序完後,所要手動檢查的部分,就是上圖帶有Masters的部分,無論是NMM、MO還是Wrye Bash,或是其他管理器,都要仔細觀看父系是否存在排序列表上頭。基本上是由最下面的MOD,依次往上面的MOD檢查。
  
  
症狀區

一、連標題選項都看不見的閃退
  
        1.缺乏父系MOD,只有子系MOD
  
        其實這很好理解,沒有爸爸哪來的兒子?光有兒子檔,檔案到底要接在哪裡?這基本上是剛開始玩MOD會接觸到的問題。除了用BOSS檢查,看BOSS的描述外,還要靠自己逐一檢查是否有MOD缺失。
  
        2.MOD衝突
  
        這通常是指MOD覆蓋不完全,有兩個來源以上的MOD,造成邏輯錯誤。關於這方面在Wrye Bash的Rebuild Patch的部分會談到。
  
        3.來源衝突
  
        其實會衝突的部分不僅限於MOD,只要是檔案都有可能產生衝突,例如過去的Afterburner確實會跟ENB產生衝突,造成閃退的現象,而元凶僅僅是因為一個微小的d3d9.dll,這就在於兩者都會藉由d3d9.dll來擷取資料──Afterburner的OSD監控與ENB的d3d9核心共用的關係。
  
        其實用很好理解的說法,就是CPU對於檔案始終需要一對一處理,一當共用相同的檔案,需要用代理的方式繞開來處理,不然會有一方無法作用。然而,因為Afterburner本身也是強制性的第三方軟體,所以這時候造成兩邊都是第一執行順位,CPU無法辨別優先順序就會CTD。
  
        4.系統語系與遊戲語系不同,或是遊戲語系與MOD不同
  
        其實也就是傳奇版繁體中文的問題,需要動用Microsoft Applocale開啟。而另一個問題則是出現在繁體中文安裝簡體MOD。
  
        5.預留。整理思緒
  
二、拿戰利品CTD
  
        1.使用過多HUD遊戲介面修改(或是有使用關於MCM可調整數值的MOD)
  
        例如:使用HUD介面修改方式隱藏頭盔,增加時間刻度,自動隱藏血條耐力之類的,這類的MOD在編輯轉匯時錯誤比較多,在打開地圖、或是物品欄,或者是其他介面的時候容易產生大量錯誤而CTD。
  
        備註:這邊說的地圖是指整個skyrim的地點地圖
  
        同樣的,關於MCM可調的MOD。由於MCM是基於遊戲介面的基礎,修改遊戲本身介面框架來調整MOD的參數,所以如果MCM內可以調整數值的MOD有錯誤,或者其他因素而不穩時,將在打開介面類,如地圖物品欄等介面,造成放射性的貼圖錯誤,然後CTD。
  
        解決方式:其實修改HUD本身並沒有多大衝突,只要少用一兩個就好了。而如果是MCM類造成的介面錯誤,則是關閉造成不穩定的MOD即可,不過這恐怕要一個一個試了。
  

關於MCM的說明。
  
        2.翻譯來源多次修改
  
        例如:Skyrim內某物品使用原生的英文,後來使用大學漢化轉繁體,Unofficial Skyrim Patch又使用英文版覆蓋,其他類的MOD又「同時」修改同一個物品為繁體或英文,甚至其他語言,這時候打開物品欄看到那件重複修改語言的物品就會CTD。
  
        解決方式:老實說不是很好找,停用MOD比較快。或是你自己把他們全部繁體化,或者使用同一個語言文字。
  
        3.MOD多次覆蓋生物外觀
  
        例如:你透過MOD修改某強盜的外觀,又使用了雨天會增加潮濕效果的MOD,再用額外NPC使用的盔甲MOD,修改骨架......。這時候你對著屍體動作就會CTD。
  
        解決方法:停用部分含有覆蓋效果的MOD。
  
        當然用更好理解的說法就是,身體太複雜了。就像一般玩紳士卷軸創造的主角,會先設定meshes體型範圍,然後加上骨架,加上○搖,加上皮膚材質,加上裝備,然後又修改裝備可以符合身形,然後高跟鞋系統,捏臉,髮型,再修改動作......。事實上我們動用了大量的MOD就只是為了塑造那個糟糕物(被打),但是集中MOD的結果就是提高了複雜性,以及大量的錯誤。仔細想想,會CTD還真的一點都不奇怪。
  
        4.BUG或是dirty
  
        Dirty太多,DirectX轉換編碼的時候跑不過去,所以DirectX自動關閉,跳出遊戲。
  
        解決方法:請用TES5EDIT刪除dirty的部分,並且使用Unofficial Skyrim Patch修正MOD。
  
三、無限讀取
  
        其實說無限讀取,也不盡然。應該要拆解成兩個部分來看,一個是「讀取過慢」,另一個則是「無限讀取」。
  
        1.讀取過慢
  
        由於尋常玩家組裝電腦之後,便放著不管了,對於系統優化,硬碟重組之類的根本不會做。以至於將Skyrim儲存在HDD傳統硬碟的玩家,可能在使用了較多的MOD後會讀取個三五分鐘。
  
        撇開系統優話不說。傳統HDD硬碟若時常搬遷檔案,刪除MOD,會因為檔案分散在各個磁區而讀取不順。這時候「重組磁碟」就顯得相當重要了。(但如果是物理性硬碟壞軌而讀取慢的話,就請拿去送修吧)
  
        2.無限讀取
  
        受限於DirectX 9.0c API高耗能低效果,CPU使用率大幅度提升卻沒有更好調度資源的能力,在skyrim底下使用大量MOD,需要轉匯資料的量無法快速通過DirectX 9.0c API介面,使得內存記憶體資源卡在API介面動彈不得的現象,簡稱「無限讀取」。
  
        而要處理無限讀取的方法,有:
  
        一、使用更好的硬體,像是:A、使用雙通道記憶體,提高匯流排頻寬。B、更好的CPU跟顯示卡。C、以SSD固態硬碟裝遊戲主程式(並且4k對齊、開啟AHCI及關閉分頁檔)。
  
        ※使用較好的硬碟,主要是因為較新較好的硬碟,內建的快取記憶體比較大,對於將資料再送進內存記憶體比較有幫助,但實際使用起來,可能對FPS最低張數提升比較大,不過以原理來說,或多或少可以舒緩資料量龐大而卡住的問題。
  
        二、使用能重新分配記憶體的輔助程式,也就是人稱的Memory Patch,像是SKSE 1.7.0(仍在測試版)、SSME,或是SafetyLoad。如果以上三個都沒作用的話,請用軟體檢查HDD硬碟是否壞軌,然後送修。
  
  
四、讀取存檔時CTD
  
        老實說讀取存檔CTD這很少見,不過還是有機會發生。
  
        1、ENB檔案缺失,或是ENB功能開啟不正常(設定檔錯誤)
  
        這是我在更換ENB核心時遇到的,拿舊的設定檔套在新的ENB核心上,結果新增的功能沒有辦法開啟,讀取檔案就CTD了。而解決方式就是重新安裝,還有把enblocal.ini的參數正確覆蓋,請一條一條好好對齊。
  
        2、預載檔案過大
  
        基本上也沒什麼好解釋的,請用Memory Patch類的MOD分配記憶體資源,或者刪除不必要的MOD,也可以降低材質、解析度、遊戲特效等等,肯定都會有很大的幫助。
  
        3、MOD衝突
  
        通常都是因為MOD衝突的點──會移動的NPC,或者生物,所以你讀取屋子的檔案,然後在走出屋外再次讀取時,因為擷取到了那個該死的生物的資料,所以你就CTD了。
  
        請參考網路上的資料,好好把MOD衝突的地方抓出來。
  
        4、存檔損毀
  
        由於時常更換MOD,並且存檔常常都覆蓋在同一個檔案上,造成存檔毀損。這基本上已經沒救了,應該也不會有人想要用工具,把存檔內的腳本紀錄一條一條再抽出來。
  
        預防勝於治療,更換MOD後,存檔盡量不要使用覆蓋原有存檔的方式,不然或多或少腳本紀錄會有穿插。
  
        補充:可以用Wrye Bash檢查存檔的健康狀況,雖然跟實際毀損沒什麼關係。
  
        外站連結:存檔狀況http://tesfans.org/save-status/
  
        5、dirty
  
        貌似dirty兄出場的次數也蠻多的,不過當機大於跳出。仔細看BOSS,使用TES5EDIT把該清的dirty清光光,應該不至於在讀取時往生。
  
  
額外資料  

一、Steam工作坊
  
        老實說一開啟我也只用steam工作坊的MOD,不過後來發現有太多都停留在2012年沒有更新就停用了。
  
相對於N網、D網及L網的MOD,steam工作坊的MOD安裝是最方便的,只要訂閱就會自動下載,然後進入到選單時自動安裝。不過還是得參照MOD需要加裝額外的DLC與父系MOD。
  
  
        工作坊除了安裝方便之外,遺憾的是有令人賭爛的地方──訂閱之後刪掉檔案又會「自動下載再次自動安裝」。囧
  
        這時候要做的事情就是,A、「取消訂閱」。或是B、從「DATA FILES」進入,看到MOD旁邊有備註「推薦百分比」的,那就是STEAM下載的MOD,然後「反勾選停用」
  
       如果因為使用了STEAM工作坊的MOD而CTD的話,別忘了先做以上的步驟。不然會呵呵。
  
        站內聯結:工坊MOD教學http://forum.gamer.com.tw/C.php?bsn=2526&snA=20982
  
二、Skyrim架構與MOD衝突
  
        這邊會附上三張圖,但第三張可能會難產,因為製作起來格外噁心。
  

圖一:Skyrim的架構示意圖。這張應該要開宗明義放在一樓最前面的,不過想想作用並沒有想像中大,還是當作資料擺後面。
  
        關於Skyrim的架構,實際上還要加上CPU、GPU、RAM跟硬碟的部分,不過原則上不會去寫,因為也沒什麼意義。而在一樓的資料中,很多時候,我都會說很複雜,或是大量錯誤,所以CTD,然後帶過。不過實際上,這是一連串的機制造成的結果,因為資料是處於不斷匯入跟轉換的過程,確實不是開發人員也很難掌握到底是哪個環節出了問題──因為內核的部分還可以再拆解成各次項的分布圖,不過這部分我也不知道,而且是台灣法律限制的範圍,所以也不可能書寫相關布局。
  
        至於這張Skyrim架構圖,是用來確定某些MOD功能,以及元件的作用而衍生的。雖然還少了一些像是Launcher的TESV.exe的部分,或者是SKSE的地方,看起來還是有些殘缺,不過我也懶得改了。
  
        站外連結:介面資料http://zh.wikipedia.org/wiki/Direct3D
  

圖二:MOD衝突示意圖。嚴格來說,Shader應該叫著色器,是渲染器的一部分,一般在說的渲染器則是內建於顯示卡的部分。
  
        關於兩組來源的解決方式,Wrye Bash的Rebuild Patch──Bashed Patch, 0.esp就是在騙過這個反饋資料的機制。以現實為例,一般女校是不收男學生的,如果一男一女高中生進入女校,男生就會被擋住──這邊也就是在解釋兩個來源時,需要的資料一方面汲取困難,另一方面也無法完整作用在物件上,造成物件前一秒跟後一秒的資料對不起來,後半部分憑空消失而造成整個遊戲機制的不穩定。
  
        這時候Bash Patch, 0.esp就很重要了。如果女校是男生無法進入的,那麼也把男高中生偽裝成穿裙子的女生不就好了,反正能進入女校就OK了──這邊在說明Bash Patch, 0.esp其實只有騙過機制的功能而已,本質上檔案還是不變的,帶把的依舊帶把(被打)。實際上偽裝過後的MOD,其根本作用不變的情況下,如果因為其他MOD有重複的功能,還是會造成衝突而衍生大量錯誤。雖然未必會CTD,但像是選項或者對話後,一分鐘NPC才有反應的問題是常見的。
  
        站外連結:Wrye Bash Rebuild Patch教學http://tesfans.org/rebuild-patch/
        站外連結:圖二所講的部分http://tesfans.org/compatibility-and-you/
  
圖三:為何要有唯一性。架構中......似乎也很不重要,停滯中。
  
  
(雜項)關於PART2
  
一、關於Logs
  
        1.到底開啟Logs,觀看一條條的error跟not match有沒有用呢?
  
        基本上,Logs紀錄的是script的部分,如果你是因為MOD衝突的話,完全不會顯示出來,而記錄的項目跑過就跑過了,不合就沒作用了。(項目沒跑過的話,畫面會頓一下是沒錯的)
  
        2.所以看Logs沒有意義?
  
        也不是沒有意義,Logs紀錄的項目的確有問題,如果照著Logs錯誤與不合的地方把含有script的MOD清掉,的確會更流暢,但也僅止於此。一般意義上跳出的CTD方式,會幾乎無關。而有些因為錯誤而跑不過去的資料,會在安裝了Memory Patch後改善,使得觀看Logs的意義不大。
  
二、關於非mesh及texture缺失的破圖
  
        有很多方面會造成破圖像一樓提到的mesh及texture缺失,還有這樓提到的HUD修改。而接下來會進入第三方軟體的部分──ENB與顯示卡驅動程式。
  
        1.ENB
  
        由於ENB是以覆蓋物體、光源等貼圖物件的方式來美化,因此若是遭遇某物件,例如:水變透明、變黑,這基本上是ENB造成的,請按Shift + Enter關閉ENB看看情況,如果是ENB的問題,請找出ENB修改的相關項目,將其關閉。若不是請看下一項。
  
        2.顯示卡驅動程式
  
       通常顯示卡驅動成會造成的情況是,閃爍與穿透式的透明(往內可以看見異世界),當然因為是幫助貼圖的程式,基本上與貼圖有關的部分,都可能與驅動程式有關係。當然嚴重一點,因為驅動程式不穩,而造成顯示卡無法貼圖而CTD也是有可能。
  
        撇開這個不談,針對顯示卡驅動程式的問題,就是挑選一個合適的驅動程式了,並不會最新的就是最好的──通常會從最新的開始安裝,一遇到閃爍或破圖就開始往舊的版本慢慢推進。而如果是買剛出的顯示卡,就要注意,基本上會閃爍或破圖是正常的,等到驅動程式完全支援新顯示卡大約要兩個月的調整期。如果沒有發生不明原因CTD的問題,就先忍著點吧。
  
        儘管破圖貌似跟CTD無關,但主要在於DirectX轉換檔案為驅動程式理解的語言,以此得以讓顯示卡貼圖。因此從破圖就可以得知轉換的檔案語言為一串亂碼,這容易使得顯示卡無法穩定工作,隨時有罷工的危險。附帶一提的是,莫名的聲響,也是因為DirectX轉換音訊檔案為未確認的語言所致,使你會在遊戲期間突然聽到莫名的腳步聲、敲擊聲,或者是其他聲響,這時候就要注意音訊MOD方面的BUG與錯誤,一當奇怪聲響出現就CTD時,可以馬上更新或停用。
  
  
        可能還有很多問題吧。但是無論如何,MOD實在太多問題了,而且MOD種類也太多了,真的很難回答。要抓還是得靠自己。大致上還是會提個大方向,最終還是需要自己去找資料,還有自己尋找工具處理。
  
────說好的分隔線────
備註一:五樓將會建立很隨興的主題。
備註二:好多大作,開始動搖了。
備註三:等待我的螢幕(._ . |||)
38
-
未登入的勇者,要加入討論嗎?
板務人員:

2832 筆精華,前天 更新
一個月內新增 5
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】