無修正で楽しむために、この手法を用いた。
モザイク解除の海外のフォーラムサイトのURLを以下に示す。
https://f95zone.to/threads/how-to-uncensor-almost-any-unity-game.17914/
モザイク解除の国内のサイトのURLを以下に示す。
https://adult-doujin-game.com/
unityのゲームにはモザイクを解除できる物と、不可能な物が有る。
プログラムによってモザイクが施されているなら、数値を変えれば解除(透明)にできる。
素材にモザイクが施されているなら、現時点ではほぼ不可能。
dlsite等では最近、素材自体にモザイクを施し始めたらしい。
fantiaでは素材にモザイクを施さなくて良いようだ。
ゲームはdlsiteやfantiaやsteamで買える。
用意する物
素材にモザイクが施されていないunity製のゲーム
UABEAvalonia
AssetStudio
有料VPN(場合に依る)
やり方
AssetStudioで素材にモザイクが施されているか確認する。
施されていなければ、解除できるかもしれない。
AssetStudioで"assetファイル"を開いて"mosaic"や"モザイク"等で検索する。
プログラムが有ったら解除できるかもしれない。
追記 "cen"で検索してもモザイクが施されている可能性が有る。
掲示板からの情報提供ありがとうございます。
"censored"を日本語に翻訳すると"検閲された"という表現になる。
モザイクを表現する文字列には種類がいくつか確認されている。以下に示す。
mosaic
mozaic
モザイク
モザ
moza
cen
censor
censored
UABEAvaloniaで、モザイクのプログラムが有りそうな"assetファイル"を開く。
その中に、"MosaicField"という行が有ったらクリックして、
"ExportDump"をクリック、テキストで出力。
その中に、
1 string first = "_BlockSize"
0 float second = 16.000000
という変数や数値が有ったら、
1 string first = "_BlockSize"
0 float second = 1.000000
という風に1か0に変更する。
変更したら右の方に、"*"というアスタリスクがつくはず。
そして、"Import Dump"で変更したテキストファイルをインポートする。
別の場合1
UABEAvaloniaで、モザイクのプログラムがありそうな"assetファイル"を開く。
そして、"ExportDump"をする。そのtxtの中に以下のような変数と数値等があったとする。
0 Material Base
1 string m_Name = "Mosaic"
0 PPtr<Shader> m_Shader
0 int m_FileID = 0
0 SInt64 m_PathID = 2055
UABEAvaloniaに戻り、PathID でソートし、マテリアルから pathID に一致するシェーダーを見つける。
pathID に一致するものを見つけたら、"ExportDump"でtxtを出力。
ctrl+fで"colMask"という行を見つける。
0 SerializedShaderFloatValue colMask
0 float val = 15
1 string name = "<noninit>"
を
0 SerializedShaderFloatValue colMask
0 float val = 1
1 string name = "<noninit>"
0 float val = 1の所を、1か0に置き換える。
変更したtxtファイルを"Import Dump"で取り込む。
すると、指定したフォルダにassetファイルが出力される。
それを上書きする。
変更し終わった後は、上のメニューバーの"File"から"save"を押すと、
開いたassetファイルのフォルダに出力される。
【一連の流れ】
"AssetStudio"や"UABEAvalonia"等で、assetファイルにモザイクに関する関数を見つける。
↓
"UABEAvalonia"でtxtファイルをダンプして関数の数値を変更する。
↓
変更したら、"UABEAvalonia"で変更したtxtファイルをインポートする。
↓
上のメニューバーの"File"から"save"を押して、変更されたassetファイルを出力。
↓
それを元のゲームフォルダのassetファイルに上書き。
追記 モザイクの文字列が判明しない場合、"RuntimeUnityEditor"で判明する可能性が有る。
サイトを以下に示す。
https://github.com/ManlyMarco/RuntimeUnityEditor
BepInEx等を使い、"RuntimeUnityEditor"を導入し、ゲームを起動して該当する場面でF12等を押せば、
どのパーツがどういう文字列で作用しているかわかるらしい。
モザイクの場所をクリックすれば文字列が出てくるらしいので、モザイクの文字列が判明したら、
従来の通りに変更すれば、出来るかもしれない。
素材自体にモザイクが施されている場合は難しい。
追記 dnSpy等でdllファイル等を書き換えられる可能性も有る。
モザイクを施しているプログラムを直接書き換えることも考えられる。
【追記発見】
最新バージョンのUABEAvaloniaを使用して、"data.unity3d"ファイルを"Memory"で開き、
"Export All"を選んで、任意のフォルダに出力する。
出力されたファイルを全てコピーし、"data.unity3d"ファイルが有った同じディレクトリに置く。
"data.unity3d"ファイルを削除する。
そのまま、ゲームを起動する事が出来る。
どうやら、"data.unity3d"ファイルが存在しなくても、必要なファイルが揃っているなら、
起動するらしい。