INDIE INDEX

レベル:実践

Steam ワークショップに対応する手順|設定・アイテムの投稿・公開

公開 2026-10-20更新 2026-10-20Steam(Steamworks Partner Program / Steam Direct)

Steam ワークショップの統合オプションには、誰でも投稿できる「すぐに使えるワークショップ」と、開発者が各アイテムを承認する「キュレーションされたワークショップ」の大きく2つのタイプがあります。どちらも、アイテム制作者がアップロードするためのツールを `ISteamUGC` API で用意する必要があります。

このページの目次
  1. ワークショップの2つのタイプ
  2. Steamworks の画面での設定
  3. アイテムの作成・更新・購読・ダウンロードの流れ
  4. 公開と規約への同意
  5. 情報源

ワークショップの2つのタイプ

Steam ワークショップの統合オプションには、大きく分けて2つのタイプがあります。

  • 「すぐに使えるワークショップ」は、誰でもコンテンツをアップロードでき、プレイヤーは一切のキュレーションなしでダウンロードできる形です。
  • 「キュレーションされたワークショップ」は、開発者が各アイテムを承認する必要がある形で、アイテムの所有権を管理するためのアイテムサーバーか、Steam インベントリサービスの使用が必要になります。

Steam で実装が要るものと選べる機能の全体は、Steam で実装が要る仕様にあります。

すぐに使えるワークショップを組み込むとき

ゲームに組み込むときに検討する主なコンポーネントは、次のとおりです。

  • シングルプレイヤーのゲームクライアントにコンテンツを読み込む:ユーザーが提出したコンテンツをゲーム内ですぐ使用できるようにするには、ゲームの適切な構築が必要です。これは通常、ゲームクライアントが読み込むべきファイルを確認する必要があることを意味します。また、MOD 制作者が MOD をディレクトリから読み込んで作業できるように、ステージング環境を用意する必要があります。
  • マルチプレイヤーゲームクライアントにコンテンツを読み込む:ゲームを適切に機能させるために複数のユーザーが必要とするアイテムやコンテンツがある場合、特定のアイテムを必要とするすべてのクライアントに、そのアイテムをダウンロードさせることができます。たとえば、ワークショップのカスタムマップをサブスクライブしているユーザーがマッチにフレンドを招待した場合、招待されたユーザーのマッチへの接続が完了する前に、カスタムマップが使用されていることがゲームによって認識され、コンテンツがワークショップから招待されたユーザー側でダウンロードされる必要があります。
  • アイテム制作者からのエントリーをアップロードする:ISteamUGC API を使用して、アイテム制作者がワークショップにエントリーをアップロードできるツールを用意する必要があります。このツールには、ゲーム内フォームのような単純なものから、スタンドアロンのアプリまであります。

ワークショップに投稿されたアイテムは、サブスクライブ(無料の場合)または購入(有料の場合)が自動的に利用可能になり、Steam クライアントを通して自動的にダウンロードされます。これを正しく機能させるには、製品と ISteamUGC API の統合が必要です。

キュレーションされたワークショップを組み込むとき

ワークショップに提出されたアイテムは、他のユーザーによって直接使用されるのではなく、ユーザーによる投票を受け付けるキューに表示されます。「キュレーションされたワークショップ」ページを設定し、ゲーム内に簡単なフォームを追加し、アイテム制作者に向けたスタイルガイドとガイドラインを投稿するだけで開始できます。コンテンツをワークショップにアップロードするには、ISteamUGC API との統合が必要です。

