Steamworks ドキュメンテーション
ISteamScreenshots Interface
ユーザーのスクリーンショットライブラリにスクリーンショットを追加するための関数です。

詳細は、Steamスクリーンショット を参照してください。

メンバー関数

ISteamScreenshotsのメンバー関数は、グローバルのアクセサ関数SteamScreenshots()経由で呼び出されます。

AddScreenshotToLibrary

ScreenshotHandle AddScreenshotToLibrary( const char *pchFilename, const char *pchThumbnailFilename, int nWidth, int nHeight );
名前説明
pchFilenameconst char *JPG、PNG、またはTGAスクリーンショットへの絶対ファイルパス。
pchThumbnailFilenameconst char *オプションのサムネイル画像への絶対ファイルパス。 k_ScreenshotThumbWidth の説明の通り、これは200ピクセル幅で、同じアスペクト比でなければなりません。 サムネイルが無ければNULLを渡し、自動でサムネイルが作成されます。
nWidthintスクリーンショットの幅。
nHeightintスクリーンショットの高さ。

ディスクからユーザーのSteamスクリーンショットライブラリにスクリーンショットを追加します。

戻り値: ScreenshotHandle
ScreenshotReady_tコールバックをトリガーします。
ゲームプロセスの期間中有効で、タグを適用するために使用できるこのスクリーンショットへのハンドル。
ファイルが保存できなかった場合には、INVALID_SCREENSHOT_HANDLEを返します。

この呼び出しは非同期で、スクリーンショットがディスクへの書き込みを終了した時点で ScreenshotReady_tコールバックが送信されます。

AddVRScreenshotToLibrary

ScreenshotHandle AddVRScreenshotToLibrary( EVRScreenshotType eType, const char *pchFilename, const char *pchVRFilename );
名前説明
eTypeEVRScreenshotTypeVRスクリーンショットのタイプ。
pchFilenameconst char *ライブラリビューのための、2D JPG、PNGまたはTGAバージョンのスクリーンショットへの絶対ファイルパス。
pchVRFilenameconst char *VRスクリーンショットへの絶対ファイルパス、これはeTypeで指定されたのと同一のタイプである必要があります。

ディスクからサポートされたタイプのユーザーのSteamスクリーンショットライブラリにVRスクリーンショットを追加します。

戻り値: ScreenshotHandle
ScreenshotReady_tコールバックをトリガーします。
ゲームプロセスの期間中有効で、タグを適用するために使用できるこのスクリーンショットへのハンドル。
ファイルが保存できなかった場合には、INVALID_SCREENSHOT_HANDLEを返します。

この呼び出しは非同期で、スクリーンショットがディスクへの書き込みを終了した時点で ScreenshotReady_tコールバックが送信されます。

HookScreenshots

void HookScreenshots( bool bHook );
名前説明
bHookboolフッキングを有効化 (true)または無効化(false)?

ユーザーがスクリーンショット撮影用のホットキーを押した時にオーバーレイがスクリーンショットを処理するか、ゲームが処理するかを切り替えます。

フックはデフォルトでは無効になっており、この機能を使用して有効にした場合のみ有効になります。

フックが有効になっている場合、ユーザーがホットキーを押すかTriggerScreenshotが呼び出されるとScreenshotRequested_tコールバックが送信され、ゲームは応答でWriteScreenshotまたはAddScreenshotToLibraryを呼び出す必要があります。

IsScreenshotsHookedでフックが有効化されているかを確認できます。

IsScreenshotsHooked

bool IsScreenshotsHooked();
アプリがスクリーンショットをフックするか、Steamオーバーレイが処理するのかを確認します。

HookScreenshotsで切り替えできます。

戻り値: bool
true となるのはゲームがスクリーンショットをフックして処理する場合で、それ以外はfalseです。

SetLocation

bool SetLocation( ScreenshotHandle hScreenshot, const char *pchLocation );
名前説明
hScreenshotScreenshotHandleタグ付けするスクリーンショットへのハンドル。
pchLocationconst char *ゲーム内でこのスクリーンショットが撮影された所。 k_cubUFSTagValueMaxより長くてはいけません。

スクリーンショットの場所について、任意のメタデータを設定します。 例えば、撮影されたマップの場所名などです。

ScreenshotReady_tコールバックまたはWriteScreenshotAddScreenshotToLibraryAddVRScreenshotToLibrary呼び出し経由で正常に保存されたら、スクリーンショットにタグ付けするためのハンドルを取得できます。

戻り値: bool
true となるのは場所がスクリーンショットに正常に追加された時です。
false となるのはhScreenshotが無効または、pchLocationが無効か長すぎる場合です。

TagPublishedFile

bool TagPublishedFile( ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID );
名前説明
hScreenshotScreenshotHandleタグ付けするスクリーンショットへのハンドル。
unPublishedFileIDPublishedFileId_tスクリーンショット内のワークショップアイテムID。

スクリーンショットに表示されるよう、公開されたファイルにタグを付けます。

一枚のスクリーンショット内にk_nScreenshotMaxTaggedPublishedFilesで宣言された最大値までタグ付けできます。 それより多くのアイテムへタグ付けすると、破棄されます。

この関数にはタグを保存する前に組み込まれた遅延があるので、各アイテム用に繰り返して呼び出し可能です。

ScreenshotReady_tコールバックまたはWriteScreenshotAddScreenshotToLibraryAddVRScreenshotToLibrary呼び出し経由で正常に保存されたら、スクリーンショットにタグ付けするためのハンドルを取得できます。

