Steamworks 文献库
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 从磁盘新增一个文件。