Steamworks ドキュメンテーション
Steam スクリーンショット

概要

スクリーンショットのサポートは Steam で、Steam オーバーレイを介してすべてのゲームに自動的に提供され、Steamworks では、このシステムと対話するように設計された一連の API を提供しています。Steamworks Screenshots API を使用すると、スクリーンショットを撮影し、ゲーム内の場所の名前や、スクリーンショットに表示されるユーザーのタグ付けなど、追加のメタデータと共に、ユーザーのローカルスクリーンショットライブラリに追加できるようになります。
注意: スクリーンショットシステムを利用できるようにするには、ゲーム内で Steam オーバーレイを有効にする必要があります。

ユーザーは、Steamによって制御されるホットキー (デフォルトは F12) を押して、スクリーンショットを撮ることができます。

ユーザーは、「設定」 -> 「ゲーム中 」を選択して Steam で上でプレイするすべてのゲームで有効となるホットキーやその他のスクリーンショット関連の設定を変更できます。

screenshot_hotkey.png

スクリーンショットアップローダー

ゲーム終了時に、スクリーンショットアップローダーが自動的に開き、終了したセッションで撮影したすべてのスクリーンショットが表示されます。ユーザーがこの動作を無効にするには、「設定」 -> 「クラウド」を開き、「スクリーンショット撮影時、ゲーム終了後にアップローダーを開く」のチェックを外します。

screenshot_uploader.png

スクリーンショットアップローダーへは、Steam の「表示」 -> 「スクリーンショット」から、または Steam オーバーレイで、「スクリーンショット」をクリックすることによっていつでもアクセスできます。

ユーザーがスクリーンショットをアップロードすると、コミュニティプロフィールやそのゲームのコミュニティハブに表示されます。

Steam Screenshots API

Steamworks SDK では ISteamScreenshots へのアクセスを提供し、高度な機能を使用できるSteam スクリーンショットシステムをゲームに統合し、ユーザーに対して最高の体験を提供することを目的としています。

デフォルトでは Steam がスクリーンショットの撮影を行いますが、 ISteamScreenshots::HookScreenshots を使用してスクリーンショットをフックすることによりスクリーンショットを制御することができます。スクリーンショットをフックしている場合、ユーザーがスクリーンショットのホットキーを押した時に ScreenshotRequested_t コールバックを受け取ります。ISteamScreenshots::IsScreenshotsHooked で、現在スクリーンショットをフックしているかどうかを確認することができます。

フックしているかどうかにかかわらず、スクリーンショットがディスクに正常に保存されると ScreenshotReady_t コールバックを受け取ります。このコールバックの受信後に結果を確認し、結果が成功の場合は ScreenshotHandle を使用して、タグを設定することができます:

独自のボタンを使ってスクリーンショットを撮りたい場合や、ラウンドの終了など、特定の時点で自動的にスクリーンショットをプログラムによって撮影したい場合は、ISteamScreenshots::TriggerScreenshot を使用するか、または ISteamScreenshots::WriteScreenshot を使用して RGB バイトを書き出すか、ISteamScreenshots::AddScreenshotToLibrary/ISteamScreenshots::AddVRScreenshotToLibrary を使用して、ディスクからファイルを追加してください。