こんにちは、tosumaです。
今回はFFRKのファンサイトついての記事です。技術的な話なのでプログラムやシステムについてご興味のある方はお時間いただけると幸いです。
●過去記事
【FFRK】ランキングサイトを作りました - tosumalog
【FFRK】ランキングサイトを作りました(技術話) - tosumalog
【FFRK】装備召喚の集計ツールを作りました(あとがき) - tosumalog
【FFRK】第2回装備召喚ランキングのあとがき - tosumalog
1|まえおき
今年も昨年同様に8月1日からFFRKでノーマル装備召喚の10連チケットが毎日配布されることになりましたので、以前作成した仕組みを流用して毎日の装備召喚結果をシェアできる仕組みを作りました。
詳細は以下に記載しております。
今回、8月初旬は私が入院(肺炎)していたのでちゃんと運用できるか実はかなり不安だったんですが、多少の不具合や頂いたアイデアを元にイベント中に改善しつつ、無事にイベントを完走できました。ご参加頂いた方をはじめ、アドバイスや意見を頂いた方、本当に有難うございました。
3回目となる今回は新たな試みでもあるビンゴも取り入れました、コチラも合わせ少しでも楽しんで頂けたなら良かったなと思いますし、私自身しっかり楽しませて頂きました。
2|イベントをやってみて
イベントコンセプトが月内のノマガチャの累積結果のランキングなので、1ヶ月に及び長期間に渡るわけで、運営する側も参加頂く側もエネルギーが掛かるため、いつも覚悟して挑んでいます。笑
あと、今回は更にTwitter、、、もとい𝕏の仕様が半年前に比べて大きく変わってしまっていたので、そこも覚悟が必要でした。APIほとんど死滅してますからね。
それと、ビンゴがおもいのほか良い印象のコメントを頂けたのでこれはかなり喜ばしかったです、感謝感謝です。
幸いなことにビンゴまわりの不具合は無かったので安心でした。笑
というのもビンゴのプログラムは他のランキングに比べて1000倍くらい複雑なんですよね、トラブル無くてマジでよかったよかった。
※複雑さはプログラム規模的にって意味でです
また今回の経験を次に生かして、より良いイベントを企画して提供できるようにしていきたいと思います!!
3|不具合や考慮不足だった点
今回もあまり堂々と言えた事ではないものの、今後のために備忘として残しておきます。
3.1.秒管理不可による描画エラー(考慮不足)
Twitter(𝕏)の仕様が変わり、集計するツイート(ポスト)の秒が取得できなくなりました。
で、サイトの作りの問題でもあるため正しくは不具合でもあるんですが時分をキーにしているので同じ時分の場合に挙動がおかしくなっていました(表示名とIDがごちゃごちゃになった)。
面白いんですが、24時間の中でエントリーの時分が被るのが結構あったんですよね。FFRKのユーザーは年齢層がある一定範囲な印象なので生活リズムが似てるのかもしれませんね。笑
これについては根が深いため、慌ててプログラムの修正などはせずに集計時に時分が被った場合は秒をずらして登録するようオペレーションで暫定対処をとり回避しまいた。次回の課題です。
3.2.差分更新による集計漏れ(考慮不足)
Twitter(𝕏)のAPIが使えなくなった都合、自動集計が出来なくなりました。
そのため別の仕組みを準備したのですが、集計範囲を定めており、対象としては前回の更新以降のエントリーのみを狙って集計するようにしていました。
で、これに伴う問題が2つ発生していました。
1つは、集計中のエントリーを取りこぼしていました。
集計が件数にもよりますがだいたい5~10秒ほど掛かりますので、そのタイミングで丁度エントリーされていたらすり抜けていました。前述した通り我々の生活リズムは似てるからですかね。笑
もう1つは、誤エントリーなどでエントリーを削除された場合、自動で遡って再集計をしないのでこのケースも漏れていました。
こちらについては集計後の時間ではなく、集計開始の時間以降で次回集計対象とするよう改善しました。2つ目の方は連絡貰って個別対応と定期的に集計漏れチェックを入れる事で暫定対応としました。こちらも次回の課題です。
3.3.個別ページの日付誤り(不具合)
今回のランキングのプログラムは前回のプログラムを複製して作成していたのですが、「02/dd」という記述が残っていました。修正漏れ、これがハードコーディングの悪しきところですね。。。
Twitter、リクエストフォームのそれぞれで不具合報告を頂きまして、「08/dd」に訂正しています、ご報告有難うございました。
3.4.シャドウBAN(考慮不足?)
前回も書きましたが、これについては発言して嫌な気持ちになられると困るのでTwitter上では言わないのですが、TwitterにはシャドウBANという仕組みがあります。
これは何かというと、検索でツイートがヒットしなくなります。アプリ上での検索やプログラムによる収集でも同様にヒットしません。
これが対処がどうもしようもなく、私自身これに対してネガティブに取って無いんですがご本人も気づいてないと思うため、ただただ集計から漏れる自体が発生するのが悩ましい所です。
何故シャドウBANされるのか?というとTwitter社の基準に尽きるものの、傾向としては政治的なネガティブなツイートをするとよくなると認識しているんですが、今回に関しては6月頃よりやたらとBAN報告があったため、理由がよくわからないです。理由もない気がします。
3.5.個別統計(調整)
ビンゴを始めたことに加えて、私が気になったのもあって、前回迄は全体に対する統計のみ計算して表示していましたが、同じプログラムを個人ごとでも計算して表示するように機能追加しました。(期間中に思いつきで足した)
3.6.必殺技種別毎の全体統計(調整)
こちらもビンゴを始めたので必殺技種別ごとの期待値がわかりやすいように全体に対するレア別の統計の計算表示に加えて、必殺技種別ごとの構成比を計算して表示するように機能追加しました。(期間中に思いつきで足した)
3.7.パフォーマンス不備(不具合)
これ理由がまったくわからないのですが、なぜか被らせ王の集計プログラムのレスポンス(計算時間)が極端に遅かったです。特に2回目からSQLなども変えていないのと、データが入っていない時点で致命的なレベルで遅い状態でした。
これについては原因究明に時間が掛かりそうだったので、仕組みそのものを変えて対処しました。サイト上でリアルタイムに計算するのではなく、エントリー集計時に計算してしまって、計算結果をサイト上に表示するようにしています。(次の日になって引き弱王ランキングは見えないのに被らせ王ランキングだけ見えていたのはこのためです)
3.8.最終集計(考慮不足)
締め切りから2時間くらいで集計終るかなと思っていたんですが、ちっとも終わらずでした。集計そのものは自動なので最終チェックして予定通り終わるんですが、最終結果を元にエンディング動画をそこから作成するのに思ってた2倍掛かりました。苦笑
(作る内容だけは頭の中でイメージ作っていて、実際にプログラムと動画作るのを9/1 0時スタートしてた愚かもの)
次は前日からなど、もっと早めに作り始めようと反省点です。。。
4|オープニング
今回も前回同様に始まる感を演出したかったので、オープングを作りました。
#FFRKファンツール#最終アナウンスandオープニング
— TaY Tosuma@FFRK (@Tay_Tosuma) 2023年7月30日
明日(8/1)から非公式イベント始まりますのでご参加いただける場合は1ヶ月よろしくお願いしますね😁👍
それでは皆さん良いレコパライフを✨
※詳細は引用元をご参照ください https://t.co/tpzmy3XWU1 pic.twitter.com/8y9nBsrI4V
えぇ、どう見てもロックマンですね笑
私、RRFKもロックマンも好きなので隙あらば両方使いたくなります。
ベースはロックマン2のOPで、BGMは覇竜(FF1)になっています。
FF1のラストバトルのBGMかっこよすぎますね。
デシの変身シーンは割とこだわってるので見てもらえると嬉しいです。笑
5|エンディング
エンディングは動画編集ツールメインで作ってますが、いつも通りエンディングについてはプログラムでほとんど作っています。
勿論最後に動画編集ツール使ってますが、iMovieを使って動画を繋げて、フェード加工して、バックにBMGつけて程度です。BMGはオープニングと合わせて覇竜(FF8)、覇竜(FF9)になっています、アレンジ最高ですよね。ウットリ
#FFRKファンツール
— TaY Tosuma@FFRK (@Tay_Tosuma) 2023年8月31日
第3回ノマガチャ10連ランキング結果結果発表〜🎉🎉
今回も31日という長期間にも関わらずお付き合い頂きまして有難うございました‼️今回は特に新たな試みであるビンゴが少しでも楽しんで頂けたなら幸いです😆✌️
気になる順位は......エンディング動画でご確認くださいませ〜😆‼️ pic.twitter.com/nLHgc4AG3Z
毎度の事ながら、9割はJavascriptで出来てます。
enchant.jsというオープンソースのゲームエンジンで実装しておりまして、フレームごとにスプライトの画像を切替しつつ座標をコントロールしたりしてます。
エンディングに関してずっとイメージとして持っているのは、「ファミコンっぽく」、「レコパっぽく」、「ファイナルファンタジーっぽく」を大事にしています。
前回は動きを加えすぎてランキングの方に意識が持っていかれてしまったので強調を控えめに注意しました。笑
一応、最後のシーンは前回のエンディングの続きになっています。
え?最後はふざけすぎ??
そりゃ長くこのゲームを続けているプレイヤーからしたら、金玉の1つや2つ投げつけたくなるでしょうよ。(真顔)
こちらはNGシーンのオマケです。
終始ふざけてるので気楽に見てもらえると有難いです。笑
オマケです。#プログラム捨てる前の供養 pic.twitter.com/RRepWCQezw
— TaY Tosuma@FFRK (@Tay_Tosuma) 2023年9月1日
6|余談
前述もしましたが、Twitterの仕様が大きく変わったので当該ランキングの仕組みも大きく変える必要がありました。
前回はこんな感じ。
(青:自動、赤:手動)
今回はこんな感じです。
(青:自動、赤:手動)
集計するところが完全自動から手動になっています。
そのため前回までの1時間に1回自動で集計が動くような仕組みが取れませんでした。
Twitterの内容をテキストファイルに吐き出す仕組みは世の中的に幾つかあるため、その1つを利用させてもらっています。
で、かなり負担増えるかな~と覚悟していたんですが、実際は全エントリーを目視でチェックしていたので、結局負担は変わらないってのがやってみた結論ですね。もちろん前述の差分更新時のトラブルなどあるのでその辺りの負担はプラスですけどね。
ということで、色々と書きましたが、今回もほんとに有難うございました。
またイベントする際は全力で企画して運営するので、是非よろしくお願いします!!
あ、結果発表後のリプなどで「殿堂入り」システム案を頂いたので半年考えます。笑
それでは皆さん、引き続き良きレコパライフを!
お読み頂き有難うございました。
※よければもう1本 関連記事をお読み頂けると幸いです