@masaoblueのIIDX記録

IIDXにハマった三十代の男性がもっと上手くなるために必死に頑張る様を記録するブログです。

IIDX Input Capturer v0.3を公開しました

IIDX Input Capturer v0.3を公開しました。
今回のメインとなる背景透過機能についてですが、ちゃんと使おうとすると調整が結構大変&ある程度のPCスペックが必要となります。

それでも良い、という方は使ってみてください。

ダウンロードはこちらから。
masaoblue.github.io

v0.3 追加機能

  • CN判定までの時間設定
    • 押し始めからCNと判定するまでの時間を設定できるようになりました
  • 背景透過機能
    • IIDX Input Capturerの背景を透過し、OBS上でゲーム画面と重ねて表示できるようになりました
  • 緑数字/白数字の設定
    • 緑数字を指定するとノーツの表示速度を変更できます
    • 白数字を指定するとレーンの表示サイズを変更できます。主に背景透過時にINFINITAS画面と重ねやすくするための機能です
  • 描画更新間隔の調整
    • こちらも背景透過

【背景透過の使用例】
頑張って調整すると以下のような表示が可能となります。
www.youtube.com

INFINITASと重ねて表示する方法

以下では、OBSを使ってINIFINITASとIIDX Input Capturerを重ねて表示するための手順を説明します。

※注意事項

  • INFINITAS側と同期している訳ではないため、表示にはズレがあります
  • 遅延時間や表示位置の調整はPC環境に応じて手動で設定する必要があります
    • 以下に手順を記載しますが、正直かなり調整が大変です
  • 緑数字/白数字を変更した場合はその都度再設定が必要です
    • このため、ソフラン曲には対応していません

それでも良い方のみお進みください。

設定方法

1. OBSに画面と音声を追加する

通常の配信の通り、必要な映像/音声をシーンに追加します

  • INFINITASの画面キャプチャ
  • IIDX Input Capturerの画面キャプチャ
  • 手元カメラの映像
  • デスクトップ音声
  • マイク音声
  • など

2. OBSで背景透過を許可する

OBSでIIDX Input Capturerのキャプチャを右クリックしてプロパティを開き、「透過を許可」にチェックを入れます

f:id:MasaoBlue:20201115001836p:plain

3. IIDX Input Capturerの透過とサイズ調整

IIDX Input Capturerの左下に表示されているConfigボタンをクリックし、以下の設定を行います

  1. Green&White Numの欄にINFINITASで設定している緑数字/白数字を入力する
    • 白数字はLIFT(下側)とSUD+(上側)の数値の合計値を指定してください
    • 白数字を入力すると、INFINITAS側の縦横比率に合わせてレーンのサイズが自動計算されます
    • レーンのサイズを手動で調整したい場合は Auto Calculation のチェックを外し、W(横)&H(縦)を入力して調整してください
  2. Transparent Mode欄の「Enabled」と「Guide Line」にチェックを入れる

f:id:MasaoBlue:20201115012436p:plain

4. OBSでの表示位置/サイズ調整

INFINITASで任意の曲を選曲し、ノーツのレーンが表示されている状態でCtrl + Tabを入力し、OBSの画面に切り替えます。

OBS上で、IIDX Input Capturerの青色のガイドラインがSUD+~判定線までの範囲に収まるよう、サイズ調整&位置の移動を行います。

【設定イメージ】
f:id:MasaoBlue:20201115091616p:plain

調整が終わったらGuide Lineのチェックを外し、枠線を非表示にします。

5. 遅延時間の調整

ゲーム画面や手元映像および音声に遅延設定を行います。(IIDX Input Capturerは遅延させないようご注意ください)

この設定はPCのスペック、動画のFPS、INFINITASの判定調整の値などに依存して指定する値が変わります。このため、OBSで録画した映像を見ながら適切な遅延時間を見つけてみてください。

参考までに、私のPCでの設定値は以下の通りです。

  • デスクトップPCの場合: 540ms
    • 60fps & 1920*1080の解像度で配信可能なスペック
  • ノートPCの場合: 650ms
    • 30fps & 1280*720の解像度でどうにか配信できるスペック。冒頭のデモ動画はこちらを使っています

ゲーム画面それぞれの項目の遅延時間の設定方法は以下の通りです。

INFINITAS画面の遅延

右クリックメニューからフィルタを選択し、左下の+ボタンで「レンダリング遅延」を追加して遅延時間を設定します。※1つのフィルタで設定できる最大値は500msのため、足りない場合は複数追加してください

f:id:MasaoBlue:20201115012304p:plain

カメラ映像の遅延

INFINITAS画面の遅延と同様、レンダリング遅延のフィルタを追加します。

f:id:MasaoBlue:20201115013201p:plain

デスクトップ音声/マイク音声の遅延

音声ミキサーの欄で右クリックし、オーディオの詳細プロパティを選択して「同期オフセット」の欄で遅延時間を設定します。

f:id:MasaoBlue:20201115012639p:plain

6. 更新間隔の設定

プレイ映像を録画してコマ送りで見た際、このような形でINFINITAS側のノーツとCapturer側の表示がブレて表示されることがあります。

f:id:MasaoBlue:20201115095030g:plain

この場合はConfigにあるUpdate Intervalの設定を変更します。

f:id:MasaoBlue:20201115093831p:plain

私の環境では60fpsで録画する場合は3~5ms30fpsの場合は8~15ms程度に指定すると、ある程度ブレを抑えることができました。PCスペックが足りていない状態で小さ過ぎる数字を指定すると逆にガクついたりするため、ご自身の環境に合わせて調整してください。

以上で設定手順は終わりです。

さいごに

先日v0.1をリリースした際、こんな感じでゲーム画面を遅延させて表示タイミングを調整して下さった方が居ました。

私はツイートを見るまでこの方法を思いついていなかったのですが、これを見て「もしかしてOBSを使えばリアルタイムな同期表示ができるのでは?」と思い立ち今回の機能を実装するに至りました。

こういったツールは色々な方に使って貰うことで自分では見つけられなかった用途を発見できることが多いので、開発側としてもとても楽しいです。

ただ実際に作ってみると、ゲーム画面とCapturerを同期させるには思っていたよりも大変で、正直リリースした所でこんな大変な設定誰がやるんだ?と自分で使いながらも思うほどです。

とはいえせっかく作ったので一応...ということで今回のv0.3のリリースとなりました。 もし設定が大変でも使ってみたい、という方がいれば使って頂けると幸いです。

それでは!