Steamworks ドキュメンテーション
Steamワークショップ

概要

Steamワークショップは、ファンやコミュニティメンバーがゲームのコンテンツ制作に参加するための場所としてデザインされています。 コミュニティメンバーによる創作の形式は、ゲームの性質や、ゲーム内のコンテンツをどのように管理したいかによって異なります。

このページでは、Steamワークショップの概要と、利用可能な異なるモデルについて説明します。 Steamワークショップの実装に関する技術的詳細は、Steamワークショップ実装ガイドをご覧ください。

動画:UGC(ユーザー生成コンテンツ)とSteamワークショップ入門

https://www.youtube.com/watch?v=SRyUpR4qOxU

動画:ARK: Survival EvolvedにおけるUGCとワークショップ

これは2016年のSteam Dev DaysでStudio WildcardのJeremy Stieglitz氏が行った講演です。Steamワークショップを通してユーザーが生成したコンテンツを活用することで、Ark: Survival Evolvedのコミュニティを長期に渡って活発に保ち、大きく発展させた方法と、 その実現のために採用された技術面、デザイン面でのステップに関する話です。
https://www.youtube.com/watch?v=faweKXUTKgQ

ワークショップブランドガイドライン

ワークショップの宣伝にはSteamワークショップブランドの使用を推奨しています。 ワークショップブランドアセットはここからダウンロードできます。 Steamブランドに関する情報は、Steam ブランドガイドラインを参照してください。

ワークショップのタイプ

Steamワークショップの統合オプションには大きく分けて2つのタイプがあります。 それぞれに利点とトレードオフがありますので、どちらのオプションが自分の製品に適切かをよく検討してください。
  1. すぐに使えるワークショップ―誰でもコンテンツをアップロードでき、プレイヤーは一切のキュレーションなしでダウンロードができます。 ゲームの複雑性によらず、ゲーム内で大量のアイテムや、Mod、マップをサポートする場合に最適です。 アイテムの受け入れに必要な開発者の作業は軽減されますが、適切なエディターやコンテンツがゲーム内で適切に機能することを確認するための検証ツールを作成するための事前作業に時間がかかることがあります。 アイテム制作者はコンテンツをいつでも更新できます。 アイテムの販売を許可する場合は、販売アイテムを開発者側で管理することも、制作者に直接投稿させることも可能です。 価格の設定は制作者が行い、販売はSteamワークショップを通して直接行われます。

  2. キュレーションされたワークショップ―ゲームに追加するアイテムを厳重に管理したい場合に最適ですが、アイテムをひとつ追加する毎に作業とアップデートが必要になります。 この方法は通常、武器や、帽子、装飾アイテムのような、小さくあまり複雑でないコンテンツ用です。 アイテムを販売する際は、ゲーム内で各アイテムを装備する権限を持っているユーザーの記録を管理するため、インベントリサービスの利用が必須となる他、アイテム販売用にゲーム内ストアを用意する必要があります。 価格設定は開発側が行います。

すぐに使えるワークショップ

使用理由

  • 大量のアイテムに対応したい。「すぐに使えるワークショップ」を使用すると、複雑性によらずゲーム内で大量のアイテムや、Mod、マップに対応することが容易になります。 コンテンツ制作ツールや編集ツールを事前に用意することで、ユーザーがゲーム内でできることが増えます。
  • 制作者がコンテンツをいつでも自由に更新できるようにしたい。「すぐに使えるワークショップ」のアイテムは制作者がいつでも自由に更新できます。つまり、コンテンツの編集、バグの修正、あるいはMODやアイテムの内容や機能の拡張などは制作者が自由に行えます。

はじめに

まず、ゲームを拡張するためには、どのようなコンテンツがユーザーによって制作されるべきなのかを検討することが大切です。 マルチプレイヤーゲームにとってふさわしいコンテンツは、シングルプレイヤーゲームとは異なるかもしれません。 考えがまとまったら、ユーザーがコンテンツを制作するために必要なツールや、クライアントがコンテンツを読み込む方法について検討しましょう。 熱心なファンがコンテンツの制作方法を考え出してくれることもあるかもしれませんが、 上で言及したように、ゲームに対する大規模な改変をサポートしたい場合は、コンテンツの制作やゲームロジックの変更を支援する開発ツールをできるだけ多くリリースすることが効果的です。

