다른 모드 가져오기

모딩 문서는 업데이트하는 데 시간이 걸리며, 다룰 수 있는 내용이 한정적입니다. 다른 모드의 소스 코드를 살펴보는 것은 기술을 확장하고 새로운 것을 배우는 훌륭한 방법입니다. 이 페이지에서는 다른 모드를 시작 프로젝트에 가져와서 에디터에서 확인하고 수정하는 방법을 다룰 것입니다.

명시적인 허가를 받거나 그들의 저장소에 있는 라이센스 파일에서 허용되지 않는 한, 다른 사람의 모드를 수정한 버전을 배포하지 마십시오. 뭘 하든 여전히 그들의 작업물입니다!

패키지 모드와 소스 코드

프로젝트에 모드를 가져오는 것이 단순히 배포된 모드를 다운로드하고 프로젝트의 모드 디렉토리에 넣는 것만큼 간단하지 않은 이유를 이해하는 것이 중요합니다.

모드는 배포를 위해 패키징될 때 .pak 파일로 컴파일됩니다. Pak은 모드의 코드, 애셋, 기타 파일을 포함하는 압축 아카이브입니다. ficsit.app에서 다운로드하는 파일 중 하나이며, 게임에 설치됩니다.

패키징 과정은 케이크를 만드는 것과 같습니다. 완성한 케이크를 분해한다고 해서 원재료가 나오지는 않는 것처럼, .pak 파일을 언리얼 에디터에서에서 열 수는 없습니다.

모드의 pak 파일에서 일부 종류의 애셋을 추출하는 것은 가능하지만, 대부분의 경우, 배우고 수정하기 위해서는 모드의 소스 코드가 필요합니다. 추출된 .uasset 파일은 비슷한 이유로 프로젝트에서 불러올 수 없는 경우가 많습니다.

소스 코드 찾기

모드 개발자가 모드의 소스 코드를 공유하는 경우, 아마도 ficsit.app의 모드 페이지의 '소스' 링크 섹션에 나열되어 있을 것입니다. 거기에서 보이지 않는 경우, 디스코드에서 그들에게 물어보는 것을 고려하십시오. 많은 사람들이 기꺼이 공유하며, 때때로 그들은 단순히 공유하는 것을 잊어버렸을 수도 있습니다.

자신의 모드가 아직 깃 저장소에 저장되지 않았다면 여기에서 그 방법을 배울 수 있습니다.

소스 코드 다운로드

다음 단계는 모드의 소스 코드를 다운로드하고 본인 프로젝트의 모드 디렉터리에 배치하는 것입니다.

그들의 플러그인을 zip 파일로 다운로드하고 추출할 수 있지만, 저장소를 복제하여 모드의 향후 변경 사항을 쉽게 적용할 수 있도록 고려하십시오.

압축을 해제했든 복제했든, 모드의 .uplugin 파일을 포함하는 폴더의 이름이 정확히 모드의 모드 참조, 즉 모드의 .uplugin 파일의 파일 이름과 일치해야 합니다. 그렇지 않으면 에디터가 플러그인을 올바르게 식별하지 못합니다.

의존성

모드가 설정된 방식에 따라, 에디터에서 모드를 빌드하고 사용하기 위해 추가 모드나 도구를 다운로드해야 할 수도 있습니다. 따라야 할 정확한 단계는 모드에 따라 다르지만, 이 섹션에서는 몇 가지 일반적인 경우를 다룰 것입니다.

모드가 작동하기 위해 프로젝트에 추가해야 할 변경 사항을 설명하는 텍스트 파일을 저장소에 루트 폴더에서 찾아보십시오.

다른 모드

불러오려는 모드가 다른 모드에 의존성이 있는 경우, 의존성 모드의 소스 코드를 얻고 프로젝트에 가져와야 합니다.

모드가 의존하는 다른 모드를 확인하려면, "모드 의존성" 테이블을 SMR 페이지에서 확인하거나 버전을 다운로드하고 .uplugin 파일의 의존성 섹션을 확인하십시오.

이 섹션은 다른 모드를 모드 참조로 나열합니다. 이 섹션에 대한 자세한 내용은 모드 배포 페이지에서 확인할 수 있습니다.

예를 들어, PowerSuit 모드는 PowerSuitMAMTips 모드가 설치되어 있어야 합니다.

모드의 표시 이름이 항상 모드 참조와 일치하지 않는다는 점을 유의하십시오. 또한, 의존성 모드는 모드 저장소에 표시되지 않았을 수 있습니다. 이 경우, 모드 참조를 ficsit.app URL에 입력하여 모드 페이지를 추적할 수 있습니다. 예를 들어, MAMTips 모드의 모드 페이지를 찾으려면 URL을 https://ficsit.app/mod/MAMTips 와 같이 입력하면 됩니다. URL은 대소문자를 구분합니다.

헤더 수정

가능한 경우 접근 변환기를 사용하는 것이 좋지만, 일부 모드는 여전히 시작 프로젝트에 포함된 헤더 파일을 수동으로 수정해야 할 수 있습니다. 주의하십시오, 이러한 수정은 시작 프로젝트에 있는 다른 모드에 영향을 미치며, 게임 업데이트로 인해 시작 프로젝트를 업데이트 시 지워질 수 있습니다.

