ゲーム動画をshadowplayで録画した際にVC(ボイスチャット)を利用していると、そのままVCの音声が動画に録音されてしまいます。
VCをする際に動画化する了解をとっているなら問題ないと思いますが、VCする都度了解を取ってゲームするのも大変なため、VCの音声が動画にのらないで録画出来るように設定を行いました。
色々と試したところ、VC音声のカットは出来るようになりましたが、その場合スピーカーから音が出ない状態になりました。
※USBヘッドセットで常に音声が流れる状態になりました。
スピーカーから音を出すように切り替えるは設定変更をする必要があり、ゲームが終わるたびに切り替えるのは非常に面倒な状況です。
そこでゲーム中はヘッドセットで音を聞き、ゲーム以外はスピーカーから音を出すようにBatファイルを書くことで、切り替え作業の手間を最小限にするようにしました。
手順1.サウンドの設定変更
VB-CABLEをダウン―ドし、インストール。サウンド設定を開き、「再生」 タブを開く。
「CABLE Input」 を選択して、「規定値に設定」をクリック。
サウンド設定 |
次に「録音」タブを開く。
「CABLE Output」 を選択して、「規定値に設定」をクリックし、プロパティをクリック。
サウンド設定 |
CABLE Outputのプロパティが開いたら「聴く」 のタブを開く。
「このデバイスを聴く」にチェックを入れ、ヘッドセットのデバイスを選択する。
CABLE Outputのプロパティ |
手順2.shadowplayの設定変更
CTRL+ALT+Zでshadowplayの設定を開き、設定から「オーディオ」をクリック。設定変更 |
マイクのソースをCABLE Outputに設定し、ボリュームを0%に設定する。
ボリューム設定 |
手順3.VCツールの設定変更
Discordのユーザー設定>アプリの設定>音声・ビデオの項目で、入力デバイスと出力デバイスがヘッドセットになっていることを確認する。VCツール |
ヘッドセットとスピーカーの切り替えをバッチ化
次にサウンドの設定切り替えをバッチ化します。手順1バッチファイルの作成
テキストエディタに以下コピーする。
var wait = function(title){ do { WScript.Sleep(100); } while(!WshShell.AppActivate(title)); }; var WshShell = WScript.CreateObject("WScript.Shell"); WshShell.Run("control mmsys.cpl"); wait("サウンド") WshShell.SendKeys("{DOWN " + WScript.Arguments.item(0) + "}%{s}{TAB 3}{ENTER}");
Cドライブ直下にファイル名「changeSoundDevice.js」としてShift_JISで保存。
ファイルを右クリックしてショートカットを2つ作成する。
手順2.ショートカットの編集
サウンドの設定の「再生」のタブを開く。
「CABLE Input」が上から何番目にあるか確認する。
下記画像では8番目に設定されている。
次に普段音楽を聴くデバイスが上から何番目にあるか確認する。
私の環境では7番目に設定されていた。
次に手順1で作成したショートカットのファイル名をわかりやすい形に変更する。
例 ヘッドセット利用、スピーカー利用
ヘッドセット利用のショートカットを右クリックしプロパティを開き、リンク先を以下のように設定する。
C:\Windows\System32\wscript.exe C:\changeSoundDevice.js 8
同様にスピーカー利用のショートカットのプロパティを編集する。
C:\Windows\System32\wscript.exe C:\changeSoundDevice.js 6
このショートカットを開くことで、既定のデバイスを変更する事が出来る
これによりヘッドセットとスピーカー、どちらで音を鳴らすのかをクリック一発で切り替えることができます。
参考にした記事
1 ShadowPlayで録画するときにボイスチャットの音声を録音しない方法
2 Windows でサウンドの再生デバイスを切り替えるためのスクリプト(バッチ処理)
0 件のコメント:
コメントを投稿