Twitchで生放送中!

Twitchで生放送中!

はなげブログ

ゲーム

RTAのためのラグ検証(ブラウン管/液晶/キャプチャ/エミュレータ)

環境が少し変わった上に、ブラウン管テレビが手に入ったので、
応答時間の検証をもう一度することにしました。

キーを押してから画面に入力が反映されるまでの時間を測りました。
この時間は、コントローラー・ゲーム機の処理時間、ディスプレイへの入力から表示開始までにかかる時間(ディスプレイの入力遅延)、ディスプレイの表示開始から完了までの時間(ディスプレイの応答速度)を含むもので、この記事では応答時間と呼ぶことにします(注釈)。

応答時間はRTAをする上で考えるべき問題です。

問題1:練習と本番の違い
エミュレータで練習をして、本番では実機を使うという人がほとんどだと思いますが、
練習時と本番時で応答時間が異なる環境では、
せっかく練習で身につけたタイミングの感覚が、
本番の環境では早すぎる、遅すぎる、といった悲劇につながることがあります。

問題2:応答時間が遅いと不利になることがある
また、ランダムな画面上の動きに対して可能な限り速く判断や反応をしなければならない場合、
応答時間が速い環境でプレイした方が有利となります。
たとえば応答時間が97msecと遅い環境の人は、32msecといった速い環境の人よりも
およそ4フレームも古い映像を見てプレイしていることになります。

方法


1000fpsで撮れるスーパースローカメラ(スピードカメラ)を使って
画面とコントローラを撮影しました。

※以下画像付きリンクのリンク先はAmazonです。広告にする代わりに製品画像の使用が許可されています。

使用したのはこれ

HI-SPEED EXILIM EX-FC150


この機種は今はもう生産していないが、
CASIOの1000fps撮影できるハイスピードエクシリムは
今でも新型が作られています(CASIO公式ページ)。
これらのカメラでも同様の検証が可能でしょう。

カタログスペックは1000fpsとなっていますが、
時計の針を撮るとわかりますが実際は999fpsでした。
したがって、集計の際には修正する必要があります(ミリ秒単位の差=フレーム数×1000/999)。

今回比較する条件は4つ。


CRT(ブラウン管)
スーパーファミコンをブラウン管テレビにS端子コンポジット接続。
テレビ:
TOSHIBA 15VS17
※PCとの2端子同時出力をすることを想定しているためS端子コンポジットで接続。

LCD(液晶)
スーパーファミコンを液晶テレビにS端子コンポジット接続。
テレビ:

PIXELA PRD-LA103-16W

※PCとの2端子同時出力をすることを想定しているためS端子コンポジットで接続。


キャプチャ
スーパーファミコンをUSBビデオキャプチャにコンポジットS端子接続。
USBビデオキャプチャをノートPC(液晶画面)に接続。
AmarecTVのプレビューに表示される映像を対象に検証。
AmarecTVの設定はこちら
USBビデオキャプチャ:

I-O DATA GV-USB2



SNESGT
バージョンは0.230 beta 7。垂直同期ON。
ジョイパッド:

Buffalo BSGP801


【細々したこと】
使用した液晶はPWM調光式であったため最大輝度の設定にして撮影した。
SFCの超魔界村のステージ1の最初の柱の上でAボタンを押してから、アーサーが槍を投げる動作に入るまでの時間を測定した。ボタンは押下タイミングがわかるよう、素早く(しかし毎回同じ速さ・動きになるように)上から指を振り下ろした。指の先端が止まった瞬間をボタン押下、画面の槍が(少しでも)視認できた瞬間を画面反映とし、押下と反映の間のフレーム数を数えた。カメラが撮影するFPSが1000ではなく999であったことから、差分フレーム数に(1000/999)をかけた値をミリ秒単位の応答時間として算出した。
画面の更新周期(とコントローラのポーリング周期)の関係で応答時間にはバラツキが生じる。そのため、20試行測定を行い、その平均値をもって条件間の比較を行った。

結果

結果はミリ秒(msec)で示した(動画・グラフの縦軸・表)。
1000ミリ秒=1秒。
60fpsのゲームの場合、1フレーム16.7ミリ秒。







  平均 標準偏差 最小値 最大値 レンジ
CRT 31.9 4.6 24.0 39.0 15.0
LCD 67.5 4.7 60.1 75.1 15.0
GV-USB2 97.0 6.2 85.1 107.1 22.0
SnesGT 73.8 4.1 65.1 81.1 16.0
標準偏差はバラツキの指標。レンジ=最大値-最小値。単位はミリ秒。

結論

CRTはかなり速い。
画面変化からのas soon asの反応が求められるならCRT一択。
実機でステートセーブ・ロードができるやつを入手すれば練習も効率的で最善の選択(?)

エミュで練習して本番は実機という場合は、
本番はCRTよりもLCDにつなげた方が練習環境に近いということになる。

しかし、以上は「私の環境では」の話なので、あくまでも参考程度に。
PCやモニター、ゲーム機、コントローラなどによって多少変わってくるはずである。

