業界のキャプテンのための公式の改造リソースへようこそ。
現在、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ディレクトリから新しいファイルを使用してコピーするだけです。