2019/07/09

[Koikatu][BepInEx v5.X] コイカツ! 插件安裝方式、問題判斷及排除指南

「大佬,為什麼我安裝了☆☆☆以後都沒有反應啊?」
「請問進遊戲在@%@%處白屏了怎麼辦」
「求救,我安裝了超級無敵終極霹靂宇宙第一天上天下唯我獨尊整合包,加上了不知道哪裡來的一堆插件,然後遊戲打不開」

我怎麼知道? 我又不會通靈σ ゚∀ ゚) ゚∀゚)σ

這篇文章要告訴你這些插件的正確安裝方式、遇到問題的檢測流程,以及如何給出足夠的錯誤資訊讓別人幫你


正確的下載插件

  1. 「Github」: 大部分的插件都是發佈在Github上,我遇到很多天兵把源碼下載回來蓋進遊戲目錄,然後問說他怎麼不動
    請務必按此流程操作:
    1. 閱讀作者的Readme!!!!!!!!!!!!!!!!!!
      所有的重要事項都會寫在這裡
      說明事項大部分都是簡單英語,有小學水平就該能讀個大概
      讀不懂就把翻譯機拿出來用
      更別說有的發布者是直接把下載連結放在Readme裏頭
    2. 查看Release,那是發佈的意思。通常插件開發到一段落,開發者就會釋出一版Release給使用者
      (其中打叉的部分是源碼,通常裏頭沒有你要的東西)

      Release頁,檔案一般會放在Latest ReleaseAssets裡面 (最底下打叉的倆Source Code是源碼)
      因為發布格式都是自由的,有些人是做一整包,有些人是分很多項目,也有的人發Release不會把所有插件包一起
      關鍵是多看頁面上的文字做判斷
  2. 「Patreon」: Patreon是一個可以讓各位斗內開發者的平台,不少大佬會在這裡發東西
    一般來說是拉到頁面最下面,尋找迴紋針圖示的夾帶檔案
    同樣,上方的Readme非常重要,請重點閱讀
    (右側綠框是斗內按鈕,請踴躍投錢讓程序猿買香蕉)
  3. 「Mega」 : Mega如果不會下載,我建議你去測下智商
  4. 「uploader.jp」: 日本人喜歡把東西發佈在這裡
    日本開發者不喜歡用BepInEx和sideloader插件,需要特別注意是不是IPA或者Hardmod形式
    選擇要下載的插件

    拉到下面按這個日文的下載按紐

    再點一次「Download Now」才會開始下載

正確的安裝插件

東西下載到了,接下來講安裝
插件一般會有幾種形式:
  1. 「*.dll」: 遇到dll副檔名,請判斷他是BepInEx4插件還是BepInEx5插件
    如果發布時間在2019/10/23以前,那他大概是個BepInEx4插件
    但少部分是IPA插件,IPA插件要放在「Koikatu\Plugins」資料夾
    請參考コイカツ! ( Koikatu / Koikatsu / 戀愛活動 ) BepInEx框架 v4.X→v5.X升級指南

  2. 「*.zip」: 這是一個壓縮檔,遇到這壓縮檔有數種情況需要判斷
    1. 裡頭包含一個「manifest.xml」:
      他是一個Sideloader mod,不要解開,直接把他放到「Koikatu\mods」資料夾下即可
    2. 很明顯包含了「BepInEx」,同時也可能有「mods」和「UserData」資料夾,但不包含其他遊戲目錄文件:
      直接蓋進遊戲目錄
    3. 有一個「Plugins」資料夾:
      他很有可能是一個IPA插件,請詳細閱讀Readme看是否有任何說明
      Plugins資料夾也是直接蓋進遊戲目錄 (沒有Plugins目錄就自己新增)
    4. 包含了遊戲目錄,但並不是上述幾種情況,且安裝說明叫你蓋進遊戲目錄
      注意!這是一個Hard mod!建議按照這篇說明將他sideloader化,或是直接丟了
    5. 其他情況,就自己判斷囉
  3. 「*.zipmod」: 其實他跟zip是一樣的東西,但是他絕對是一個sideloader mod
    不要解開,直接把他放到「Koikatu\mods」資料夾下
    你如果用壓縮軟體去開,會發現他跟前面那個是一樣的結構
  4. 「*.rar」: 他就是一個壓縮檔
    看都不用看,我給你三秒把他解壓縮
