Steamworks 文献库
Steam 屏幕截图

概览

Steam 的每款游戏都通过 Steam 界面自动提供截图支持,并且 Steamworks 提供一套专有 API 与之进行交互。 Steamworks 截图 API 可让您截取屏幕画面,并储存至用户本机的截图库中,当中也包含例如游戏中的地名或标记的用户等元数据。
注意:必须开启游戏的 Steam 界面才可使用截图系统。

按下由 Steam 控制的快捷键(默认为 F12),即可截取屏幕画面。

用户可自行更改快捷键和其他截图设置,这些设置在任何 Steam 游戏中都会生效。前往“设置”->“游戏中”即可更改。

screenshot_hotkey.png

截图上传器

结束游戏后,截图上传器即会自动开启之前游戏时所有截取的画面。 若要禁用此操作,可前往“设置”->“云”,并取消勾选“如已抓取截图,在关闭游戏后开启截图上传器”。

screenshot_uploader.png

您可随时通过 Steam 访问截图上传器。前往“查看”->“截图”,或点击 Steam 界面中的“截图”即可开启截图上传器。

用户上传了任何截图后,便可在他们的社区个人资料或游戏的社区中心看到。

Steam 截图 API

Steamworks SDK 提供了 ISteamScreenshots,让您能够使用高级功能,将 Steam 截图系统集成至您的游戏中,并带给顾客最佳体验。

默认情况下,Steam 会处理截图,但您也可使用 ISteamScreenshots::HookScreenshots 挂钩以控制截图功能。 如要挂钩截图,用户按下截图快捷键时,便会收到 ScreenshotRequested_t 回调。 您可使用 ISteamScreenshots::IsScreenshotsHooked 来确认当前是否已挂钩至截图。

无论是否已挂钩,在截图成功保存至磁盘后,您都会收到 ScreenshotReady_t 回调。 收到回调后,您应检查结果。如果成功,便可使用 ScreenshotHandle 来设置以下标签:

如果您希望使用自己的按钮截取屏幕,或是在游戏中某个时刻自动截取,例如在一局结束时,您可将 ISteamScreenshots::TriggerScreenshot 写入程序代码中,或使用 ISteamScreenshots::WriteScreenshot 写入 RGB 字节,另外也可用 ISteamScreenshots::AddScreenshotToLibrary/ISteamScreenshots::AddVRScreenshotToLibrary 从磁盘新增一个文件。