<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RTAイベント技術 | RTAGamers</title>
	<atom:link href="https://rtagamers.com/tag/rta%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E6%8A%80%E8%A1%93/feed/" rel="self" type="application/rss+xml" />
	<link>https://rtagamers.com</link>
	<description>RTAGamersはRTAプレイヤーによる情報サイトです！</description>
	<lastBuildDate>Mon, 22 Dec 2025 01:14:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://rtagamers.com/wp-content/uploads/2019/11/favicon-100x100.png</url>
	<title>RTAイベント技術 | RTAGamers</title>
	<link>https://rtagamers.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Long Speedrun Summit 2025 の技術的なお話</title>
		<link>https://rtagamers.com/rta-tools/lss2025-tech/</link>
					<comments>https://rtagamers.com/rta-tools/lss2025-tech/#respond</comments>
		
		<dc:creator><![CDATA[ping値]]></dc:creator>
		<pubDate>Mon, 22 Dec 2025 01:14:56 +0000</pubDate>
				<category><![CDATA[RTAイベント]]></category>
		<category><![CDATA[RTAツール]]></category>
		<category><![CDATA[RTAイベント技術]]></category>
		<guid isPermaLink="false">https://rtagamers.com/?p=20776</guid>

					<description><![CDATA[この記事はRTAGamers Advent Calendar 2025の22日目の記事です。 目次 はじめにミラー配信方式への変更安定した長時間配信のためにTwitchエラー画面/バッファリングからの自動復旧チャット欄の [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>この記事は<a rel="noopener" target="_blank" href="https://adventar.org/calendars/12341">RTAGamers Advent Calendar 2025<span class="fa fa-share-square external-icon anchor-icon"></span></a>の22日目の記事です。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">ミラー配信方式への変更</a><ol><li><a href="#toc3" tabindex="0">安定した長時間配信のために</a></li><li><a href="#toc4" tabindex="0">Twitchエラー画面/バッファリングからの自動復旧</a></li></ol></li><li><a href="#toc5" tabindex="0">チャット欄の表示</a><ol><li><a href="#toc6" tabindex="0">過去配信のチャットのYouTube字幕化</a></li></ol></li><li><a href="#toc7" tabindex="0">なんとか楽して録画再配信したい</a></li><li><a href="#toc8" tabindex="0">解説者による音声切り替え</a></li><li><a href="#toc9" tabindex="0">おわりに</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">はじめに</span></h2>
<p>天外魔境ZERO発売30周年おめでとう！(挨拶)</p>
<p>長時間RTAのイベント<a rel="noopener" target="_blank" href="https://www.twitch.tv/longspeedrunsummit">Long Speedrun Summit<span class="fa fa-share-square external-icon anchor-icon"></span></a>(以下LSS)運営のひとりping値と申します。この記事では、今年の9~10月に開催した『<a href="https://rtagamers.com/rta-events/lss2025-schedule/">Long Speedrun Summit 2025</a>』(以下LSS2025)の舞台裏で使っていた技術について、筆者が関わっていたやつを簡単に紹介します。</p>
<p><a href="https://rtagamers.com/rta-tools/lss2023-tech/">2年前のLSS2023の技術的なお話はこちら</a>。</p>
<h2><span id="toc2">ミラー配信方式への変更</span></h2>
<p>とか言っているがオンラインRTAイベントではむしろ昔からミラー配信が一般的なのだが、LSSは運営の負担を抑える(実際に抑えれているかどうかは諸説あり)ために走者にストリームキーを配布して各自直接配信してもらうという形をとっていた。しかしこの方式は作品切り替え時に視聴環境によっては手動で更新をかける必要があったり、LSS2024途中からプレロール広告が表示されるようになったりしたため、LSS2025では重い腰を上げてミラー配信方式に切り替えることとした。配信構成図は下記の通り。並走でない限りミラー配信側で音量調整を行わない点がいびつな感がある。</p>
<div id="attachment_20863" style="width: 1571px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-diagram.png"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-20863" class="size-full wp-image-20863" src="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-diagram.png" alt="" width="1561" height="1021" srcset="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-diagram.png 1561w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-diagram-300x196.png 300w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-diagram-1024x670.png 1024w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-diagram-768x502.png 768w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-diagram-1536x1005.png 1536w" sizes="(max-width: 1561px) 100vw, 1561px" /></a><p id="caption-attachment-20863" class="wp-caption-text">LSS2025の配信構成図</p></div>
<p>走者への広告設定依頼のあれやこれやがめんどいので、バテン100%走者のポケットマネーによってLSSアカウントでTwitch Turboに加入してもらった上でOBSのブラウザソース上でLSSアカウントにログインし走者のTwitch配信をミラー配信した。Turbo加入によって配信録画の保存期間1週間が1ヶ月に伸びたのは地味に助かった。</p>
<p>走者のSRT配信をOBS-to-OBSでミラー配信PCが受け取る手段も候補として考えていたが、以下の理由から不採用とした。</p>
<ul>
<li>(<a href="https://rtagamers.com/rta-tools/post-20624/">クロム神</a>曰く)当日調整が必要な人がそこそこいたりSRT不可能な人もいる</li>
<li>通常のOBSではパケロスやRTTを確認できない</li>
<li>第三者が簡単に走者の配信を確認できない</li>
</ul>
<h3><span id="toc3">安定した長時間配信のために</span></h3>
<p>ミラー配信は全て我が家の<a rel="noopener" target="_blank" href="https://kakaku.com/item/J0000042845/">Dell G15 5530<span class="fa fa-share-square external-icon anchor-icon"></span></a>で配信していた。回線はeonetの1Gbpsプランで通信量制限は5TB/月。さすがにこの長期間ともなると通信量制限も気にしないといけない。期間中の通信量は2~2.5TBくらいだった。配信の映像ビットレート設定は720pの4.5Mbpsだが、視聴者の画質選択のためにマルチトラックビデオを有効にしたため合計では6Mbpsくらい。</p>
<p>PCを休ませるため以下の区間はミラー配信PCを使わなかった。録画再配信は自分以外の運営が、超長時間のポケダンとバテン100%は走者自身が直接配信した。</p>
<ul>
<li>録画再配信</li>
<li>ポケモン不思議のダンジョン 空の探検隊</li>
<li>バテン・カイトス</li>
</ul>
<p>家庭内LANはWi-Fi 6の5GHz帯で、親機は<a rel="noopener" target="_blank" href="https://kakaku.com/item/K0001446896/">I-O DATA WN-DAX5400QR<span class="fa fa-share-square external-icon anchor-icon"></span></a>、配信PCの子機はインテルWi-Fi 6 AX200。余談だが、電子レンジを動かすと高確率でネットが切断される00年代から無線LANを使っている老の者としては、無線でもこれだけ配信が安定しているのを見るとつくづく技術の進歩を感じる。閑話休題。</p>
<p>ミラー配信テスト中、Twitch配信受信のバッファリング発生時にバッファリングが10秒ほども続いた。そのため親機と子機の設定を見直したところ、子機のMIMO 省電力モード設定を「自動SMPS」から「SMPSなし」に変更することによってバッファリング時間が1秒程度にまで改善できた。</p>
<p>ミラー配信テスト中にはまた、<a rel="noopener" target="_blank" href="https://github.com/obsproject/obs-browser/issues/406">Windown 11バージョン24H2でOBSを最小化するとブラウザソースの音声にノイズが乗る不具合<span class="fa fa-share-square external-icon anchor-icon"></span></a>に遭遇したため工場出荷時の23H2に戻し、<a rel="noopener" target="_blank" href="https://www.nichepcgamer.com/archives/microsoft-starts-forced-automatic-update-to-windows11-24h2.html">この辺<span class="fa fa-share-square external-icon anchor-icon"></span></a>を参考にして24H2に更新されないようにしていた。なおこの不具合は既に<a rel="noopener" target="_blank" href="https://style1925.hateblo.jp/entry/obs-browser#OBS%E3%81%A7%E9%9F%B3%E5%A3%B0%E3%82%92%E5%88%B6%E5%BE%A1%E3%81%99%E3%82%8B-%E3%81%AE%E4%B8%8D%E5%85%B7%E5%90%88%E6%83%85%E5%A0%B1">OBS Studio 31.1で修正された<span class="fa fa-share-square external-icon anchor-icon"></span></a>ハズ。そのうちもとに戻さなきゃね。</p>
<p>運営メンバーによる配信PCの操作に使ったのはおなじみの<a rel="noopener" target="_blank" href="https://parsec.app/">Parsec<span class="fa fa-share-square external-icon anchor-icon"></span></a>。作品切り替え時やなにかトラブルのあったときなど、操作が必要になったときだけ接続していた。Parsecはたまにメンテナンスが発生し利用できなくなるので<a rel="noopener" target="_blank" href="https://discordapp.com/invite/cQjEGFy">Discordサーバー<span class="fa fa-share-square external-icon anchor-icon"></span></a>のnewsチャンネルや<a rel="noopener" target="_blank" href="https://support.parsec.app/hc/en-us/categories/32361195102868-Notices">公式サイトのNoticesページ<span class="fa fa-share-square external-icon anchor-icon"></span></a>で期間中のメンテナンス情報をチェックするといい。もしParsecメンテナンス発生などでミラー配信がトラブったときは従来の直接配信方式に切り替える予定だった。LSS2025の期間中メンテがなくてよかったね！</p>
<h3><span id="toc4">Twitchエラー画面/バッファリングからの自動復旧</span></h3>
<p>なにぶん長期間かつオールナイトの配信なので、深夜帯などで運営が多少目を離してもいいよう、#2000,#3000エラーや長時間続くバッファリングが発生しても自動復旧する仕組みは必須だと考えていた。</p>
<p>#2000,#3000エラーに対しては、<a rel="noopener" target="_blank" href="https://obsproject.com/forum/resources/advanced-scene-switcher.395/">高機能シーンスイッチャープラグイン<span class="fa fa-share-square external-icon anchor-icon"></span></a>の画像認識機能によってエラー画面を検出することで自動更新がかかるようにした。バッファリングに対しては、バッファリング発生時に表示されるスピナーの表示をカスタムCSSで弄ることで画像認識を可能とし、バッファリングが3秒以上続くと自動更新がかかるようにしていた。</p>
<div id="attachment_20869" style="width: 1160px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-buffering.png"><img decoding="async" aria-describedby="caption-attachment-20869" class="size-full wp-image-20869" src="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-buffering.png" alt="" width="1150" height="887" srcset="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-buffering.png 1150w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-buffering-300x231.png 300w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-buffering-1024x790.png 1024w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-buffering-768x592.png 768w" sizes="(max-width: 1150px) 100vw, 1150px" /></a><p id="caption-attachment-20869" class="wp-caption-text">バッファリング自動復旧マクロ</p></div>
<p>マクロの動作テストのために送信側で配信のバッファリングを意図的に起こす方法はいろいろ調べたが、<a rel="noopener" target="_blank" href="https://jagt.github.io/clumsy/">clumsy<span class="fa fa-share-square external-icon anchor-icon"></span></a>を使うのが一番楽だった。</p>
<div id="attachment_20868" style="width: 574px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-interactive.png"><img decoding="async" aria-describedby="caption-attachment-20868" class="size-full wp-image-20868" src="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-interactive.png" alt="" width="564" height="415" srcset="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-interactive.png 564w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-interactive-300x221.png 300w" sizes="(max-width: 564px) 100vw, 564px" /></a><p id="caption-attachment-20868" class="wp-caption-text">Twitch配信のブラウザソースの高さを長めにとると、マウスカーソルを重ねたとき画面上下に表示されるテロップが配信画面に重ならない。</p></div>
<h2><span id="toc5">チャット欄の表示</span></h2>
<p>今年2月、界隈(界隈とは？)に寝耳に水の衝撃が走った<a rel="noopener" target="_blank" href="https://news.denfaminicogamer.jp/news/2502202e">4月からのTwitchダイジェスト100時間制限の導入<span class="fa fa-share-square external-icon anchor-icon"></span></a>。これにより自チャンネルのダイジェストのYouTubeエクスポートをがんばったRTAプレイヤーはそこそこいるはずだ。筆者もその一人である。</p>
<p>LSSはもともと<a rel="noopener" target="_blank" href="https://www.youtube.com/@LongSpeedrunSummit">YouTubeチャンネル<span class="fa fa-share-square external-icon anchor-icon"></span></a>にほぼ全ての動画をエクスポートしていたのでそこは問題なかったが、ダイジェストに付属するチャットを残せなくなってしまった。けどいただいたチャットはなんとかして残したいよねということで、LSS2025からは配信画面にチャット欄を表示して録画にハードコーディングすることによる解決を図った。</p>
<p>Twitchのチャット欄表示に使えるいわゆるChat Widgetはいくつかあれど、1000人以上視聴するイベントのチャットモデレーションを考えると「遅延表示に対応」かつ「チャット削除の痕跡が残らない」のがマスト。OBSのブラウザソースとして使えるものを筆者が試した限りでは、これらを両方満たすのは<a rel="noopener" target="_blank" href="https://github.com/FedotCompot/fChat">fChat<span class="fa fa-share-square external-icon anchor-icon"></span></a>と<a rel="noopener" target="_blank" href="https://streamelements.com/">StreamElements<span class="fa fa-share-square external-icon anchor-icon"></span></a>の2点だった。より安定しているのは配信機能拡張系サービス大手のStreamElementsだろうということでStreamElementsのChat Widgetを採用した(なんか今確認したらfChatのサーバー繋がらないね)。ちなみにこれまた大手の<a rel="noopener" target="_blank" href="https://streamlabs.com/">Streamlabs<span class="fa fa-share-square external-icon anchor-icon"></span></a>のは遅延表示には対応しているものの削除の痕跡が思いっきり見えるのでだめだった。</p>

<a rel="noopener" target="_blank" href="https://twitter.com/pingval/status/1900780545866387885" title="ping値🍁 (@pingval) on X" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://rtagamers.com/wp-content/uploads/cocoon-resources/blog-card-cache/8c24399ceccbef7c740023ab0862015d.jpg:large" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">ping値🍁 (@pingval) on X</div><div class="blogcard-snippet external-blogcard-snippet">Twitch用Chat Widgetの比較KapChat Streamlabs jChat ChatIS fChat StreamElements Minimal Chat</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://twitter.com/pingval/status/1900780545866387885" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">twitter.com</div></div></div></div></a>
<p>カスタムCSSでフォントとEmoteの大きさのバランスを調整したり、バッジを消したり、単走と並走で横幅が変わるので横幅の固定化を解除したりした。</p>
<p>もし盛大に荒れたときは<a rel="noopener" target="_blank" href="https://github.com/lay295/TwitchDownloader/blob/master/README_ja.md">TwitchDownloader<span class="fa fa-share-square external-icon anchor-icon"></span></a>のチャットレンダリング機能で作った動画で上書きする予定だったが、幸いその出番はなかった。</p>
<h3><span id="toc6">過去配信のチャットのYouTube字幕化</span></h3>
<p>なおLSS2024までのTwitchチャットは、<a rel="noopener" target="_blank" href="https://github.com/lay295/TwitchDownloader/blob/master/README_ja.md">TwitchDownloader<span class="fa fa-share-square external-icon anchor-icon"></span></a>を使ってJSON形式でダウンロードし、<a rel="noopener" target="_blank" href="https://github.com/yuvalsol/TwitchChatToSubtitles">TwitchChatToSubtitlesUI<span class="fa fa-share-square external-icon anchor-icon"></span></a>でSRT形式の字幕に変換し、<a rel="noopener" target="_blank" href="https://support.google.com/youtube/answer/2734796?hl=ja">YouTubeの字幕としてアップロード<span class="fa fa-share-square external-icon anchor-icon"></span></a>することで、どうにかこうにかYouTubeで字幕として閲覧できるようにした。</p>
<p><a rel="noopener" target="_blank" href="https://gist.github.com/pingval/30a050c8f61205f4340d684a17995f54">チャットの重複を削除<span class="fa fa-share-square external-icon anchor-icon"></span></a>したり、<a rel="noopener" target="_blank" href="https://gist.github.com/pingval/7ceccc99f92e5450392085673f117daf">連結<span class="fa fa-share-square external-icon anchor-icon"></span></a>したり、<a rel="noopener" target="_blank" href="https://gist.github.com/pingval/ae9fd4d77d52f801782844b49acbe036">一部の区間を削除<span class="fa fa-share-square external-icon anchor-icon"></span></a>したい場合は自分でスクリプトを書いてなんとかした。</p>
<div id="attachment_20879" style="width: 637px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-srt.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-20879" class="size-full wp-image-20879" src="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-srt.png" alt="" width="627" height="453" srcset="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-srt.png 627w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-srt-300x217.png 300w" sizes="(max-width: 627px) 100vw, 627px" /></a><p id="caption-attachment-20879" class="wp-caption-text">TwitchChatToSubtitlesUIの出力設定</p></div>
<p><a rel="noopener" target="_blank" href="https://gist.github.com/Cqoicebordel/d9110b4b1191b9e9f6a8165438e00ea0">よりTwitchチャットに寄せた字幕を出力できるスクリプト<span class="fa fa-share-square external-icon anchor-icon"></span></a>もあったが、試したところうまくいかなかった。今見るとなんかコメント欄に<a rel="noopener" target="_blank" href="https://github.com/saulm314/TwitchChatOffset">新しいやつ<span class="fa fa-share-square external-icon anchor-icon"></span></a>があった。こいつはどうなのだろう？</p>
<h2><span id="toc7">なんとか楽して録画再配信したい</span></h2>
<p>高機能シーンスイッチャープラグインのマクロでどうにかした。待機画面シーンでは5分以上待機するか再生予定時刻になると再放送シーンへ切り替え、再放送シーンでは録画の再生が終了すると次の待機画面シーンへ切り替え、を繰り返す。ひとつの録画につきふたつのマクロを設定しているためマクロがやたら多くなるが、録画と録画の間でしっかり待機画面に切り替えるにはこうしないといけなさそうな感じ。</p>
<div id="attachment_20872" style="width: 1160px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-20872" class="size-full wp-image-20872" src="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-1.png" alt="" width="1150" height="748" srcset="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-1.png 1150w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-1-300x195.png 300w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-1-1024x666.png 1024w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-1-768x500.png 768w" sizes="(max-width: 1150px) 100vw, 1150px" /></a><p id="caption-attachment-20872" class="wp-caption-text">録画再配信マクロ1</p></div>
<div id="attachment_20878" style="width: 1157px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-2-1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-20878" class="size-full wp-image-20878" src="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-2-1.png" alt="" width="1147" height="449" srcset="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-2-1.png 1147w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-2-1-300x117.png 300w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-2-1-1024x401.png 1024w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-rerun-2-1-768x301.png 768w" sizes="(max-width: 1147px) 100vw, 1147px" /></a><p id="caption-attachment-20878" class="wp-caption-text">録画再配信マクロ2</p></div>
<h2><span id="toc8">解説者による音声切り替え</span></h2>
<p>並走で解説者がゲーム音声を切り替える仕組みがあれば、解説者の意図するゲーム音声に最小のラグで切り替えることができ、しかも配信管理の仕事を減らせるのでなんとかならんかなーと思って高機能シーンスイッチャープラグインの機能一覧を眺めていた。するとTwitchのチャットをトリガーに設定できるのに気付いたため当初の予定にはなかったが並走用OBSに組み込んでみた。要求するTwitchアカウントのトークン権限は「ライブストリームのチャットメッセージを表示します」だけでok。</p>
<div id="attachment_20887" style="width: 1011px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-switchtwitch.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-20887" class="size-full wp-image-20887" src="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-switchtwitch.png" alt="" width="1001" height="469" srcset="https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-switchtwitch.png 1001w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-switchtwitch-300x141.png 300w, https://rtagamers.com/wp-content/uploads/2025/12/pingval-lss2025tech-switchtwitch-768x360.png 768w" sizes="(max-width: 1001px) 100vw, 1001px" /></a><p id="caption-attachment-20887" class="wp-caption-text">(ChForSwitch)チャンネルのモデレータが同チャンネルで「1」か「１」と発言するとトリガーされる設定</p></div>
<p>改善案としては、<a rel="noopener" target="_blank" href="https://streamkit.discord.com/overlay">Discord OverlayのChat Widget<span class="fa fa-share-square external-icon anchor-icon"></span></a>を高機能シーンスイッチャープラグインのOCR機能で読み取るようにすればDiscord内だけで完結するので次やるときはそうしてみたい。</p>
<h2><span id="toc9">おわりに</span></h2>
<p><a rel="noopener" target="_blank" href="https://drive.google.com/file/d/1LK6B-G7jfaaYYQGmXfI7EWgmsX8Gt6Rt/view?usp=drive_link">Twitch配信の自動復旧・チャット表示・録画再配信のサンプルのOBSパッケージはこちら<span class="fa fa-share-square external-icon anchor-icon"></span></a>。今回はマイクのフィルタや音声バランス調整に課題が残ったので、次はその辺をいい感じにやりたいと思ってます。</p>
<hr />
<p>アドのカレも残りあと3日。明日は炒飯さんの記事です！</p>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img alt='ping値' src='https://secure.gravatar.com/avatar/b649d43ea58d23ae05557a5941e1f4599d92480b85d659eeec00ca178351e568?s=100&#038;d=blank&#038;r=g' srcset='https://secure.gravatar.com/avatar/b649d43ea58d23ae05557a5941e1f4599d92480b85d659eeec00ca178351e568?s=200&#038;d=blank&#038;r=g 2x' class='avatar avatar-100 photo' height='100' width='100' itemprop="image"/></div><div class="saboxplugin-authorname"><a rel="author" href="https://rtagamers.com/author/pingval/" class="vcard author"><span class="fn">ping値</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>主に長時間RPGや東方STGを走ったり調べたりする。<br />
アスカ見参は元動画勢。</p>
</div></div><div class="saboxplugin-web "><a rel="nofollow noopener" target="_blank" href="http://pingval.g1.xrea.com/">pingval.g1.xrea.com/<span class="fa fa-share-square external-icon anchor-icon"></span></a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a rel="nofollow noopener" target="_blank" title="Twitter" href="https://twitter.com/pingval" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span><span class="fa fa-share-square external-icon anchor-icon"></span></a><a rel="nofollow noopener" target="_blank" title="Youtube" href="https://www.youtube.com/user/letrangerstranger" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span><span class="fa fa-share-square external-icon anchor-icon"></span></a><a rel="nofollow noopener" target="_blank" title="Github" href="https://github.com/pingval" class="saboxplugin-icon-color"><svg class="sab-github" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".3" width="500" height="500" fill="#4078c0" /><polygon class="st1" points="500.3 311.2 500.3 500.3 304.6 500.3 152.3 347.3 138.3 313.5 131 246.6 161.7 162.6 237 145.9 342.1 152.8" /><path class="st2" d="m205.4 331.2c0 1.1-1.3 2-2.8 2-1.8 0.2-3.1-0.7-3.1-2 0-1.1 1.3-2 2.8-2 1.6-0.2 3.1 0.7 3.1 2zm-17.1-2.5c-0.4 1.1 0.7 2.4 2.4 2.7 1.4 0.5 3.1 0 3.4-1.1s-0.7-2.4-2.4-2.8c-1.4-0.5-3 0.1-3.4 1.2zm24.2-0.9c-1.6 0.4-2.7 1.4-2.5 2.7 0.2 1.1 1.6 1.8 3.2 1.4s2.7-1.4 2.5-2.5c-0.1-1.1-1.6-1.8-3.2-1.6zm36.1-209.9c-76 0-134.1 57.7-134.1 133.6 0 60.7 38.2 112.7 92.8 131 7 1.3 9.5-3.1 9.5-6.6 0-3.4-0.2-22.1-0.2-33.6 0 0-38.3 8.2-46.4-16.3 0 0-6.2-15.9-15.2-20 0 0-12.5-8.6 0.9-8.4 0 0 13.6 1.1 21.1 14.1 12 21.1 32.1 15.1 39.9 11.4 1.3-8.8 4.8-14.8 8.8-18.5-30.6-3.4-61.5-7.8-61.5-60.5 0-15.1 4.2-22.6 12.9-32.3-1.4-3.6-6.1-18.2 1.4-37.2 11.4-3.6 37.8 14.8 37.8 14.8 11-3.1 22.7-4.7 34.4-4.7s23.4 1.6 34.4 4.7c0 0 26.3-18.4 37.8-14.8 7.5 19 2.8 33.6 1.4 37.2 8.8 9.7 14.1 17.3 14.1 32.3 0 52.8-32.3 57.1-62.9 60.5 5 4.3 9.3 12.5 9.3 25.4 0 18.5-0.2 41.3-0.2 45.8 0 3.6 2.5 7.9 9.5 6.6 54.8-18.2 91.9-70.2 91.9-130.9 0.1-75.9-61.5-133.6-137.4-133.6zm-80.9 188.9c-0.7 0.5-0.5 1.8 0.4 2.8 0.9 0.9 2.1 1.3 2.8 0.5 0.7-0.5 0.5-1.8-0.4-2.8-0.8-0.8-2-1.2-2.8-0.5zm-5.9-4.5c-0.4 0.7 0.2 1.6 1.3 2.1 0.9 0.5 2 0.4 2.4-0.4 0.4-0.7-0.2-1.6-1.3-2.1-1.1-0.3-2-0.1-2.4 0.4zm17.8 19.5c-0.9 0.7-0.5 2.4 0.7 3.4 1.3 1.3 2.8 1.4 3.6 0.5 0.7-0.7 0.4-2.4-0.7-3.4-1.3-1.2-2.9-1.3-3.6-0.5zm-6.3-8c-0.9 0.5-0.9 2 0 3.2 0.9 1.3 2.4 1.8 3.1 1.3 0.9-0.7 0.9-2.1 0-3.4-0.8-1.3-2.2-1.8-3.1-1.1z" /></svg></span><span class="fa fa-share-square external-icon anchor-icon"></span></a><a rel="nofollow noopener" target="_blank" title="Twitch" href="https://www.twitch.tv/pingval" class="saboxplugin-icon-color"><svg class="sab-twitch" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.2" y=".4" width="500" height="500" fill="#6441a5" /><polygon class="st1" points="499.8 247.3 499.8 500.4 283 500.4 135.5 351.6 162 142.3 324 138.3 380.2 128" /><path class="st2" d="m152.7 128l-17.2 44v179.7h61.2v32.5h34.4l32.5-32.5h49.7l66.9-66.9v-156.8h-227.5zm204.6 145.3l-38.3 38.2h-61.2l-32.4 32.5v-32.5h-51.6v-160.6h183.5v122.4zm-38.3-78.4v66.8h-22.9v-66.8h22.9zm-61.1 0v66.8h-22.9v-66.8h22.9z" /></svg></span><span class="fa fa-share-square external-icon anchor-icon"></span></a></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://rtagamers.com/rta-tools/lss2025-tech/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Long Speedrun Summit 2023 の技術的なお話</title>
		<link>https://rtagamers.com/rta-tools/lss2023-tech/</link>
					<comments>https://rtagamers.com/rta-tools/lss2023-tech/#respond</comments>
		
		<dc:creator><![CDATA[ping値]]></dc:creator>
		<pubDate>Wed, 20 Dec 2023 22:00:02 +0000</pubDate>
				<category><![CDATA[RTAイベント]]></category>
		<category><![CDATA[RTAツール]]></category>
		<category><![CDATA[RTAイベント技術]]></category>
		<guid isPermaLink="false">https://rtagamers.com/?p=18248</guid>

					<description><![CDATA[この記事はRTAGamers Advent Calendar 2023の21日目の記事です。 目次 はじめにポータブルOBSの配布待機画面の仕込みFossabotスケジュール進行を可視化するスプレッドシートRTA in  [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>この記事は<a rel="noopener" target="_blank" href="https://adventar.org/calendars/9406">RTAGamers Advent Calendar 2023<span class="fa fa-share-square external-icon anchor-icon"></span></a>の21日目の記事です。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">ポータブルOBSの配布</a><ol><li><a href="#toc3" tabindex="0">待機画面の仕込み</a></li></ol></li><li><a href="#toc4" tabindex="0">Fossabot</a></li><li><a href="#toc5" tabindex="0">スケジュール進行を可視化するスプレッドシート</a></li><li><a href="#toc6" tabindex="0">RTA in Japan の Twitterクライアント</a></li><li><a href="#toc7" tabindex="0">おわりに</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">はじめに</span></h2>
<p>どうも。長時間RTAのイベント<a rel="noopener" target="_blank" href="https://www.twitch.tv/longspeedrunsummit">Long Speedrun Summit<span class="fa fa-share-square external-icon anchor-icon"></span></a>(以下LSS)運営のひとりping値と申します。この記事では、今年の9月に開催した『<a href="https://rtagamers.com/rta-events/lss2023-schedule/">Long Speedrun Summit 2023</a>』(以下LSS2023)の舞台裏で使っていた技術について、筆者が関わっていたやつを簡単に紹介します。</p>
<h2><span id="toc2">ポータブルOBSの配布</span></h2>
<p>LSSの配信形式は基本的にTwitchのLSSチャンネルのストリームキーを走者に配布しそのストリームキーを使って配信していただくというもの。<a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=0dzJShw1ASg">AGDQ2023に参加<span class="fa fa-share-square external-icon anchor-icon"></span></a>したLSS運営<a rel="noopener" target="_blank" href="https://twitter.com/muratyu_201">らちゅ<span class="fa fa-share-square external-icon anchor-icon"></span></a>氏(なおLSS主催<a rel="noopener" target="_blank" href="https://twitter.com/KeynNaka">Naka<span class="fa fa-share-square external-icon anchor-icon"></span></a>氏も<a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=MYPL_1AYtVw">参加した<span class="fa fa-share-square external-icon anchor-icon"></span></a>。うひょ～)から、GDQで走者へ展開されていたポータブルOBSをLSSでも利用してはどうかという提案があった。</p>
<p>ある程度設定を済ませたOBSを走者へ配布することによってLSS用の設定が簡単になる上、走者のストリームキー取り違えによる誤配信の防止と、運営が前もって映像と音量のチェックを済ませることによるボランティアの配信チェック業務の削減を見込んで導入。設定は主にらちゅ氏と筆者が行った。ポータブルOBSは<a rel="noopener" target="_blank" href="https://mysrtafes.com/">不思議のダンジョンRTAフェス<span class="fa fa-share-square external-icon anchor-icon"></span></a>でも用いられていたので、それも参考にさせていただいた。</p>
<p>走者には配信テストをなるべく本番と近い環境でしていただき、運営はその配信録画をチェックしていった。OBSのブラウザソースでURL<code>https://player.twitch.tv/?enableExtensions=true&amp;muted=false&amp;parent=twitch.tv&amp;player=popout&amp;quality=chunked&amp;video=(TwitchダイジェストURLの数字部分)&amp;volume=1.00</code>を開いて視聴し、音量メーターの動きや音声モニタリングで聞こえる音声を元に音量調整や音声フィルタの修正依頼を行った。シークやビデオデータの閲覧は、ブラウザソースの対話画面から行える。</p>
<div id="attachment_18320" style="width: 996px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-browsersource.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-18320" class="wp-image-18320 size-full" src="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-browsersource.jpg" alt="" width="986" height="743" srcset="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-browsersource.jpg 986w, https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-browsersource-300x226.jpg 300w, https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-browsersource-768x579.jpg 768w" sizes="(max-width: 986px) 100vw, 986px" /></a><p id="caption-attachment-18320" class="wp-caption-text">Twitchダイジェストを開いたOBSブラウザソースの対話画面</p></div>
<p>設定共有・誤配信防止・ボランティアの配信チェック業務の削減という当初の狙いはうまくいったのだが……運営からのポータブルOBSとマニュアルの展開がイベント開催の1週間前と遅かったため、走者解説の方々にバタバタさせてしまったのが反省点。テスト配信の録画チェックも短期間で量を捌く必要がありとても大変だった。次回はもっと早くに走者へ展開しましょう&#x1f62d;</p>
<h3><span id="toc3">待機画面の仕込み</span></h3>
<p>配信の終わり1分程度のTwitchの配信録画に残らない現象(LSS2022で一度あった)への対策として、LSS2023ではゲーム終了後、待機画面に切り替えて1分経過してから配信終了するようにしていた。</p>
<p>この「待機画面に切り替えて1分経過してから配信終了」の流れをポータブルOBS上で自動化するために、OBSプラグイン<a rel="noopener" target="_blank" href="https://github.com/WarmUpTill/SceneSwitcher">Advanced scene switcher<span class="fa fa-share-square external-icon anchor-icon"></span></a>(以下advss)をポータブルOBSに同梱し、「##配信終了画面##シーンに切り替えて60秒経過」すると「配信を終了かつ録画を終了」するマクロを仕込んでいだ。これはLSS独自の施策かな。</p>
<div id="attachment_18317" style="width: 1012px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-18317" class="wp-image-18317 size-full" src="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss1.png" alt="" width="1002" height="680" srcset="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss1.png 1002w, https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss1-300x204.png 300w, https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss1-768x521.png 768w" sizes="(max-width: 1002px) 100vw, 1002px" /></a><p id="caption-attachment-18317" class="wp-caption-text">On startup of OBSをAlways start the scene switcherに設定し、advssを自動スタート</p></div>
<div id="attachment_18318" style="width: 1012px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss2.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-18318" class="wp-image-18318 size-full" src="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss2.png" alt="" width="1002" height="680" srcset="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss2.png 1002w, https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss2-300x204.png 300w, https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-advss2-768x521.png 768w" sizes="(max-width: 1002px) 100vw, 1002px" /></a><p id="caption-attachment-18318" class="wp-caption-text">配信終了マクロ</p></div>
<p>シーン切り替えのクールなトランジション動画はLSS運営<a rel="noopener" target="_blank" href="https://twitter.com/LINE_RN">-m<span class="fa fa-share-square external-icon anchor-icon"></span></a>氏謹製。なお、シーンコレクションの設定ファイル(config/obs-studio/basic/scenes/*.json)にはソースやトランジション動画のパスは絶対パスとして保存されているので、素材を同梱してポータブルOBSとして配布する場合は設定ファイルの絶対パスを相対パスに手動で書き換えておく必要がある点に注意だ。</p>
<p><iframe loading="lazy" title="[LSS23] ゼルダの伝説 ブレスオブザワイルド (Part 1/2)" width="1256" height="707"  data-youtube="eyJ0aXRsZSI6IltMU1MyM10gXHUzMGJjXHUzMGViXHUzMGMwXHUzMDZlXHU0ZjFkXHU4YWFjIFx1MzBkNlx1MzBlY1x1MzBiOVx1MzBhYVx1MzBkNlx1MzBiNlx1MzBlZlx1MzBhNFx1MzBlYlx1MzBjOSAoUGFydCAxXC8yKSIsInZpZGVvX2lkIjoiR0Y0cWlVZXI1VGMifQ==" src="https://www.youtube.com/embed/GF4qiUer5Tc?start=31158&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></p>
<p><span style="font-size: 14px">(待機画面へのトランジションの様子)</span></p>
<p>反省点はトランジション動画が複雑で再生負荷が高かったため配信上の表示が少々ガビガビになったことと、一部の走者の環境では再生がスローになっていたこと。advssは非常に多機能なプラグインなので、他にも面白いことが色々できるかもしれないね。</p>
<p>ところでLSS2023イベント紹介記事のアイキャッチ画像は、実は公開前のトランジション動画からの切り出し。気付いてくれた人はいたかな？</p>

<a href="https://rtagamers.com/rta-events/lss2023-schedule/" title="【イベント紹介】Long Speedrun Summit 2023" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://rtagamers.com/wp-content/uploads/2023/08/pingval-lss2023-schedule-eyecatch-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://rtagamers.com/wp-content/uploads/2023/08/pingval-lss2023-schedule-eyecatch-160x90.jpg 160w, https://rtagamers.com/wp-content/uploads/2023/08/pingval-lss2023-schedule-eyecatch-300x169.jpg 300w, https://rtagamers.com/wp-content/uploads/2023/08/pingval-lss2023-schedule-eyecatch-768x432.jpg 768w, https://rtagamers.com/wp-content/uploads/2023/08/pingval-lss2023-schedule-eyecatch-120x68.jpg 120w, https://rtagamers.com/wp-content/uploads/2023/08/pingval-lss2023-schedule-eyecatch-320x180.jpg 320w, https://rtagamers.com/wp-content/uploads/2023/08/pingval-lss2023-schedule-eyecatch.jpg 800w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【イベント紹介】Long Speedrun Summit 2023</div><div class="blogcard-snippet internal-blogcard-snippet">2023/09/11: 情報を更新しました。Long Speedrun Summit 2023 とは『Long Speedrun Summit』(以下LSS)は、他のRTAイベントで採用数が少ない「長時間RTA」をテーマにしたオンラインRT...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://rtagamers.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">rtagamers.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2023.09.08</div></div></div></div></a>
<h2><span id="toc4">Fossabot</span></h2>
<p>2022年の夏に<a rel="noopener" target="_blank" href="https://www.twitch.tv/rtainjapan">RTA in Japn<span class="fa fa-share-square external-icon anchor-icon"></span></a>や<a rel="noopener" target="_blank" href="https://www.twitch.tv/japanese_restream">Japanese Restream<span class="fa fa-share-square external-icon anchor-icon"></span></a>で<a rel="noopener" target="_blank" href="https://fossabot.com/">Fossabot<span class="fa fa-share-square external-icon anchor-icon"></span></a>が導入されていたのを見て筆者が興味を持ち、LSSでも2023年から導入した。<a rel="noopener" target="_blank" href="https://nightbot.tv/">Nightbot<span class="fa fa-share-square external-icon anchor-icon"></span></a>の上位互換的なbot。非常に高機能なのだが、<a rel="noopener" target="_blank" href="https://docs.fossabot.com/">ドキュメント<span class="fa fa-share-square external-icon anchor-icon"></span></a>が全然整備されていないのが残念(なんとNGワード(Blocked terms)に関する記述がない)。以下が特徴。</p>
<ul>
<li>定期投稿のローテーションができる
<ul>
<li>これはNightbotではできないはず。LSS2023では「イベント詳細→X(Twitter)アカウント→スケジュール→配信切断時の注意→イベント詳細に戻る」というローテーションを30分間隔で定期投稿していた(当初は15分間隔だったが、短すぎたので初日の夜に30分に変更した)。</li>
</ul>
</li>
<li>NGワード(Blocked terms)の設定が充実している
<ul>
<li>当該TwitchチャンネルのモデレーターがFossabotのNGワード設定をさわれる(さわれないようにも設定できる)</li>
<li>正規表現が使える(これ自体はNightbotでも可能)。</li>
<li> NGワードごとの対応が設定できる(削除・タイムアウト・累積タイムアウト・BAN)。
<ul>
<li>累積タイムアウトとは、NGワードの常習犯に対してタイムアウト時間に任意の累積倍率をかけるというもの。</li>
<li>逆にNGワードごとに対応を設定するのが面倒な場合は、<a rel="noopener" target="_blank" href="https://twitter.com/Fossabot/status/1703489303890837542">advanced matching<span class="fa fa-share-square external-icon anchor-icon"></span></a>を有効にして<a rel="noopener" target="_blank" href="https://docs.fossabot.com/keywords/phrase-groups/">Phase Groups<span class="fa fa-share-square external-icon anchor-icon"></span></a>を使うとよいだろう。</li>
</ul>
</li>
</ul>
</li>
<li>URLを弾きつつクリップURLの投稿を許容する設定が簡単にできる。
<ul>
<li>Spam filters &gt; Links filter &gt; Enable clips filteringを有効にする。</li>
<li>一応Nightbotでも Spam Protection &gt;  Links &gt; Whitelist に以下のように入力すれば可能。
<pre>clips.twitch.tv/
~/(www\.)?twitch\.tv\/[^\/]+\/clip\//</pre>
</li>
</ul>
</li>
</ul>
<p>なおFossabotのbotコマンド一覧はこういったURLから確認できる: <a rel="noopener" target="_blank" href="https://fossabot.com/longspeedrunsummit/commands">https://fossabot.com/longspeedrunsummit/commands<span class="fa fa-share-square external-icon anchor-icon"></span></a></p>
<h2><span id="toc5">スケジュール進行を可視化するスプレッドシート</span></h2>
<p>開催期間が長時間に渡るLSSでは、スケジュールの巻き/押しも大きくなる。そこで、イベント関係者や視聴者が本来のスケジュールからの差分を一目で把握できるようなスプレッドシートを用意している。</p>
<ul>
<li><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/e/2PACX-1vR45g9FZrOyxHoFAZsD42oWEXe46-Pyg2SeY2iuu5XUJSyeDAw6Y_Es4O1M0MqSnGDWpE9Xyx_bytbY/pubhtml?gid=2071234142&amp;single=true">Long Speedrun Summit 2022 ゲームスケジュール<span class="fa fa-share-square external-icon anchor-icon"></span></a></li>
<li><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/e/2PACX-1vR99gyhVn4ipShlckrWlL5FeruzfLyNUPupcWrJYkbakfduYh7OmqEXJb8Kk59Xh4ak8C_PtKZr3ZYu/pubhtml?gid=2071234142&amp;single=true">Long Speedrun Summit 2023 ゲームスケジュール<span class="fa fa-share-square external-icon anchor-icon"></span></a></li>
</ul>
<p>これらはwebページとして公開しているが、大本のスプレッドシートはこんな感じ。関係者用のタブには走者からいただいた自己べと平均タイムの情報を載せ、出走見込み時間がわかるようにしている。</p>
<ul>
<li><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1Uunf2qAstz0rIUGdqTTkMpPv8PZLihpqgXvbe-LK8cI/edit?usp=sharing">関係者用<span class="fa fa-share-square external-icon anchor-icon"></span></a></li>
<li><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/e/2PACX-1vRCMUKtrIMn1b3cogpD0ibWubUvues4i1iLBlOkFGFMGP9Gmfu6w3IuCwmHdOZAPvDUTQQdQqvE6Kqu/pubhtml?gid=1893898090&amp;single=true">公開用(webページ)<span class="fa fa-share-square external-icon anchor-icon"></span></a></li>
</ul>
<p>まあGoogleスプレッドシートは多機能なのでスケジュール表に使っても便利なのだが、<a rel="noopener" target="_blank" href="https://horaro.org/rtaij">RTA in Japan<span class="fa fa-share-square external-icon anchor-icon"></span></a>などで使われている<a rel="noopener" target="_blank" href="https://horaro.org/">horaro<span class="fa fa-share-square external-icon anchor-icon"></span></a>と比較すると、欠点はサイトの表示が遅いこと、URLが長すぎること、スマホ等で見にくいことだろうか。</p>
<h2><span id="toc6">RTA in Japan の Twitterクライアント</span></h2>
<p>2022年の秋頃からなんやかんやとゴタゴタしてきた<a rel="noopener" target="_blank" href="https://twitter.com/">X(Twitter)<span class="fa fa-share-square external-icon anchor-icon"></span></a>。多くのRTAイベント同様、昨年のLSS2022ではTwitter管理ボランティアのツイート投稿手段として<a rel="noopener" target="_blank" href="https://blog.twitter.com/ja_jp/a/ja/20150807/tweetdeckteams">TweetDeckのチーム機能<span class="fa fa-share-square external-icon anchor-icon"></span></a>を利用していた。だが、<a rel="noopener" target="_blank" href="https://twitter.com/Support/status/1675990712297443330">2023年7月のTweetDeckの新バーション正式提供開始<span class="fa fa-share-square external-icon anchor-icon"></span></a>と同時にそれができなくなってしまった。</p>
<div id="attachment_18291" style="width: 1223px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-twitter.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-18291" class="wp-image-18291 size-full" src="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-twitter.png" alt="" width="1213" height="350" srcset="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-twitter.png 1213w, https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-twitter-300x87.png 300w, https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-twitter-1024x295.png 1024w, https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-twitter-768x222.png 768w" sizes="(max-width: 1213px) 100vw, 1213px" /></a><p id="caption-attachment-18291" class="wp-caption-text">ひとつのX(Twitter)アカウントから複数人で投稿する方法(筆者の考える限り)</p></div>
<p>LSSは2023年も引き続きTweetDeckのチーム機能を使っていく予定だったのでどうしようどうしようとなった。<a rel="noopener" target="_blank" href="https://help.twitter.com/ja/managing-your-account/how-to-use-the-delegate-feature">アカウント権限の付与機能<span class="fa fa-share-square external-icon anchor-icon"></span></a>を使う(最大5人にしか付与できねー！)とか週末の定期投稿で利用している<a rel="noopener" target="_blank" href="https://botbird.net/">botbird<span class="fa fa-share-square external-icon anchor-icon"></span></a>の即時つぶやき機能を使うなどの案もあったが、最終的には<a rel="noopener" target="_blank" href="https://github.com/RTAinJapan/rta-in-japan-twitter-client">RTA in Japanの公開しているTwitterクライアント<span class="fa fa-share-square external-icon anchor-icon"></span></a>を使うことになった。</p>
<p>このクライアントは実際にRiJのTwitter管理ボランティアの投稿に使われているツール。筆者は元々RiJのTwitter管理ボランティアの経験がありこのクライアントの使いやすさをよく知っていたので重い腰を上げて導入を試み、2,3日の試行錯誤の結果立ち上げに成功した。<a rel="noopener" target="_blank" href="https://github.com/pingval/rta-in-japan-twitter-client">筆者の経験を踏まえて書いた簡単な導入ガイドはこれ<span class="fa fa-share-square external-icon anchor-icon"></span></a>。<a rel="noopener" target="_blank" href="https://twitter.com/XDevelopers/status/1641222782594990080">2023年3月に刷新されたAPIプラン<span class="fa fa-share-square external-icon anchor-icon"></span></a>の<strong>Freeプラン50post/24h</strong>のAPI制限という弱点も、LSS2023の投稿頻度(開始・終了・1時間に1回程度の途中経過ツイート)ならば回避できると見込んでいた。</p>
<div id="attachment_18323" style="width: 247px" class="wp-caption aligncenter"><a href="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-twtable.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-18323" class="wp-image-18323 size-full" src="https://rtagamers.com/wp-content/uploads/2023/12/pingval-lss2023tech-twtable.png" alt="" width="237" height="271" /></a><p id="caption-attachment-18323" class="wp-caption-text">LSS2023開催中のX(Twitter)クライアント投稿回数</p></div>
<p>投稿回数はほぼほぼ想定通りでAPI制限には引っかからなかった。引っかかった場合に備え運営が代理投稿する用意もしていたが、幸いその出番はなかった。</p>
<p>ちなみに昨年のLSS2022ではTweetDeckと投稿文のテンプレとして<a href="https://rtagamers.com/rta-tools/twitter-template-maker/">自作のTwitterテンプレートメーカー</a>を併用していたが、RiJのTwitterクライアントは<strong>テンプレート機能を内蔵</strong>しているため、LSS2023ではテンプレートメーカーはお役御免となった。やったね。</p>
<h2><span id="toc7">おわりに</span></h2>
<p>2022年から10日間ぶっ通しイベント(ひえ～)となったLSSはただでさえ関係者の負担が大きいので、採用している技術は運用コストが低いものが多い……つもりだったがこうして見るとそうでもないかもしれない。まあ他のイベント運営の参考にしていただければ幸いです。</p>
<p>RTAイベントを支える技術に興味のある方は、<a rel="noopener" target="_blank" href="https://twitter.com/hoishinxii">Hoishin<span class="fa fa-share-square external-icon anchor-icon"></span></a>氏の開いている<a rel="noopener" target="_blank" href="https://discord.gg/v6Up2RmzMm">RTAイベントTech Discordサーバー<span class="fa fa-share-square external-icon anchor-icon"></span></a>を覗いてみることをオススメします。筆者もたまに関係ありそうな情報を投稿しています。</p>
<p>また直近では<a rel="noopener" target="_blank" href="https://www.twitch.tv/nagoyarta">名古屋RTA Meeting<span class="fa fa-share-square external-icon anchor-icon"></span></a>主催にして<a href="https://rtagamers.com/">RTAGamers</a>主催でもある<a rel="noopener" target="_blank" href="https://twitter.com/hukujunn">HiST<span class="fa fa-share-square external-icon anchor-icon"></span></a>氏が開いた<a rel="noopener" target="_blank" href="https://www.twitch.tv/videos/2008920575">RTAイベント意見交換会<span class="fa fa-share-square external-icon anchor-icon"></span></a>なんてのもありました。要チェックやで！</p>

<a rel="noopener" target="_blank" href="https://twitter.com/NagoyaRTA/status/1734890406192566464" title="https://twitter.com/NagoyaRTA/status/1734890406192566464" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Ftwitter.com%2FNagoyaRTA%2Fstatus%2F1734890406192566464?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://twitter.com/NagoyaRTA/status/1734890406192566464</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://twitter.com/NagoyaRTA/status/1734890406192566464" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">twitter.com</div></div></div></div></a>
<hr />
<p>明日は桜葵月*owqi(おうきづき)さんの記事『発売24周年を迎えた「XI JUMBO」のRTAを深掘りしてみようの巻』です。</p>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img alt='ping値' src='https://secure.gravatar.com/avatar/b649d43ea58d23ae05557a5941e1f4599d92480b85d659eeec00ca178351e568?s=100&#038;d=blank&#038;r=g' srcset='https://secure.gravatar.com/avatar/b649d43ea58d23ae05557a5941e1f4599d92480b85d659eeec00ca178351e568?s=200&#038;d=blank&#038;r=g 2x' class='avatar avatar-100 photo' height='100' width='100' itemprop="image"/></div><div class="saboxplugin-authorname"><a rel="author" href="https://rtagamers.com/author/pingval/" class="vcard author"><span class="fn">ping値</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>主に長時間RPGや東方STGを走ったり調べたりする。<br />
アスカ見参は元動画勢。</p>
</div></div><div class="saboxplugin-web "><a rel="nofollow noopener" target="_blank" href="http://pingval.g1.xrea.com/">pingval.g1.xrea.com/<span class="fa fa-share-square external-icon anchor-icon"></span></a></div><div class="clearfix"></div><div class="saboxplugin-socials sabox-colored"><a rel="nofollow noopener" target="_blank" title="Twitter" href="https://twitter.com/pingval" class="saboxplugin-icon-color"><svg class="sab-twitter" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M 9.398 6.639 L 16.922 17.361 L 14.922 17.361 L 7.412 6.639 L 9.398 6.639 Z M 24.026 24.026 L -0.026 24.026 L -0.026 -0.026 L 24.026 -0.026 L 24.026 24.026 Z M 19.4 18.681 L 13.807 10.677 L 18.379 5.319 L 16.627 5.319 L 13.014 9.541 L 10.065 5.319 L 4.921 5.319 L 10.187 12.846 L 5.193 18.681 L 6.975 18.681 L 10.985 13.983 L 14.269 18.681 L 19.4 18.681 Z" />
</svg></span><span class="fa fa-share-square external-icon anchor-icon"></span></a><a rel="nofollow noopener" target="_blank" title="Youtube" href="https://www.youtube.com/user/letrangerstranger" class="saboxplugin-icon-color"><svg class="sab-youtube" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".4" y="-.3" width="500" height="500" fill="#ff0000" /><polygon class="st1" points="500.4 311.3 500.4 499.7 311.8 499.7 139.5 326.7 205 196.6 360.9 172.5" /><path class="st2" d="m371.3 188.8c-2.9-10.9-11.4-19.5-22.3-22.4-19.7-5.3-98.6-5.3-98.6-5.3s-78.9 0-98.6 5.3c-10.9 2.9-19.4 11.5-22.3 22.4-5.3 19.8-5.3 61.1-5.3 61.1s0 41.3 5.3 61.1c2.9 10.9 11.4 19.2 22.3 22.1 19.7 5.3 98.6 5.3 98.6 5.3s78.9 0 98.6-5.3c10.9-2.9 19.4-11.2 22.3-22.1 5.3-19.8 5.3-61.1 5.3-61.1s0-41.3-5.3-61.1zm-146.7 98.6v-75l65.9 37.5-65.9 37.5z" /></svg></span><span class="fa fa-share-square external-icon anchor-icon"></span></a><a rel="nofollow noopener" target="_blank" title="Github" href="https://github.com/pingval" class="saboxplugin-icon-color"><svg class="sab-github" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x=".3" y=".3" width="500" height="500" fill="#4078c0" /><polygon class="st1" points="500.3 311.2 500.3 500.3 304.6 500.3 152.3 347.3 138.3 313.5 131 246.6 161.7 162.6 237 145.9 342.1 152.8" /><path class="st2" d="m205.4 331.2c0 1.1-1.3 2-2.8 2-1.8 0.2-3.1-0.7-3.1-2 0-1.1 1.3-2 2.8-2 1.6-0.2 3.1 0.7 3.1 2zm-17.1-2.5c-0.4 1.1 0.7 2.4 2.4 2.7 1.4 0.5 3.1 0 3.4-1.1s-0.7-2.4-2.4-2.8c-1.4-0.5-3 0.1-3.4 1.2zm24.2-0.9c-1.6 0.4-2.7 1.4-2.5 2.7 0.2 1.1 1.6 1.8 3.2 1.4s2.7-1.4 2.5-2.5c-0.1-1.1-1.6-1.8-3.2-1.6zm36.1-209.9c-76 0-134.1 57.7-134.1 133.6 0 60.7 38.2 112.7 92.8 131 7 1.3 9.5-3.1 9.5-6.6 0-3.4-0.2-22.1-0.2-33.6 0 0-38.3 8.2-46.4-16.3 0 0-6.2-15.9-15.2-20 0 0-12.5-8.6 0.9-8.4 0 0 13.6 1.1 21.1 14.1 12 21.1 32.1 15.1 39.9 11.4 1.3-8.8 4.8-14.8 8.8-18.5-30.6-3.4-61.5-7.8-61.5-60.5 0-15.1 4.2-22.6 12.9-32.3-1.4-3.6-6.1-18.2 1.4-37.2 11.4-3.6 37.8 14.8 37.8 14.8 11-3.1 22.7-4.7 34.4-4.7s23.4 1.6 34.4 4.7c0 0 26.3-18.4 37.8-14.8 7.5 19 2.8 33.6 1.4 37.2 8.8 9.7 14.1 17.3 14.1 32.3 0 52.8-32.3 57.1-62.9 60.5 5 4.3 9.3 12.5 9.3 25.4 0 18.5-0.2 41.3-0.2 45.8 0 3.6 2.5 7.9 9.5 6.6 54.8-18.2 91.9-70.2 91.9-130.9 0.1-75.9-61.5-133.6-137.4-133.6zm-80.9 188.9c-0.7 0.5-0.5 1.8 0.4 2.8 0.9 0.9 2.1 1.3 2.8 0.5 0.7-0.5 0.5-1.8-0.4-2.8-0.8-0.8-2-1.2-2.8-0.5zm-5.9-4.5c-0.4 0.7 0.2 1.6 1.3 2.1 0.9 0.5 2 0.4 2.4-0.4 0.4-0.7-0.2-1.6-1.3-2.1-1.1-0.3-2-0.1-2.4 0.4zm17.8 19.5c-0.9 0.7-0.5 2.4 0.7 3.4 1.3 1.3 2.8 1.4 3.6 0.5 0.7-0.7 0.4-2.4-0.7-3.4-1.3-1.2-2.9-1.3-3.6-0.5zm-6.3-8c-0.9 0.5-0.9 2 0 3.2 0.9 1.3 2.4 1.8 3.1 1.3 0.9-0.7 0.9-2.1 0-3.4-0.8-1.3-2.2-1.8-3.1-1.1z" /></svg></span><span class="fa fa-share-square external-icon anchor-icon"></span></a><a rel="nofollow noopener" target="_blank" title="Twitch" href="https://www.twitch.tv/pingval" class="saboxplugin-icon-color"><svg class="sab-twitch" viewBox="0 0 500 500.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect class="st0" x="-.2" y=".4" width="500" height="500" fill="#6441a5" /><polygon class="st1" points="499.8 247.3 499.8 500.4 283 500.4 135.5 351.6 162 142.3 324 138.3 380.2 128" /><path class="st2" d="m152.7 128l-17.2 44v179.7h61.2v32.5h34.4l32.5-32.5h49.7l66.9-66.9v-156.8h-227.5zm204.6 145.3l-38.3 38.2h-61.2l-32.4 32.5v-32.5h-51.6v-160.6h183.5v122.4zm-38.3-78.4v66.8h-22.9v-66.8h22.9zm-61.1 0v66.8h-22.9v-66.8h22.9z" /></svg></span><span class="fa fa-share-square external-icon anchor-icon"></span></a></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://rtagamers.com/rta-tools/lss2023-tech/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