安裝還有一點要注意,那就是依賴
大部分的人如果不是死在安裝出錯,就是死在依賴沒裝對
而這些全都會寫在插件的Readme裡頭
並且請特別特別注意版本號!!!!!!!!!!!!!!!!!!!!!!

簡述除錯方式

你很努力地安裝完成了,但是他依然沒有正確運作 (或是程序猿出錯讓他故障了⊂彡☆))д`))
這時候請檢查output_log,裡面會有運行時產生的所有輸出資訊
檔案位置:
「Koikatu」本篇遊戲 和 捏人: 「Koikatu\Koikatu_Data\output_log.txt」
「CharaStudio」工作室: 「Koikatu\CharaStudio_Data\output_log.txt」
這個檔案會在每次程式重新啟動時被覆蓋寫入
如果檔案太大,請這麼做: 將遊戲關閉重啟→再次觸發錯誤讓他確實記錄→直接關閉遊戲→之後將此檔案備份出來保存

開始前要提醒兩件事

  1. 除錯時建議開啟command line視窗
    編輯「Koikatu\BepInEx\config\BepInEx.cfg」檔案,將[Logging.Console]和[Logging.Disk]底下這兩個啟用
    開啟遊戲時就會跳出一個小黑窗,呈現當下的LOG
  2. F12開啟Debug和Unity選項,資訊才會完整

output log很長,以下簡單講述該怎麼看

首先開頭紀錄了你的系統資訊,還有遊戲主文件的載入資訊
如果你的log在這裡載入就卡住了,代表根本連主遊戲都沒起來
Initialize engine version: 5.6.2f1 (a2913c821e27)
GfxDevice: creating device client; threaded=1
Direct3D:
    Version:  Direct3D 11.0 [level 11.1]
    Renderer: NVIDIA GeForce GTX 1060 3GB (ID=0x1c02)
    Vendor:   NVIDIA
    VRAM:     2988 MB
    Driver:   23.21.13.9077
Begin MonoManager ReloadAssembly
Platform assembly: C:\illusion\Koikatu\CharaStudio_Data\Managed\UnityEngine.dll (this message is harmless)
Loading C:\illusion\Koikatu\CharaStudio_Data\Managed\UnityEngine.dll into Unity Child Domain
.
.
.
Loading C:\illusion\Koikatu\CharaStudio_Data\Managed\Vectrosity.dll into Unity Child Domain
- Completed reload, in  0.023 seconds
接著是BepInEx和外掛插件載入
這裡可以確認插件清單和版本,判斷安裝資訊就看這段
如果IPA插件放錯位置應該是炸在這
UnloadTime: 0.784100 ms
[Message:BepInEx] Chainloader ready
[Message:BepInEx] Chainloader started
[Info:BepInEx] 102 plugins to load
[Warning:BepInEx] Skipping because of process filters [Anime Ass Assistant 1.0.0]
.
.
[Warning:BepInEx] Skipping because of process filters [Janitor Replacer 1.4]
[Info:BepInEx] Loading [BepInEx.IPALoader 1.2]
Non platform assembly: C:\illusion\Koikatu\BepInEx\plugins\BepInEx.IPALoader.dll (this message is harmless)
[Info:BepInEx] Loading [Message Center 1.1]
Non platform assembly: C:\illusion\Koikatu\BepInEx\plugins\BepInEx.MessageCenter.dll (this message is harmless)
.
.
.
[Info:BepInEx] Loading [XUnity Resource Redirector 1.0.1]
Non platform assembly: C:\illusion\Koikatu\BepInEx\plugins\XUnity.ResourceRedirector\XUnity.ResourceRedirector.BepIn-5x.dll (this message is harmless)
[Info:BepInEx] Loading [Sideloader 12.3]
Non platform assembly: C:\illusion\Koikatu\BepInEx\plugins\KK_BepisPlugins\ICSharpCode.SharpZipLib.dll (this message is harmless)
接著是Sideloader mods載入,關於sideloader mod的錯誤要查這裡
[Info:Sideloader] Scanning the "mods" directory...
[Info:Sideloader] Loading mods from directory: C:\illusion\Koikatu\mods
Platform assembly: C:\illusion\Koikatu\CharaStudio_Data\Managed\I18N.West.dll (this message is harmless)
[Warning:Sideloader] Duplicate asset bundle detected! chara/oo_base.unity3d in "Not in Modpack\[enk&stinger722]Breast Body Collider.zipmod"
[Warning:Sideloader] Duplicate asset bundle detected! chara/mm_base.unity3d in "Not in Modpack\[ymgpt]Base Liquid Extension v1.1.zipmod"
.
.
[Warning:Sideloader] Archives with identical GUIDs detected! Archives: "Sideloader Modpack - Studio\[Yuri]Weapons of 2142.zipmod", "Sideloader Modpack - Studio\[Yuri]Supply Pack.zipmod"; Only "Sideloader Modpack - Studio\[Yuri]Weapons of 2142.zipmod" will be loaded because it's the newest
[Warning:Sideloader] Duplicate asset bundle detected! chara/zmr_filter.unity3d in "Sideloader Modpack - Studio\[zmr]Filter.zipmod"
[Info:Sideloader] List of loaded mods:
Loaded Clochette Nipless Gloss 1.0
Loaded Dynamic Bone Collider 1.0.0
.
.
Loaded studioItem_sports 1
Loaded studioItem_sumikkomodoki 1

[Info:Sideloader] Successfully loaded 910 mods out of 918 archives in 973ms
[Info:BepInEx] Loading [Slider Unlocker 12.3]
Non platform assembly: C:\illusion\Koikatu\BepInEx\plugins\KK_BepisPlugins\SliderUnlocker.dll (this message is harmless)
Studio載入結束後會出現這一段
[Debug] [Debug:Modding API] SceneManager.activeSceneChanged - from  to StudioStart
[Debug:Modding API] SceneManager.sceneLoaded - StudioStart in 2 mode
本篇也差不多,請舉一反三

遊戲中不時會跑很多不重要資訊,像是下面這種完全可以忽略
(這個說的是他做了內存整理)
Unloading 0 unused Assets to reduce memory usage. Loaded Objects now: 40959.
Total: 84.942604 ms (FindLiveObjects: 2.165800 ms CreateObjectMapping: 0.420800 ms MarkObjects: 82.288597 ms  DeleteObjects: 0.066700 ms)

Unloading 0 Unused Serialized files (Serialized files now loaded: 105)

接下來就是觸發你的錯誤
看他有沒有跳Error,或者是LOG斷在哪裡,死機在哪裡來進行判斷
案例蒐集...等我有閒再說,不過基本上都是按照錯誤資訊來判斷而已

舉個例子:
[Error] IsolatedStorageException: Could not find file "C:\illusion\Koikatu\UserData\chara\female\Koikatu_F_20181202110656420".
[Error] Stack trace:
System.IO.FileStream..ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,bool,System.IO.FileOptions) <0x007ae>
System.IO.FileStream..ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,bool,bool) <0x00059>
(wrapper dynamic-method) System.IO.FileStream..ctor_Patch1 (object,string,System.IO.FileMode,System.IO.FileAccess) <0x0006c>
ModDiscover.Hooks.LoadCharaFilePostHook (ChaFileControl,bool,string,byte,bool,bool,bool,bool,bool) <0x0017b>
(wrapper dynamic-method) ChaFileControl.LoadFileLimited_Patch4 (object,string,byte,bool,bool,bool,bool,bool) <0x002fc>
HSUS.HSUS.LoadCustomDefault (string) <0x0009e>
HSUS.HSUS.b__52_0 () <0x00124>
ToolBox.Extensions/d__15.MoveNext () <0x0007e>
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator,intptr) <0x00058>
從這個錯誤可以看到是HSUS發生了IO相關的錯誤,而資訊是說他找不到某個角色存檔
從報錯位置看出他是發生在進入女編輯器,剛載入後發生,且function名稱有個LoadCharaFilePostHook字眼
判斷: 應該是那個更改預設載入角色的功能,因為我把設定的角色卡移除了,他找不到才跳這個錯

大概就是這種感覺吧

最後祝各位都能順利安裝、順利除錯

留言版

留言我一般不會看到,急事請用右側社群網站聯繫我