どうも、めんたいです。
今日はちょっといつものブログとは異なります。ご了承ください。
この度、グランツーリスモのフリーラン形式で開催されるレース(GWECを想定)向けの、「エクセル集計表」並びに「OBS等配信ソフト向け順位表」を作ったので、そちらの使い方をご紹介。
エクセル集計システム 最新版について
集計システムはリニューアルしました。
こちらのページを参照してください。
作成のきっかけ
このブログでも度々出てくる「GWEC」という耐久レースは4~10時間を複数名でドライバー交代しながら行うグランツーリスモのユーザーイベントです。
参加者も世界選手権経験者などが集まり、名実ともに豪華なレース。
しかしながらこのレース、フリーラン形式で行われているため前後のギャップが掴みにくかったり、もっと配信画面をリアルにできたら面白いなぁと思っておりました。
そこで、もう少し細かい情報お届けしたり、より実際のレース中継のようなUIにしたいと思い、今回これを作成するに至りました。
別に頼まれているわけじゃないので余計なお世話であるんですが、自信作なので見ていってください。
集計用エクセルの使い方
集計用のエクセルは私のOneDriveにアップロードしておきました。(現在削除済み)
リンクを開くと閲覧専用でエクセルが開かれますので、「ファイル」→「名前をつけて保存」からコピーをダウンロードしてお使いください。
ダウンロードすれば使えるんですが、”怪しいファイル”という扱いになるのでマクロが無効化されています。
しかしながら、マクロを有効にしないとこのシステムはほぼ機能しないので、以下の通り有効にしてください。
ウィルス等仕込む能力もないですが、怪しいと思うなら使わないのが一番。
①ダウンロードした「ラップ計算1.xlsm」を右クリックし、プロパティを開く
②下にあるセキュリティの「許可する」にチェックを入れ適用
これでファイルを開くと、まずはこのようなポップアップが出ます
これの「自動再発行機能を有効にする」にチェックを入れてOKを押してください。
その後、上にもしコンテンツが無効になりましたと出たら、有効化を押しておいてください。
集計方法についてはエクセルファイルに書いておきましたので、ここでは省略させてください。
次に配信用のファイル(HTML)を作成しましょう。
タブの「ファイル」から「名前をつけて保存」を選択し、保存先で参照を選ぶと次の画面が出ます。
そうしたら、ファイルの種類で「Webページ(*.htm;*.html)を選択し、下の「発行」を押します。
そして、選択より「配信用 にあるアイテム」を選び、下の「ブックを保存するときに常に自動再発行を行う」にチェックを入れて、「発行」を押します。
ファイル名のところ、拡張子が勝手に変わっている場合があるので、もし違っていたら.htm/.htmlに変更しましょう。
これで「配信用」シートにあるオブジェクトが.htm形式で出力されましたので、エクセルの方は準備完了です。
もしUIが気に食わなければ各々編集してお使いください。
【お詫び】
私が試行錯誤している間に作成した.htmlファイル等も自動で生成されてしまうようです。特別何もないのですが、紛らわしかったり邪魔だったりすると思うので、使用後都度削除いただけると助かります。
また、ファイル名も「Page」「配信用」「ラップ計算」などとなっているので、これと被らないファイル名を設定いただくとわかりやすいと思います。申し訳ありません。
配信ソフト(ここではOBS)の準備
続いて、OBSを例に配信ソフトの設定を行います。
勘の良い方ならお気づきかもしれませんが、.htm/.htmlファイルで出力したのは、OBS側で「ブラウザ(html)」としてソースを追加するためです。
ここで自動更新のメカニズムについて簡単に説明しますと、まずエクセルファイルが20秒おきに自動保存されます。
そして、先程.htmlファイルを作成した際に「自動再発行」をONにしましたので、つまり20秒おきに.htmlファイルも自動更新されるという仕組みになります。
これによりリアルタイムでの順位変更に対応しているのですが、OBS側で更新が行われなければ、いつまでも古い順位が表示されることになります。
そこで、都度自分で再読み込みをしてもいいのですが、正直めんどう。
というわけで、次はOBSのプラグインとして公開されている「xObsBrowserAutoRefresh」を利用することにします。
サイト上部にある「Download」を押すと、プラグインが.zip形式で保存されます。(白四角のやつ)
これは自分でOBSのフォルダーにファイルを入れないといけません。
簡単に説明しますと、Windows(:C)→Program Files→obs studio内のdata→obs-pluginsの中に、ダウンロードしたフォルダのdata→obs-pluginsの中のファイルをコピー、同じくWindows(:C)→Program Files→obs studio内のobs-plugins→64bitの中に、ダウンロードしたフォルダのobs-plugins→64bit内にあるファイルをコピーすればOKです。
いや、難しい。これがわからなくてちょっと苦労しました。
そして、OBSで先程作った.htmlファイルを「ソース」→「ブラウザ」に追加します。
ローカルファイルで保存場所を参照し、読み込みましょう。
ここで幅を7500くらいに設定すると切れることなく表示できました。
次に、「ブラウザ」のフィルタを選択し、「エフェクトフィルタ」に先程追加した「Browser Auto-refresh」と「スクロール」を設定すればこれでOKです。
Browser Auto-refreshは、そもそもエクセルファイルが20秒間更新されないので、これ自体も20秒より短く設定する必要はありません。
スクロールは、水平速度をいじると左右に動きます。正の値に設定すれば問題ないでしょう。
これにて、すべての準備が終了しました。
これで、集計をすれば自動で配信画面上の順位も入れ替わるシステムの完成です!
Aさんが配信、Bさんが集計を行う場合は?
しかしながらこのシステム、落とし穴があります。
これ、配信も集計も同一のパソコンで行わないと動きません。
では、GWECのようにAさんが配信、Bさんが集計を行うレースでは使えないのでしょうか?
・・・いえいえ、そんなタダでは転びません。
というかGWEC用に作ったのですから、それも想定済みです。
このような場合、.htmlファイル(と一応エクセルファイル)を「Google Drive」または「OneDrive」上に保存し、.htmlファイルを共有します。
(パソコンにGoogle DriveまたはOneDriveのソフトが入っていなければ、それもインストールして設定しておきましょう)
右クリックをして、共有用のリンクを作成するだけでOKです。このリンクは使用しません。
要は、共有して誰でも閲覧できる状況にしておきます。
そして、「Drive To Web」というシステムを使用します。
これで、.htmlファイルを保存した方のクラウドを選択しログインをすると、自分のクラウド上にアップロードされた.htmlファイルが「Your Web Pages」として表示されます。
私の場合は3つ出ていますが、どれか正解のリンクを開けばあの順位表が表示されます。
あとは、このページのURLを配信担当者に送り、OBSのブラウザソースのURL欄にペーストしてもらえれば、GWECのようなケースでも対応できます。
集計担当者さんは、Google DriveまたはOneDriveの同期がONになっていることを確認しておいてください。同期がOFFになっていると、ファイルが更新されず順位も更新されないので注意。
ちなみに、単にクラウド上に保存した.htmlファイルを共有し、そのリンクをOBSに貼り付けると、OneDrive等のファイルビューアがOBS上に出るだけで、順位表は表示されないのでダメでした。
現状、この方法で対応するのが良さそうです。
また、この「Drive to Web」は「OneDrive」のほうが安定して動いている気がしました。(テストでは)
なので、特別事情がなければOneDriveを使用するのが良さそうです。
もし途中で順位が表示されなくなってしまった場合は、「ブラウザ」のプロパティから、下の方にある「ページ権限」のところを適当にいじってやれば復活しました。その場しのぎ的な感じだと思いますが。
というわけで、頼まれてもいませんが勝手に開発した集計システムのご紹介でした。
気が向いているうちはOneDriveに公開しておこうと思います。
ご自由にお使いください。
あとは、誰かすごい人が更に良いものを作っていただければ嬉しいです。
それでは。