Try   HackMD
設定

ゲームのハイライトや対戦動画を録画して共有したい!

この記事の目的

OBSで録画して、動画を投稿する流れを解説します。投稿するプラットフォームはTwitterかYoutubeとします。
各々投稿先のプラットフォームの制限に最適化した設定と、対象のゲームにも最適化した設定を作っておき、いつでも簡単にハイライトや対戦・プレイ動画を投稿できるようになることが最終目的です。

筆者も格ゲーマー界隈にいると、動画投稿は意外と敷居が高いようなので、界隈のハイライト・対戦動画投稿の敷居を下げることに役立てば幸いです。

注意:
動画編集・エンコーディング最適化の説明については深入りしません。

前提知識・準備等

OBSとは

正式名称はOBS Studio。
OBS Projectが開発・保守しているオープンソースでマルチプラットフォームな配信・録画ソフト。
ここ数年で急激に成長した配信ソフトの大定番です。オープンソースなので安心して使えます。

始める前にあったら望ましい前提

OBSインストール

簡単な順で3つ方法を掲示します

作業指示方法と簡単な予備知識

OBS起動

いきなり自動構成ウィザードが開きますが、キャンセルして無視しましょう。今後あらゆる自動構成ウィザードはキャンセルとします。

OBS起動後画面

こんな画面を見ていることを想定しています。以後「下部のシーン設定部」などと言ったらこの画面基準の話なので、自分のOBS画面がこれと微妙に異なる場合は適宜差異を吸収してください。(シーン設定部などは場所を動かすことも可能です)

設定の指示方法

以後、特別な指示をせず単に「シーンコレクション->新規」と書いていたら、上記画面の上部のファイル~ヘルプまで並んでいるメニューから、シーンコレクションをクリックして、その中の新規をクリックするという事を意味します。
下部の各設定要素については、「下部ソース設定部の+からゲームキャプチャを作成」等で指示します。文脈上明らかなときは下部と言わないこともあります。

「シーン」と「プロファイル」

OBSの設定にはこれらが深く関わります。ざっくり説明しますと。

シーンコレクション関連設定

シーンコレクション作成

デフォルトで用意されている無題のシーンコレクションはそのまま置いておきましょう。無設定だとどんなかんじだったっけ?と後から確認できるのは地味な利点です。(恐らく新規作成と同じですが)
目的に適った名前を付けて後からわかりやすくしておくべきなので、「シーンコレクション->新規」で新しいシーンコレクションを名前付きで作りましょう。
筆者センスではプログラマ故に日本語アレルギーでして、「Th123Rec」や「SF55Rec」という名前で作りましたが、自分が分かればいいので命名規則はご自由に。
シーンコレクションを作るとその設定に切り替わっているはずですが、一見わかりづらいです。OBSウインドウのタイトルを見て、現在のシーンコレクション設定になっていることを確認しておきましょう。以下のような感じで見えるはずです。

そして下部シーン設定部ですが、今回ここは全くいじりません。録画目的だと1つしか使わないシーンに名前をつける意味も感じないので、そのままでいいでしょう。

ソース作成

下部ソース設定部の+から適したキャプチャを選んで、新規作成しましょう。名前はゲーム名にしておくと良いです。
大抵のPCゲームは「ゲームキャプチャ」で取れます。ゲーム機出力をキャプチャボードで取得してる場合は「映像キャプチャデバイス」を。ゲームキャプチャが効かない例外的なPCゲームではウインドウキャプチャを使いましょう。最終手段は画面キャプチャ等適宜使ってください。
以後、ゲームキャプチャでキャプチャをしたものとして、それ以外のキャプチャ方法は解説しませんが、何を使っても画面がキャプチャできた時点でOKです。

ソース設定

ソースのプロパティ

先に断っておくと、今後「ソース」と言ったらさっき作ったゲームキャプチャのことを指します。この項は正確に言えば「ソースの中の1つであるゲームキャプチャのプロパティ」なわけですね。
さてキャプチャを作ったらいきなりプロパティが出ます、ちなみにこのプロパティは、作ったソース名を右クリックやダブルクリックして見れるので、一旦間違えて閉じたとしても問題ありません。
以下、ソースのプロパティの設定項目についてです。

ソース右クリックから変換による位置調整

タイトルの操作は多数のソース並べて配置するような凝ったことをする場合は大変お世話になりますが、本記事では必要最低限しか書きません。
現時点でプレビューとゲーム画面がぴったり重なって表示されている、いわゆるドットバイドットの状態(何も設定していなければプレビュー=キャンバス解像度は1920x1080のはずで、ゲーム解像度がそれと一致して、1ドットが1ドットに対応している状態)の場合。このままで良いです。本記事は余計なリサイズを避け、そのドットバイドットを目指す方針です。何もしてないのにぴったりでズレてない人は以下、「プロファイル関連設定」大見出しまで読む必要はありません。