ゲームに組み込むときに検討する主な要素は、次のとおりです。

  • アイテム制作者からのエントリーを受け入れる:アップロードのためのツールが必要で、ゲーム内のフォームのような単純なものから、スタンドアロンのアプリまであります。アイテム制作者に .ZIP ファイルとプレビュー画像を選択させるだけの初歩的なアップローダーで始めることも、提出過程にさらなる検証ステップを組み込むこともできます。
  • アイテムをゲームに統合する(任意):アイテム制作者がアップロードの際に定義できない特別な属性(武器の効果など)を開発者側で割り当てる必要がある場合、ワークショップの Web サイトからアイテムをダウンロードし、デポにコンテンツを含む必要があります。特別な属性の設定やアイテムを洗練するための処理が必要ない場合は、所有アイテムをワークショップコンテンツサーバーから直接呼び出すことができます。
  • インベントリサービス、アイテム定義の作成:アイテムをゲーム内で販売する場合や、一部のユーザーに限定で配布する場合は、各アイテムの所有権を追跡するために、アイテムサーバーが必要になります(または Steam インベントリサービスも使用可能です)。
  • 支払ルールの追加:アイテムの販売準備が整ったら、Steam インベントリサービスやアイテムサーバー内で、どのワークショップアイテムがどのアイテム定義に関連付けられているかを、Steam に知らせる必要があります。支払ルールは、アプリの Steamworks 設定ページの「ワークショップ」タブの下にある「新規の支払ルールを入力」をクリックして管理します。
  • アイテムの販売:アイテムを販売するストアを用意したい場合は、ゲーム内のストアの UI を自分で作るか、Steam アイテムストアを使えます。各購入のバックエンドの処理は Steam が引き受けます。

ユーザーにアイテムを渡す方法には、Steam Microtransactions 経由での販売、ランダムアイテムドロップ、DLC としてのバンドル、誰でも無料で使用できるアイテムとしてゲームに追加、があります。DLC としてバンドルする場合は、ワークショップへの貢献者に対する支払条件を各自で準備する必要があります。

Steamworks の画面での設定

デフォルトでは、アプリケーションはワークショップ内で非公開に設定されます。そのため、ワークショップの設定を公開に変更しない限り、コンテンツが意図せず Steam ワークショップポータルで公開されてしまうことはありません。公開状態は、次の手順で変更できます。

  1. Steamworks Web サイトのアプリケーションランディングページを開きます。
  2. 「Steamworks設定を編集」をクリックします。
  3. 「ワークショップ」タブのドロップダウンから「一般」を選択します。
  4. ページ右側にある「公開設定の状態」セクションで、ラジオボタンから「開発者のみ」「開発者とテスター」「顧客と開発者」「全員」の中から選択します。
  5. 「公開」タブの「公開の準備」ボタンをクリックします。
  6. 「Steamに公開」をクリックし、変更を公開するプロセスを完了します。

公開状態を「全員」に変更するには、ブランディングやタイトル、説明などを含むワークショップチェックリストが完了済みで、最低1個のアイテムが公開されていることが必要です。

ワークショップアイテムを Steamworks バックエンドへアップロードする前に、Steam クラウドのクォータの設定と ISteamUGC API の有効化が必要です。Steam クラウド機能は、関連するワークショップアイテムのプレビュー画像の保存に使用されます。

Steam クラウドのクォータは、次の手順で設定します。

  1. アプリ管理パネル内の「Steamクラウド設定」ページを開きます。
  2. プレビューイメージ保存のための「ユーザーごとのバイトクォータ」と「ユーザーごとのファイル数」を適宜設定します。
  3. 「保存」をクリックします。
  4. 「公開」タブの「公開の準備」ボタンをクリックします。
  5. 「Steamに公開」をクリックし、変更を公開するプロセスを完了します。

ISteamUGC API の有効化は、次の手順で行います。

  1. アプリ管理パネル内の「Steamワークショップ設定」ページを開きます。
  2. 「追加設定オプション」セクションを見つけます。
  3. 「ファイル転送にISteamUGCを有効化」のチェックマークを付けます。
  4. 「保存」をクリックします。
  5. 「公開」タブの「公開の準備」ボタンをクリックします。
  6. 「Steamに公開」をクリックし、変更を公開するプロセスを完了します。

設定後、ワークショップコンテンツは API 経由でアップロードできます。

編集や公開のためのツールとして別のアプリケーションを用意している場合は、ベースアプリケーションのワークショップの設定セクションでページの一番下までスクロールし、「アプリの公開権限」の下のフィールドにツールの App ID を入力して「追加」を押します。ワークショップのプレビュー画像を保存するには、両方の AppID でクラウドクォータを有効にする必要があります。Steamworks の設定を公開すると、そのアプリケーションはベースアプリケーションのワークショップにコンテンツを公開できるようになります。

