Featured image of post 如何去除 Unity 及 Unreal Engine 遊戲中的馬賽克

如何去除 Unity 及 Unreal Engine 遊戲中的馬賽克

非常實用。

各位在玩各種 DLsite 上的黃遊時是否經常遇到馬賽克遮擋導致無法好好的觀賞 CG 呢? 今天就來教一下如何去除馬賽克 (但是通常只適用動態 CG 的遊戲,若是那種畫死在圖片上的就無法去除了,也有一些其他特例無法去除。)

若不想自行下載此教學中會用到的工具,可以使用我提供的壓縮檔,裡面包含所有會用到的工具。

Unity 遊戲

使用 BepInEx 來載入去碼插件 (首推!)

https://github.com/BepInEx/BepInEx
https://f95zone.to/threads/bepinex-plugin-sw_decensor-v0-7-2-1.223718
https://github.com/trimmerpop/UniversalUnityDemosaics
https://github.com/ManlyMarco/UniversalUnityDemosaics

首先要確認該遊戲是使用 Mono 還是 Il2Cpp,通常可以透過觀看遊戲文件結構來得知。
若遊戲目錄中包含 MonoBleedingEdge 之類的那就是 Mono,反之則是 Il2Cpp。
然後下載對應版本的 BepInEx,解壓縮後將內容物放入遊戲目錄。
啟動一次遊戲後關閉,檢查 BepInEx 資料夾內是否有多出一些檔案,若沒有則須換一個版本的 BepInEx (如 5 換到 6、Mono 換到 Il2Cpp)。
接著就是下載去碼插件,把下載的 .dll 檔案放入 BepInEx/plugins 內並重啟遊戲,上方除了 BepInEx 以外的三個連結皆可嘗試,建議從上試到下 (通常第一個或第二個就能成功了,第三個包含更多去除的方法)。

透過修改遊戲來去除馬賽克

https://github.com/Perfare/AssetStudio
https://github.com/nesrak1/UABEA
https://github.com/dnSpy/dnSpy
參考 https://www.bilibili.com/opus/605569115767045579

我自己嘗試過的有兩種方法

1. 使用 AssetStudio 以及 UABEA 來更改

首先打開 AssetStudio 並載入遊戲的 Data 資料夾,例如 XXX_Data
Image
搜尋馬賽克的 Shader,如 mosaic,並記下其 PathIDSize
Image
接著在 UABEA 內打開該檔案,對應到 PathIDSize,用編輯器打開,把所有的 0 float val = 15 換成 0 float val = 0
若要使用此方法建議參考上方我貼出的參考連結,對於此方法的實踐有更深入的教學。

2. 使用 dnSpy 反編譯 Assembly-CSharp.dll

此需要有程式基礎,首先打開 dnSpy 加載位於 Managed 下的 Assembly-CSharp.dll,例如 AliceInCradle_Data/Managed/Assembly-CSharp.dll
我無法給出一個具體一定是要怎麼修改的方法,有可能是透過修改 float0.01f,又或是像是 AliceInCradle 那樣單純把 return true; 改成 return false; 就好,需要看該遊戲是怎麼實現的,反正就是右鍵 -> Edit Method 修改後再 Compile 回去。
Image
總之,我不推薦使用修改的方式,難度升高非常多,除非插件對該遊戲真的完全無用再來嘗試。

Unreal Engine (虛幻引擎) 遊戲

使用 3Dmigoto

https://github.com/bo3b/3Dmigoto/releases/download/1.3.16/3Dmigoto-1.3.16.zip
https://f95zone.to/threads/how-to-uncensor-almost-any-unreal-engine-game.120864

打開 x64 的資料夾,將裡面的東西複製到有 -Win64-Shipping.exe 的資料夾,例如 GirlsRedemption/Binaries/Win64/
打開 d3dx.ini,搜尋 previous_pixelshader,將三個 _pixelshaderno_modifiers 後面的按鍵設為你想要的,VK 表按此
儲存後對那個 -Win64-Shipping.exe 按右鍵 -> 建立捷徑,並對建立好的捷徑按右鍵 -> 內容,在裡面的目標後面加上 -dx11,如 C:\Users\owenl\C\H\Game\gamename\Game\Binaries\Win64\Game-Win64-Shipping.exe -dx11,儲存後啟動該捷徑。
到遊戲中出現馬賽克的畫面,然後不斷按下你剛設定的 next_pixelshader 對應的按鍵直到馬賽克消失,過頭了可以按 previous_pixelshader,當馬賽克消失時按下 mark_pixelshader,這時到 ShaderFixes 資料夾下會看到一個後面為 -ps_replace.txt 的檔案,請記下 - 前面的那行字,例如 b0d4a9b54e51ebe3
再次打開 d3dx.ini 並刪除所有內容,貼上這串:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[Logging]
calls=0
input=0
debug=0
unbuffered=0
force_cpu_affinity=0
convergence=0
separation=0
debug_locks=0

[Hunting]
hunting=0

[Rendering]
cache_shaders=0
export_fixed=0
export_shaders=0
export_hlsl=0
dump_usage=0

[ShaderOverrideMosaic]
hash=你剛剛複製的那個 b0d4a9b54e51ebe3
handling=skip

如果你需要去除多個馬賽克 Shader 就多用幾個 ShaderOverrideMosaic,例如:

1
2
3
4
5
6
[ShaderOverrideMosaic1]
hash=b0d4a9b54e51ebe3
handling=skip
[ShaderOverrideMosaic2]
hash=第二個shader
handling=skip

如果你遇到了 DX 錯誤就再加上這內容:

1
2
[System]
allow_create_device=1

結語

感謝閱讀至此,希望你有成功的把馬賽克去除了。
喔對說好的壓縮檔在這裡
馬賽克真是萬惡的東西啊!可惜本子不像遊戲能這樣去除,我好想看更多無修正蘿莉本子啊啊啊啊!!!

我愛蘿莉,感謝大家。

Licensed under CC BY-NC-SA 4.0
最後更新 Jun 16, 2025 00:00 UTC
使用 Hugo 建立
主題 StackJimmy 設計