生まれ変わったShadowPlay(Share)の使い方
2018/01/12
いつからかGeForce Experienceが新しくなって、従来までのShadowPlayがShareと言う物に変わり、正式版になったみたい。
それ自体は良いんだけども、そのShareの操作性大きく変わっており、元々ShadowPlayを使っていた人間としては「はてな……?」だったので今一度使い方をおさらい。
スポンサーリンク
おさらいShadowPlay(Share)
この記事を読んでいる人達に概要を説明する必要はないのでしょうが、軽く説明しておきます。
- ShadowPlay(Share)はGeForce GTX600番台以降のグラフィックボードを搭載したマシンで使える録画ソフト
- 該当のグラボに搭載されたNVENCと言うハードウェアエンコーダを利用する
- そのため、録画に伴う負荷が小さく、fpsの低下があまりない
- 該当のグラボさえ刺さっていれば無料で使える(もちろんロゴや時間制限などはない)
と言う代物でして、使える状況では使わない理由がない様なソフトウェアです。
あえて弱点を言うとすれば、録画された動画がVFR(可変フレームレート)なのでそのままAviUtlとかに突っ込もうとすると音ズレを起こす事、ただしこの辺りはしっかり対処法がある。
ダウンロードとインストール
GeForce Experienceに付属しています。
きょうびGeForce利用者でGeForce Experienceが入っていない奴は居ない(と思いたい)でしょう。
入っていない人はインストールしゅるぅ~->nvidia公式DLページ
使い方
と言う訳で本文へ、文中でShareと書いてあれば新しい物を、ShadowPlayと書いてあれば前までの物を表します。
今回はゲーム内の映像を録画する事だけを目的としているので、配信とかそう言うのは各自ググってね(はぁと
まずは起動する
GeForce Experienceを起動し、右上の歯車マークをクリック。
「シェア」のスイッチをONにする。
これでShareが有効になった、Alt+Zを押すとオーバーレイが掛かって画面が出て来る。(ちなみにこの画面はゲームのプレイ中でも出せる)
とりあえず録画する
とりあえず録画してみましょ。
と言っても簡単、ゲームを起動してから、Alt+F9を押すだけ。
Alt+F9を押すと録画が始まり、もう一度押すと録画が終了、保存される。
保存した映像は「保存先\ゲーム名\日時.mp4」に保存される。(保存先はAlt+Z->設定->録画の項目を見ればわかる)
もうこれでほぼ大抵多くの場合求められる要求は達成したのだが、一応他の事もやってみよう。
インスタントリプレイを使う
ShadowPlay時代の時に「シャドウ録画」と言う名称だったもの。
これは何かというと、すなわち常時録画しておき、保存したい時だけ保存を行うと言う、低負荷なShareだからこそ成り立つゴリ押し技
使い方は簡単、インスタントリプレイをオンにする、設定はそれだけ。
後は「あ、今の保存したい!!」という時にAlt+F10を押せば直前20分間(時間は「カスタマイズ」から変更可能)が保存される。
「シャドウ録画」と言う名称だった時は「シャドウ録画とシュドウ(手動)録画」みたいな事を言っていたけど、インスタントリプレイに名前が変わってこのネタは使えなくなった。
スクリーンショットを撮る
録画が出来ればスクリーンショットだって撮れる。
Yes,簡単、プレイ中にAlt+F1を押すだけ!!
(こんな感じで撮れる)
例えばオンゲーでクソガキ(自粛)がふざけた事を抜かしやがった時に晒し上げ(自粛)したい時に使える。
とはいえ、シューティングで(と言うよりゲーム全般的に)操作しながらAlt+F1を押すのは難しくない?
スクリーンショットを多用するのであれば「Alt+Z->設定->キーボードショートカット」でショートカットキーを変えておいた方が幸せになれるかも知れない。
その他
その他雑感色々……
編集したい
MP4なので編集ソフトにぶち込めば編集出来そうに思えるが、残念ながら(そのままでは)出来ない。
Shareで録画した映像はVFR(可変フレームレート)と言う物で、これは1秒あたりのフレームレートがシーンに応じて変化すると言う物(確かにゲームのフレームレートは安定していないのでVFRにすると言うのは理にかなっている)
そのため、編集ソフトにぶち込めば読み込みこそするものの、ほぼ大抵多くの場合は音ズレする。(終盤に進むにつれて徐々に音がズレていく感じ)
この場合はVFRとCFR(固定フレームレート)を変換する必要があるのだが……これをここで書くと記事がデカくなりすぎるので過去記事を参照して頂ければと思う。(参考:ShadowPlayで録画&AviUtlで編集可能にする)
余談1:対応しているゲーム
Shareでの録画、一部対応していないゲームがある。
前まではDirectXのゲームしか録画出来なかったが、いつの間にかOpenGL(すなわちMinecraftとか)も録画出来るようになった。(ちなみにMinecraft自体はWindows10のGame DVRでも録画できる)
つまりほぼ全てのゲームが録画できる。(普通はゲーム用には使われないGDIを使っている場合は録画出来ないと思われる)
余談2:動作原理の予想
こういうソフトがどういう仕組みになってるか予想してみる。
あくまで予想するだけ。本当にそれが合っているかは保証出来ないのでここから先は暇な時に読みましょう。(そして、読んだから何かが得られる訳でもありません)
勝手な予想だが、ShareはDirectXでのPresent関数に何か処理を挟んでいるのだろうと思われる。
Present関数とはバックバッファを入れ替える、噛み砕いて言えば画面に表示する命令(ちなみにこれは1フレーム毎に、要は60fpsなら1秒間に60回呼ばれる)
そこで、送られてきたデータを横取りして保存してしまおうぜ!!ってのがこう言う類の録画ソフトの動作原理だと思う(思うだけ、確証はない)
この「横取り」はソフトウェアが読み込むDLL(DirectXであればDirectX用のDLLが読み込まれる)を偽造(と言うと悪く聞こえるが)すれば別に難しい事ではない。
例えば「[東方]紅妖永花文萃をWindows10対応にする手法の動作原理」で紹介している方法はこれと同じ手法で偽造DLL(プロキシDLL)をロードさせDirectX8->DirectX9へ処理を橋渡ししているものと思われる。
ただ、偽造したDLLを読み込ませるにはゲームのexeと同じフォルダに偽造DLLを配置する必要がある。(そうするとWindowsが偽造DLLを本物だと誤認してロードする)
大抵のゲームはProgramFilesなどの管理者権限が必要なフォルダにインストールされるため、普通ではここにDLLを配置する事は出来ない。
なので、Bandicamは起動時に管理者権限が必要になる訳だ、これまた勝手な予想だが、偽造DLLの配置に管理者権限が必要だからだと思われる。(逆に言えば、脆弱性などがあった場合に管理者権限を渡しているため影響範囲は大きくなる)
でもって、配置した偽造DLL内に仕込んだ「Present関数」が呼び出されると、そこで表示しようとしている1フレーム分を横取りして映像や画像にする。
……と言う原理だと思う(注意:しつこいだろうけど、これはあくまで予想である事をお忘れなく)
ここでグラボメーカならではの強みが発揮される。
そう、グラボには全ての映像が届いているのだ。
如何なる映像も最終的にはグラボ、延いてはグラボのドライバに命令が行くわけなのだから、極端な話こいつらは出力される映像(と言うより1フレーム分の画像)に対して如何なる細工を施す事も可能
偽造DLLなんてちゃちな物を使わなくとも、自分達の正真正銘の正式なDLLに全てのフレームは送られる。
それを横取りするだけだ、きっとメーカなら簡単な話なのだ。
Shareはグラボの特性や強みを最大限に活用した物の1つ……なのかも知れない。(注意:あくまで勝手な(ry