アダルトゲームブランドKISSが販売するゲームソフト「カスタムオーダーメイド3D2」の改造wikiです

はじめに

  • 改造は全て自己責任でお願いします。
  • 改造に不安がある場合、ゲームのインストールフォルダを丸ごとコピーしておけば、何かあってもだいたい大丈夫。
    特にセーブデータ・プリセットはMODの影響を受けやすいです。メイドさんのためにも、こまめなバックアップを。
  • 公式の規約を熟読したうえでMODを利用してください。
  • 原則、改造行為は「判る人向け」です。用語説明もサポートもありません。自分で試して・調べて・解決する心意気でどうぞ。

下準備

改造をする前に、次の点を確認しておく。
  • ゲームをインストールしたフォルダ(COM3D2.exeがあるフォルダ。以下「インストールフォルダ」)の場所
  • 改造なしの状態(通称「バニラ」)でゲームが動作すること
アーカイブファイル(.zipや.7z)を解凍できるソフトも用意しておく。

MOD導入の準備 -しばりすの導入

まず、MODを導入するためのMOD(前提MOD)を入れる。

前提MOD

しばりす2
ゲーム本体を書き換えずに非公式MODやプラグインを適用できるMOD(フレームワーク)。
リンク先からダウンロードしておく。

インストール手順

  1. インストールフォルダを開く
  2. ダウンロードしたしばりす2のzipを解凍し、zip内のSybarisフォルダとopengl32.dllをインストールフォルダに移動
  3. Modフォルダが無い場合はついでに作っておく)
  4. ここでゲームを起動。ゲームと一緒にログウィンドウ(黒い画面)が表示されれば成功
    1. ログウィンドウにはインストールしたUnityInjectorプラグイン一覧やエラーなどが表示される
    2. 導入後、起動しなくなった場合は「管理者として実行」あるいはopengl32.dll及びCOM3D2.exeをウィルス対策ソフトの例外に設定することで回避できるケース有り

結果(フォルダとファイルの構成図)

COM3D2(インストールフォルダ)
│  COM3D2.exe
│  〜その他いろいろ〜
│
│  opengl32.dll
│  
├─Mod
└─Sybaris
    │  COM3D2.UnityInjector.Patcher.dll
    │  ExIni.dll
    │  Mono.Cecil.dll
    │  Mono.Cecil.Rocks.dll
    │  Sybaris.Loader.dll
    │  UnityInjector.dll
    │  
    ├─GameData
    └─UnityInjector

旧しばりすからの変更点など


プラグイン導入例

例としてよく使われる しばりす用プラグイン・ReiPatcherレス化プラグイン一式・ExPluginBase を入れてみます。
あらかじめ上の前提MOD(しばりす2)を導入しておいてください。

今回入れるプラグイン

  • ExPluginBase - Assets PluginExt.dll(dllそのままなので保存時に警告がでるかも・UnityInjectorフォルダへ)
※ここのリンクは古いかもしれないので最新版はプラグインページや共用ろだ(CM3D2COM3D2)を確認してください
※各プラグインに付いているReadme.txtにはインストール方法や使用方法などが書かれているので一度は目を通しておきます
 (.txtは読み込まれないのでdllと同じ名前にリネームして一緒に置いておくと良いかもしれない)

インストール手順

  1. インストールフォルダ(COM3D2.exeがある場所)に導入したSybarisフォルダを開く
  2. ダウンロードしたアーカイブを解凍し、Sybarisフォルダ・UnityInjectorフォルダに各プラグインのReadmeに従ってファイルを配置していく
  3. ゲームを起動して動作チェック(エディットモードでF5を押すなど)

結果

