ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【UnrealEngine】〈Tips〉FabでUEプラグインを販売する完全攻略

目次

 

はじめに

Fabでプラグインを公開するとき、UEバージョンの登録まわりがよく分からなかったので、備忘録として残します。

投稿時点での設定なので、今はUIがもっと設定しやすくなっているかもしれません。

 

個人の備忘録としてまとめています。誤った情報がある場合があります。

コメントにてご指摘のほどお願いいたします。

 

セラーの登録

ここは割愛します。

Fabの公開タブから、自分の住所・税務情報などを記載して、販売できる状態にしておきましょう。

www.fab.com

 

出品登録

セラーの審査に通ると、アセットを公開できるようになります。

まずは「新規に出品する」を押します。

 

製品種類の選択が出るので、販売したいタイプに合わせて選びましょう。

 

今回はUEエディタ用のプラグインなので、ツール・プラグインを選びました。

 

出品編集

ここではアイテムの商品名・説明・金額・画像を登録していきます。

右上の「出品プレビュー」から、実際に販売されたときの見た目を確認できます。

 

① タイトル

ストアに表示されるアイテム名です。

 

② 説明

ページに入ったときに見える説明文です。

序盤以外は折りたたまれてしまうので、目に付きやすい順に上から並べるのがおすすめです。

 

・どんなプラグインなのか?
・ドキュメントや紹介動画のリンク
・機能一覧
・サポート(問い合わせ先)

 

ドキュメント類は、シークレットウインドウなどで他人でも閲覧できる状態になっているか確認しておきましょう。

GithubやNotionなどがおすすめです。

https://hexagonal-town-f82.notion.site/RecentAssetHistory-Document-36874cd1eb3e805bb5d2fc4ce33f8aea?pvs=143

 

サポートはメールやDiscordなどがあると便利です。

プラグイン側にSupportURLが必要なので、自分はDiscordサーバーを作っておきました。

(荒らし対策やサポート向けに、CarlやTicketToolなどのBotを導入するとより便利です。)

 

③ 製品の種類

出品登録で選んだものが入っているはずです。

あとから変えたい場合はここで設定しましょう。

 

④ カテゴリー

販売するものに応じて決めましょう。

 

⑤ 価格設定

ライセンスや金額を設定するところです。

USD登録ですが、プレビューから日本円での金額を確認できるので、調整しておきましょう。

 

⑥ タグ

より多くの人に見つけてもらうために、積極的に登録しましょう。

 

⑦ サムネイル

1920×1080の制約があるので気を付けましょう。

 

⑧ メディアギャラリー

並び順も変えられます。

 

⑨ Epicデベロッパーコミュニティのフォーラム投稿

製品を紹介するため、製品はお使いの Epic Gamesアカウントからフォーラムに投稿されます。アカウントは Fab と Epicデベロッパーコミュニティの両方にリンクしている必要があります。
この投稿は、ディスカッションやサポートの問い合わせのための公開フォーラムとして機能します。出品のコメントからもアクセスできます。

好きなほうを選びましょう。

 

⑩ 成人向けコンテンツ

この出品には成人向けコンテンツが含まれていますか?

販売するアセットに合わせて調整します。

 

⑪ 生成 AI プログラムによる使用を許可しない

この製品に HTML の「AI なし」メタタグを割り当てて、生成 AI プログラムによる使用を禁止しますか?

任意です。

 

⑫ 生成人工知能 (AI) ツールの使用

この製品は、生成 AI ツールを使用して作成されていますか?

AI使用の可否です。

 

⑬ プロモーションコンテンツ

製品にプロモーションコンテンツが含まれる場合は、ボックスにチェックを入れてください。 ユーザーには、製品にプロモーションコンテンツが含まれていることが通知されます。 プロモーションコンテンツの例は、プロダクトプレースメント、ロゴ、スローガン、その他パブリッシャーのまたは他の誰かの現実世界のブランドを販売促進または宣伝するコンテンツです。

 

⑭ FAQ(よくある質問)

FAQ セクションを追加することで、製品に関して想定される質問への明確な回答を提供します。

顧客が迷いそうなものは、あらかじめ登録しておくと便利です。

ストアではここに表示されます。

 

コンテンツの追加

いよいよ、実際にデータを上げる作業です。

Fabの登録ページから「新規形式の追加」でUnrealEngineを選びます。

 

① プロジェクトバージョン

UEバージョンに合わせて、プラグインを登録していきます。

この作業は、プラグインが対応しているUEx.x ごとに1対1で作成します。

