ゲームの配信や動画で、プレーヤーの心拍数が表示されているのを見たことがある方も多いでしょう。自分でもやってみたい!でもやり方がわからない…、そんな方もいらっしゃるのではないでしょうか。また配信や動画撮影をしなくても、心拍数を見ながら運動することは効率的なカロリー燃焼に有効ですし、なにより楽しい!
そんなわけで今回は、OBS や Beat Saber で心拍数を表示する方法について説明してみたいと思います。
必要なものや手順を説明する前に、仕組みを説明しておきます。心拍数データは以下のような流れで、OBS や Beat Saber で表示できるようになります。
(運動前)
スマートバンドが心拍数を常時送信するよう操作
または、心拍トラッカーの場合は電源を入れる
↓
(運動開始)
スマートバンドまたは心拍トラッカーが Bluetooth で心拍数送信
↓
スマートフォンの Pulsoid アプリがそれを受信
↓
Pulsoid アプリが Pulsoid サーバーにユーザーの心拍数送信
↓
OBS や Beat Saber が Pulsoid サーバーに接続して心拍数受信、表示
↓
(運動後)
スマートバンドの常時送信を停止
または、心拍トラッカーの場合は電源を切る
このように、いったん Pulsoid のサーバーを介することになります。直接 PC に心拍を送ればいいのに変に込み入っている、と感じるかもしれませんが、Pulsoid のサーバー側で心拍数の数字を装飾して、見栄えのいい形で OBS に返してくれる機能もあるので、そこまで無駄というわけではありません。
まず必要なのは心拍数を測定するデバイスです。今回説明する方法をとるには、ただ心拍数を測定できるだけでなく、心拍数の常時測定モードがあり、それを Bluetooth Low Energy (BLE) で送信可能なデバイスが必要になります。
チェストバンド (胸バンド) 型の心拍トラッカー
わたしはチェストバンド型を持っていないので、自信をもってこれがおすすめ、というのは言えないのですが、Pulsoid では以下の心拍トラッカーを奨励しています。
- Polar H10
- CooSpo H808S
Polar H10 は精度も信頼も抜群、CooSpo H808S は安価でも精度が高い、とのことです ( https://www.blog.pulsoid.net/monitors )。この記事を書いている現在では、日本のAmazon で Polar H10 は 12,800 円、CooSpo H808S は 3,580 円でした。(Amazon で購入される際は、詐欺被害を警戒して、販売元をよくご確認ください)
BLE 対応のスマートバンド、スマートウォッチ
どのスマートバンド、スマートウォッチも心拍数測定機能は備えているのですが、ほとんどがデバイス上での直接表示のみで、それを BLE で常時データ送信可能なもの、となると、かなり限られてしまいます。
それでは、どこのメーカーのスマートバンドにその機能があるのかというと、確認できているのは、下記の 2 種類 (どちらも製造は Huami) と Android スマートフォンの組み合わせくらいです。
- Mi Band
(Mi Band 3, 4, 5, 6 で対応、7 はまだ情報が少なく不明)
(Mi Band では Mi Fitness アプリではなく Zepp Life アプリを使用すること)
(Mi Band Pro、Mi Watch は不明ですが、Mi Band とは製造元も仕様も異なるので、できないのでは?)
- Amazfit
(Pulsoid によると Band 5、Bip Watch、Bip Lite、Bip S、Bip U、GTR、GTR2、GTS、GTS2e、GTS2 mini、Neo が対応、他もおそらく対応)
(対応させるには別途有料アプリ Notify (450円程度) が必要になるかも)
ただし、この 2 種類でも新機種ではうまく動かない場合があります。わたしが所有している Mi Band 6 も発売当初は BLE の接続がうまくいったりいかなかったりでしたし、Amazfit の GTS 4 Mini も使えるようになったのはついこの前からのようです。
また、Android スマートフォンとの組み合わせ、と書いたのは、動作情報がほぼ Android の情報のみで、iPhone で動作するかはかなり疑わしい部分があるためです。もし iPhone を使用で、ゲームでの心拍数表示を目的に新たにデバイスを購入しようという場合は、Mi Band や Amazfit を購入するのはおすすめできません。単体で BLE での常時心拍送信対応が明記されているもの、チェストバンド型、あるいは Apple Watch (制限あり、下記参照) にするのが無難だと思います。
(追記: たよ(tayo)さんによると、iPhone + Mi Band 6 の環境で、接続がすんなりできないものの、接続がうまくいけば使用可能なようです。
https://twitter.com/tayo_vr/status/1584183144697442304 )
その他
- Apple Watch
Pulsoid アプリを iPhone にインストールし、Apple Watch で Pulsoid を起動することで、心拍数を送信できるようです。ただし、測定は 5 秒おきで細かい数字の変化は追えず、おすすめはしないと書かれています。
https://www.blog.pulsoid.net/post/pulsoid-supports-apple-watch-natively
- Wear OS
(Galaxy Watch 4, TicWatch, Fossil, etc.
最新の Galaxy Watch 5 や Pixel Watch は今のところ不明…)
Stromno アプリを Wear OS にインストールして、心拍数を OBS に表示可能なようですが、対応するデバイスを持っていないため、この記事では扱いません。
https://www.stromno.com/
- Garmin
Pulsoid によると Forerunner (FR 245 / FR 945)、Fenix 6 Pro は BLE で心拍数送信が可能なようです。
- ほか Pulsoid による対応デバイス
https://www.blog.pulsoid.net/monitors
なお、体感的に手首に装着するデバイスが出す心拍数は、実際の心拍数とはズレ (特に運動時、ものによってはかなり大きな) があるため、本当に正しい数字を計測したい方はチェストバンド型をおすすめします。
今回の記事では、チェストバンド型の心拍トラッカー、Mi Band、Amazfit のどれかを使用していると想定して、説明を進めます。
Pulsoid のサービスを使用するため、アカウントを作成する必要があります。特別な装飾を使いたい、Stromno と連携したい、など追加機能を使用したい場合などは有料プラン ($4.99/月) が必要になりますが、無料プランで通常使用には支障ありません。
まず下記のリンクを開いてください。
(ちなみに下記から登録すると、わたしの Pulsoid アカウントが 1 週間だけ有料プラン相当になって、ちょっとだけわたしがうれしい)
https://pulsoid.net/s/OFepG
[Get started for free] をクリックします。
メールアドレス、パスワードを入力し、ロボットではありませんをチェックして、[Sign up] をクリックします。channel link は空欄のままでかまいません。
Free の下の [Dashboard] をクリックします。
登録完了です。メールアドレスのチェックいらないの…?と思うところですが、どうやら今のところないようです。とりあえずアカウントはできたのでよしとします。左のメニューから [Dashboard] をクリックしてください。
Current Status は Offline、つまり接続されていない、という状態になっています。Pulsoid サーバーに心拍データが送られればここが変化します。このページを開いたままにして、次の手順に進んでください。
チェストバンド型の心拍トラッカーや Apple Watch を使用する場合は、ここは無視してください。
ここでは、スマートバンド、スマートウォッチ管理ソフトに、Mi Band の場合は Zepp Life、Amazfit の場合は Zepp を使用します。どちらも同じメーカー (Huami) が作っているソフトで、画面構成はほとんど同じため、Zepp Life (Mi Band) の画面で説明しますが、Zepp (Amazfit) を使用の場合も行う操作はほぼ同じです。
ちなみに、Mi Band 7 の場合、管理ソフトに Zepp Life と Mi Fitness の両方が使用できるという変なことになっていますが、これは製造メーカー (Huami) が提供する Zepp Life と、販売メーカー (Xaomi) が提供する Mi Fitness という構図のようです。Mi Fitness で今回の用途に合わせた設定ができるかは不明です。
まず Zepp Life を起動し、下部右下のプロフィールをタップ。それから使用しているデバイス (ここでは Mi スマート バンド 6) をタップします。
画面が切り替わったらすこし下にスクロールし、[検出可能] と [アクティビティ心拍数の共有] の 2 つを両方オンします。
次に下記から Pulsoid アプリをインストールします。
Android
https://play.google.com/store/apps/details?id=com.pulsoid.swung
iOS
https://apps.apple.com/us/app/pulsoid/id1194772720
以下は Android 版での説明です。Pulsoid アプリのインストールが完了したら、起動してください。
初回起動時、ログイン画面が表示されたら、上記で作成した Pulsoid アカウントのメールアドレス、パスワードでログインしてください。
初回起動時、ロケーションのアクセス権限を要求されます。これは BLE のスキャンを行うため必要な権限です。[OK] をタップします。
[正確]、[アプリの使用時のみ] をタップします。ちなみに、ここで [おおよそ] を選択するとうまく動きませんでした。
[許可] をタップします。
このようなメッセージが出たら [SCAN FOR ALL BLE DEVICES] をタップします。出ない場合もあります。
このように一覧が表示されたら、使用しているスマートバンドまたは心拍トラッカー (ここでは Mi Smart Band 6) をタップします。
上記の一覧に出てこない場合は、右上 [≡] のメニューから [Scan] を選択して、再度スキャンを行う、それでも出てこない場合は、前セクションで書いた [検出可能] と [アクティビティ心拍数の共有] の 2 つを一度オフにして、再度オンにする操作を行って、確実に検出可能になるよう操作します。
Pulsoid とデバイスの接続が完了すると下のような画面になります。Connecting は接続中の表示なので、Connected になるまで少し待ちましょう。
Beats per minute が心拍数を表す部分ですが、上記では 0 になっています。ここは、チェストバンド型であれば最初から測定された心拍数が出ているはずですが、スマートバンド、スマートウォッチでは、心拍を常時秒単位では測定していないので、0、または管理ソフトで設定した周期 (1時間ごとに更新など) での前回の測定値が表示されています。
ここで、きちんと動くか確認するため心拍の常時測定を開始させましょう。スマートバンド側でワークアウト (アクティビティ、運動、などメーカーにより名称は様々) を開始します。Mi Band の場合、メニューから [ワークアウト] → [ヨガ] (なんでも可) → [GO] と選択します。
ここまで問題なく設定できていれば、このようにリアルタイムで心拍数が表示され、数字が細かく変化するようになります。
さきほど開いたままにした Pulsoid のページを見てみましょう。このように、Current Status が Online になり、心拍数も表示されています。
問題なく動くのが確認できれば、スマートバンドで開始したワークアウトを終了します (Mi Band の場合、右にスワイプして、赤い停止ボタンを長押し)。
さて、ここで一部の Mi Band や Amazfit では、Pulsoid によるスキャンと接続まではできるのに、ワークアウトを開始しても表示される心拍が No Information のまま、あるいは数字がまったく変化しない、という問題が発生する場合があります。この場合は、次のセクションを参照してください。問題がなければ次のセクションは飛ばしてください。
ちなみに、わたしの Mi Band 6 の場合、当初はこの問題が発生して後述のアプリが必要でしたが、いつの間にかアプリ不要で問題なく動くようになっていました。Mi Band のファームウェア更新で直ったのか、Pulsoid 側で対応が進んだのかは不明ですが、そういうこともあります。
ややこしいのですが、スマートフォンで心拍数を BLE で受信するためには以下の条件が必要です。
1. 心拍数が常時測定モードになっている (10分ごと、などではなく)
2. デバイスが BLE で認識できる状態になっている
3. 心拍数が BLE で常時送信されている
一部の機種では、1. 2. まではできるものの 3. が動いていない場合があります。この場合、スマートバンドに 3. の指示を与えることができる、下記のアプリが必要になります (Mi Band か Amazfit かで入れるアプリが変わりますが、画面、操作はほぼ同じです)。残念ながら、このアプリの iOS 版アプリはなさそうです…。
Notify for Mi Band
https://play.google.com/store/apps/details?id=com.mc.miband1
Notify for Amazfit & Zepp
https://play.google.com/store/apps/details?id=com.mc.amazfit1
使用デバイスに合ったほうをインストールして起動してください。Pulsoid アプリのときと同じように、権限を求められます。[正確]、[アプリの使用時のみ]、[許可]。
[ペアリング]
[インストール済み] を選択して、右下の [NEXT >]。次の画面では、プロフィールの入力を求められますが、このアプリで運動の記録を行うわけではないので、無視してかまいません。[プライバシー] のチェックを入れてから、右下の [COMPLETE] をタップします。
初回起動時、通知へのアクセスを求められますが、このアプリで通知を拾う必要はないので、[無効] でいいと思います。
このアプリでは、心拍数の常時送信を有効にする機能だけを使用するので、不要な通知機能を無効にします。左上の [≡]、[設定] をタップします。
設定画面を開くとオーバーレイの権限を求められますが不要だと思います。この白い枠より外のグレーアウトした部分をタップすると、このメッセージは消えます。
上のメニューの [通知バー] をタップし、[アプリの通知停止防止] の文字のあたりをタップしてオフにします (なぜか右のスイッチをタップしてオフにはできない)。
左上の [←] をタップして設定を保存し (閉じ) ます。これで不要な通知が表示されなくなりました。
ここからは、心拍数を常時送信するための設定を行います。この心拍のグラフ部分をタップします。
画面が切り替わったら、心拍数モニタ、という文字部分 (右のスイッチではなく) をタップします。無料版の場合、このあたりの設定を使用するときに広告が流れます。とりあえず動作確認の段階では広告を見て、何度か使用した上で使えそうであれば毎回広告を見る手間を省くため買ってしまうのがおすすめです (わたしが購入したときは 450 円でした)。ちなみに、AdGuard などでこの広告をブロックすると正常に動きません。
心拍数モニタの設定画面が表示されます。[1分毎] の部分をタップして [連続] に変更して [OK] をタップしたら、設定画面を閉じます。
心拍数モニタの右のスイッチをオンにします (上記の設定変更直後は既にオンになっていますが)。このまましばらく (1分くらい) 待つと、下の値の欄で心拍の表示が次々と更新されるようになります。
この状態で、前セクションのように Pulsoid を起動して、スマートバンドに接続してみてください。リアルタイムで心拍数が更新されるようになっているはずです。
動作が確認できれば、心拍数モニタのスイッチをオフにして、常時測定を停止してください。
以後の使用時は、このアプリを起動して、この心拍数モニタ (連続) のスイッチをオン (終了時はオフ) する操作を行う形になります。
なお、何度か使用して問題ないことが確認でき、広告を見たくないので購入したい、となった場合は、アプリ左上の [≡]、[ライセンスの状態]、[PROライセンス] から購入が可能です。
OBS 上で心拍を表示する設定です。まず、Pulsoid ( https://pulsoid.net/ ) にログインし、左のメニューから [Widgets] をクリックします。心拍数を装飾して表示する様々な widgets が用意されていますが、ここではとりあえずデフォルトのものを使用してみましょう。ハートと数字の下の [configure] をクリックします。
[Copy!] をクリックします。あなたの心拍数をこの装飾で表示するための専用の URL がコピーされます。
次に OBS を起動して、ソースの下の [+] から [ブラウザ] を追加します。
URL の部分に、キーボードの [Ctrl] + [V] で、さきほどコピーした URL を貼り付けます。このように pulsoid の URL が入力されたら、[OK] を押して閉じます。(この画像にある文字をそのまま写すのではなく、あなたのアカウントでコピーした URL を入力してください)
ここまでできたら、心拍数の測定を開始してみます。スマートバンドでワークアウトを開始 (必要であれば Notify アプリで心拍数モニタをオン)、または心拍トラッカーの電源を入れて、スマートフォンで Pulsoid アプリを起動して接続します。
このように Pulsoid アプリが心拍数を受信すると、OBS のほうにも心拍数が表示されます。これで、心拍数を表示した配信や動画撮影ができますね!
OBS の通常のソースと同じように、クリックして移動、拡大縮小も可能です。
Beat Saber 上で心拍を表示する設定です。ここでは NalulunaCounters で心拍数表示を行う例を説明します。
まず、Pulsoid ( https://pulsoid.net/ ) にログインし、左のメニューから [Widgets] をクリックします。このページを一番下までスクロールし、[Feed reference] の右の [Copy!] をクリックして URL をコピーします。前述の、OBS 用の URL とはまた別になっているので注意してください。
NalulunaCounters をインストールします。
https://nalulululuna.fanbox.cc/posts/1716363
NalulunaCounters の設定ファイル
(Beat Saber のインストール先)\UserData\NalulunaCounters.json
をメモ帳などのテキストエディタで開きます。NalulunaCounters インストール後、まだ一度も Beat Saber を起動していない状態だと、このファイルは存在しません。その場合、一度 Beat Saber を起動してください。
json ファイル内の
"activityCounterPulsoidApiUrl": "",
の "" の中に、さきほどコピーした URL をキーボードの [Ctrl] + [V] で貼り付けます。
下記のように入力したら (改行はしない)、ファイルを上書き保存して閉じます。
"activityCounterPulsoidApiUrl": "https://pulsoid.net/v1/api/feed/f52a4b1f-b622-4064-bb90-d7cce796c066",
(いちおう書いておきますが、上の URL はわたしのテスト用に作ったアカウントのものなので、これをそっくりそのまま入れても無意味です。あなたのアカウントでコピーした URL を入力してください)
Beat Saber を起動して、左の MODS 一覧の中から Naluluna Counters の設定を開き、設定画面の [ACTIVITY] タブのチェックをオンにして、アクティビティカウンターを表示するようにします。
ここまでできたら、心拍数の測定を開始してみます。スマートバンドでワークアウトを開始 (必要であれば Notify アプリで心拍数モニタをオン)、または心拍トラッカーの電源を入れて、スマートフォンで Pulsoid アプリを起動して接続します。
Pulsoid アプリが表示する数字と、NalulunaCounters が表示している数字が一致していれば成功です。なお、下行のカロリー表示は、Steam の YUR アプリ、または Beat Saber の YUR mod が入っていれば表示されます。
ちなみに、Pulsoid からデータを受信できていないときも、YUR が入っていれば心拍数表示は出ますが、これは YUR によるコントローラー移動量から推定した心拍数なので、雰囲気程度、あまりあてになる数字ではありません。
NalulunaCounters 以外を使用する方法としては、Counters+ mod のアドオンで HRCounter というものがあり、こちらでも Beat Saber 上での心拍表示が可能です。こちらの設定については、下記ページを参照してください。
https://github.com/qe201020335/HRCounter
ここまでの設定がすべて正常に完了している場合の操作手順です。
(運動前)
スマートバンド上でワークアウトを開始
(必要であれば Notify アプリの心拍数モニタ (常時) をオン)
(Apple Watch の場合は、Watch 上で Pulsoid を起動?)
または、心拍トラッカーの場合は電源を入れる (装着する)
↓
スマートフォン上で Pulsoid アプリを起動して、スマートバンドに接続
↓
(運動開始)
OBS や Beat Saber で心拍数表示を確認
↓
(運動後)
スマートバンド上でワークアウトを終了
(Notify アプリを使用していれば、心拍数モニタをオフ)
または、心拍トラッカーの場合は電源を切る (外す)
- Pulsoid に Mi Band が出てこない
Zepp Life で [検出可能] と [アクティビティ心拍数の共有] の 2 つを一度オフにして、再度オンにする操作を行ってから、Pulsoid で再スキャンすると出てくるようになります。
- 動かないとワークアウトが勝手に終了してしまう
スマートバンドが動きを検知しないと、運動が終了したとみなして、ワークアウトを勝手に終了してしまう場合があるようですが、「ヨガ」であれば勝手に終了されることはないようです。びーせいはヨガ!
- Notify で心拍数モニタを常時にしたあと、Zepp でスマートバンドの同期ができなくなった
スマートフォンを再起動すると同期できるようになります。
VR ゲームでは、プレーヤーの動きがそのまま心拍数に影響するので、配信や動画で心拍数が見られるのは、どのくらいプレーヤーがいっぱいいっぱいなのかが見えて、ワンポイントとして良いのではないでしょうか。
とくに Beat Saber では、FeetSaber、FitBeat、スクワットなど、体力を使う譜面も多数存在します。また棒立ちのままでも、★10 クラスの物量ランク譜面になると心拍もけっこう上がるので、自分でプレイ中の変化を見ているだけでも、ちょっとおもしろいと思います。
この記事がみなさんの助けになれば幸いです。