Sybarisフォルダ
│  CM3D2.Toolkit.dll
│  COM3D2.AutoConverter.Managed.dll
│  COM3D2.AutoConverter.Patcher.dll
│  COM3D2.BodyCategoryAdd.Managed.dll
│  COM3D2.BodyCategoryAdd.Patcher.dll
│  COM3D2.DistortCorrect.Managed.dll
│  COM3D2.DistortCorrect.Patcher.dll
│  COM3D2.ExternalPreset.Managed.dll
│  COM3D2.ExternalPreset.Patcher.dll
│  COM3D2.ExternalSaveData.Managed.dll
│  COM3D2.ExternalSaveData.Patcher.dll
│  COM3D2.FastFade.Patcher.dll
│  COM3D2.MaidVoicePitch.Managed.dll
│  COM3D2.MaidVoicePitch.Patcher.dll
│  COM3D2.ModLoader.Managed.dll
│  COM3D2.ModLoader.Patcher.dll
│  COM3D2.ModMenuAccel.Hook.dll
│  COM3D2.ModMenuAccel.Patcher.dll
│  COM3D2.ModPriorityToMod.Patcher.dll
│  COM3D2.ProcScriptBinIgnore.Patcher.dll
│  COM3D2.QuickEditStart.Managed.dll
│  COM3D2.QuickEditStart.Patcher.dll
│  COM3D2.ThumbSave.Managed.dll
│  COM3D2.ThumbSave.Patcher.dll
│  COM3D2.UnityInjector.Patcher.dll
│  COM3D2.VoiceNormalizer.Managed.dll
│  COM3D2.VoiceNormalizer.Patcher.dll
│  ExIni.dll
│  Mono.Cecil.dll
│  Mono.Cecil.Inject.dll
│  Mono.Cecil.Rocks.dll
│  Sybaris.AutoCompile.Patcher.dll
│  Sybaris.Loader.dll
│  UnityInjector.dll
│  
├─GameData
└─UnityInjector
    │  COM3D2.AddModsSlider.Plugin.dll
    │  COM3D2.ConsistentWindowPosition.Plugin.dll
    │  COM3D2.DistortCorrect.Plugin.dll
    │  COM3D2.EditSceneUndo.Plugin.dll
    │  COM3D2.LogWindow.Plugin.dll
    │  COM3D2.MaidVoicePitch.Plugin.dll
    │  COM3D2.PersonalizedEditSceneSettings.Plugin.dll
    │  COM3D2.SkillCommandShortCut.Plugin.dll
    │  COM3D2.VoiceNormalizer.Plugin.dll
    │  PlanarRealtimeReflection.dll
    │  PluginExt.dll
    │  
    ├─AutoCompile
    └─Config
            MaidVoicePitchSlider.xml
            ModsParam.xml
            PersonalizedEditSceneSettings.ini
            VoiceNormalizerTable.txt
※ ReiPatcherレス化プラグイン一式のオプションフォルダに入っているdllは一つ上の階層に移動(有効化)させています
※ プラグインによっては導入後ゲームを起動するとConfigフォルダに設定ファイルが生成されます

その他

基(UnityInjector)のリンクを張りconfigファイルを読み込む

プラグインの設定ファイルパスがSybaris\UnityInjector\Config以外を参照していても使用する場合の対応方法(無いとも限らないので復元)

シンボリック・リンクを使う
  1. 管理者権限でコマンドプロンプトを起動する
  2. mklink /d "作成するフォルダのパス" "元になるフォルダのパス"を指定 
    1. 例:mklink /d "C:\KISS\COM3D2\UnityInjector" "C:\KISS\COM3D2\Sybaris\UnityInjector"
  3. C:\KISS\COM3D2\UnityInjector <<===>> C:\KISS\COM3D2\Sybaris\UnityInjector のシンボリック リンクが作成されました。と表示されればOK
  4. 最後にシンボリックリンクが作成されたかを確認しましょう。

この方法だと別階層にアクセスリンクを置くので、既定の階層を参照するプラグインと別階層を参照するプラグインがあっても読み込む為管理しやすくなります。
また、シンボリックリンクはショートカットを新規に作るようなものなので削除する場合は直接リンクフォルダを削除するだけでOKです。

よくあるエラー

・コマンドの構文が間違っています。

ダブルクォートが全角だったり、スペースが全角だったり、または入っていない可能性があります。
※上記の例文をメモ帳にコピペして編集すればほぼ失敗は無いと思います。

・既に存在するファイルを作成することは出来ません。