入力例

詳細は「⑥ 提出するファイルの種類について」を読んでください。

 

② 配信方法

本製品のファイルが、Epic Games Launchersからどのようにダウンロードされるかを設定します。

特に変更不要です。

 

③ サポートされている開発プラットフォーム

UEエディタの開発環境の指定です。

 

④ サードパーティソフトウェアの使用

製品が何らかのサードパーティソフトウェアを含む、使用する、依存する、配布するかどうかを宣言します。 サードパーティソフトウェアとは、パブリッシャーまたはEpic Games以外のソースからのフォント、グラフィック、サウンド、コンテンツ、ソースコード、コンパイルされたライブラリを含むがこれに限定されないあらゆるファイルを意味します。
この選択をすることにより、製品がいかなるサードパーティソフトウェアをも含まない、使用しない、依存しない、配布しないことを表明し、保証するものとします。以下のリンクから詳細を宣言する必要があります。

外部ライブラリやアセットが含まれる場合は注意しましょう。

 

⑤ 技術面の詳細

製品のUnreal Engineフォーマットの技術的側面を説明してください。

ストアページのここに表示されるものです。

技術的な内容を記載する場所です。例として、以下のような形式にするのがおすすめです。

・BPの数やC++クラスの数
・マルチプレイ対応かどうか
・ランタイムかエディタプラグインか?
・サポートプラットフォーム
・サポートビルド対象
・ローカライズなどあれば記載

 

⑥ 提出するファイルの種類について

UEプラグインを出品する場合、含められるファイルは種類によって変わります。

1. コードプラグインでない場合

・.uproject ファイル
・Content ディレクトリ
・Config ディレクトリ

 

2. Unreal Engine コードプラグインの場合

・.uplugin ファイル
・Source ディレクトリ
・Content ディレクトリ
・Config ディレクトリ

 

審査時に上記以外のフォルダが入っていると落とされたので注意が必要です。

・Intermediate
・Binaries
・Saved
・Build

 

ファイルサイズは、理想として15GB以下が良いです。

15GBを超える場合はサポートの審査が入るので、気を付けましょう。

dev.epicgames.com引用:Unreal Engine プロジェクト形式

 

3. 例外:プラグインの翻訳データを含めたいケース

コードプラグインに翻訳向けのローカライズを含める場合、どうしてもContentフォルダ内に.poデータが必要なケースがあります。

この場合、コードプラグインであっても、アップロード時の備考に記載することでContentフォルダ込みでリリースできました。

バージョン注記で記載した文章 ↓

pass: -----------------
Verified on UE 5.3-5.7 (Win64)Re prior review: No .uasset content; only UE localization data. Content/Localization/<Target>/ path is hardcoded by UE engine. Requesting Epic approval per exception clause.

実際のデータは以下のようになります。

 

⑦ .uplugin設定

.uplugin設定には、Fabに上げるためのいくつかの注意点があります。

 

1. EngineVersion とサポートエンジンバージョンを合わせる

プラグイン名.upluginEngineVersionが一致していないとはじかれるので、気を付けましょう。

"EngineVersion": "5.3.0",

 

2. MarketplaceURL を必ず記載する

マーケットプレイスURLを記述する必要があります。Fabの出品ページのURLになります。

"MarketplaceURL": "https://www.fab.com/listings/ここに製品ID",

製品IDは、出品画面のWebURLに含まれています。

例:https://www.fab.com/portal/listings/ここにあなたの製品ID/edit

 

3. SupportURL を記載する

このプラグインや製品のサポートにつながるURLを記載しましょう。

ここではDiscordの招待リンクを貼りました。

"SupportURL": "ーーー",

 

4. DocsURL(ドキュメントURL)を記載する

このプラグインや製品のドキュメントURLを記載しましょう。

 

5. CreatedByURL を記載する

ここはFabのセラープロフィールでOKです。

 

⑧ 提出するファイルについて(アップロード)

これらの作業を終えたら、完成したプラグインをzipファイルに圧縮します。

このとき、審査のために一時的にファイルを公開する必要があるので、心配であればzipにパスワードをかけておくのがおすすめです。

有名どころだと7-Zipが使いやすくおすすめです。

7-zip.opensource.jp

完成したzipは、Google Driveなど一時的に共有できる場所にアップロードします。

Google Driveであれば以下のように
共有設定を「リンクを知っている全員」に変更し、リンクを控えます。

控えたリンクをプロジェクトファイルのリンク欄に貼り、バージョン注記にzipのパスワードを記載しておきましょう。

 