ぴったりっぽいがうっかりドラッグで、又は良くわからないけどズレた、でかい・小さい、とにかくゲーム画面がおかしい場合は落ち着いて以下を読んでください。

ソース右クリックからフィルタによる縮小設定

「ソース右クリック->フィルタ」を押します。前面に出てきたウインドウ内には+マークがあり、これがフィルタ追加なので押します。選ぶフィルタ名は「スケーリング/アスペクト比」で、命名は今回は1つで良いのでそのままで良し。目的は縮小なので、スケールフィルタ項の選択肢から縮小に適した「エリア」というアルゴリズムを選び、その後ゲーム画面のアスペクト比を崩さないよう気を付けつつ、適宜ゲームの解像度を計算機で縦横同時に割り算して下げて、Twitterの制限内に収めてください。

プロファイル関連設定

プロファイル作成

さて、いよいよエンコードなどの設定に関わります。
先ずはシーンコレクションと同様、「プロファイル->新規」でプロファイルを作り、目的に合った命名をしましょう。私は「TwitterTh123Rec」としました。エンコード設定等は投稿先のプラットフォームの制限に合わせていくので、名前にはちゃんとプラットフォーム名を入れましょう。
さて、作ったは良いもののどこで設定すんねん?と思いきや、ちょっと直感に反したところにあります。「ファイル->設定」を開いてください。
一般~詳細設定まで、出てきましたね?これらがプロファイルの担当する設定項目になります。

プロファイル設定

私の検証タイトルの内、SF5は最初からプレビューとゲーム画面がピッタリだったので、そうじゃないパターンを例にとって説明しましょう。以下は解像度640x480の非想天則をフルスクリーンで取り込んだ時の状態です。

これはひどい。昔のゲームの解像度の低さが良くわかりますね。
このひどい状態を何とかしてやりたいですが、ここで画面が小さいからといって安易に拡大しようという発想は危険です。所詮は画像処理なのですから、元画像の劣化が酷くなります。
ではどうするか?そう、ドットバイドット方針というわけです。この例では640x480に合わせる設定を行いますが、ご自分のゲームの解像度へ適宜置き換えて読んでください。では早速設定項目から「映像」へ行きましょう。

映像

デフォルトでは基本(キャンバス)解像度と出力(スケーリング)解像度は一致してて、1920x1080なんじゃないかと思われます。(初期値はもしかすると使用モニタ依存かも?)
ではまず、このどでかいキャンバスを編集(選択肢指定に見えますが、実は直接数字を入力できます)して640x480と入力してやりましょう!スケーリングも同様に640x480です。
縮小フィルタ項がありますが、キャンバスとスケーリングの解像度が一致すると設定不可能になるので無視できます。
<プラットフォーム毎の設定差別化ポイント>
FPS共通値という項目がありますが、ここはTwitterの場合は最大40FPS制限なので30に設定、Youtubeの場合は60にしておきましょう。

ここで、一旦プレビューを見て…ドットバイドット、ぴったり収まっていたら完璧です!何かおかしい状態でしたら、とりあえず「ソースのゲームキャプチャを指定して右クリック->変換->画面中央に置く」で直るかもしれません。
これでもだめなら手がなくなりました。ゲーム画面、キャンバス画面、スケーリング解像度の全てを一致させることが目的ですので、一致して画面中央に置ければ、ピッタリ出てくるはずです。最終手段「ソース右クリ->変換->変換のリセット」なども試してから、それでもだめなら一旦何か誤解がないか読み返してみてください。

音声

グローバル音声デバイスのデスクトップ音声を無効から規定へ。
これで下部音声ミキサー部に音声入力のゲージが表示されます。
対戦動画録画に実況入れたいという場合は、
グローバル音声デバイスのマイク音声を無効から規定へ。
適宜マイクだけミュートもできるので、とりあえずマイクを規定に設定しておいても問題はありません。

ホットキー

録画開始と録画終了をてきとーに設定しとくと便利。
私はCtrl+rで録画開始、Ctrl+eで録画終了にした。
…のですが、OBS起動しっぱなしだと簡単なキーバインドはうっかり押す可能性があります。
というか私が気づかずに押していて、560GBのファイルを作ってしまいました
反省して、それぞれ押しづらいCtrl+F1、Ctrl+F2に設定しました。
OBSに「録画開始時に確認ダイアログを表示する」があればいいんですけどね、なぜかこれだけないんですよね。