公開前に少人数で試す設定

ローンチ前に少人数のグループでコンテンツを生成してテストするプライベートベータには、ゲームのベータ(Steam 経由)とワークショップのベータ(グループ経由)の2つの要素があります。最初のステップは、アップデートしたビルドを作り、Steam 内でベータとして設定することです。ワークショップのベータでは、Steam コミュニティ内でグループを設定し、グループ内のメンバーシップを使用して、Steam ワークショップへのアクセスを管理します。

  1. テスト用の Steam コミュニティグループを作ります。選ばれた人だけにアクセスを制限したい場合は、グループを非公開にします。
  2. そのグループの Steam ID を入手します。グループから「グループプロフィールを編集」をクリックすると、ページ上部で ID がわかります(例:2667495)。
  3. ゲームの Steamworks 管理ページの「ワークショップ」タブの下で「一般」をクリックし、公開設定を「開発者とテスター」に設定します。
  4. グループの ID を入れて、変更を公開します。

アイテムの作成・更新・購読・ダウンロードの流れ

ワークショップコンテンツの作成とアップロードは、反復可能なプロセスです。ISteamUGC では、ワークショップアイテムは、ファイルが格納されたフォルダーを表します。

アイテムを作る

すべてのワークショップアイテムは、ISteamUGC::CreateItem の呼び出しから始まります。nConsumerAppId 変数は、ゲームまたはアプリの AppID を含む必要があります。ワークショップアイテム作成ツールが別の AppID を持つ場合でも、渡すのはゲームまたはアプリの AppID です。

EWorkshopFileType は、共有ファイルがコミュニティと共有される方法を定義する列挙型です。有効な値は次のとおりです。

  • k_EWorkshopFileTypeCommunity:ユーザーがアップロードして、コミュニティ内の誰もがダウンロードできるタイプのファイルです。
  • k_EWorkshopFileTypeMicrotransaction:ユーザーがアップロードしたコンテンツを、公式コンテンツとしてゲーム側で検討したい場合に使います。これらのファイルは、ワークショップを通してユーザーによってダウンロードされることはありませんが、評価のためにコミュニティには表示されます。

CreateItemResult_t の呼び出し結果ハンドラーを登録します。m_eResult でアイテムが正常に作成されたことを確認し、m_nPublishedFileId の値を読み取って、ワークショップの将来のアップデートのために(たとえば、作成ツールに関連したプロジェクトファイル内に)保存します。m_bUserNeedsToAcceptWorkshopLegalAgreement 変数も確認し、true の場合は、ユーザーが法的に同意するためにリダイレクトされます。

更新を出す

アイテムの作成後に PublishedFileId_t の値が返されると、ワークショップアイテムのコンテンツを設定して Steam ワークショップにアップロードできます。アイテムのアップデートは、ISteamUGC::StartItemUpdate の呼び出しから始まります。StartItemUpdate から返された UGCUpdateHandle_t を使って、さまざまな ISteamUGC::SetItem[...] メソッドを通じ、タイトル、説明、公開設定、タグ、アイテムコンテンツ、アイテムのプレビュー画像などをアップデートする呼び出しを行えます。

呼び出せるメソッドには、たとえば次のものがあります。

メソッド 設定する内容
SetItemTitle アイテムに新しいタイトルを設定
SetItemDescription アイテムに新しい説明を設定
SetItemUpdateLanguage このアップデート内で、アイテムのタイトルと説明の言語を指定
SetItemMetadata アイテムの任意のメタデータを設定
SetItemVisibility アイテムの表示/非表示を設定
SetItemTags アイテムに任意の開発者指定のタグを設定
SetItemContent アイテムのコンテンツとして保存されるフォルダーを設定
SetItemPreview アイテムの主となるプレビュー画像を設定

アップデートの呼び出しが完了したあとに ISteamUGC::SubmitItemUpdate を呼び出すと、Steam ワークショップへのアップロードプロセスが始まります。SubmitItemUpdateResult_t の呼び出し結果ハンドラーを登録し、m_eResult で正常にアップロードが完了したことを確認します。呼び出したあとに、アイテムのアップデートとアップロードをキャンセルするメソッドはありません。ISteamUGC::GetItemUpdateProgress でアップロードの進捗を確認でき、EItemUpdateStatus がアップロードとアップデートの進捗を定義します。