헤더 수정을 해야 한다면, 나중에 다시 적용할 수 있도록 왜 그랬는지에 대한 메모를 어딘가에 남겨두어야 합니다!

애셋 수정

헤더 수정과 유사하게, 모드가 제대로 작동하기 위해 프로젝트의 특정 자리 표시자 블루프린트 애셋을 수정해야 할 수도 있습니다.

예를 들어, MAM Enhancer는 기본 게임 위젯의 입력란을 인스턴스 편집 가능하게 수정하여 모드가 입력란을 읽을 수 있게 합니다. 이 수정을 하지 않으면 에디터가 모드를 컴파일하지 않습니다. 저장소의의 루트에 있는 참고가 이 요구 사항을 잠재적인 뷰어에게 알립니다.

비표준 자리 표시자

모드가 비표준 자리 표시자 애셋을 생성해야 하거나, 모드가 에디터에서 제대로 작동하기 위해 완전한 시작 프로젝트가 필요할 수도 있습니다. 모드가 프로젝트에 자리 표시자가 없는 애셋을 참조하는 경우, 에디터는 이러한 입력란을 비워두어 오류를 유발할 수 있습니다.

예를 들어, PowerSuit 모드는 호버팩 팔 애니메이션에 대한 자리 표시자가 존재해야 합니다. 이 파일이 없으면 장비 아이템이 팔 애니메이션 없이 패키징되어 게임 내에서 잘못된 동작을 초래합니다.

다른 모드의 파일에 대한 우발적 참조

의존성 모드를 다운로드하고 설정했더라도, 여전히 다른 모드에서 필요한 파일이 누락될 수 있습니다. 이 문제는 에디터에서 모드를 패키징하려고 할 때 더 자주 발생하지만, C‍+‍+ 빌드 과정에도 영향을 미칠 수 있습니다.

여러 모드에서 작업하는 개발자는 종종 자신도 모르게 자신의 다른 모드에서 파일을 참조할 수 있으며, 이로 인해 발생할 수 있는 오류는 개발자가 인지하기 어렵습니다. 그들은 에디터에서 해당 파일을 가지고 있기 때문입니다.

다른 모드에서 누락된 파일에 대한 오류가 발생하면, 개발자에게 연락하여 문제를 수정할 수 있도록 알려주십시오.

의도적으로 제외된 파일

일부 모드 개발자는 저작권이나 개인 정보와 같은 다양한 이유로 모드의 소스 코드에서 특정 파일을 제외할 수 있습니다. 이 문제는 에디터에서 모드를 패키징하려고 할 때 더 자주 발생하지만, C‍+‍+ 빌드 과정에도 영향을 미칠 수 있습니다.

이 문제를 겪는 경우, 모드 개발자에게 연락하여 파일의 복사본을 요청하거나 파일을 대체하는 방법을 문의하십시오.

Visual Studio에서 빌드하기

모든 모드가 C‍+‍+ 파일을 다시 빌드해야 하는 것은 아니지만, 잠재적인 문제를 피하기 위해 그렇게 하는 것이 좋습니다. 다시 빌드하기 전에 아래 단계를 따르십시오.

Visual Studio 파일 재생성

다른 모드를 프로젝트에 도입함으로써 프로젝트의 구조가 변경되었습니다. 따라서 Visual Studio 프로젝트 파일을 재생성해야 합니다. 그렇지 않으면 Visual Studio가 새로운 모드를 인식하지 못합니다.

무시된 접근 변환기

많은 모드가 접근 변환기를 사용하여 게임 코드에 대한 추가 접근을 얻습니다. 이 시스템의 작동 방식 때문에, Visual Studio는 방금 가져온 모드의 접근 변환기를 잘못 무시할 수 있으며, 빌드할 때 오류가 발생할 수 있습니다. 이 문제와 이를 수정하는 방법에 대해 알아보려면 여기를 참고하십시오.

프로젝트 빌드

Visual Studio에서 Development Editor를 위해 빌드하고, 성공하면 Shipping을 위해 빌드하십시오.

빌드가 실패하면, 필요한 모든 의존성이 있는지 확인하고 접근 변환기를 강제로 다시 빌드했는지 확인하십시오. 여전히 실패하면, 디스코드와/또는 모드 개발자에게 도움을 요청하십시오.

에디터에서 모드 로드하기

Visual Studio에서 모드를 성공적으로 빌드한 후, 언리얼 에디터를 열고 알파킷으로 가져온 모드를 패키징할 수 있어야 합니다. 이것은 모드의 파일을 올바르게 가져왔는지 테스트하는 좋은 방법입니다.

부적절하게 설정된 모드가 존재하면 에디터가 다른 모드를 패키징하는 것을 막을 수 있으므로, 모드를 제거하거나 문제를 해결해야 할 수 있습니다. 여전히 파일을 유지하면서 모드를 비활성화해야 하는 경우, 여기의 지침을 따르십시오.

여전히 문제가 발생하는 경우

모드를 패키징하려고 할 때 "UATHelper: Package Mod Task (Windows): ERROR: System.IO.DirectoryNotFoundException: Could not find a part of the path"와 같은 오류가 발생하면, 모드 폴더의 이름이 모드 참조와 정확히 일치하는지 확인하십시오.

여전히 문제가 발생하면, 디스코드와/또는 모드 개발자에게 도움을 요청하십시오.