(注)
液晶ディスプレイのカタログに表記される応答時間について
今回測定したのは、コントローラからディスプレイまでを含めた環境全体の応答時間である。
液晶のゲーミングディスプレイなどのカタログで示される応答時間(1msecなど)は、
ディスプレイ自体の性能なので今回調べた応答時間の一部ではあるものの別物と考えて欲しい
液晶ディスプレイの応答時間として示されている数値は、
画素の色の変化の速さを表すもので、残像の映りにくさを反映するが、
液晶はそもそも書き換えが始まるまでのラグが大きいため、
たとえディスプレイ自体の応答時間が1msecであってもCRTには及ばないとされている。



追記:2014/07/09
コンポジットとS端子を逆に書いていたため修正しました。
方法の詳細な手続きと結果の表を追加した。
液晶ディスプレイのカタログで表記される応答時間と混同を避けるため注釈を追加。

追記:2014/10/10
標準誤差じゃなくて標準偏差だったので修正。

投稿:2014/07/08 07:23
更新:2018/02/04 02:58

コメント(0)

名前
コメント

ゲーム

ダブラーを使ってプレビューのドットを明確化する

SFCなどの解像度の低いゲームでアマレコTVのキャプチャ解像度を360x240にした場合(設定画面)、
プレビュー画面のダブラー設定を有効にすることで(設定画面)、
ドットを明確化することができます。

プレビュー画面の比較


プレビュー画面を見てプレイしている人や、プレビュー画面をキャプチャしてライブストリーミング(生配信)している方に推奨です。

※SFCなどの解像度の低いゲームをGV-USB2などでキャプチャした場合のための設定です。高解像度でキャプチャできる高価なキャプチャボードをお使いの場合には関係のない話かもしれません。
投稿:2014/04/08 23:01
更新:2014/04/08 23:10

コメント(1)

1 削除されました 2018-05-07 21:33:58
削除されました
名前
コメント

ゲーム

GV-USB2でSFCの映像をインタレース無しの60fpsで録画する方法

360x240で録画すればいいようです。
アマレコTVの細かい設定などはこちら

そもそもスーパーファミコン(SFC)のほとんどのソフトが256x224であり、
720x480でキャプチャする必要がないようです(ハイレゾモードのシーンがあり、それをきちんと撮りたい場合は必要)

まずは720x480でキャプチャ&録画した場合を見てみます。

720x480でキャプチャ&録画した場合


インタレース縞が見られます。


http://www.nicovideo.jp/watch/sm23274190
つんでれんこでエンコードしてニコ生に上げた結果)

360x240でキャプチャ&録画した場合


インタレースがないことを確認できます。

※上の画像と比較するためにドットを2倍化しています。

http://www.nicovideo.jp/watch/sm23279645
つんでれんこでエンコードしてニコ生に上げた結果)


なお、YouTubeに上げる場合は、YouTube側が勝手に30fpsに変換してしまうため、
今回の話はあまり関係ありません。
投稿:2014/04/07 21:15
更新:2014/04/07 22:16

コメント(0)

名前
コメント

ゲーム

S端子&コンポジット同時接続による分配は画質を劣化させるのか?

劣化しません!

方法

コロンバスサークルのCC-FCSC-BK (リンク先:Amazon)

を使って、S端子をPCに接続し録画してみました(ここに書いてある方法)。

分配条件ではこれに加えて、コンポジットをテレビ画面に接続しました。
非分配条件では、(メーカーの推奨通り)コンポジット端子はどこにも接続しませんでした。

録画の細かい設定などはこちらにまとめています。

結果

録画されたAVIから、ゲーム内の同じ位置のフレームを切り取ってみたところ、こうなりました。

360x240
分配  非分配

720x480
分配  非分配

比較

違いが見られません!

なお、mp4エンコードしたものをニコ動にあげています。
360x240分配, 360x240非分配, 720x480分配, 720x480非分配

結論

S端子&コンポジット同時接続による分配は画質劣化が起こらない(ただし、以下の条件内での話)。

CC-FCSC-BKケーブルを使った場合です。
※S端子側の画質についての検証です。
※SFC(スーパーファミコン)の映像の場合です。
※メーカー非推奨の方法ですので試す場合はあくまでも自己責任で。
※「分配」という言葉を使っていますが、2つのソースを別々に同時出力しているだけで、1つのソースを分けているわけではないので、「同時出力」と言うべきかもしれません。
投稿:2014/04/07 20:22
更新:2014/05/02 20:17

コメント(0)

名前
コメント

ゲーム

自分のRTA環境・録画環境・配信環境

ここに残しておきます。
あくまでも「自分はこうやっている」という情報ですので、これがベストではないです。
基本的に自分はお金がないので安くできるやり方になっているはずです。
機材のリンク先はAmazonです。