購読の一覧を取る

ワークショップアイテムのサブスクリプションは、大部分が Steam ワークショップポータルを介して実行されます。ISteamUGC は、ゲーム内でのサブスクリプションの管理のために、サブスクライブする ISteamUGC::SubscribeItem と、解除する ISteamUGC::UnsubscribeItem を提供しています。SubscribeItem でサブスクライブしたアイテムは、すぐにダウンロード、インストールされます。UnsubscribeItem でサブスクリプションを解除したアイテムは、ゲーム終了後に削除されます。

ユーザーがサブスクライブしたアイテムの列挙には、現在のユーザーがサブスクライブ中のアイテムの合計数を取得する ISteamUGC::GetNumSubscribedItems と、すべてのアイテムのリストを取得する ISteamUGC::GetSubscribedItems があります。

ISteamUGC や Steam ワークショップの Web サイトを通してユーザーがファイルをサブスクライブか解除すると、RemoteStoragePublishedFileSubscribed_t と RemoteStoragePublishedFileUnsubscribed_t のコールバックハンドラーで、ゲーム内通知を受け取ることができます。ハンドラーは、実行中のアプリケーションを問わずすべてのアイテムサブスクリプションに対して呼び出され、構造体にはワークショップアイテムに関連付けられたアプリケーション ID(m_unAppID)が含まれます。

ダウンロードとインストールの状態を見る

ワークショップアイテムのダウンロードは、Steam クライアント経由で自動的に実行されます。Steam クライアントがゲームやアプリの起動を示すと、アプリのアップデートされたデポがダウンロード、インストールされ、必要に応じて既存のインストール済みワークショップアイテムがアップデートされます。その後、ゲームまたはアプリが起動します。新規にサブスクライブされた、ダウンロードされていないワークショップアイテムは、バックグラウンドでダウンロードされ、インストールされます。

新規サブスクライブコンテンツのダウンロードとインストールの前にゲームが開始するため、インストール状況を監視、管理するメソッドがあります。

ISteamUGC::GetItemState は、このクライアントでのワークショップアイテムの現在の状態を取得します。ISteamUGC::GetItemDownloadInfo は、k_EItemStateNeedsUpdate がセットされたワークショップアイテムの、ダウンロードの保留について情報を取得します。ISteamUGC::DownloadItem は、ワークショップアイテムのダウンロードの開始、または優先順位の向上に使います。bHighPriority を true に設定すると、既存の進行中のダウンロードを保留にし、このワークショップアイテムのダウンロードを即時開始します。ISteamUGC::GetItemInstallInfo は、現在ディスク上にインストール済みの、k_EItemStateInstalled がセットされたコンテンツに関する情報を取得します。

DownloadItem の戻り値が true の場合は、コールバックを登録して、ISteamUGC::DownloadItemResult_t を待ってから、GetItemInstallInfo を呼び出すか、ディスク上のワークショップアイテムにアクセスします。ユーザーがアイテムをサブスクライブしていない場合には(例:匿名ログインを使用するゲームサーバー)、ワークショップアイテムはダウンロードされ、一時的にキャッシュされます。DownloadItem は、ISteamUGC で作成されたワークショップアイテムにのみ機能し、レガシーの ISteamRemoteStorage ワークショップアイテムでは使えません。DownloadItemResult_t 構造体には、ワークショップアイテムに関連したアプリケーション ID(m_unAppID)が含まれ、ハンドラーは実行中のアプリケーションを問わずすべてのアイテムダウンロードに対して呼び出されます。

ワークショップアイテムのインストールやアップデートの通知は、ISteamUGC::ItemInstalled_t のコールバックハンドラーを登録して受け取ります。ゲーム内で ISteamUGC::ItemInstalled_t コールバックに登録してあれば、ISteamUGC::GetItemInstallInfo を呼び出して、インストールされた場所を取得し、そのフォルダーから直接データを読み取ることができます。

