제작법과 도면
이제 모드의 기본 구조를 설정했으니, 게임 내 기존 아이템을 제작할 수 있는 맞춤형 제작법을 만들어 보겠습니다.
첫 번째 제작법을 만들기 전에, '제작법’과 '도면’의 차이를 이해하는 것이 중요합니다.
새티스팩토리에서 '제작법’은 아이템 입력/비용과 제작 아이템, 건물 등의 출력을 정의하는 데 사용됩니다. 이들은 FGRecipe 클래스에 의해 지원됩니다. 제작법은 작업대나 장비 작업장뿐만 아니라, 빌드건, 제련기, 제조기 등에서도 사용됩니다. 제작법에 대한 자세한 내용은 제작 페이지를 참고하십시오.
제작법은 작업대와 기계에서의 제작법 및 빌드건을 사용할 때의 건설 비용을 정의하는 데 사용됩니다. 모든 건물은 실제 게임 내에서 아이템에 해당합니다. |
반면 '도면’은 마일스톤과 같은 것들을 정의하며, 허브를 통해 FICSIT에 제출된 선적물로 새로운 제작법과 기능을 잠금 해제하는 데 사용됩니다. 이것이 그들의 유일한 목적은 아닙니다. 이들은 FGSchematic 클래스에 의해 지원됩니다. 도면에 대한 자세한 내용은 FGSchematic 페이지를 참고하십시오.
이번 파트의 튜토리얼에서는 제작법과 도면을 모두 생성할 것입니다. 우리의 도면은 플레이어가 제작법에 접근할 수 있도록 할 것입니다.
제작법 만들기
시작하기 위해 이파리 기반의 새로운 제작법을 만들어 보겠습니다. 이파리는 꽤 흔하므로, 게임 내에서 제작법을 테스트하기 쉽습니다.
언리얼 에디터의 콘텐츠 브라우저로 이동합니다.
모드의 루트 폴더(DocMod 콘텐츠
로 표시됨)로 이동하여 우클릭 후 '새 폴더’를 선택합니다.
새 폴더의 이름을 "Recipes"로 지정합니다.
콘텐츠 브라우저의 Recipes 폴더 안에서 우클릭 후
블루프린트 클래스를 생성하고 FGRecipe를 부모 클래스로 사용합니다.
Coffee Stain의 제작법 파일 접두사 명명 규칙을 따르기 위해 Recipe_DocRecipe
라고 하겠습니다.
제작법 속성 할당
다음으로, 새로운 제작법을 구성하여 필요한 것, 생산하는 것, 사용할 수 있는 기계를 제어합니다.
새로운 제작법을 두 번 클릭하여 열면, 클래스 속성의 기본 설정이 표시됩니다. 표시되지 않으면 툴바에서 "Class Defaults" 버튼을 클릭하면 세부 정보 브라우저에 나타납니다.
각 속성을 살펴보고 제작법의 속성을 설정해 보겠습니다. 입력란의 왼쪽에 마우스를 올리면 그 목적을 설명하는 툴팁이 표시됩니다(게임 헤더에서 가져옴).
-
- M Display Name
-
제작법의 이름은 수동 작업대나 설정한 기계 내에서 표시됩니다. 기본적으로 제작법은 생산 아이템의 이름을 사용합니다. 제작법에 대한 원하는 이름을 정의하려면 여기에서 지정할 수 있습니다. 기본 게임은 대체 제작법에 특별한 이름을 부여하는 데 이를 사용합니다.
우리 튜토리얼 제작법의 경우, 입력란에 체크하고 "Doc Recipe"라고 부르겠습니다.
-
- M Ingredients
-
한 번 생산하는 데 필요한 재료에 대한 정보를 포함하는 구조체의 배열입니다. 배열은 제작법의 입력 아이템을 형성합니다.
하나의 항목을 추가하고 아이템 클래스를Desc_Leaves
로 설정하고 수량을42
로 설정합니다.
-
- M Product
-
제작법의 출력을 정의하는 또 다른 구조체의 배열입니다.
하나의 항목을 추가하고 아이템 클래스를Desc_Wood
로 설정하고 수량을1
로 설정합니다.
제작법을 만들 때 다음과 같은 일반적인 함정을 피해야 합니다:
유체를 사용할 경우, 수량에 1000을 곱해야 합니다. 내부적으로 리터로 처리되지만 입방 미터로 표시됩니다(1 입방 미터는 1000리터). |
-
- M Overridden Category
-
범주는 제작법이 제작법 목록의 어떤 하위 섹션에 나타나는지를 제어합니다. 기본적으로 제작법은 첫 번째 생산 아이템의 범주를 따릅니다.
기본 범주를 유지하기 위해None
으로 두겠습니다.
-
- M Manufacturing Menu Priority
-
제작법이 범주 내에서 나타나는 순서를 제어합니다. 낮은 값은 메뉴에서 더 일찍 나타납니다. 음수와 소수점이 허용됩니다.
기본값인0.0
을 유지하겠습니다.
-
- M Manufacturing Duration
-
기계가 이 제작법을 처리하는 데 걸리는 시간을 초 단위로 결정합니다.
아래에서 설명할 이유로4.0
으로 설정하겠습니다.
-
- M Manual Manufacturing Multiplier
-
동일한 제작법을 기계와 작업대 모두에서 사용할 수 있도록 하려면, 이 값은 작업대에서 이 제작법을 제작하는 데 걸리는 시간을 정의할 수 있습니다. 기본적으로 이 값은
1.0
입니다. 이는 생산품을 제작하는 데 걸리는 초 수를 두 번 나눈 클릭 수를 의미합니다. 예를 들어, 철봉은4.0
의 제조 시간을 가지고 있고 배수가0.5
입니다. 이는 각 배치가 기계에서 4초가 걸리지만, 제작하는 데는 단 한 번의 클릭만 필요하다는 것을 의미합니다(4 / 2 * 0.5 = 1) 최소 한 번의 클릭으로 제한됩니다. 0이 되어도 여전히 한 번의 클릭이 필요합니다.
기본값인1.0
으로 두겠습니다. 우리의 제작법은 이제 기계에서 4초가 걸리지만, 제작하는 데는 2번의 클릭이 필요합니다.
-
- M Produced In
-
제작법을 사용할 수 있는 IFGRecipeProducerInterface 구현자(기계)의 배열입니다.
FGWorkBench
와Build_ConstructorMk1
을 추가하여 우리가 논의한 제조 시간의 동작을 확인하겠습니다.
-
- M Material Customization Recipe
-
건축 자재 전환을 위한 커스터마이저와 함께 사용됩니다.
건축 제작법을 건드리고 있지 않으므로 기본값인None
으로 두겠습니다.
-
- Variable Power
-
가변 소비를 지원하는 기계가 이 제작법을 생산하는 동안 순환할 전력 소비 수준을 제어합니다. 업데이트 6 기준으로, 입자 가속기가 이 기능을 지원하는 유일한 기본 게임 건물입니다.
기본값으로 두겠습니다.
-
- M Relevant Events
-
특정 이벤트(예: FICSMAS 또는 4월 1일) 동안만 제작법이 유효하도록 제한합니다.
비워 두겠습니다.
이제 첫 번째 제작법을 만들었습니다!
계속하기 전에, 컴파일하고 저장하는 것을 잊지 마십시오!
제작법 린터로 제작법 확인하기
SML 에디터는 제작법의 일부 잠재적 문제 또는 실수 확인을 돕는 도구를 포함하고 있습니다. 이를 통해 제작법을 완벽하게 만들어봅시다.
사용하기 위해 콘텐츠 브라우저에서 제작법을 우클릭 후,
Scripted Asset Actions
> SMLEditor: Lint Recipes for Common Mistakes
를 선택합니다.
에디터의 "출력 로그" 탭에 출력이 표시될 것입니다.
만약 닫아버렸다면 상단 메뉴 바의 창
> 출력 로그
를 통해 복원할 수 있습니다.
우리가 만든 제작법은 아무런 문제가 없어야 하므로,
출력 로그의 끝에 다음 메시지만 생성할 것입니다.
LogSMLEditor: Verbose: [/SMLEditor/Recipe/RecipeLinter/AssetAction_CheckWithRecipeLinter]: Processing recipe Recipe_DocRecipe_C
이 도구에 대해 더 알아보려면 SML 에디터 유틸리티 페이지를 참고해 보십시오. 지금은 제작법에 접근할 수 있게 해 보겠습니다.
도면 만들기
다음으로, 게임에서 사용할 수 있도록 제작법을 도면에 추가해 보겠습니다.
도면은 새티스팩토리가 플레이어에게 제작법과 기능을 부여하는 데 사용하는 것입니다. 도면은 허브에서 볼 수 있는 마일스톤이며, 티어 0 튜토리얼 단계, M.A.M. 연구, 대체 제작법 연구 등입니다. 플레이어가 아이템, 건물 또는 제작법을 잠금 해제하는 경우, 아마도 도면에 의해 부여될 것입니다.
언리얼 에디터의 콘텐츠 브라우저로 이동합니다.
모드의 루트 폴더(DocMod Content
로 표시됨)로 이동하여 우클릭 후 '새 폴더’를 선택합니다.
새 폴더의 이름을 "Schematics"로 지정하여 지금까지의 조직 패턴을 유지합니다.
콘텐츠 브라우저의 Schematics 폴더 안에서 우클릭 후
블루프린트 클래스를 생성하고
FGSchematic을 부모 클래스로 사용합니다.
Coffee Stain의 도면 파일 접두사 명명 규칙을 따르기 위해 Schematic_DocSchem
이라고 부르겠습니다.
도면 속성 할당
다음으로, 새로운 도면을 구성하여 어떤 티어에 속하는지와 해금하는 데 필요한 비용을 제어합니다.
새로운 도면을 두 번 클릭하여 열면, 클래스 속성의 기본 설정이 표시됩니다. 표시되지 않으면 툴바에서 "Class Defaults" 버튼을 클릭하면 세부 정보 브라우저에 나타납니다.
각 속성을 살펴보고 도면의 속성을 설정해 보겠습니다. 입력란의 왼쪽에 마우스를 올리면 그 목적을 설명하는 툴팁이 표시됩니다(게임 헤더에서 가져옴).
-
- M Type
-
도면이 튜토리얼 시스템의 일부인지, 마일스톤 등인지 결정합니다.
허브에서 잠금 해제할 수 있도록Milestone
을 사용하겠습니다.
-
- M Display Name
-
사용자에게 표시되는 도면의 게임 내 이름입니다.
"Doc Plants Upgrade"를 사용하겠습니다.
-
- M Description
-
도면과 함께 표시할 텍스트 설명입니다. 업데이트 6 기준으로, 실제로 게임 내에서 이 값을 표시하는 것은 A.W.E.S.O.M.E. 상점 도면뿐입니다.
허브 도면이므로 비워 두겠습니다.
-
- M Schematic Category
-
이 도면이 그룹화되는 범주를 정의합니다. 실제로 이 값을 사용하는 것은 A.W.E.S.O.M.E. 상점 도면뿐입니다.
하나를 선택해도 괜찮습니다. 예시이므로 상관없습니다.
-
- M Sub Category
-
도면이 분류되는 하위 그룹을 정의합니다. 다시 말하지만, 실제로 이 필드를 사용하는 것은 A.W.E.S.O.M.E. 상점 도면뿐입니다.
이 배열은 비워 두겠습니다.
-
- M Menu Priority
-
도면이 범주 내에서 나타나는 순서를 제어합니다. 허브 마일스톤 및 A.W.E.S.O.M.E. 상점 도면에 관련이 있습니다.
모드 마일스톤이 기본 항목 뒤에 나타나도록 기본값인10.0
보다 높은 값을 사용하겠습니다.
-
- M Tech Tier
-
허브에서 마일스톤이 나타나는 티어를 결정합니다.
튜토리얼을 마친 후 즉시 사용할 수 있도록1
로 설정하겠습니다.
-
- M Time to Complete
-
도면 유형과 관련된 경우, 도면이 "처리"되는 데 걸리는 시간(초)입니다. 허브 마일스톤의 경우, 화물선이 돌아오는 데 걸리는 시간입니다. M.A.M. 노드의 경우, 연구가 완료되는 데 걸리는 시간입니다.
60
초로 설정하겠습니다.
-
- M Schematic Icon
-
허브 마일스톤, M.A.M. 연구 또는 A.W.E.S.O.M.E. 상점 페이지 및 미리 보기에서 표시되는 아이콘입니다.
이 입력란과M Small Schematic Icon
을 이 예시 이미지로 설정하겠습니다.
-
- M Cost
-
제출하는 데 필요한 각 아이템에 대한 정보를 포함하는 구조체의 배열입니다.
Desc_Leaves
100개와Desc_Wood
50개로 두 항목을 추가하겠습니다.
-
- M Unlocks
-
이 도면을 구매할 때 플레이어가 받을 보상을 포함하는 배열입니다. FGUnlock 내부 클래스 인스턴스의 배열입니다. 다양한 종류의 잠금 해제는 도면 페이지에서 논의됩니다.
하나의BP_UnlockRecipe
를 추가하고 이전에 만든 제작법(Recipe_DocRecipe
)을 목록에 추가합니다.
-
- M Schematic Dependencies
-
다른 도면이나 세계의 아이템에 따라 도면 구매를 잠금 해제할 수 있는 배열입니다. 이는 M.A.M.에 의해 무시되며, 노드 데이터가 이 튜토리얼의 범위를 벗어납니다.
다른 특정 도면이 먼저 잠금 해제되도록 요구하지 않으므로 비워 두겠습니다.
-
- M Dependencies Block Schematic Access
-
의존성이 도면 접근을 차단해야 하는지 제어하며, 나중에 이를 해제하기 위한 사용자 정의 코드가 필요합니다.
의존성이 없으므로 체크하지 않겠습니다.
-
- M Relevant Events
-
특정 이벤트(예: FICSMAS 또는 4월 1일) 동안만 유효하도록 도면을 제한합니다.
비워 두겠습니다.
-
- M Include In Builds
-
이를
PublicBuilds
로 설정하여 콘텐츠가 빌드에 포함되도록 합니다. 아마도 Coffee Stain이 개발자 테스트 마일스톤을 메인 게임과 함께 배포하지 않도록 하는 데 사용하는 것 같습니다.
휴! 정말 멋진 클래스입니다. 이제 이 도면이 런타임에 표시되도록 등록하기만 하면 됩니다.
계속하기 전에, 컴파일하고 저장하는 것을 잊지 마십시오!
도면 등록
도면을 등록하려면, 이전에 생성한
RootGameWorld_모드참조
애셋을 열고 M Schematics
배열에 도면을 추가합니다.
이제 설정되었습니다! 우리의 제작법과 도면이 등록되었으며, 게임에 표시되어야 합니다.
계속하기 전에, 컴파일하고 저장하는 것을 잊지 마십시오!
모드 테스트
테스트하려면 알파킷을 실행하고 게임을 시작하십시오. 사용 방법에 대한 정보는 프로젝트 설정 페이지에서 확인할 수 있습니다.
원하는 저장 파일을 불러오고, 가능하면 기존 파일을 사용하여 다시 튜토리얼을 진행하지 않도록 하십시오. 이제 허브를 확인해 보십시오. 당신은 도면을 구매하고 작업대나 제작기로 가서 제작법을 사용할 수 있어야 합니다.
문제 해결
도면이 허브에 나타나지 않음
-
모든 관련 파일을 저장하고 컴파일했습니까?
파일 > 저장할 파일 선택…
을 통해 저장되지 않은 파일을 확인하십시오. -
마지막 단계에서 생성한 게임 월드 모듈이 루트 모듈로 표시되었습니까?
-
저장 파일에서 아직 접근할 수 없는 티어를 선택했습니까?
-
도면 유형이
Milestone
이 아닌 다른 것으로 설정되어 있습니까?
다른 문제
문제가 발생하면, 도움을 받기 위해 디스코드에서 저희에게 연락해 주십시오. 자신이 문제를 해결하더라도, 문서를 업데이트하여 다른 사람들이 비슷한 문제를 겪을 때 해결할 수 있도록 디스코드에 알려주십시오!