業界のキャプテンのための公式の改造リソースへようこそ。
現在、COIはSteamで利用可能で、早期アクセス段階にあります。改造は可能ですが、公式にはまだサポートされていません。私たちは、改造のサポートとドキュメントの改善に継続的に取り組んでいます。
MODサポートは実験的であり、APIには壊れた変更がある可能性があることに注意してください。問題が発生している場合は、常に%APPDATA%/Captain of Industry/Logs
のログを調べてください。それらには多くの有用な情報が含まれています。コミュニティや開発者とのトピックの改造について話し合いたい場合は、Discord Channel#Modding-Dev-Generalにアクセスしてください( #pick-your-roles-here
チャンネルでMod creation
役割を割り当てる必要があります)。 GitHubでここで問題を提出することもできますが、チームからの応答時間が遅れる可能性があります。
COIの改造を開始するには、次のことが必要です。
Properties...
- > Local Files
- > Browse
。C:/Steam/steamapps/common/Captain of Industry
)。COI_ROOT
と呼ばれる新しい環境変数を作成し、その値を上にコピーしたゲームルートパスに設定します。 Windowsで、Handy Edit environmental variables
ツールを使用して、[スタート]メニューを開き、 Edit env
入力すると、表示されるはずです。src/ExampleMod/ExampleMod.sln
にあるRelease
構成でExampleMod
コンパイルします。 Visual Studioを使用することをお勧めしますが、 dotnet build
Consoleコマンドなど、他のツールを自由に使用してください。 Visual Studioでは、すべての従属アセンブリが正しくリンクされていることがわかります。そうでない場合は、多くのエラーが表示されている場合は、環境COI_ROOT
変数を確認して、再起動を試みてください。ExampleMod.dll
in /bin/Release/net471
を見つけます。%APPDATA%/Captain of Industry
です。Mods
開くか作成します。その内部では、mod dllと同じ名前の新しいディレクトリを作成します。この場合、 ExampleMod
です。そこにコンパイルされたExampleMod.dll
をコピーして、 %APPDATA%/Captain of Industry/Mods/ExampleMod/ExampleMod.dll
であるようにします。ディレクトリ名とDLL名が一致する必要があることに注意してください。Miscellaneous
設定で、MODサポートを可能にし、ゲームを再起動して、設定が有効になるようにします。ExampleMod
がロードされていることを観察します( G
キーを使用して開く)。エラーが発生した場合、 %APPDATA%/Captain of Industry/Logs
のログを調べます。ICONや3Dモデルなどの資産は、Unityエディターを使用して作成できます。現在、Unity 2022.3.5F1を使用しており、同じバージョンを使用して互換性を回避することをお勧めします。
MAFIツールが適切に機能するために必要な1回限りのUnityセットアップ。
src/ExampleMod.Unity
のテストシーンを見つけます。まだ開かないでください。srcExampleMod.UnityLibrary
C:Program FilesUnityHubEditor2022.3.5f1
UnityRootSymlink
というディレクトリリンクを作成します。これは、管理者の特権を使用してコンソールウィンドウでmklink /D <target> <srouce>
コマンドを呼び出すことで実行できます。例: mklink /D "C:CaptainOfIndustryModdingsrcExampleMod.UnityLibraryUnityRootSymlink" "C:Program FilesUnity"
。 UnityRootSymlink
に移動すると、単一のEditor
ディレクトリが表示されます。src/ExampleMod.Unity/Assets/DLLs/create_dll_hardlinks.bat
バッチファイルを実行して、蒸気インストールから必要なdllにハードリンクを作成します。管理者特権の下で実行する必要があります(右クリック、管理者として実行)。src/ExampleMod.Unity/Assets/ExampleModScene.unity
in the Unity Editorからテストシーンを開きます。これは、 Projects
タブでOpen project from disk
選択することにより、Unity Hubを介して実行できます。複数のインストールがある場合は、適切なUnityバージョンを選択してください。MaFi
が表示されることを確認してください。そうでない場合、リンクされたDLLは適切にロードされておらず、資産を作成できません。Proejct
ペイン( Assets
Directoryの下にあります)でダブルクリッキンしてExampleModScene
開きます。Edit
- > Preferences
)。External tools
- > External script editor
- > Open by file extension
。これにより、プロジェクトファイルの再生を停止し、相対的ではなく絶対パスの配置を停止します。General
- > Disable Editor Analytics
(可能な場合は必要な場合)。次の手順では、たとえば新製品のアイコンをパッケージ化する方法について説明します。
Assets
Directoryの下で、 <mod name>/<icons categor>
ExampleMod/ProductIcons
を作成します。Sprite (2D and UI)
タイプを作成し、変更を適用します。asdf
と呼ばれる新しいバンドルを作成するか、既存のバンドルを選択できます。Copy Path
を選択します。そのパスは、ゲームにプレハブをロードするために使用できます。注:3Dモデルとは異なり、テクスチャはprefab
作成する必要はありません。
次の手順では、建物の3Dモデルの作成において非常に利益をもたらす3Dモデルテンプレートを作成する方法について説明します。
ExampleMachineData.cs
を参照)。"TODO"
にプレハブパスを設定します。generate_layout_entity_mesh_template
を使用してゲームを起動し、エンティティIDが続きます。これにより、正確なポートロケーションを持つ新しいエンティティのレイアウトの3D境界ボックスを表す%APPDATA%/Captain of Industry/Misc/GeneratedMeshTemplates
のOBJファイルが生成されます。次の手順は、3Dモデルのパッケージ化方法について説明します。
Assets
Directoryの下で、 <mod name>/<model name>
ディレクトリを作成します。この場合は、 ExampleMod/ExampleModel
です。.prefab
ファイルが作成されます。この例では、 <mod name>
ディレクトリにプレハブを作成しました。asdf
と呼ばれる新しい一時的なバンドルを作成するか、既存のバンドルを選択できます。Copy Path
を選択します。そのパスは、ゲームにプレハブをロードするために使用できます。資産の準備ができたら、次の手順に従って、MODでパッケージ化します。 MODは、mod dllと同じ名前のディレクトリに公開されています。この場合、 ExampleMod/ExampleMod.dll
があります。これで、同じディレクトリにアセットバンドルを追加できます。
Ctrl+S
を使用してください)。[MaFi] Build asset bundles
。 Unityが処理された後、Asset Bundleファイルはsrc/ExampleMod.Unity/AssetBundles
ディレクトリにあります。src/ExampleMod.Unity/AssetBundles
の内容%APPDATA%/Captain of Industry/Mods/ExampleMod/AssetBundles
mod dllの横にあるAssetBundles
フォルダーにコピーします。YourPrefabName_xxxx
形式のファイル)とmafi_bundles.manifest
ファイルのみが必要です。他のすべての.manifest
ファイルは、 AssetBundles
ファイルと同様に削除できます。プレハブに変更がある場合は、Asset Bundlesを再構築して、 AssetBundles
ディレクトリから新しいファイルを使用してコピーするだけです。