「キュレーションされたワークショップ」で、特別な属性の設定やアイテムを洗練するための処理が必要なく、所有アイテムをワークショップコンテンツサーバーから直接呼び出すときは、Steam インベントリサービスを使っている場合に、ユーザーが所有する各アイテムがワークショップアイテムかどうかをチェックし、ワークショップアイテム ID で ISteamUGC::GetItemState を呼び出して、k_EItemStateNeedsUpdate が設定されているか、または k_EItemStateInstalled が設定されていないかを調べます。必要であれば ISteamUGC::DownloadItem を呼び出し、ISteamUGC::DownloadItemResult_t のコールバックを待って、コンテンツをゲーム内で利用可能にします。

タグと版の扱い

ゲームが Steam に送信したすべてのタグは、デフォルトでは、顧客が確認できるよう、アプリケーションのワークショップホームページの右側の列に表示されます。これらのタグは、ゲームまたは送信ツールからアイテムがアップロードされるときに、ISteamUGC::SetItemTags で定義されます。表示したいタグとカテゴリー名を指定することで、タグのリストをオーバーライドでき、通常のユーザーには表示されない管理タグを追加することもできます。表示するタグは、ゲームの Steamworks メタデータ設定サイトのワークショップドロップダウンから「タグ」オプションを選択して指定します。タグを持つアイテムをアップロードすることにより追加されたタグは、削除できません。

Steam ワークショップアイテムをサブスクライブしたユーザーは、デフォルトでは、そのアイテムの最新バージョンをダウンロードします。アイテムに対するそれ以降のアップデートは、その時点でサブスクライブ済みの全ユーザーに反映されます。Steamworks SDK のバージョン 1.60 のリリースにより、コンテンツクリエイターは Steam(ベータ)ブランチで有効にするアイテムのバージョンを指定できるようになりました。

アップロードツールからは、アイテムのバージョンをアップロードするときに、最小および最大の Steam ブランチを指定して ISteamUGC::SetRequiredGameVersions を呼び出します。範囲が指定されていない場合、Steam はそのバージョンがゲームのどのビルドでも動作すると想定します。バージョン情報の取得には、ISteamUGC::GetNumSupportedGameVersions と ISteamUGC::GetSupportedGameVersionData を使います。ゲームのワークショップ設定ページの「ゲームブランチのバージョン管理を有効化」の選択と、変更の公開も行います。

公開と規約への同意

Steam ワークショップのフロントページのリスト内にゲームを表示させるには、最低でも1つのアイテムをワークショップ内で公開する必要があります。

アップロードを行うゲームまたはツールの一時的なライセンスを持っているユーザーは、Steam ワークショップへアップロードできません。ファミリーシェアリング経由、または無料ウィークエンドのような別の一時的なライセンスによってのみゲームを所有しているユーザーは、コンテンツをアップロードできません。

ワークショップアイテムは、デフォルトでは、コンテンツ提供者が Steam ワークショップ利用契約に同意するまでは非表示になっています。コンテンツ提供者自身がアイテムを公開できるようにする方法は、ボタンの横の文字列の用意と、提出後のワークショップページの表示です。

アイテムをワークショップに提出するボタンの横には、「このアイテムを提出することで、あなたはワークショップ利用規約に同意します」という内容の文字列を、リンクを含めて用意します。ユーザーがアイテムを提出した後には、ISteamFriends::ActivateGameOverlayToWebPage を呼び出して、ブラウザーでそのアイテムの Steam ワークショップページを開きます。pchURL は steam://url/CommunityFilePage/<PublishedFileId_t> に設定し、<PublishedFileId_t> にはワークショップアイテム ID を入れます。

作者をワークショップページへ誘導すると、アイテムの確認や、必要に応じた設定ができ、Steam ワークショップの利用規約を読んで同意することもできます。

「キュレーションされたワークショップ」では、ユーザーが提出ツールからワークショップにアイテムをアップロードしたあとに、投稿されたアイテムのページをそのユーザーに向けて表示すると、Steam 利用規約や Steam ワークショップ利用規約などにまだ同意していないユーザーは、規約に同意する機会を得ます。

情報源

Steam 完全ガイドを順番に読む60本のうち41本目

このページに出た言葉

このページの内容の誤りは、問い合わせの窓口で受け付けています。