戻り値: bool

TagUser

bool TagUser( ScreenshotHandle hScreenshot, CSteamID steamID );
名前説明
hScreenshotScreenshotHandleタグ付けするスクリーンショットへのハンドル。
steamIDCSteamIDスクリーンショット内のユーザーのSteam ID。

スクリーンショットに表示されるように、Steamユーザーにタグを付けます。

一枚のスクリーンショット内にk_nScreenshotMaxTaggedUsersで宣言された最大値までタグ付けできます。 それより多くのユーザーへタグ付けすると、破棄されます。

この関数にはタグを保存する前に組み込まれた遅延があるので、各ユーザー用に繰り返して呼び出し可能です。

ScreenshotReady_tコールバックまたはWriteScreenshotAddScreenshotToLibraryAddVRScreenshotToLibrary呼び出し経由で正常に保存されたら、スクリーンショットにタグ付けするためのハンドルを取得できます。

戻り値: bool

TriggerScreenshot

void TriggerScreenshot();
Steamオーバーレイにスクリーンショットを撮影させるか、スクリーンショットを撮る必要があることをスクリーンショットマネージャーに伝えます。 IsScreenshotsHookedの値に基づきます。

戻り値: void
ScreenshotRequested_tコールバックをトリガーします。
ScreenshotReady_tコールバックをトリガーします。
HookScreenshotsでフックが有効化されている場合のみ、ScreenshotRequested_tが発生します。 それ以外の場合は、スクリーンショットが保存されてライブラリに追加されるとScreenshotReady_tが呼び出されます。

WriteScreenshot

ScreenshotHandle WriteScreenshot( void *pubRGB, uint32 cubRGB, int nWidth, int nHeight );
名前説明
pubRGBvoid *スクリーンショットからの未処理のRGBデータを含むバッファー。
cubRGBuint32バイト単位でのpubRGBのサイズ。
nWidthintピクセル単位でのスクリーンショットの幅。
nHeightintピクセル単位でのスクリーンショットの高さ。

RGB形式の未処理の画像データを元に、ユーザーのSteamスクリーンショットライブラリにスクリーンショットを書き込みます。

戻り値: ScreenshotHandle
ScreenshotReady_tコールバックをトリガーします。
ゲームプロセスの期間中有効で、タグを適用するために使用できるこのスクリーンショットへのハンドル。
ファイルが保存できなかった場合には、INVALID_SCREENSHOT_HANDLEを返します。

この呼び出しは非同期で、スクリーンショットがディスクへの書き込みを終了した時点で ScreenshotReady_tコールバックが送信されます。

コールバック

これらは SteamAPI_RunCallbacks を呼び出すことによって実行されるコールバックです。 これらの多くはISteamScreenshotsのメンバー関数への応答として直接実行されます。

ScreenshotReady_t

正常に書き込まれるか、ライブラリに追加されてタグが可能なスクリーンショット。

名前説明
m_hLocalScreenshotHandle書き込まれたスクリーンショットのハンドル。
m_eResultEResult呼び出しの結果。 可能な値:
  • k_EResultOK - スクリーンショットがユーザーのライブラリに正常に追加された。
  • k_EResultFail - スクリーンショットが読み込みまたは解析できなかった。
  • k_EResultIOFailure - スクリーンショットがディスクに保存できなかった。

関連する関数: WriteScreenshot, AddScreenshotToLibrary, TriggerScreenshot, AddVRScreenshotToLibrary

ScreenshotRequested_t

スクリーンショットがユーザーのSteamスクリーンショットホットキーから要求された。 これはHookScreenshotsが有効な場合のみ呼び出され、その場合Steam自身はスクリーンショットを撮影しません。

このコールバックにはフィールドはありません。

関連する関数: TriggerScreenshot

列挙型

これらはISteamScreenshotsで使用するために定義された列挙型です。

EVRScreenshotType

VRスクリーンショットのタイプを説明します。

名前説明
k_EVRScreenshotType_None0
k_EVRScreenshotType_Mono1
k_EVRScreenshotType_Stereo2
k_EVRScreenshotType_MonoCubemap3
k_EVRScreenshotType_MonoPanorama4
k_EVRScreenshotType_StereoPanorama5

Typedefs

これらはISteamScreenshotsで使用するために定義されたtypedefsです。

名前ベース型説明
ScreenshotHandleuint32スクリーンショットへのハンドル。 プロセスの間中は有効ですが、それよりは長持ちしません。

定数

これらはISteamScreenshotsで使用するために定義された定数です。

名前説明
INVALID_SCREENSHOT_HANDLEint0無効なスクリーンショットハンドルで、スクリーンショットの書き込みか追加が失敗した時に返されます。
k_cubUFSTagTypeMaxint255未使用。
k_cubUFSTagValueMaxint255SetLocationを使ってスクリーンショットに設定する場所メタデータ文字列のバイト単位での最長の長さ。
k_nScreenshotMaxTaggedPublishedFilesuint3232TagPublishedFileを使用してスクリーンショット内にタグ付けできるワークショップアイテムの最大数。
k_nScreenshotMaxTaggedUsersuint3232TagUserを使用してスクリーンショット内にタグ付けできるユーザーの最大数。
k_ScreenshotThumbWidthint200AddScreenshotToLibraryに提供される、必要とされるサムネイルの幅。 サムネイルを提供しない場合、自動で作成されます。
STEAMSCREENSHOTS_INTERFACE_VERSIONconst char *"STEAMSCREENSHOTS_INTERFACE_VERSION003"