Once you've got basic modding up and running, then you'll need to integrate the ISteamUGC API so that your client can know which Workshop files the user is subscribed to and can download content as necessary. ここまで済ませれば、この環境でアイテムを販売するオプションを有効化することは簡単です。 アイテム制作者の銀行および税務情報の収集、価格設定ツールや必要な利用規約の提供、バックエンドで行われる支払い処理と源泉徴収などは、すべてSteamワークショップが行います。 開発者側で必要な作業は、ゲームがどのファイルをゲームクライアントに読み込ませるかという設定のみです。

統合作業

「すぐに使えるワークショップ」モデルをゲームに統合する時に、検討すべき主なコンポーネントは以下の通りです。
  • シングルプレイヤーのゲームクライアントにコンテンツを読み込む―ユーザーが提出したコンテンツをゲーム内ですぐ使用できるようにするには、ゲームの適切な構築が必要です。 これは通常、ゲームクライアントが読み込むべきファイルを確認する必要があることを意味します。 新たに実装を構築する場合は、Steamユーザーがサブスクライブしたファイルのリストを最初にチェックしてから、対応するフォルダの読み込みを行うことを推奨しています。 開発側はMOD制作者がMODをディレクトリから読み込んで作業できるようにステージング環境を用意する必要があります。
  • マルチプレイヤーゲームクライアントにコンテンツを読み込む―ゲームを適切に機能せさせるために、複数のユーザーが必要とするアイテムやコンテンツがある場合、特定のアイテムを必要とするすべてのクライアントに対し、このアイテムをすべてダウンロードさせることができます。 例えば、ワークショップのカスタムマップをサブスクライブしているユーザーが、マッチにフレンドを招待した場合、招待されたユーザーのマッチへの接続が完了する前に、カスタムマップが使用されていることがゲームによって認識され、コンテンツがワークショップから招待されたユーザー側でダウンロードされる必要があります。
  • アイテム制作者からのエントリーをアップロードするISteamUGC APIを使用して、アイテム制作者がワークショップにエントリーをアップロードできるようなツールを用意する必要があります。 このツールには、ゲーム内フォームのような単純なものから、スタンドアロンのアプリまであります。受け付けるアイテムは即時使用可能とになる必要があるため、提出ツールは、ゲームクライアントによる読み込みが想定されたファイルフォーマットとそのプレビューイメージのみを受け付けるべきです。 制作者に対してアップロードを依頼するコンテンツにもよりますが、大規模な改変(ゲームロジックやゲームプレイに関するもの、または既存のビジュアルの変更以上のもの)がある場合は特に、専用の編集ツールの提供が必要かもしれません。 例えば、Mod制作が可能なゲームのほとんどは、開発に使用したツールを公開し、Mod制作者が開発と同じツールを使用できるようにしています。 ファイルの上書きや、ゲーム内の変更可能部分を管理したい場合、こうしたツールによって、提出されたコンテンツの制限や認証が可能になります。 ワークショップアイテムの制作希望者に向けて、求めているコンテンツの種類、および投稿してもらいたくないコンテンツの種類に関するガイドラインやスタイルガイドを作成することが推奨されます。

    Steamworks APIのSteamワークショップ部分の使用を開始するための詳細はSteamワークショップ実装ガイドをご覧ください。

ユーザーにアイテムを渡す

「すぐに使えるワークショップ」モデルでは、ワークショップ内に投稿されたアイテムは、サブスクライブ(無料の場合)または購入(有料の場合)が自動的に利用可能となり、Steamクライアントを通して自動的にダウンロードされます(これを正しく機能させるには、製品とISteamUGC APIの統合が必要です。 技術的詳細はSteamワークショップ実装ガイドをご覧ください)。 SteamワークショップはMODのアップデートに合わせて常にクライアントを最新の状態に保ちます。 MODが購入されると、アイテムの購入、支払い処理、制作者への支払い、ゲーム開発者への支払い、源泉徴収に必要な処理などはSteamが行います。

