6 votes

Est-il possible de faire des captures d'écran Steam sans utiliser la superposition du jeu ?

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 ?

7voto

m0nde Points 124

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.

  1. 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
  2. Faites vos captures d'écran en utilisant ALT - PrtScrn (fenêtré) ou PrtScrn (bureau complet) ou utiliser Camtasia, FRAPS, etc.
  3. Fermer la vapeur.
  4. Créez le dossier App ID dans le chemin de fichier suivant : Program Files\Steam\userdata\X(number may vary)\760\remote
  5. Créez un " screenshots "dans le dossier 249590 (c'est le chiffre de l'exemple pour Teslagrad ; le vôtre variera). À l'intérieur de screenshots 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
  6. 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 .
  7. 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.
  8. 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.

2voto

Tithen-Firion Points 863

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.

1voto

Artem M Points 111

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++
}

0voto

Jon Norton Points 2048

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.

screenshot of SteaScree UI with instructions on how to use

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X