配信修行僧
OBS用の最強かつ必携プラグイン「Move」を徹底解説
2024年9月9日 06:09
これまでの連載ではOBSの初期設定およびその応用やオススメ設定などについて解説してきた。今回はちょっとジャンプアップしてOBS最強プラグインの1つと言える「Move」プラグインの使い方を解説する。Moveを使うと、アイディア次第でOBSでやっているとは思えないような表現が可能となる。
ひとまず筆者がどのようにMoveを使っているかを動画にまとめたので、下記の動画をご覧いただきたい。実は1口に「Move」といっても複数のプラグインの集合体なのだが、異なるシーン間でソースの位置やサイズを滑らかにアニメーションさせたり、カメラ映像をパンさせたり、ゲーム画面を3次元に傾けたり、あるいは拡大縮小させたりといったことを行なっている。
非常に多機能、かつUIが日本語化されていないので使おうとして戸惑ってしまう人もいるかもしれない。1つ1つ解説していくので、ぜひこのプラグインを少しずつでも活用してほしい。
シーン間でソースを滑らかに移動させたり大きさを変更する「Moveトランジション」
先ほどMoveは複数のプラグインの集合体と書いた。具体的には、Moveトランジション、Move Source、Move Source Swap、Move Value、Move Action、Move Video Capture Device、Move transition override、NVIDIA AR Move、Audio Moveといったプラグインがひとまとめにされている。開発したのは、Moveを始め数多くのプラグインを開発しているExeldro氏だ。
利用にあたってはプラグインを公式サイトからダウンロードする。右上の「Download」を押し、利用しているOS用のものをダウンロードする。Windows版については、インストーラー付きの「move-transition-x.x.x-windows-installer.zip」を使うのが簡単で、展開したら実行するだけだ。
なお、インストール時にOSによるセキュリティの警告が出ることもあるが、「詳細情報」をクリックすると「実行」ボタンが表示されるのでこれでインストールできる。インストールが終わったらOBSを起動しよう。
まずは、Moveトランジションについて解説する。ここでは、ゲームプレイの配信用にフルスクリーン表示の「ゲームキャプチャ」と、小さくしてワイプ表示させた「映像キャプチャデバイス」(カメラ)で構成された「シーン1」と、雑談用にカメラのみをフルスクリーン表示させた「シーン2」がある想定で進める。
OBSのデフォルトでシーン間のトランジションは「フェード」になっているので、シーンを切り替えると、現在のシーン(プログラム)が徐々に消え、新しいシーン(プレビュー)が徐々に現われ、シーンが切り替わる。Moveトランジションは、こういったトランジション効果の1つだ。
まず、「シーントランジション」ドックの「+」を押し、「Move」を追加する。名前はそのままでいいだろう。プロパティはいったん閉じる。この時点でMoveトランジションが適用されており、シーン1からシーン2を切り替えてみると、ゲーム画面はアニメーションでスムーズに小さくなり、逆にカメラ画面は大きくなる。これだけでも、おもしろい効果なので、ほかの配信との差別化ができるだろう。
そのほかの各設定項目の内容を順に解説する。「シーントランジション」が「Move」になっているのを確認した上で、「…」を押してプロパティを開く。「Match if the source name」の欄では、異なるシーン間でどのソースを同じものとして扱うかを決める。たとえば、同じようなものを写しだしていても、シーン1では「カメラ1」、シーン2では「カメラ2」と異なる名前を付けたい場合もある。そういった場合に、「Match if the source name」の設定で、多少名称が異なっていても、同じソースだと認識される。
一番上の「contains the other source name」にチェックを入れると、ほかのソースと名前が部分一致する場合に、「with numbers removed from end matches the other source name」にチェックを入れると、ソース名末尾の数字を削除すると名前が一致する場合に、「with the last word removed matches the other source name」にチェックを入れると、ソース名末尾の単語を削除すると名前が一致する場合に、同じソースとして扱うようになる。
「General」の欄で、「Match Nested Scenes」にチェックを入れると、シーンをソースとして登録している場合、そのシーンに含まれるソースで名前が合致するものにMove効果が適用される。「Cache Transtions」はトランジション効果をメモリにキャッシュする設定。「Switch Point」は、切り替わりがどのタイミングで発生するかを指定するものだと思うが、変更しても変化が出ないのでよく分かっていない。
「Matched items」の欄では、「Match if the source name」の設定に応じて、シーン間で合致する名前を持つソースについての挙動を設定する。「Easing」は、変化を等速度で行なうか、加速をつけるかの設定だ。デフォルトでは「Ease in and out」になっていて、変化が徐々に速くなって最高速になり、後半は逆に徐々にゆっくりになっていく。「No easing」にすると、等速度になり、「Ease in」だと最初だけ加速がつき、「Ease out」だと最後だけ速度が徐々に遅くなる。
「Easing Function」はEasingの挙動を指定する。「Transition」を指定すると、Moveによる位置やサイズ以外のトランジション効果がかかる。たとえば「None」だとMoveしか適用されないので、シーン1からシーン2に変化する時、まん中の時点で映像が急に切り替わるが、「フェード」を選択すると始点から終点までフェード効果もかかるようになる。あまりないと思うが、カメラ1とカメラ2でまったく表示内容が違う場合は、フェードをかけるといいだろう。
「Transition scale type」は、カメラ1とカメラ2で縦横比が違う場合の変形方法を選べる。テキストだと説明が難しいので、公式サイトの「Transition scale type」のところを見てほしい。「Curve」は、始点と終点の間のパスのカーブの量となり、プラスの数値だとキャンバスの中心から離れてカーブし、マイナスだと中心に向かってカーブを描くという説明だが、正直この効果はよく把握していない。
「Appearing items」では、シーン1にはあって、シーン2はないソースについて、シーン1からシーン2に転換する時、つまり片方にだけあるソースが「現われる時」の挙動を指定する。逆に「Disappearing items」では、シーン1になくて、シーン2にあるソースについて、シーン1からシーン2に転換する時、つまり片方にだけあるソースが「消える時」の挙動を指定する。
「Easing」と「Easing Function」の効果は「Matched items」の場合と同じだ。「Zoom」にチェックを入れると、現われる場合は拡大し、消える場合は縮小される。「Position」については、消える場合はどこに向かって消えて、現われる場合はどこから現われるかを示す。デフォルトだと、いずれもZoomがオンで、Appearing itemsは「Center left」、Disappearing itemsは「Center right」になっているので、現われる時は左の中央から拡大しながら現われ、消える時は右の中央へと縮小しながら消えていく。
「Transition」は、Matched itemsでのものと同じ効果だ。
文字で説明を読んでもちょっと分かりにくかったと思うが、まずはいろいろ試してもらいたい。冒頭の動画にはそういうものがないが、Moveトランジションでは位置とサイズだけじゃなく、角度が違う(回転変形している)ものについても滑らかにアニメーションしてくれる。
合致するもの、しないもの、それぞれをどう動かすかはユーザー次第だが、個人的には両方のシーンに存在する(合致する)ソースのみ位置/サイズを変更した方がごちゃごちゃし過ぎず、エフェクトとしてより印象深くなると思う。そうするには、Appearing itemsとDisappearing itemsは「Position」を「None」にして、「Zoom」のチェックを外し、「Transition」は「フェード」にするといい。
Moveトランジションを補完するMove transition overrideとMove Source Swap
Moveトランジションは基本的に名前が(部分)一致するソース同士について変形を行なう。もし、名前が(中身も)全く違うソースでMoveトランジションを適用したい場合は、「Move transition override」というフィルターを使う。
ペアとなる片方の「シーン」(ソースではない)を右クリックして「フィルタ」を選択。次のウィンドウでも「+」を押し、「Move transition override」を選ぶ。「Source」で片方のソースを選び、「Matched items」の中の「Match Source」でもう片方のシーンにあるソースを選ぶ。なお、「シーントランジション」は「Move」になっていないとMoveトランジションは発動しない。
これ以外にも多数の設定があるが、基本的にはMoveトランジションと同じだと思っていい。
似たようなフィルタとして「Move Source Swap」というものもある。これもソースではなくシーンに適用する。こちらは異なるシーンではなく、1つのシーンで指定した2つのソースについて、位置をアニメーションしながら交換する。Moveトランジション同様、ソースを傾けている場合にも滑らかに角度が入れ替わる。
この時の場所や角度の基準点は、それぞれの「変換」→「変換の編集」で表示される「位置揃え」となる。「位置揃え」はデフォルトでは、「左上」になっているので、2つのソースの左上の位置が交換される形となる。
デフォルトではオフになっているが「Transform」の「Stretch」をオンにすると、サイズも入れ替わる。片方がフルスクリーンサイズで、サイズも入れ替えると入れ替わった後に片方が後ろに隠れて見えなくなる。そこで「Visibility and Order」を「No」以外にすると、2つのシーン上での表示優先順位(レイヤー)が入れ替わるので、小さくなった方もちゃんと見えるようになる。優先順位が変わるタイミングは「Start」(フィルタ開始時)、「End」(同終了時)、「Midpoint」(途中)から選べる。
「Visibility」を「No」以外にすると、それぞれの可視状態が変わる。
なお、Move Source Swapは普段無効になっていて、フィルタを有効にした時点で発動する。配信中にシーンのフィルタを手作業でオン/オフするのは煩雑なので、基本的にはホットキーを割り当てるか、Stream Deckを使ってオン/オフする。
あるいは「Actions」にある「Start Trigger」を変更することで、何かをトリガーにして自動発動させることもできる。トリガー条件はかなり多いので全部は説明しないが、特定のソースが可視状態になった時や、任意のメディアが再生された時、Moveトランジションが発生した時などから選べる。
また、「Simultaneous Move」で任意のフィルタを指定すると、そのフィルタと同時にこのフィルタが発動する。そして、「Next Move」を指定すると、このMove Source Swap動作が終了したあと自動的に任意のMove効果を発動できる。
このActionsについては、次のMove Sourceのところでもう少し詳しく説明する。
任意のソースを滑らかにアニメーション変形させる「Move Source」
Move Sourceはこれまでのエフェクトと違い、基本的に1つのシーン上で特定ソースの位置やサイズを変更/変形する機能だ。視覚効果を実現する上で、非常に強力なプラグインだが、使い方にやや癖がある。
まず、対象はソースだが、フィルタはそのソースが含まれる「シーン」に対して適用する。また、基本的にMove Sourceフィルタは2つ以上追加するのが基本となる。たとえば、ワイプ画面のソースを普段は左上に置いておき、状況によって右上に移動したいとする。この場合、左上にソースを置いた状態で1つ目のMove Sourceを作成し、次に右上に置いた状態を用意して2つ目のMove Sourceを作成する。つまり変化前と変化後のそれぞれの状態でMove Sourceを追加する形となる。もし、ワイプを画面四隅に順々に移動させたいのであれば、Move Sourceを4つ追加するという具合だ。
具体的な設定方法を説明する。ここでは、ゲーム画面をフルスクリーン表示しておき、必要に応じてカメラ映像のワイプをすっとアニメーション移動させたいととう状況を考える。すでにカメラ(映像キャプチャデバイス)映像が小さく表示されているとしよう。その「シーン」を右クリックして「フィルタ」を選ぶ。「エフェクトフィルタ」画面で「+」を押して「Move Source」を選ぶ。フィルタの名前は「カメラ表示」など分かりやすくするのがオススメだ。
ひとまず1つ目の設定は、「General」の「Source」でカメラを選ぶ以外は、すべてデフォルトのままでいい。いったんフィルタのウィンドウを閉じて、カメラ映像をキャンパス外に移動する。その状態で、もう一度その「シーン」を右クリックして「フィルタ」を選び、先ほど同様「Move Source」を追加する。名前は「カメラ非表示」などとしよう。
こちらも「General」の「Source」でカメラを選んだ上で、今回は「Transform」タブにある「Get transform」を押す。これは、現在のそのソースの状態(OBSの名称で言うところの「変換」の設定内容)が「Transform」欄にコピーされる。
これで基本設定は完了だ。フィルタウィンドウで「カメラ全画面」の目のアイコンをクリックするとカメラがスムーズに全画面になり、「カメラ子画面」の目のアイコンを押すと小さくなる。
ただし、このままだといちいちフィルタウィンドウを出して、目のアイコンをクリックしないとこの切り替えができない。そこで、「ファイル」→「ホットキー」で先ほどMove Sourceを追加したシーンに移動すると、それぞれのMove Sourceフィルタがリストに追加されているので、任意のホットキーを指定すればそのキーを押すだけでフィルタを実行できる。
ちなみに、ホットキーについてはゲームで使われるキーとかぶらないよう注意しよう。フィルタを実行しようとしてホットキーを押したら、ゲームでもそのキーの動作が実行されるということがあり得るからだ。また、凝り出すとMove Sourceフィルタを多数使いたくなり、ホットキーが足りなくなることもある。
その観点から、ElgatoのStream Deckシリーズの導入をお勧めする。Stream Deckは、OBSの任意のフィルタをオン/オフする機能があるので、ホットキーを使わずにMove Sourceなどを実行できるからだ。
各設定項目の内容を順に解説する。「General」の「Start Delay」は、このフィルタがオンになった時にかける遅延だが、基本的には「0ms」でいい。「Custom Duration」にチェックが入った状態で時間(ms単位)を指定すると、その時間をかけて変形がアニメーションされる。ひとまずデフォルトの「300ms」のままにしよう。
「End Delay」は、そのMove Sourceが完了したあとに、別のMove Sourceを自動実行させたい場合に、次のMove Sourceを実行させるまでの遅延時間だ。基本的には「0ms」のままでいい。「Easing」と「Easing Function」はMove Transitionと同じで、アニメーションにかけるイージングの設定だ。必要に応じて変えてもいいし、そのままでもいい。
「Visibility and Order」の「Visibility」では、Move Sourceエフェクトが発動する時、した後、している最中のそのソースの可視状態を設定できる。たとえば、アニメーション移動したあとにそのソースは非表示にするといった指定ができる。
「Order」は、Move Sourceエフェクトが発動する時、した後、している最中のそのソースのレイヤー順序を変更できる。たとえば「End Absolute」を選んで、「Difference/Position」で「0」を選ぶと、フィルタ終了時のソースの絶対順番が0になるので、ソースリストの一番下に移動する(レイヤーが最下層になる)。「End Relative」を選んで、「Difference/Position」で「-1」を選ぶと、フィルタ終了時のソースの相対順番が-1になるので、ソースリストで順番が1つ下になるといった具合だ。
「Audio」では、Move Sourceエフェクトが発動する時、した後、している最中のそのソースの音声のオン/オフ(Mute/Unmute)を指定できる。「Fade」にチェックを入れると、その下で指定した割合にまで音量が変化する。
「Actions」では、フィルタの発動条件(Trigger)や、別のMove Sourceフィルタの同時/自動発動を指定できる。発動条件はかなり数が多く、似て非なるものもあって筆者も完全には理解していないのだが、文字通り訳すと下記のようになる
- None(デフォルト): ホットキーを押すか、「Next Move」で指定された場合に発動
- Activate: このフィルタが最終出力でアクティブになった時に発動
- Deactivate: このフィルタが最終出力で非アクティブになった時に発動
- Show: このフィルタがなにかしらの出力で表示状態になった時に発動
- Hide: このフィルタが非表示状態になった時に発動
- Enable: このフィルタの目のアイコンが有効になった時に発動
- Source Activate: ソースが最終出力でアクティブになった時に発動
- Source Deactivate: ソースが最終出力で非アクティブになった時に発動
- Source Show: ソースが最終出力で表示状態になった時に発動
- Source Hide: ソースが非表示状態になった時に発動
- Media Started: ソースがメディアであって、そのメディアが再生された時に発動
- Media Ended: ソースがメディアであって、そのメディアが再生終了になった時に発動
- Load: このフィルタがロードか更新された時に発動
- Move Match: Move Transitionを実行して、2つのシーンに同一ソースがある時に発動
- Move Appearing: Move Transitionを実行して、新シーンにのみソースがある時に発動
- Move Disappearing: Move Transitionを実行して、前のシーンにのみにソースがある時に発動
これは、「Start Trigger」(上記条件に当てはまると発動)、「Stop Trigger」(上記条件に当てはまると停止)に対して指定できる。基本的にはデフォルトのNoneのままにしておいて、ホットキーかStream Deckでオンにする。
「Simultaneous Move」で、そのシーンにあるほかのMove Sourceを指定すると、このフィルタ発動と同時にもう1つのフィルタが発動する。
「Next Move」で、そのシーンにあるほかのMove Sourceを指定すると、このフィルタ完了時にもう1つのフィルタが発動する。あるいは「Reverse」という選択肢もあり、これを選ぶと、アニメーションが終わると自動的に逆再生される。
「Next Move On」は、上記のNext Moveの発動条件で、デフォルトの「Move End」だと、Next Moveが自動実行され、「Hotkey」にすると、フィルタ完了後にホットキーを押すとNext Moveが実行される。
他のフィルタの値を滑らかに変更する「Move Value」
「Move Value」も非常に強力なフィルタで、使い方次第で多彩な表現が可能になる。このフィルタは別のフィルタのパラメータ項目を呼び出して、好きな値に上書きすることができる。加えて、Move Valueフィルタを複数追加し、任意のパラメータに別の値をセットすることで、パラメータを滑らかに変化させることができる。
ここでは、「3D Effect」というプラグインを併用し、ゲーム画面を滑らかに3次元に傾ける使い方を紹介する。3D Effectは、こちらからダウンロードし、インストールしておく。
ゲーム画面(ゲームキャプチャなど)のソースを右クリックして、「フィルタ」を選ぶ。「+」を押して、「3D Effect」を選ぶ。このままソースを回転すると、もともとの枠のサイズをはみ出してしまうので、「Scale X」と「Scale Y」をそれぞれ「80%」くらいに縮小しておく。次に、「Rotation」で「X」と「Y」を「-3」くらいにしよう。これでゲーム画面が3次元的に傾く。
次に、エフェクトウィンドウの「+」を押して、「Move Value」を追加する。名前はそのままでもいいが「X回転」などにしておくと分かりやすくなる。「Filter」で「3D Effect」を選び、「Setting」の「Setting」は「Rotaion X」を選ぶ。この時、先ほど3D EffectのRotation Xで指定した値が表示されているハズだ。
もう一度、エフェクトウィンドウの「+」を押して、「Move Value」を追加。今度は名前は「Y回転」などにしよう。「Filter」で「3D Effect」を選び、「Setting」の「Setting」は「Rotaion Y」を選ぶ。これも、先ほど3D EffectのRotation Yで指定した値が表示されているハズだ。
もう一度、エフェクトウィンドウの「+」を押して、「Move Value」を追加。名前は「X回転戻す」などにする。今度は「Setting」の「Setting」で「Rotation X」を選んだ上で、「Value」を「0」にする。
最後に、エフェクトウィンドウの「+」を押して、「Move Value」を追加。名前は「Y回転戻す」などにする。今度は「Setting」の「Setting」で「Rotation Y」を選んだ上で、「Value」を「0」にする。
今度は、「X回転」を選んで、下の方にある「Next Move」から「Y回転」を選ぶ。同様に、「X回転戻す」を選んで、「Next Move」から「Y回転戻す」を選ぶ。
この状態で「X回転」の目のアイコンをクリックすると、X軸を対称にウィンドウが滑らかに回転し、続いてY軸を対称に回転する。そして「X回転戻す」の目玉をクリックすると、滑らかに回転して元の状態に戻る。
3D Effectだけだと、傾く前と後の2つの状態しか作れないが、Move Valueを使うと、設定した値が滑らかに変化するので、3D Effectだけではできない滑らかな回転アニメーションが実現できるようになるというわけだ。
Move Valueは、あらゆるフィルタと組み合わせられるので、ソースのサイズなどのアニメーション以外にも、たとえば透過度を滑らかに変えたり、使い方は無限大だ。
また、ここの例では「Move Value Type」でデフォルトの「Single Setting」のままで3D Effectを操作した。これは、X軸とY軸とで2段階にアニメーションさせたかったからだ。しかし、ここで「Settings」を選ぶと、その下の「Settings」の欄に、そのフィルタのすべての設定項目が表示されるので、1アクションで複数の設定を同時に変えることもできる。
「Custom Duration」以下の内容は、すでに解説したものと同じだ。
音声をトリガーとする「Audio Move」
「Audio Move」は、音声/音量をトリガーにしてなにかしらのアクションを発動させるフィルタだ。ここでは、音量に応じてワイプのサイズが変化するというギミックを追加してみよう。
まず「音声ミキサー」の中からトリガーとする音声デバイスを右クリックして「フィルタ」を選び、「+」を押して「Audio Move」を追加する。「Scene」と「Source」でワイプのカメラデバイスを選び、「Transform」は「Scale」(倍率)を選択する。
これでマイクに向かって声を出すと、その音量に連動してワイプの倍率が変わるので、エモーショナルなシーンで有効にすると効果的だろう。なお、「Base Value」は、音声入力がない時の状態(ここではScale)を示し、「Factor」はその変動幅を示すのだが、これはカメラの変換の設定によって変わってくるので、自分の環境に合う値を試行錯誤して入れることになる。
各設定項目の内容を順に解説する。「Meter Type」を変えると音量の測定基準が変わる。これは詳しく理解していないのだが、基本的にはデフォルトの「Magnitude」のままでいいのではと思う。
「Easing」は、適用するアクションに対するイージングの度合いとなる。
「Action」からは、「Transform」、「Setting」、「Source Visibility」、「Filter Enable」を選べる。
Transformを選んで、「Scene」と「Source」から任意のソースを選ぶと、「Transform」で「Position」(場所)、「Scale」(拡大)、「Bounds」(バウンディングボックスのサイズ)、「Crop」(クロッピング)のいずれかを選べる。たとえば、「Crop Right」を選ぶと、音量の変化に応じて対象ソースの右側がリアルタイムにクロップされる。
Settingを選ぶと、指定したフィルターの特定の設定項目を音量と連動させられるようになる。この際、「Base Value」に標準の値を入れ、「Factor」で変動幅を指定する。
Source Visibilityを選ぶと、任意のソースの表示/非表示を音量で切り替えられる。「Threshold」で指定した値がしきい値となり、「Enable」(表示)か「Disable」(非表示)について、しきい値を超える(Over)か、下回る(Under)をトリガーとして切り替えられる。
Filter Enableは、Source Visibilityと同様に、音量(Threshold)をトリガーとして、任意のフィルタを有効、無効にできる。
カメラのセッティングなどを調節「Move Video Capture Device」
Move Video Capture Deviceは、カメラの露出やコントラスト、彩度などの各種項目を変更できるフィルタ。また、PTZ(パンティルトズーム)カメラを使っている場合には、PTZ制御もできるので、たとえばTwitch配信だとチャンネルポイントを使って、カメラの向きを任意の場所に変更したり、やろうと思えば、1回のチャンネルポイント利用ごとに数度ずつ向きを変えるといったこともできる。
このフィルタを使う場合は、対称とする映像キャプチャデバイスを右クリックして「フィルタ」を選び、「エフェクトフィルタ」の「+」を押して、「Move Video Capture Device」を選ぶ。
ここの「Device」は、なぜか先頭の映像キャプチャデバイスがデフォルトで選ばれているので、改めて対称とする映像キャプチャデバイスを選ぶ。
「Move Value Type」で「Single」を選ぶと、その下の「Setting」でカメラの露出など1つの設定項目を選べ、その下の「Value」で値を設定できる。設定はMove Video Capture Deviceを有効にした際に適用される。
「Settings]を選ぶと、すべての設定項目の値を設定できる。
「Random」を選ぶと、「Setting」で選んだ項目について、その下の「Min Value」(最小値)と「Max Value」(最大値)を指定した上で、ランダムな値が設定される。
「Add」を選ぶと、「Setting」で選んだ項目について、その下の「Value」で選んだ値分だけ、フィルタが有効になるたびに設定値が加算されていく。
それより下の項目についてはこれまで解説してきたものと同じだ。
体のパーツを認識してソースを変化させられる「NVIDIA AR Move」
ここまで紹介してきたMoveの各種フィルタは、それぞれ設定項目も使い方も多種多様だが、実はあと1つ「NVIDIA AR Move」というフィルタもある。これは、手や口、目など体のパーツのほか、視線や表情を認識して、ソースを変化させることができる。単純な使い方としては、眼鏡の画像を表示して、目に追随して動くようにしたり、驚いた表情をしたら「!」が頭の上に表示させるといった使い方ができる。
このフィルタはここまでに紹介したフィルタ以上に設定項目が多いので、今後別の記事で取り上げることにしたい。なお、その名称からも分かる通り、NVIDIA GPU(CUDA)を搭載していないと動かない。