希望する場合は、アイテムのセットをリストするワークショップブラウザをゲーム内に構築することも可能です。

Curated Workshop

「キュレーションされたワークショップ」の最大の特徴は、開発者が各アイテムを承認する必要がある点と、アイテムの所有権を管理するためのアイテムサーバー(あるいはSteamインベントリサービスの使用)が必要になる点です。 このプロセスにより、ゲームに追加されるアイテムを管理できるようになりますが、通常、新しいアイテムの承認作業が多少は必要になります。

「キュレーションされたワークショップ」では、ワークショップ内に提出されたアイテムは、他のユーザーによって直接使用されるのではなく、ユーザーによる投票を受け付けるキューに表示されます。 この投票データは、ユーザー間で最も人気があるアイテムの把握や、不完全あるいは不適切な提出物を除去するフィルターとして利用できます。

Why To Use

「キュレーションされたワークショップ」モデルは以下のような場合に便利です。
  • アイテムに特定の属性を割り当てる必要がある。ワークショップ経由で武器などのアイテムを受け付ける場合、ゲームプレイのバランスを損なわないように、 開発者による武器の属性(スピード、パワー、ダメージ、リロード時間等)の割り当てが必要です。
  • ゲームに追加されるコンテンツを厳重に管理したい。 ゲームのセットアップよって、アイテムの受け入れには2種類の方法があります。
    • ダウンロードして構築―アセットをローカルマシンにダウンロードしてゲームデポに含みたい場合。 各アイテムの最適化や、厳格なスタイルガイドを課す必要がある場合、アイテムの編集や修正を行うことができます。
    • クライアントに直接―受け入れたアイテムを必要に応じてクライアントに直接ダウンロードしたい場合。 バグがあった場合、アイテム制作者が自ら制作物を更新できます。

はじめに

「キュレーションされたワークショップ」ページを設定し、ゲーム内に簡単なフォームを追加し、アイテム制作者に向けたスタイルガイドとガイドラインを投稿するだけで開始できます。 コンテンツをワークショップにアップロードするには、ISteamUGC APIとの統合が必要です(Steamワークショップ実装ガイドを参照してください)。 これにより、アイテム制作者はアイデアを生み出し、アイテムをワークショップに投稿し、コミュニティによる評価を受けることができるようになります。 制作者に完成したアイテムのみワークショップに投稿してもらうよう明示することを推奨しています。 不完全なアイテムや単なるコンセプトの投稿を許可してしまうと、そこから実際のアイテムにするためのプロセスを考慮する必要が生じますが、有意義な方法を見つけることが難しいのが通常です。

ワークショップが稼働したら、受け入れたアイテムの販売を想定して、Steam Microtransactions APIとSteamインベントリサービスとの統合を行ってください。 ストアの準備が完了した時点で、アイテムの受け入れ、支払いルールの設定、アイテムの販売を開始できます。

統合作業

