https://sonsazang.tistory.com/131
언리얼 에디터 툴바에 Level Selector 플러그인 만들기 (Part 1)
개발하게 된 과정언리얼 프로젝트를 개발하다 보면 여러 레벨을 오가면서 Play In Editor(PIE)를 자주 실행하게 됩니다. 그런데 매번 콘텐츠 브라우저에서 레벨을 더블 클릭하고, PIE 버튼을 누르는
sonsazang.tistory.com
서론
해당 글은 지난 글에서 제작하게 된 Level Selector 플러그인을 언리얼엔진 에셋 스토어인 FAB에 출시하는 과정을 담은 글입니다.
제가 출시를 하는 과정 속에서 받은 다양한 피드백을 통해서 가장 문제없이 출시할 수 있는 과정으로 준비했습니다!!
Fab에 판매를 위해서는 미국 세금 관련된 서류 작업이 필요했습니다.
저에게는 수익 창출의 목적이 아직은 없는 단계여서 요구하는 내용에 대해서만 진행했습니다.
해당 내용은 이번 글에서는 다루지 않겠습니다.
1. 프로젝트 패키징
플러그인 출시를 위해서는 지난번에 제작한 플러그인을 패키징 해야 합니다.
패키징 과정은 크게 어렵지 않습니다.
언리얼 에디터 플러그인 창에서 Package 버튼을 클릭하면 저장할 장소를 선택 후 기다리면 완료됩니다.
완료되면 아래와 같이 폴더 구조를 확인할 수 있습니다.
2. Fab에서 제품 생성하기
1. Fab 사이트에 로그인 후 퍼블리싱 새 제품 생성 버튼을 클릭합니다.
2. 등록을 희망하는 제품의 카테고리를 선택한 후에 제품에 대한 내용을 작성합니다.
저의 경우 툴 및 플러그인을 선택한 후 진행했습니다.
해당 부분 내용을 작성하실 때는 영문을 기준으로 작성해야 심사 때 문제가 없습니다.
3. 좌측에 보이는 제품 파일 업로드의 새 포맷을 추가합니다.
프로젝트 파일 링크는 패키징 된 플러그인만 따로 업로드된 주소를 입력해야 합니다.
(Uproject가 포함된 프로젝트 자체의 주소 X, 패키징 이후 Uplugin만 있는 프로젝트의 주소)
4. 나머지 내용을 잘 입력한 후 등록하면 문제없이 등록됩니다.
3. Uplugin 파일 수정
문서를 수정할 수 있는 텍스트 에디터 프로그램 (메모장, VSCode, VS 등)을 사용해서 {플러그인 이름}.uplugin 파일을 수정합니다.
FabURL을 추가해야 합니다.
1. Fab사이트에서 해당 플러그인의 제품 목록 프리뷰 사이트를 접속합니다.
2. 프리뷰 사이트 주소에서 해당 제품의 고윳값을 가져와서 FabURL 만들기
// 프리뷰 주소
https://www.fab.com/ko/portal/listings/052be8a6-ccd4-4042-98c6-56de36741d43/preview
// 제품의 고유 주소값
052be8a6-ccd4-4042-98c6-56de36741d43
// 고유 주소값을 사용한 FabURL
com.epicgames.launcher://ue/Fab/product//052be8a6-ccd4-4042-98c6-56de36741d43
3. 생성한 FabURL을 uplugin 파일에 아래 코드처럼 추가합니다.
{
"FileVersion": 3,
"Version": 1,
"VersionName": "1.0",
"FriendlyName": "LevelSelector",
"Description": "",
"Category": "Other",
"CreatedBy": "",
"CreatedByURL": "",
"DocsURL": "",
// FabURL을 추가
"FabURL": "com.epicgames.launcher://ue/Fab/product//052be8a6-ccd4-4042-98c6-56de36741d43",
"MarketplaceURL": "",
"SupportURL": "",
"EngineVersion": "5.5.0",
"CanContainContent": false,
"Installed": true,
"Modules": [
{
"Name": "LevelSelector",
"Type": "Editor",
"LoadingPhase": "Default",
"PlatformAllowList": [
"Win64",
"Mac"
]
}
]
}
4. 영문기술문서 작성 후 첨부하기
Fab에 등록하기 위해서는 해당 플러그인의 영문기술문서가 필요합니다. (심사 통과 시 필요)
저는 GPT를 사용해서 제 프로젝트의 기술을 입력한 후 영문기술문서로 작성을 요청해서 진행했습니다.
프로젝트 루트 경로에 Docs 폴더를 생성한 후 {프로젝트이름}_Documentation.md 이런 식으로 마크다운 문서를 추가해서 작성합니다.
이 부분은 제 플러그인 프로젝트에 첨부된 영문기술문서 링크를 남기겠습니다.
https://github.com/SONSAZANG/UE5-LevelSelector-Plugin/blob/main/Docs/LevelSelector_Documentation.md
UE5-LevelSelector-Plugin/Docs/LevelSelector_Documentation.md at main · SONSAZANG/UE5-LevelSelector-Plugin
Contribute to SONSAZANG/UE5-LevelSelector-Plugin development by creating an account on GitHub.
github.com
5. Filterplugin.ini 작성 후 첨부하기
Fab에서 해당 플러그인 안에 있는 내용을 확인하기 위해 Filterplugin.ini를 작성해야 합니다. (심사 통과 시 필요)
프로젝트 경로에 Config 폴더를 생성 후 Filterplugin.ini 문서를 작성합니다.
[FilterPlugin]
/Config/
/Docs/
/Resources/
/Source/
/README.md
https://github.com/SONSAZANG/UE5-LevelSelector-Plugin/blob/main/Config/FilterPlugin.ini
UE5-LevelSelector-Plugin/Config/FilterPlugin.ini at main · SONSAZANG/UE5-LevelSelector-Plugin
Contribute to SONSAZANG/UE5-LevelSelector-Plugin development by creating an account on GitHub.
github.com
6. 리드미(ReadMe) 작성하기
프로젝트 깃허브 리드미 문서도 동일하게 영문 내용이 작성이 되어 있어야 합니다.
처음에 한글로만 작성 후 심사를 통과하지 못했습니다.
저의 경우 한글로 작성한 내용을 GPT를 사용해 영문 내용을 작성했습니다.
https://github.com/SONSAZANG/UE5-LevelSelector-Plugin/blob/main/README.md
UE5-LevelSelector-Plugin/README.md at main · SONSAZANG/UE5-LevelSelector-Plugin
Contribute to SONSAZANG/UE5-LevelSelector-Plugin development by creating an account on GitHub.
github.com
7. 제품 리뷰 신청하기
위 단계들은 제가 해당 플러그인 심사를 약 7번 정도 진행하면서 fail 결과를 받은 내용들입니다.
제가 작성한 내용들을 참고하셔서 진행하시면 여러분들은 한 번에 통과하기를 바라면서 작성하게 되었습니다.
정상적으로 심사를 받은 준비가 되었으면 " 리뷰를 위해 제출 " 버튼을 클릭해서 심사를 시작합니다.
등록한 계정으로 심사를 시작한다는 이메일을 받을 수 있습니다.
1 ~ 2일 정도 기다리면 심사 결과를 받을 수 있습니다.
Fab 심사의 장점이라면 친절하게 어떤 부분에서 불합격(Fail) 됐는지 작성한 PDF파일을 공유합니다.
예시로 다음 사진을 보면 [ 5. Filterplugin.ini 작성 후 첨부하기 ] 단계를 제가 진행하지 않아서 해당 부분에서 Fail 결과를 받은 내용입니다.
해당 피드백 이메일을 통해서 통과하지 못한 부분을 개선하고 다시 심사를 제출하면 친절하게 심사를 진행합니다.
전 7번 불합격 후 스토어에 등록되었습니다.
8. 성공적으로 출시!
심사에 통과하면 사이트에서 다음과 같이 " 라이브 " 표시를 확인할 수 있습니다.
이때부터는 언리얼 에디터에서 Fab 불러오기를 통해서도 확인 가능합니다!
긴 글을 읽어주셔서 감사합니다.
이번 제품은 수익창출 목적이 없어서 쉽게 통과가 된 느낌입니다.
다음에는 더 좋은 퀄리티의 제품을 제작해서 수익창출을 목적으로 해보겠습니다.
감사합니다 :)