업계 선장의 공식 모딩 리소스에 오신 것을 환영합니다.
COI는 현재 Steam에서 사용할 수 있으며 초기 액세스 단계에 있습니다. 모딩이 가능하지만 아직 공식적으로 지원되지는 않습니다. 우리는 모딩 지원 및 문서를 개선하기 위해 지속적으로 노력하고 있습니다.
MOD 지원은 실험적이며 API는 변화를 깨뜨릴 수 있습니다. 문제가있는 경우 항상 %APPDATA%/Captain of Industry/Logs
로그를 검사하십시오. 유용한 정보가 많이 포함되어 있습니다. 커뮤니티 및 개발자와 Modding 주제에 대해 논의하려면 Discord Channel #Modding-Dev-General을 방문하십시오 ( #pick-your-roles-here
Channel에서 Mod creation
역할을 할당해야합니다). 여기에 GitHub에 문제를 제기 할 수도 있지만 팀의 응답 시간이 지연 될 수 있습니다.
Modding COI를 시작하려면 다음을 수행해야합니다.
Properties...
> Local Files
-> Browse
.C:/Steam/steamapps/common/Captain of Industry
).COI_ROOT
라는 새로운 환경 변수를 만들고 위에서 복사 한 게임 루트 경로로 값을 설정하십시오. Windows에서는 편리한 Edit environmental variables
도구를 사용하고 시작 메뉴를 열고 Edit env
입력하면 볼 수 있습니다.src/ExampleMod/ExampleMod.sln
에있는 Release
구성에서 ExampleMod
컴파일하십시오. Visual Studio를 사용하는 것이지만 dotnet build
콘솔 명령과 같은 다른 도구를 사용하는 것이 좋습니다. 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
설정에서 모드 지원을 가능하게하고 설정이 적용되도록 게임을 다시 시작하십시오.ExampleMod
가로드됨을 관찰하십시오 ( G
키를 사용하여 열 수 있음). 오류의 경우 %APPDATA%/Captain of Industry/Logs
의 로그를 검사하십시오.Unity 편집기를 사용하여 아이콘 또는 3D 모델과 같은 자산을 만들 수 있습니다. 우리는 현재 Unity 2022.3.5f1을 사용하고 있으며 비 호환성을 피하기 위해 동일한 버전을 사용하는 것이 좋습니다.
MAFI 도구가 올바르게 작동하는 데 필요한 일회성 유니티 설정.
src/ExampleMod.Unity
에서 테스트 장면을 찾으십시오. 아직 열지 마십시오.srcExampleMod.UnityLibrary
에서 UnityRootSymlink
라는 디렉토리 링크를 만듭니다 (예 : C:Program FilesUnityHubEditor2022.3.5f1
). 이는 관리자 특권이있는 콘솔 창에서 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
에서 테스트 장면을 엽니 다. Projects
탭에서 Open project from disk
선택하여 Unity Hub를 통해 수행 할 수 있습니다. 여러 설치가있는 경우 올바른 Unity 버전을 선택하십시오.MaFi
볼 수 있는지 확인하십시오. 그렇지 않은 경우 링크 된 DLL이 제대로로드되지 않았으며 자산을 만들 수 없습니다.Proejct
창 ( Assets
디렉토리 아래)에서 두 번 클릭하여 ExampleModScene
엽니 다.Edit
-> Preferences
).External tools
-> External script editor
-> Open by file extension
. 이렇게하면 프로젝트 파일을 재생하고 상대 대신 절대 경로를 배치합니다.General
-> Disable Editor Analytics
(가능하고 원하는 경우).다음 단계는 예를 들어 신제품에 대한 아이콘을 패키지하는 방법을 설명합니다.
Assets
디렉토리 아래에서 <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
디렉토리 아래에서 <mod name>/<model name>
ExampleMod/ExampleModel
를 작성하십시오..prefab
파일을 만듭니다. 이 예에서는 <mod name>
디렉토리에서 프리 랩을 만들었습니다.asdf
라는 새 임시 번들을 만들거나 기존 번들을 선택할 수 있습니다.Copy Path
선택하십시오. 그 길은 게임에서 당신의 사전을로드하는 데 사용될 수 있습니다. 자산이 준비되면 다음 단계를 따라 모드로 패키지하십시오. 모드는 MOD DLL과 동일한 이름의 디렉토리에 게시되며,이 경우 ExampleMod/ExampleMod.dll
있습니다. 이제 동일한 디렉토리에 자산 번들을 추가 할 수 있습니다.
Ctrl+S
사용).[MaFi] Build asset bundles
선택하십시오. Unity가 처리 된 후, 자산 번들 파일은 src/ExampleMod.Unity/AssetBundles
디렉토리에서 찾을 수 있습니다.src/ExampleMod.Unity/AssetBundles
의 컨텐츠를 Mod DLL 옆에있는 AssetBundles
폴더에 복사하십시오 (예 : %APPDATA%/Captain of Industry/Mods/ExampleMod/AssetBundles
.YourPrefabName_xxxx
형식의 파일)과 mafi_bundles.manifest
파일 만 있으면됩니다. 다른 모든 .manifest
파일과 AssetBundles
파일을 제거 할 수 있습니다. 사전 랩을 변경하는 경우 자산 번들을 재구성하고 복사하면 AssetBundles
디렉토리에서 새 파일을 사용하십시오.