機材

  • ノートPC (HP Pavilion dv6)
  • テレビ (PRD-LA103-16W ハードオフのジャンク品 \5000)
  • マイク (ECM-PC60 \2700)
  • イヤフォン(EHP-TVIE \595)
  • ビデオキャプチャ (GV-USB2 \3582)
  • S端子+コンポジットケーブル (CC-FCSC-BK \1000)
  • スーパーファミコン (ハードオフのジャンク品 \500)
  • SFCコントローラー (Amazon中古 \500)

ゲーム機の接続


S端子+コンポジットケーブルを使用する方法で分配*1しています。

自分の環境ではコロンバスサークルのCC-FCSC-BK でできました。ただし商品の裏面を見るとわかりますが、メーカーとしてはこの方法を推奨していないのであくまでも自己責任で。

CC-FCSC-BKケーブルのS端子と音声端子GV-USB2に繋げてPCに接続、
CC-FCSC-BKケーブルのコンポジット端子テレビに接続。

これにより、PCのキャプチャプレビュー画面に表示した際に生じるラグを回避できます。このラグはビデオキャプチャやディスプレイにもよりますが、自分の検証では2フレーム程度でした。

テレビの映像を見ながらPCのプレビューの音声を聞きながらプレイします。
音声が通常のプレイ環境より遅く聞こえるはずですが、自分ではまったくわからない程度でした。

S端子をPCにつなげるのは、コンポジットよりも映像が綺麗なためです。
RTAの録画は画質が求められるのでS端子をつなげるわけです。

CC-FCSC-BKのコンポジットは、よく目を凝らすと縦線が入っていたり網目状に見えたりするなど少し問題がありますが、少なくともプレイするにあたってはまったく問題にならないレベルです。

分配器による分配だと画質が劣化するとのことですが、この方法による分配*1では画質の劣化は見られませんでした(詳細)。

ソフトの設定

アマレコTV 3.00c

古いバージョンではできませんでしたが、3.00cでは60fpsでプレビュー&録画が可能です(ただしGV-USB2ではインターレースが入りますので、投稿する際はインターレースの60fps動画をそのまま投稿するか、インターレース解除して30fps動画にするかを選ぶことになりますFCやSFCなどのもともと解像度の低いゲームではグラフを360x240に設定することでインタレース縞のない60fpsの録画が可能です:詳細)。
古いバージョンを使っている人は最新バージョンにすることをオススメします。




録画はhuffyuvコーデックを使用します。
これを使うメリットは録画した動画に「AMV」のロゴがつかないことと、
一般的なコーデックであるため、SDA(Speed Demos Archive)に投稿する際スムーズに事が進む(らしい)ことです。

huffyuvコーデックはここでダウロードし(真ん中の緑のボタンを押してしばらくするとDLが始まります)、
ここで紹介されているやり方でインストールできます。


※この節はSFC向けです
できたavi動画はaviutlで黒枠を取り除き(GV-USB2で上記の設定にした場合、クリッピング&リサイズで上下右を7px、左を13px取ると、最終的な動画のアスペクト比を崩さずに黒枠を消せます)、
ドットを2倍化し(プラグイン ResizeFilterのNearestNeighborで2倍(680x452)に)←そんなに効果ないようなのでこれは飛ばしていいかも
前後の不要部分をカットして、新しいaviを作成。
それをつんでれんこにつっこんで 512x384に エンコードし、ニコニコ動画にアップロードしています。これで実際に当時の4:3比率のテレビで表示されるのに近いアスペクト比になります。
この手順で作った動画→http://www.nicovideo.jp/watch/sm23836718

FMEAutomator

NLE、NCV、Nicotwの自動化のために使用。(FMEを使うわけではない)

Niconico Live Encoder (NLE)

ニコ生配信に使用。

Open Broadcaster Software (OBS)

Twitch配信に使用(ニコ生と同時配信)。

Nicotw

自動枠取りで最初の枠のときだけツイートするFMEAutomator用プラグイン(自作)

Padtimer

タイマー(自作)。ラップ画面の自由度が高いが、代償として設定がくっっっっそ面倒くさい。

右下くん

RTA比較動画再生(自作)

NCV

ニコ生用コメントビュワー

棒読みちゃん

ニコ生コメント読み上げに使用

LimeChat

Twitchのコメントビュワーに使用

Chat Speech

Twitchコメント読み上げに使用


(注釈)
*1 「分配」という言葉を使っていますが、2つのソースを別々に同時出力しているだけで、1つのソースを分けているわけではないので、「同時出力」と言うべきかもしれません。


・更新2014/03/05
アマレコTVの設定を変更しました。
ライブ機能の使用をやめ(プレビュー画面のキャプチャによる配信に変更)、
プレビューのデインターレースを行うようにしました。


・更新2014/04/07
アマレコTVの設定を変更しました。
SFC用にグラフの解像度を 720x480 から 360x240 に変更しました(画像)。
それに伴い、プレビューのデインタレース処理をOFFにしました(画像)。


・更新2014/04/08
アマレコTVの設定を変更しました。
SFC用にグラフの解像度を 360x240 に変更した関係でプレビューのダブラーを有効にしました画像
投稿:2014/02/15 21:54
更新:2014/07/09 16:22

コメント(0)

名前
コメント