タイトルにあるように。 Steamオーバーレイを使用して実行するのは悪い考えですが、組み込みのゲームスクリーンショット機能では許可されていないスクリーンショットをSteamプロファイルに配置したいと思っています。それを達成する方法はありますか、それはトリックを介して、または実際に何もオーバーレイせずにオーバーレイを実行することですか?
タイトルにあるように。 Steamオーバーレイを使用して実行するのは悪い考えですが、組み込みのゲームスクリーンショット機能では許可されていないスクリーンショットをSteamプロファイルに配置したいと思っています。それを達成する方法はありますか、それはトリックを介して、または実際に何もオーバーレイせずにオーバーレイを実行することですか?
Steamフォーラムのスレッドは、Steamオーバーレイを使用せずにスクリーンショットを撮る非常に回りくどい方法を提供します(Jonathan Drapeauが推奨するように、いくつかの編集でそこで述べられていることを複製しました)。一部のゲームはそれで動作しません。基本的に、特定のゲームのappidの下にリモートフォルダを手動で作成し、そこにスクリーンショットを保存する必要があります。
Program Files \ Steam \ userdata \ X(番号は異なる場合があります)\ 760 \ remote
249590
内に「 screenshots
」フォルダを作成します(これはTeslagradの例は異なります)。 スクリーンショット
内に「 thumbnails
」というフォルダを作成します。これで、 Program Files \ Steam \ userdata \ X \ 760 \ remote \ 249590 \ screenshots
& Program Files \ Steam \ userdata \ X \ 760 \ remote \ 249590 \ screenshots \ thumbnailsができました。
2015-XX-XX_00001.jpg
。頑張ってください!この手順は、スクリーンショットを撮れない、または問題がある他のゲームにも役立ちます。
m0ndeで説明されているプロセスを自動化しようとしました。 PowerShellを実行するにはPowerShellが必要ですが、Windows 7以降を使用している場合は、PowerShellがプリインストールされています。
これを run.bat
として保存します:
@powershell -NoProfile -ExecutionPolicy Bypass -File main.ps1
そしてこれは 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 * $ '$ブラケット= $ False ForEach($ fileContentの$ line){If($ bracket){If($ line -Like "* {*"){$ bracket = $ False}} ElseIf(($ match = $ group.Match($ line) )-そして$ match.Success){$ obj。($ match.Groups [1] .Value)= @ {} $ stack.Push($ obj)$ obj = $ obj。($ match.Groups [1]。値)$ bracket = $ True} ElseIf(($ match = $ keyVal.Match($ line))-And $ match.Success){$ obj。($ match.Groups [1] .Value)= $ match.Groups [2] .Value} ElseIf($ line -Li ke "*} *"){$ 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'Steamインストールフォルダーパスを入力します(例:" 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 -パス$ 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 = 1While(Test-Path(Create-ScreenshotPath $ screenshots $ date $ i)) {$ i ++} $ filesToMove = Get-ChildItem $ scriptPath -Filter "* .jpg" | %{$ _。FullName} ForEach($ filein $ filesToMove){Move-Item $ file(Create-ScreenshotPath $ screenshots $ date $ i)$ i ++}
これらのファイルを配置します run.bat
をアップロードして起動するスクリーンショットのある1つのディレクトリにあります。このスクリプトは、最後にログインしたユーザーと最後にプレイしたゲームを見つけるので、実行する前に覚えておいてください。
PiotrKowalskiの回答の小さな変更。 これで、スクリーンショットのサムネイルも作成されます。
この要点からファイルを取得するか、コードを main.ps1
ファイル:
#@ piotr-kowalskiのスクリプトの修正バージョン
#スクリーンショットのサムネイルも作成するようになりました
#https://gaming.stackexchange.com/a/238288/212957
#
# 注意:
#このスクリプトは、最後にログインしたユーザーと最後にプレイしたゲームを見つけるので、実行する前に覚えておいてください。
#
# 使用法:
#1)これをrun.batとして保存します:
#@ powershell -NoProfile -ExecutionPolicy Bypass -File main.ps1
#2)このファイルをダウンロードする
#3)アップロードするスクリーンショットを含む1つのディレクトリに両方のファイルを配置し、run.batを起動します。
関数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($ fileContentの$ line)
{{
If($ bracket)
{{
If($ line -Like "* {*")
{{
$ bracket = $ False
}
}
ElseIf(($ match = $ group.Match($ line))-そして$ match.Success)
{{
$ obj。($ match.Groups [1] .Value)= @ {}
$ stack.Push($ obj)
$ obj = $ obj。($ match.Groups [1] .Value)
$ bracket = $ True
}
ElseIf(($ match = $ keyVal.Match($ line))-そして$ match.Success)
{{
$ obj。($ match.Groups [1] .Value)= $ match.Groups [2] .Value
}
ElseIf($ line -Like "*} *")
{{
$ obj = $ stack.Pop()
}
そうしないと
{{
スロー
}
}
$ objを返す
}
関数Create-ScreenshotPath([string] $ screenshots、[string] $ date、[string] $ i)
{{
参加パスを返す$ screenshots($ date +($ i.PadLeft(5、 "0"))+ ".jpg")
}
関数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
写真を正確なサイズにする場合は、#アスペクト比をfalseに設定する必要があります
$ 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(-$ SteamPathではない)
{{
$ SteamPath = Read-Host'Steamインストールフォルダーのパスを入力します(例: "c:/ program files(x86)/ Steam") '
}
$ loginUsers =参加パス$ 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($ filesToMove内の$ file)
{{
$ thumbnailPath =(Create-ScreenshotPath $ thumbnails $ date $ i)
(保存-サムネイル$ file $ thumbnailPath)
Move-Item $ file(Create-ScreenshotPath $ screenshots $ date $ i)
$ i ++
}