シンボリックリンク(mklink)はいわば、ショートカットを新規に作るようなものです。
なので、同じ名前のフォルダがリンク元にあると上記のエラーになります。そのフォルダの名前を変えてください。
※当方何を勘違いしたのかリンク先(COM3D2フォルダ)に作成するフォルダを用意していたのが原因でこのエラーに悩まされました。(実際はコマンドプロンプトで名前を指定するだけなので事前準備不要)
参照元(https://ossan-gamer.net/windows-symbolic-link-mkli...

CM3D2のMODをCOM3D2と共用する(HDの容量削減)

上記の手順を踏まえてCM3D2のMODをCOM3D2でも読み込むようにする方法 ※全てのMODが使える訳では無いので注意(AutoConvertorプラグイン使用推奨)
スクリプト系(ks csv nei)は基本的に除外する。

シンボリックリンクの作成はコマンドでやる方法以外にもフリーソフトでいろいろあるので活用しよう。

(必要なフォルダのシンボリックリンクを一つずつ作成する手もあるのでお好みで)
事前にKISS\CM3D2\Sybaris\GameData内に任意のフォルダを作成し共用するMODを纏める。(同名のフォルダを指定出来ない為と識別しやすくする為)
  1. 管理者権限でコマンドプロンプトを起動する
  2. mklink /d "作成するフォルダのパス" "元になるフォルダのパス"を指定
    1. 例:mklink /d "C:\KISS\COM3D2/MOD/CM3D2共用" "C:\KISS\CM3D2\Sybaris\GameData\COM3D2共用"

BepInExの導入

「BepInEx」は、Unityゲーム用のプラグインなどのフレームワーク(しばりすと同じ「MODを導入するためのMOD」)。
これを導入することで、「BepInExを必要とするMOD」を利用できるようになる。
ここでは、しばりす2からBepInExに移行しつつ、しばりす用MODもBepInExプラグイン経由で動作するようにすることを目指す。

必要なもの

インストール手順

  1. インストールフォルダを開く
  2. BepInExのzipを解凍し、zip内のすべて(BepInExフォルダ、changelog.txt、doorstop_config.ini、winhttp.dll)をインストールフォルダに移動
  3. BepInEx.UnityInjectorLoaderのzipを解凍し、zip内のpluginsフォルダをBepInExフォルダの中に移動
  4. BepInEx.SybarisLoader.Patcherのzipを解凍し、zip内のconfigフォルダとpatchersフォルダをBepInExフォルダの中に移動
  5. Sybarisフォルダの中にあるExIni.dll、UnityInjector.dll、Mono.Cecil.dll、Sybaris.Loader.dll、COM3D2.UnityInjector.Patcher.dllを削除
  6. ゲームのインストールフォルダにあるopengl32.dllを削除
  7. ここでゲームを起動。ゲームが正常に起動し、しばりす用MODが動作していれば成功
  • 一気に書かれているが、内容的には、上記2がBepInExのインストール、3と4がしばりす互換プラグインの導入、5と6がしばりす2のアンインストール、となっている。
  • 上記の「削除」は、そのフォルダから出せばよい。不安ならいきなり削除せず、一度デスクトップなどに「移動」させるのがお勧め。これなら失敗しても戻せる。
  • 上記でうまくいかない場合、Sybarisフォルダの中にあるUnityInjectorフォルダをインストールフォルダに移動(1階層上に上げる)と動作する。
    • BepInEx環境におけるUnityInjectorフォルダの場所は、BepInExフォルダ内のconfigフォルダにある「org.bepinex.plugins.unityinjectorloader.cfg」で指定されている。
      このファイルをテキストエディタ(メモ帳など)で開き、[Paths]の一番下の行の「UnityInjector = UnityInjector」を「UnityInjector = Sybaris\UnityInjector」に書き換えて上書き保存すれば、UnityInjectorフォルダをSybarisフォルダの中に入れたまま(しばりす環境と同じ状態)にできる。
  • ネット上には「ゲームを起動するとBepInExフォルダ内にconfig.iniが自動で生成される」という解説もあるが、BepInExバージョン5.xでは「configフォルダ内にBepInEx.cfgが自動で生成される」という動作になっている模様。

結果

COM3D2(インストールフォルダ)
│  COM3D2.exe
│  〜その他いろいろ〜
│
│  changelog.txt
│  doorstop_config.ini
│  winhttp.dll
│  
├─BepInEx
│    ├─cache
│    ├─config
│    │   SybarisLoader.cfg
│    │  
│    ├─core
│    │   0Harmony.dll
│    │   0Harmony.xml
│    │   0Harmony20.dll
│    │   BepInEx.dll
│    │   BepInEx.Harmony.dll
│    │   BepInEx.Harmony.xml
│    │   BepInEx.Preloader.dll
│    │   BepInEx.Preloader.xml
│    │   BepInEx.xml
│    │   HarmonyXInterop.dll
│    │   Mono.Cecil.dll
│    │   Mono.Cecil.Mdb.dll
│    │   Mono.Cecil.Pdb.dll
│    │   Mono.Cecil.Rocks.dll
│    │   MonoMod.RuntimeDetour.dll
│    │   MonoMod.RuntimeDetour.xml
│    │   MonoMod.Utils.dll
│    │   MonoMod.Utils.xml
│    │  
│    ├─patchers
│    │   BepInEx.SybarisLoader.Patcher.dll
│    │  
│    └─plugins
│       └─UnityInjectorLoader
│         BepInEx.UnityInjectorLoader.dll
│         ExIni.dll
├─Mod
│
└─Sybaris
     │  Mono.Cecil.Rocks.dll
     │  〜その他いろいろ〜
     │ 
     ├─GameData
     │
     └─UnityInjector

このページへのコメント

YASDPluginや夜伽スライダーのVer1.62.1〜対応分、結構出てますね

0
Posted by 名無し(ID:vF4zzuzhpg) 2021年06月09日(水) 11:33:09 返信

MODは、CR EditSystemに対応していますか?

0
Posted by 名無し(ID:vF4zzuzhpg) 2021年03月27日(土) 12:59:50 返信数(3) 返信

F5で夜伽スライダーGUIが表示されません。

5
Posted by 名無し(ID:vF4zzuzhpg) 2021年03月27日(土) 13:08:03

しばりすは対応してないみたいですね。
当方の環境では、タイトルは表示されますが、それから先は画面が黒いままでした。

0
Posted by 名無し(ID:x1J9tMRd2g) 2021年03月28日(日) 05:17:58

当分の間はcom3d2のみで遊びます

1
Posted by 名無し(ID:vF4zzuzhpg) 2021年03月28日(日) 12:50:20

初です。
ModLoaderについてご教授ください。
現在、COM3D2 1.53.1済み
ModLoader1.7.1 済み の状態です。

問題は、ModLoader内に存在するMono.Cecil.Inject.dllこの子が原因で最初のタイトル画面に行きつく途中のCAUTIONの画面でこのようなエラーが発生し終了してしまいます。
NAssert! 性格
ユニーク名[Missy]をIDに変換できませんでした。
GameMain::OnFinalize Start
NullReferenceException: Object reference not set to an instance of an object

当初別のMODに問題があるのではと疑い、1つずつ試してみたのですが、結果はMono.cecilが原因となっています。

他にお詳しい方がいればご教授願えるとうれしいです。

0
Posted by 名無し(ID:nS6mZH2xyQ) 2020年11月09日(月) 00:51:12 返信数(2) 返信

どうやら1.53以降の環境では、ModLoaderまたはModPriorityToMod.Patcherを使用して同一名ファイル置き換え機能が有効となった際にエラーが発生するようです。
こちらの環境では起動はできますが、キャラ雇用時に
Exception body001_I_.menu 現在処理中だった行 = "additem" "Body001.model" "body"
が発生し、ボディがロードできませんでした。
一応ModLoaderのソースも見ていますが、私では原因箇所の特定は難しそうです・・・

0
Posted by 名無し(ID:chqOKZUhuw) 2020年11月15日(日) 07:29:36

尚、@Com3d2Mune様の
LOハイポリ改3
のボディのみ何故か正常にロードされました。
デフォルトボディ、他の方のLOハイポリはmenuのadditem行のモデル追加部で同様のエラーが出ます。

私の頭じゃ原因の特定は無理ですね・・・

0
Posted by 名無し(ID:chqOKZUhuw) 2020年11月15日(日) 11:43:17

「Unity injectorの内容が読み込めない」というエラーが出ます。本編は普通にプレイできますが、メイドのエディットを行い、OKを押すと、エラーが発生し、強制的にゲームが落ちます。Unity injectorの内容を削除すると、問題なくエディットできましたが、今度はメイドの挙動がおかしくなりました。
解決法をご存知の方がいらっしゃるのならば、何卒お教え下さい。

1
Posted by 名無し(ID:gjLWhtxfGA) 2020年11月02日(月) 14:33:23 返信

やってみましたが、起動すると真っ暗で何もできませんね。
最新版だと無理みたいです

0
Posted by 名無し(ID:ZR5Ib5bDBw) 2020年10月04日(日) 14:26:17 返信数(1) 返信

こっちもmono.cell.inject.dll を外すと起動は出来ますが、竿が棒みたいになってる感じです

0
Posted by 名無し(ID:eZCAQGsOFw) 2020年11月01日(日) 02:26:49

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます