最近、ネタ切れで困っているので今回はネタ記事です。
Contents
SHOWROOMをわからないなりに説明する
SHOWROOMは『仮想ライブ空間』をキャッチコピーとし、アイドルやタレントがライブ配信して視聴者とコミュニケーションを楽しむウェブサイトとして2013年11月25日に開始されたサービスです。AKBグループ、坂道シリーズなどのアイドル、LIVE、お笑い、JUNON、アニメ、バーチャルキャラクターなど多彩なジャンルの番組を配信しています。
どうでもいい話かもしれませんが、鳩でもわかるC#管理人はこの方を推しています。
琴音麗華アイドル編???? 配信中!!https://t.co/oPx30cgUha
— 鳩でもわかるC# (@THE_RANRAN) April 11, 2023
ところで注意することがあります。それは「NextLive 時刻」と書かれているときに「そうか、この時間になったら開始なのか」と期待してその時刻にページを読み込むと「NextLive 未定」となってしまうことがあることです。これは実際の配信時刻から少しでも遅れると次の予定時刻を表示するような仕様になっているからです。そこで「なんだ。今日は配信やらねーのかよ」と考えずにしばらく待ちましょう。1分くらいしてリロードすると普通に配信が始まっている場合が多々あります。
時間になったので喜び勇んでアクセスすると「あれ?」
肝心の配信時刻ですが、配信者のプロフィールとか配信者のファンルーム(配信者によっては存在しない場合がある)に書かれています。予定変更で中止のときはその旨が書かれているはずです。
予定どおり配信はおこなわれるようです。
それからいつもお世話になっているプログラミング配信系YouTuberのT.Umezawa氏にも応援要請をしてみたのですが、鳩でもわかるC#管理人である私には彼とその仲間たちがどのように行動するかは予想することもコントロールすることもできません。
どうでもいい話かもしれませんが・・・と前置きしているわりにはずいぶん長々と説明してしまいました。
キーワードは承認欲求?
SHOWROOMでは視聴者が配信者にコメントやギフトアイテムを送ることができ、それによって配信を盛り上がらせる仕組みが存在します。これは視聴者の自己承認欲求を利用したうまい方法です。自分の成功を諦めた者が相手の成功を願って応援するのです。彼ら彼女らは自己の代理人であり、彼ら彼女らの成功が己の承認欲求を満たすのです。それをわかっていながら鳩でもわかるC#管理人はこんなものに時間を費やしてしまっています。
さて自分が応援したい配信者のためにできることは何でしょうか? そのひとつがギフティングです。アイテムを投げることで配信者の評価が高くなります。またファンにはファンでファンレベルが存在し、たくさんギフティングすることでファンである自分の順位が上がり、コメントを拾ってもらいやすくなるのです。こうしてあなたの承認欲求が満たされることになるのです。
アイテムは有料のものと無料のものがあります。なかには高額のアイテムを大量に投下する猛者が存在しますが、一般人にはそんな財力は存在しません。そのため一般人は配信中にコメントをしてもコメントは拾われず、あなたの承認欲求は永久に満たされることはないのです。
無料でできる自己満足?
しかし無料であってもできることはあります。それが星投げです。
星は無料で手に入れることができます。一定時間他の人の配信を視聴することで50個の星を手に入れることができます。それを応援したい配信者に投げるのです。しかし当然のことながらこれは無制限にできるわけではありません。制限があります。その制限が1時間で獲得できる星の数は500個まで(1回あたり50個、それを10回まで)であるということです。もうひとつの制限は星は最大で495個までしか所持できないということです。
効果的な方法は?
ではできるだけ多くの星を投げるためにはどうすればいいのでしょうか?
配信が開始されるまでに星を貯めておく
配信が開始されたら星を投げ、他のルームにいって星をもらいそれも応援したい配信者に投げる
この方法なら配信時間が1時間の場合、配信が開始されるまでに貯めておいだ495個の星と、1時間で星を500個獲得できるので、あわせて995個の星を投げることができます。これだけのギフティングを有料アイテムを購入することでおこなおうとすると995円かかります。約1000円分と同じことを無料でできてしまうのです。
捨て星の重要性
しかし、もっといい方法があります。それが捨て星というテクニックです。
1時間で獲得できる星の数は500個までです。ではその「1時間」とはいつからいつまでの1時間なのでしょうか? 最初に星を獲得したときを起点とした場合の1時間です。
そこで配信時間が1時間ということにして、最大の効果を得たいのであれば以下のような方法をとります。
配信が開始されるまでに星を貯めておく
配信開始30分前に別のルームに入って星をもらう
(実際には最大495個という制限のため星はもらえません。そのためもらえるものがもらえないので「捨て星」と呼ばれる)
配信が開始されたら星を投げる
(すぐに投げること。このときも星をもらうことができるが最大495個という制限にひっかかるとロスが発生する)
他のルームにいって星をもらいそれを投げる
(これを8回繰り返すことができる。10回ではなく8回なのは捨て星と配信開始時の獲得分があるため)
配信が開始されてから30分経過したら捨て星を起点とした1時間が経過したことになるので制限解除になる(ココが重要)
そのため配信開始から30分経過後にさらに合計500個の星をタダで集めることができる
この方法なら995個しか投げられない前述の方法と比べると500個余分に星を投げることができるのです。
捨て星をするのとしないのとでは1.5倍の違いがあります。
注意点
ところで注意しなければならないことがあります。それは捨て星をする時刻はそれが1時間制限の起点になるようにしなければ意味をなさないということです。
ここで失敗すると困るので配信者のなかには「配信開始 12:00 回収 10:10まで / 捨て星 11:10~11:20」とわかりやすく時間指定してくれている方もいます。配信開始時刻が12:00であるなら星の回収は10分もあればできるはずなので、規制解除時刻が12:10~20になるように捨て星をするのがベストというわけです。
また捨て星を捨て星として機能させるためには捨て星をする1時間以上前(この例では遅くとも10:10)までに星を満タン(最大数である495個)にしておかなければなりません。といっても実際には10:10よりも遅くてもかまいません。星回収を開始するのが10:10より少し早ければ、11:10は規制解除後のはじめての星獲得時間になるので、これは捨て星として機能します。ただちょっとした時間のズレで捨て星をしたつもりになっていたら実はそうではなかったということも起きうるので、捨て星をする1時間前には回収は完了させておいたほうがよいです。
ようやく本題
さて、前置きが長くなってしまいましたが、ここからが本題です。これから配信開始時刻から捨て星をするタイミングと星回収を完了させておくべき時刻を表示させるアプリをつくります。記事冒頭でいきなり「SHOWROOMで捨て星するタイミングを通知するアプリをつくる」と書いてしまうと「SHOWROOM?知らんがな」「捨て星も知らんがな」となってしまうので前置きをさせていただきました。
HTML部分
HTML部分を示します。配信開始時刻を入力して計算をクリックすると捨て星をする時刻と回収作業を完了させておくべき時刻を表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>星捨てのタイミング教えます</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .content { margin: 30px; } #hour { margin-left: 20px; width: 50px; } #minute { width: 50px; } #button { width: 50px; margin-top: 20px; } </style> </head> <body> <div class = "content"> <p>半角数字で入力してください</p> <label for="name">配信開始時刻</label> <input type="text" id="hour"> 時 <input type="text" id="minute"> 分<br> <input type="button" id="button" value="計算" onclick="run()"><br> <br> <div id = 'result1'></div> <br> <a href="./kaisyu-time.zip" target="_blank" rel="noopener">星捨てと規制解除時刻を知らせてくれるシンプルなアプリ</a> </div> <script type="text/javascript" src="./app.js"></script> </body> </html> |
JavaScript部分
配信開始時刻をもとに捨て星をする時刻と回収作業を完了させておくべき時刻を調べます。計算法は配信開始時刻の50分前、40分前、110分前を取得しているだけです。
app.js
初期状態で12:00を指定しておきます。
1 2 |
document.getElementById('hour').value = 12; document.getElementById('minute').value = '00'; |
配信開始時刻の50分前、40分前、110分前を計算します。表示させるのは時と分だけなので(月と日は考慮しない)、現在時刻を取得したあとsetHours関数で配信開始時刻をセットしています。そこからgetTime関数で値を取得し、そこから40分、50分、110分を減算した値をsetTime関数でセットしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
function run(){ let hour = Number(document.getElementById('hour').value); let minute = Number(document.getElementById('minute').value); // 配信開始時刻(この方法だと現在時刻より過去になる場合があるが問題ない) let start = new Date(); start.setHours(hour, minute, 0); let hoshisuteDate1 = new Date(); // 星捨て時刻をうけとる変数(1) let hoshisuteDate2 = new Date(); // 星捨て時刻をうけとる変数(2) let kaisyuuDate = new Date(); // 回収時刻をうけとる変数 var time = start.getTime(); hoshisuteDate1.setTime(time - 50 * 60 * 1000); // 星捨ては50分前~40分前 hoshisuteDate2.setTime(time - 40 * 60 * 1000); kaisyuuDate.setTime(time - 110 * 60 * 1000); // 回収は110分前に終わらせること let str1 = ZeroUmeToString(kaisyuuDate.getHours()) + ':' + ZeroUmeToString(kaisyuuDate.getMinutes()); let str2 = ZeroUmeToString(hoshisuteDate1.getHours()) + ':' + ZeroUmeToString(hoshisuteDate1.getMinutes()) + ' ~ ' + ZeroUmeToString(hoshisuteDate2.getHours()) + ':' + ZeroUmeToString(hoshisuteDate2.getMinutes()); document.getElementById('result1').style.fontWeight = 'bold'; document.getElementById('result1').textContent = `回収 ${str1}まで / 捨て星 ${str2}` } |
取得された値が一桁の場合は先頭に0をつけて2桁にして表示させるために、引数が10未満の場合は先頭に0をつけた文字列を、それ以外は引数を文字列を返す関数を定義します。
1 2 3 4 5 6 7 8 |
function ZeroUmeToString(value){ let ret = ''; if(value < 10) ret = '0' + value; else ret = '' + value; return ret; } |
…..✍(・∀・*)なるほどぉ.…