「キュレーションされたワークショップ」モデルをゲームに統合する時に、検討すべき主なコンポーネントは以下の通りです。
  • アイテム制作者からのエントリーを受け入れる―アイテム制作者がワークショップにエントリーをアップロードするためのツールが必要です。 このツールには、ゲーム内のフォームのような単純なものから、スタンドアロンのアプリまであります。アイテム制作者に.ZIPファイルとプレビュー画像を選択させるだけの初歩的なアップローダーで始めることも可能ですし、提出過程にさらなる検証ステップを組み込むことも可能です。 例えば、Team Fortress 2は、アイテム制作者が.ZIPファイルとプレビュー画像を選ぶだけの提出フォームで開始しましたが、 イテレーションのプロセスの中で、ワークショップに提出されたファイルのゲームとの統合を簡素化するための検証ステップやテスト環境を追加しました。
    ワークショップアイテムの制作希望者に向けて、求めているコンテンツの種類、および投稿してもらいたくないコンテンツに関するガイドラインやスタイルガイドを作成することを推奨します。
    ユーザーが提出ツールからワークショップにアイテムをアップロードしたら、投稿されたアイテムのページをそのユーザーに向けて表示するようにしましょう。 そうすることで、Steam利用規約やSteamワークショップ利用規約などにまだ同意していないユーザーは、規約に同意する機会を得ます。
  • アイテムをゲームに統合する(任意)―アイテム制作者がアップロードの際に定義できない特別な属性(武器の効果など)を開発者側で割り当てる必要がある場合、ワークショップのWebサイトからアイテムをダウンロードし、デポにコンテンツを含む必要があります。 その過程で、適切な属性の割り当てと必要な編集を行ってください。 このステップにおける作業量は、提出ツールの検証作業の量と、アイテム制作者から受け取るコンテンツの質によって変動します。
  • その場でダウンロードする ―特別な属性の設定や、アイテムを洗練するための処理が必要がない場合、所有アイテムをワークショップコンテンツサーバーから直接呼び出すことができます。 Steamインベントリサービスを使用している場合、ISteamInventoryを使用して、ユーザーが所有するアイテムのリストを見ることができます。 そこで、ユーザーが所有する各アイテムがワークショップアイテムかどうかをチェックして、以下を行います。
    • ワークショップアイテムIDでISteamUGC::GetItemStateを呼び出し、k_EItemStateNeedsUpdateが設定されているか、あるいは k_EItemStateInstalledが設定されていないかをチェックします。
    • 必要であればISteamUGC::DownloadItemを呼び出します。
    • ISteamUGC::DownloadItemResult_tのコールバックを待ち、コンテンツをゲーム内で利用可能にします。
  • インベントリサービス、アイテム定義の作成―アイテムをゲーム内で販売する場合や、一部のユーザーに限定で配布する場合、各アイテムの所有権を追跡し、どのクライアントがそのアイテムを装備する許可を所有しているかをゲーム側で把握するために、アイテムサーバーが必要になります(またはSteamインベントリサービスも使用可能です)。 このインベントリサービスは、アイテムの販売だけでなく、ランダムドロップや、ユーザーにアイテムをドロップするイベントの管理にも必要です。
  • 支払いルールの追加―アイテムの販売準備が整ったら、Steamインベントリサービスや、アイテムサーバー内で、どのワークショップアイテムがどのアイテム定義に関連付けられているかをSteamに知らせる必要があります。 この関連付けによって支払いルールが確立され、Steamは各アイテムの販売収益の適切な分配率を把握することができます。 インベントリサービスでSteam Microtransactions APIを通して売上が発生すると、Steamはどのワークショップアイテムが購入されたかを把握し、正しい収益の計算とアイテム制作者への支払いを引き受けます。

    アプリのSteamworks設定ページのワークショップタブの下にある「新規の支払ルールを入力」をクリックすることによって支払いルールを管理できます。

  • アイテムの販売 ―アイテムを販売するストアを用意したい場合、自身でゲーム内へのストア用のUIを作成するか、Steamアイテムストアの使用が可能です。 各購入におけるバックエンドの処理はSteamが引き受けます(以下参照)。
    • 各アイテム制作者の銀行および税務情報の収集と保管
    • アイテム販売に対する適切な計算処理と製作者への支払い
    • 各アイテム制作者の源泉徴収
    • 各アイテム制作者への年度末税務書類の発行

ユーザーにアイテムを渡す

「キュレーションされたワークショップ」モデルでは、ユーザーにアイテムを渡す方法は複数あります。
  • Steam Microtransactions経由で販売―独自のインベントリサービスを使用している場合、Steam Microtransactions APIとの統合が必要です。 または、アイテムの出品および販売用にカスタマイズできるアイテムストアを備えたSteam インベントリサービスの利用も可能です。
  • ランダムアイテムドロップ―各アイテムの所有権追跡やドロップの管理を行うためのアイテムサーバーが必要です(Steam インベントリサービスの利用も可能です)。
  • DLCとしてバンドル―インフラの準備は少なくて済みますが、ワークショップへの貢献者に対する支払い条件を各自で準備する必要があります。 DLCやDLCの一部として販売される各アイテムに関して、支払い金額や、支払い頻度(容易な一回払い)、または著作権使用料としての継続的な支払い(継続的な作業が必要)について、ワークショップ作成者と合意を形成する必要があります。 さらに、支払いの記録、源泉徴収の計算、事業を行っている地域によっては、適切な税務書類の発行が必要となります。
  • 誰でも無料で使用できるアイテムとしてゲームに追加―必要なインフラは最小限で済みますが、アイテム制作者のモチベーションが上がらず、高品質な作品の提出を望めなくなります。