詳細設定(HDRゲームの人のみ)

ソース設定のゲームキャプチャのプロパティでRGBA2 色空間を変更した人だけが対象。
「映像->色空間プロパティ」の選択肢を、ソース設定と同じものに合わせよう。

プロファイル設定の「出力」

この設定項目だけ見出しを上げて詳しく解説する。
上部の出力モードが基本と詳細に切り替えられるのですが

本記事は最速プランのため、基本前提で行きます。画質にこだわって詳細に設定したい場合は後半の参考文献項の私が聖典と読んでいるページを見ながら設定してください。

Twitter最速エンコードプラン

<最初読み飛ばし推奨>Twitterの動画投稿制限

次項「エンコード!」でこれらを考慮した設定を指示するので、読むのは必須ではないです。興味ある方だけどうぞ。
Twitterヘルプセンターより必要な情報だけ引用

ブラウザからアップロードできる動画の解像度と縦横比を教えてください。
最小解像度: 32 x 32
最大解像度: 1920 x 1200(および1200 x 1900)
アスペクト比: 1:2.39~2.39:1の範囲(上下限値を含む)
最大フレームレート: 40fps
最大ビットレート: 25Mbps

パソコンに保存されている動画ファイルを選び、[開く] をクリックします。動画の形式がサポートされていない場合はメッセージが表示されます。動画ツイート用のファイルサイズは最大512MBで、2分20秒より長く動画をアップロードした場合は、ツイートに動画を追加する前にトリミングすることもできます。

更に私が独自に調べたヘルプに書いてない仕様も掲示します

エンコード!

お待たせしました、対象読者の望むであろう脳死最速プランを明示します。
Twitter投稿する場合の例で、録画項の設定を以下に示します。

簡単な動画編集(黒塗りと動画時間のカット)

キャプチャ時に最大限気を遣えば動画時間のカットは不要だったりしますが面倒ですし、黒塗りはなんらか編集するしかありません。
世の中にはそうした用途のためのソフトは溢れていますが、機能が多すぎて複雑だったり、編集だけ行って無圧縮で出力するという融通が利かないことがあります。
高機能を求めていたり、良いソフトを既に知っている場合は是非そちらを選んでください。しかし、そうでもない場合、相手の名前を黒塗りしたり、キャプチャ時の尺余りを削りたいくらいの用途にソフトを導入するのは大袈裟だと思いませんか?
ならば、原始的な方法、コマンドによって自分でやってしまいませんか?という提案です。意外に思われるかもしれませんが、コマンドラインインターフェースは最も明示的で手軽で再現性が高いと言えます。
以降、必要ソフトの導入から、説明して行きます。まずはスタートにcmdと打ち込んで、コマンドプロンプトを起動しましょう。そして、以下を入力します。
※wingetが存在しない場合

winget install Gyan.FFmpeg

これでffmpeg, ffplay, ffprobeコマンドがC:\Users\{ユーザー名}\AppData\Local\Microsoft\WinGet\Packages\Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe\ffmpeg-6.0-full_build\binに入ります。(私の環境です、違ったら適宜検索をお願いします)
その後、「ユーザー変数にPathを通す」ことをしてください。やり方は他の記事に譲ります…が、RapidEnvironmentEditorという素晴らしいソフトがありまして、これを使うと高速にPathを書き替えることができ、UIも直感的でわかりやすいです。これを導入する場合もwingetが使えるので、使う場合は以下を入力して下さい。

winget install OlegDanilov.RapidEnvironmentEditor

入れたらスタート検索でRapidとでも打つと出ます。
こちらは特に使い方を調べなくとも、ユーザー変数のPathの行を右クリックして値の追加をして入力し、保存するだけで終わります。
注意点として、Pathの値の追加は先頭(上部)に近い方が無難です。というのもffmpeg.exeを内部で使っているソフトも存在するため、そちらが優先して呼ばれる可能性があるからです。

ffmpeg --version

としてバージョン6以上なければおかしいです。(2023-04現在)

ffplay -vf "drawtext=fontsize=30:box=1:boxcolor=white@0.5:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{pts\:flt}-%{pts\:hms}-%{eif\:t*(30000/1001)\:d}'" -i
項目1 項目2
10秒後へ移動
10秒前へ移動
60秒後へ移動
60秒前へ移動
PageUp 10分後へ移動
PageDown 10分前へ移動
右クリック ウィンドウの左端0秒、右端終了秒としたときの位置の時間へシーク
p / SPACE 一時停止
s 一時停止してコマ送り
q / ESC 停止して終了

参考文献

全部見るトップへ戻る底へ移る