เอกสาร Steamworks
ภาพหน้าจอ Steam

ภาพรวม

สามารถรับบริการเกี่ยวกับภาพหน้าจอโดยอัตโนมัติผ่าน โอเวอร์เลย์ Steam ของทุก ๆ เกมจาก Steam และ Steamworks เองก็มีชุด API ที่ออกแบบมาเพื่อการโต้ตอบกับระบบนี้ Steamworks Screenshots API ช่วยให้คุณสามารถถ่ายภาพหน้าจอและเพิ่มภาพไปยังคลังภาพหน้าจอภายในเครื่องพร้อมระบุมาทาดาตาเพิ่มเติม เช่น ชื่อสถานที่ในเกม หรือการแท็กผู้ใช้ที่ปรากฏในภาพ
หมายเหตุ: เกมของคุณจะต้องเปิดใช้งาน โอเวอร์เลย์ Steam จึงจะสามารถใช้ระบบภาพหน้าจอได้

ผู้ใช้สามารถกดปุ่มลัดที่ควบคุมโดย Steam เพื่อถ่ายภาพหน้าจอได้ (ค่าเริ่มต้นคือ F12)

ผู้ใช้สามารถเปลี่ยนปุ่มลัดและการตั้งค่าภาพหน้าจออื่น ๆ ที่มีผลกับเกมทุกเกมที่เล่นใน Steam ได้โดยไปที่ Settings -> In-Game

screenshot_hotkey.png

เครื่องมืออัปโหลดภาพหน้าจอ

เมื่อออกจากเกม เครื่องมืออัปโหลดภาพหน้าจอจะเปิดขึ้นโดยอัตโนมัติพร้อมกับภาพหน้าจอทั้งหมดที่ถ่ายไว้ในเซสชันเกมที่ผ่านมา ผู้ใช้สามารถปิดพฤติกรรมนี้ได้โดยไปที่ การตั้งค่า > คลาวด์ แล้วนำเครื่องหมายออกจาก "เปิดเครื่องมืออัปโหลดภาพหน้าจอหลังจากปิดเกม หากมีการถ่ายภาพหน้าจอ"

screenshot_uploader.png

นอกจากนี้ยังสามารถเข้าถึงเครื่องมืออัปโหลดภาพหน้าจอได้ตลอดเวลาผ่าน Steam โดยไปที่ View -> Screenshots หรือคลิกที่ "Screenshots" ในโอเวอร์เลย์ของ Steam

หากผู้ใช้อัปโหลดภาพหน้าจอ ภาพเหล่านี้จะปรากฏในโปรไฟล์ชุมชนของตนและศูนย์กลางชุมชนของเกม

API ของภาพหน้าจอบน Steam

Steamworks SDK ที่ให้การเข้าถึง ISteamScreenshots และทำให้คุณสามารถใช้คุณสมบัติขั้นสูงและผสานระบบการถ่ายภาพหน้าจอของ Steam เข้ากับเกมของคุณโดยตรง เพื่อประสบการณ์ที่ดีที่สุดของลูกค้า

โดยค่าเริ่มต้นแล้ว Steam จะจัดการการถ่ายภาพหน้าจอ แต่คุณสามารถควบคุมได้โดยการฮุคภาพหน้าจอด้วย ISteamScreenshots::HookScreenshots ถ้าฮุคภาพหน้าจอ คุณจะได้รับคอลแบ็ก ScreenshotRequested_t เมื่อผู้ใช้กดปุ่มลัดสำหรับถ่ายภาพหน้าจอ คุณสามารถตรวจสอบได้ว่ากำลังฮุคภาพหน้าจอด้วย ISteamScreenshots::IsScreenshotsHooked อยู่หรือไม่

ไม่ว่าจะฮุคหรือไม่ คุณก็จะได้รับคอลแบ็ก ScreenshotReady_t เมื่อบันทึกภาพหน้าจอลงในดิสก์สำเร็จ หลังจากได้รับคอลแบ็กนี้ คุณควรตรวจสอบผลลัพธ์ และถ้าผลลัพธ์ถูกต้อง คุณก็สามารถใช้ ScreenshotHandle ที่ให้มาเพื่อตั้งค่าแท็กด้วย:

ถ้าคุณต้องการถ่ายภาพหน้าจอด้วยปุ่มของคุณเอง หรือถ่ายภาพหน้าจอโดยอัตโนมัติในบางชุด เช่น ตอนจบรอบการเล่นเกม คุณสามารถสั่งให้โปรแกรมถ่ายภาพหน้าจอได้ด้วย ISteamScreenshots::TriggerScreenshot หรือเขียนไบต์ RGB ออกมาด้วย ISteamScreenshots::WriteScreenshot หรือเพิ่มไฟล์จากดิสก์ด้วย ISteamScreenshots::AddScreenshotToLibrary/ISteamScreenshots::AddVRScreenshotToLibrary