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を使用して、ディスクからファイルを追加してください。