⑨ 審査と提出

すべての入力が終わったら、右上から「出品プレビュー」を行いましょう。

問題なければ「レビューのために提出する」を押して、審査を待ちます。

提出時に、審査通過後に自動公開するか/手動で公開するかを選べます。

結果は1〜2営業日で来ます。

審査結果はメールで fab-support@epicgames.com から届きます。

問題がある場合は、各項目のレビューをまとめたpdfが届くので、それに従って再挑戦しましょう。

審査が通るとメールが届き、ストアで確認できます。

 

⑩ 技術審査チェックリスト(日本語訳)

最後に、審査項目の日本語訳をまとめておきます。

引用:FAB Support

 

1. 製品リスティング(Product Listing)

全般

・すべてのテキストは正確で、アセットに関連している必要がある
・すべてのテキスト項目に英語版が含まれている必要がある

メディア

・メディアはプロジェクトの該当機能・内容を正確に表示している必要がある

技術情報(Technical Information)

・すべての技術情報項目が完全に記入されている必要がある
・技術情報のテキストは、アセット使用に必要な依存関係(あれば)・前提条件・その他の要件を明示している必要がある

プロジェクトファイル(Project Files)

・各プロジェクトファイルリンクには、適切なフォルダ構造を持つUEプロジェクトまたはプラグインフォルダが1つだけホストされている必要がある
・提供されるプロジェクトが、記載されている対応エンジンバージョンと一致している必要がある
・配布方法が、製品の内容・機能に対して適切である必要がある

 

2. コンテンツ(Content)

ファイル

・Contentフォルダには、プロジェクト名を冠した単一のPackフォルダが含まれている必要がある(Epicの別途承認がある場合を除く)
・Packフォルダ内の第1階層フォルダは、アセットタイプまたは特定アセット名で命名されている必要がある
・すべてのアセットタイプがそれぞれのフォルダ内に格納されている必要がある
・プロジェクトに未使用のフォルダ・アセットが含まれていないこと
・アセットのファイルパスが170文字未満であること
・すべてのリダイレクタがクリーンアップされていること
・命名規則が英語・英数字で、プロジェクト全体で一貫しており、アセットの内容を正確に表している必要がある
・.uprojectで未使用のプラグインが無効化されていること

ドキュメント

・必要に応じて、パブリッシャーがリンク版またはエディタ内のドキュメント/チュートリアルを提供していること
・すべてのアセットが完成しており、意図どおりに機能すること

法務(Legal)

・製品は、いかなる個人・団体・組織・製品に対しても不快・下品・中傷的であってはならず、Epic Games・Unreal・Fabを貶めるものであってはならない
・Megascansコンテンツは再配布できない
・Epic Gamesのサンプルコンテンツやソースコードの相当部分は、表示・例示目的のみで使用されている

 

3. コードプラグイン(Code Plugins)
・.upluginに、プラグインのインストール対象となるメジャーエンジンバージョンを値とする「EngineVersion」キーがある
・.upluginの全モジュールに、対応ターゲットプラットフォームと一致する「PlatformAllowList」/「PlatformDenyList」キーがある
・すべてのソース・ヘッダファイルに、パブリッシャー名と発行年を記したコメント付き著作権表示が含まれている
・プラグインフォルダを起点とするすべてのファイルパスが170文字以下であること
・プラグインがエラーや重大な警告を発生させないこと
・プラグインフォルダに未使用・ローカルフォルダ(Binaries、Build、Intermediate、Saved等)が含まれていないこと
・FilterPlugin.iniで、パブリッシャーが配布を意図するカスタムフォルダ(Docs等)をフィルタしていること
・C++のサードパーティコード・ライブラリはSourceフォルダ内のThirdPartyフォルダに配置すること。Pythonのサードパーティコード・ライブラリはContent/Python/Lib/site-packages/配下に配置すること
・サードパーティコードを使用するプラグインでは、サードパーティソフトウェアフォームが正確に記入されていること
・Unreal Engineソースコードに依存するすべてのコードは、人間が読めるソース形式でプラグインフォルダに含めること。UEソースコード依存を含まない、外部でコンパイルされた静的ライブラリやDLLは含めてもよいが、審査対象となる

 

最後に

 

本記事に書くにあたり公開したプラグインはこちらです。

www.fab.com
UEのエディタから開いたアセット履歴を専用のタブから管理できるツールになっています。良ければ見てみて下さい。




UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやX(Twitter)のフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

投げ銭を投げる