Comme le titre l'indique. Parfois, l'exécution avec la superposition de la vapeur est une mauvaise idée, mais je me retrouve à vouloir mettre des captures d'écran sur mon profil Steam, ce que la fonctionnalité intégrée de capture d'écran du jeu ne me permet pas. Y a-t-il un moyen d'accomplir cela, que ce soit via une astuce, ou en exécutant la superposition sans réellement superposer quoi que ce soit ?
Réponses
Trop de publicités?Voici une discussion sur les forums de la vapeur qui donne un moyen très détourné de faire des captures d'écran sans utiliser la superposition de la vapeur (j'ai reproduit ce qui y est dit avec quelques modifications comme Jonathan Drapeau l'a recommandé). Certains jeux ne fonctionnent tout simplement pas avec. En gros, vous devez créer manuellement un dossier distant sous l'appid du jeu en question et y stocker les captures d'écran.
- Trouvez d'abord l'identifiant du jeu. Un moyen facile de le faire est de rechercher le jeu dans la boutique de la vapeur sur store.steampowered.com et de noter le numéro dans l'URL. Voici un exemple utilisant Teslagrad
- Faites vos captures d'écran en utilisant ALT - PrtScrn (fenêtré) ou PrtScrn (bureau complet) ou utiliser Camtasia, FRAPS, etc.
- Fermer la vapeur.
- Créez le dossier App ID dans le chemin de fichier suivant :
Program Files\Steam\userdata\X(number may vary)\760\remote
- Créez un "
screenshots
"dans le dossier249590
(c'est le chiffre de l'exemple pour Teslagrad ; le vôtre variera). À l'intérieur descreenshots
créer un dossier appelé "thumbnails
". Donc maintenant vous avez :Program Files\Steam\userdata\X\760\remote\249590\screenshots
&Program Files\Steam\userdata\X\760\remote\249590\screenshots\thumbnails
- Chaque capture d'écran est nommée avec la date et un numéro. La structure est année-mois-date :
2015-XX-XX_00001.jpg
. - Créez les vignettes de vos écrans. La résolution des vignettes est de 200x150. La résolution horizontale maximale est de 200 et la résolution verticale maximale est de 150. Vous pouvez changer d'échelle dans ces limites selon vos besoins (par exemple, 200x94 ou 180x150). Les captures d'écran doivent avoir une vignette. Elles doivent être nommées avec le même nom de fichier que la capture d'écran en taille réelle.
- Ouvrez Steam à nouveau. Laissez-le synchroniser et scanner vos fichiers. Ouvrez votre dossier de captures d'écran. Et voilà ! Les nouvelles captures d'écran seront là, prêtes à être téléchargées sur le cloud pour que vous puissiez les emporter partout !
Bonne chance ! Ces étapes seront utiles pour d'autres jeux qui ne parviennent pas à faire des captures d'écran ou qui rencontrent des problèmes.
J'ai essayé d'automatiser le processus décrit par m0nde. Il nécessite PowerShell pour fonctionner, mais si vous avez Windows 7 ou plus récent, il est préinstallé.
Enregistrer sous run.bat
:
@powershell -NoProfile -ExecutionPolicy Bypass -File main.ps1
Et ceci comme main.ps1
:
Function Get-VDFContent ([string] $path)
{
$fileContent = Get-Content $path
$obj = @{}
$stack = New-Object System.Collections.Stack
$group = [regex] '^\s*"([^"]+)"\s*$'
$keyVal = [regex] '^\s*"([^"]+)"\s*"([^"]+)"\s*$'
$bracket = $False
ForEach ($line in $fileContent)
{
If ($bracket)
{
If ($line -Like "*{*")
{
$bracket = $False
}
}
ElseIf (($match = $group.Match($line)) -And $match.Success)
{
$obj.($match.Groups[1].Value) = @{}
$stack.Push($obj)
$obj = $obj.($match.Groups[1].Value)
$bracket = $True
}
ElseIf (($match = $keyVal.Match($line)) -And $match.Success)
{
$obj.($match.Groups[1].Value) = $match.Groups[2].Value
}
ElseIf ($line -Like "*}*")
{
$obj = $stack.Pop()
}
Else
{
Throw
}
}
Return $obj
}
Function Create-ScreenshotPath([string] $screenshots, [string] $date, [string] $i)
{
Return Join-Path $screenshots ($date + ($i.PadLeft(5, "0")) + ".jpg")
}
$steamPath = ""
If (Test-Path "HKCU:\Software\Valve\Steam")
{
$steamPath = (Get-ItemProperty "HKCU:\Software\Valve\Steam").SteamPath
}
If (-Not $steamPath)
{
$steamPath = Read-Host 'Enter Steam install folder path (example: "c:/program files (x86)/steam")'
}
$loginUsers = Join-Path $steamPath "config/loginusers.vdf"
$users = (Get-VDFContent $loginUsers).users
$lastUser = ($users.GetEnumerator() | Sort-Object { [int]$_.Value.Timestamp } -Descending)[0].Name
$lastUserShort = $lastUser - 0x110000100000000
$userPath = Join-Path $steamPath ("userdata/" + $lastUserShort)
$localConfig = Join-Path $userPath "/config/localconfig.vdf"
$apps = (Get-VDFContent $localConfig).UserLocalConfigStore.Software.Valve.Steam.apps
$lastPlayed = ($apps.GetEnumerator() | Sort-Object { [int]$_.Value.LastPlayed } -Descending)[0].Name
$screenshots = Join-Path $userPath ("760/remote/" + $lastPlayed + "/screenshots")
$thumbnails = Join-Path $screenshots "thumbnails"
New-Item -Force -ItemType directory -Path $thumbnails >$null
$scriptPath = Split-Path -parent $MyInvocation.MyCommand.Definition
$date = Get-Date -Format yyyy-MM-dd_
$i = 1
While (Test-Path (Create-ScreenshotPath $screenshots $date $i)) { $i++ }
$filesToMove = Get-ChildItem $scriptPath -Filter "*.jpg" | % { $_.FullName }
ForEach ($file in $filesToMove)
{
Move-Item $file (Create-ScreenshotPath $screenshots $date $i)
$i++
}
Maintenant, mettez ces fichiers dans un répertoire avec les captures d'écran que vous voulez télécharger et lancez le programme. run.bat
. Ce script trouve le dernier utilisateur connecté et le dernier jeu joué, donc gardez-le à l'esprit avant de l'exécuter.
Une petite modification à La réponse de Piotr Kowalski . Désormais, il crée également des vignettes pour vos captures d'écran.
Prenez le fichier de cette phrase ou collez simplement le code dans votre main.ps1
fichier :
# Modified version of @piotr-kowalski's script
# Now also makes thumbnails for screenshots
# https://gaming.stackexchange.com/a/238288/212957
#
# Note:
# This script finds last logged-in user and last played game so keep it in mind before running.
#
# Usage:
# 1) Save this as run.bat:
# @powershell -NoProfile -ExecutionPolicy Bypass -File main.ps1
# 2) Download this file
# 3) Put both files in one directory with screenshots you want to upload and launch run.bat.
Function Get-VDFContent ([string] $path)
{
$fileContent = Get-Content $path
$obj = @{}
$stack = New-Object System.Collections.Stack
$group = [regex] '^\s*"([^"]+)"\s*$'
$keyVal = [regex] '^\s*"([^"]+)"\s*"([^"]+)"\s*$'
$bracket = $False
ForEach ($line in $fileContent)
{
If ($bracket)
{
If ($line -Like "*{*")
{
$bracket = $False
}
}
ElseIf (($match = $group.Match($line)) -And $match.Success)
{
$obj.($match.Groups[1].Value) = @{}
$stack.Push($obj)
$obj = $obj.($match.Groups[1].Value)
$bracket = $True
}
ElseIf (($match = $keyVal.Match($line)) -And $match.Success)
{
$obj.($match.Groups[1].Value) = $match.Groups[2].Value
}
ElseIf ($line -Like "*}*")
{
$obj = $stack.Pop()
}
Else
{
Throw
}
}
Return $obj
}
Function Create-ScreenshotPath([string] $screenshots, [string] $date, [string] $i)
{
Return Join-Path $screenshots ($date + ($i.PadLeft(5, "0")) + ".jpg")
}
Function Save-Thumbnail([string] $imagePath, [string] $pathToSave)
{
$wia = New-Object -com wia.imagefile
$wia.LoadFile($imagePath)
$wip = New-Object -ComObject wia.imageprocess
$scale = $wip.FilterInfos.Item("Scale").FilterId
$wip.Filters.Add($scale)
$wip.Filters[1].Properties("MaximumWidth") = 200
$wip.Filters[1].Properties("MaximumHeight") = 150
#aspect ratio should be set as false if you want the pics in exact size
$wip.Filters[1].Properties("PreserveAspectRatio") = $true
$wip.Apply($wia)
$newimg = $wip.Apply($wia)
$newimg.SaveFile($pathToSave)
}
$steamPath = ""
If (Test-Path "HKCU:\Software\Valve\Steam")
{
$steamPath = (Get-ItemProperty "HKCU:\Software\Valve\Steam").SteamPath
}
If (-Not $steamPath)
{
$steamPath = Read-Host 'Enter Steam install folder path (example: "c:/program files (x86)/steam")'
}
$loginUsers = Join-Path $steamPath "config/loginusers.vdf"
$users = (Get-VDFContent $loginUsers).users
$lastUser = ($users.GetEnumerator() | Sort-Object { [int]$_.Value.Timestamp } -Descending)[0].Name
$lastUserShort = $lastUser - 0x110000100000000
$userPath = Join-Path $steamPath ("userdata/" + $lastUserShort)
$localConfig = Join-Path $userPath "/config/localconfig.vdf"
$apps = (Get-VDFContent $localConfig).UserLocalConfigStore.Software.Valve.Steam.apps
$lastPlayed = ($apps.GetEnumerator() | Sort-Object { [int]$_.Value.LastPlayed } -Descending)[0].Name
$screenshots = Join-Path $userPath ("760/remote/" + $lastPlayed + "/screenshots")
$thumbnails = Join-Path $screenshots "thumbnails"
New-Item -Force -ItemType directory -Path $thumbnails >$null
$scriptPath = Split-Path -parent $MyInvocation.MyCommand.Definition
$date = Get-Date -Format yyyy-MM-dd_
$i = 1
While (Test-Path (Create-ScreenshotPath $screenshots $date $i)) { $i++ }
$filesToMove = Get-ChildItem $scriptPath -Filter "*.jpg" | % { $_.FullName }
ForEach ($file in $filesToMove)
{
$thumbnailPath = (Create-ScreenshotPath $thumbnails $date $i)
(Save-Thumbnail $file $thumbnailPath)
Move-Item $file (Create-ScreenshotPath $screenshots $date $i)
$i++
}
Utilisez SteaScree . Il peut télécharger des captures d'écran de n'importe quelle source vers le nuage Steam. Cela inclut des sources telles que la fonctionnalité intégrée de capture d'écran d'un jeu, ou d'autres logiciels de capture d'écran de jeu (par exemple Bandicam, FRAPS, Geforce Experience / Nvidia Ansel, etc.), sans avoir besoin de la superposition Steam.
SteaScree est un simple outil utilitaire multiplateforme à code source ouvert, qui simplifie grandement le téléchargement de captures d'écran vers le Steam Cloud, qui ont été prises sans l'utilisation de la superposition de jeu de Steam. Il suffit de de choisir les images, de sélectionner le jeu et SteaScree fera le reste.
Le problème : chaque utilisateur de Steam dispose spécifiquement de 20 Go d'espace cloud. pour le stockage des captures d'écran. Mais toutes les captures d'écran ne peuvent pas être facilement être téléchargées sur le Steam Cloud, puisque les fichiers doivent avoir été créés par la surcouche Steam in-game, ont donc un nom de fichier spécifique, résident en dans des répertoires Steam spécifiques et être enregistrés dans un fichier spécial screenshots.vdf spécial. Steam ne parvient pas à télécharger des captures d'écran personnalisées renvoyant l'erreur "Steam Cloud may be temporarily unavailable". SteaScree résout ce problème et automatise l'ensemble du téléchargement des captures d'écran. de préparation des captures d'écran.