告知とローンチ

必要なマーケティング素材

ワークショップのローンチには、以下のアイテムが必要です。
  • ワークショップのヘッダー画像―この画像はホームページ上で製品を際立たせるためのものです。 Photoshopのテンプレートはこちらです。 アートワークやロゴはゲームを象徴するものを使用してください。 右側にSteamワークショップの使用方法に関する説明とそのタイトルを書くためのスペースを用意してください。
  • 簡単な説明―タイトルを付け、アプリケーションがSteamワークショップをどのように使用するかを2行以内で説明してください。 これによって、ツール内の機能や使用方法に関するユーザーの期待値が設定されます。
  • ツールのドキュメント―ユーザーがツールを使用する上で役立つドキュメントをWebサイトやWikiで公開している場合、そのURLをアプリのワークショップ設定ページに入力してください。または、ワークショップ用コンテンツ作成に使用するツールを新規ユーザーに紹介するためのSteamガイドの制作を検討してください。

ローンチの告知とタイミング

ワークショップ統合のローンチは、1週間の割引を実施する絶好のタイミングです。新しいワークショップという話題性を活用することで、ワークショップを使用する新規プレイヤーをゲーム内に呼び込みましょう。 ワークショップのローンチに合わせて実施する割引の設定は各自で行うことができます。 詳細は割引を参照してください。

ゲームのアップデート露出ラウンドを使用すれば、フロントページへの露出が可能となり、新しいワークショップとセール(実施中の場合)の大規模な宣伝になります。 露出ラウンドに関するさらなる情報は、Steam での露出を参照してください。

マーケティングツールとしてワークショップの大規模な告知をする場合、潜在的なユーザーの獲得には、ある程度のコンテンツがワークショップ内にすでに入っていることが好ましいです。 それにより、新規ユーザーはゲームやユーザーベースの盛り上がりやゲームへの関わり具合に関する情報を得ることができます。 既存ユーザーは直ちに使用できるものを手にすることができ、コンテンツクリエイターはワークショップ用に何を制作できるのかを知ることができます。 Steamワークショップのフロントページのリスト内にゲームを表示させるには、最低でも1つのアイテムをワークショップ内で公開する必要があります。

実施方法はいくつかあります。
  1. ローンチ前に機密でコンテンツを生成してテストを少人数のグループで行いたい場合、非公開のベータとして数名のユーザーだけを招待することが可能です。 ベータの実施に関する詳細情報は、以下のトピックを参照してください。
  2. ツールのデモンストレーションとして、いくつかのアイテムを内部で制作することも可能です。

プライベートベータの実施

SteamとSteamワークショップは、プライベートベータを実行し、初期のテスターグループによる新しいツールの使用、およびワークショップとの統合のテストを可能にします。 This is a great way to get feedback on the flow of generating content and publishing and also to potentially launching your Workshop with a collection of items ready for fans to check out.

There are two parts to this:
  1. Beta of your game (via Steam) - The first step is to create an updated build of your game and set it as a beta in Steam. This enables Steam to deliver a separate version of your game that customers have to opt in to and can be optionally password protected.
  2. Beta of your Workshop (via Group) - You can set up a group in the Steam Community and use membership in that group to gate access to the Steam Workshop. Or, you can simply open access to all customers that own your application.
    1. Create a Steam Community group to use for testing. You might want to leave it private if you plan to restrict access to only people you want to select.
    2. Get the Steam ID from that group. From your group, click "Edit Group Profile" and find the "ID" at the top of that page (ex: 2667495)
    3. In the Steamworks admin for your game, under the "Workshop" tab, click "General", then set the Visibility State to "Developers & Testers". You will be prompted to enter that ID. Publish your changes.
      workshopvisibilitystate.PNG

Technical Implementation

For technical details on implementing Steam Workshop with your title, please see the Steamワークショップ実装ガイド.