こんにちは、tosumaです。
皆さんは最近は勉強とかしてますか?
私はと言いますと生活の一部でもあるファイナルファンタジー レコードキーパーをテーマに何かできないかな?と模索していたのですが「Twitter API」と「診断メーカー」の2つに興味を持ったので勉強しております。
今回はその2つについてご紹介いたします。
Twitter APIとは
まずAPIって何?って話ですが、正式には「アプリケーション・プログラミング・インターフェイス」というやつです。ざっくり言うとサービス提供側が外部に公開してくれているソフトやアプリの事ですね。
何ができるのかというとシステムとシステムとを繋ぐ事ができますのでシステム1からAPIを利用してシステム2へ情報を渡して、返ってきた結果をシステム1で受け取り処理を行ったりすることが可能です。
TwitterもAPIを提供してくれており、今回色々と試してみているのが「Search API」です。
アプリやブラウザでTwitterを利用する際に検索機能がついているのをご存じかと思いますが、普通は検索しようと思ったら検索用のテキストボックスに対象のキーワードを入力して検索ボタンを押下して結果を取得する流れになります。
Search APIを利用するとこの一連の流れをプログラムで行う事が可能になります。
Twitter APIとレコードキーパー
そしてこのSearch APIをどうレコードキーパーに繋げていくのかを考えないといけないのですが、ソーシャルメディア分析をしたいと考えています。
TwitterのTLといえば普段の何気ない投稿のほかに、ダンジョンの撃破報告、ガチャの結果報告、お気に入りの英雄のノロケなどなどをよく見かけますよね。
そこで英雄の名前を収集して集計することでプレイヤーの注目度など見えてくるものがあるかなと思いました。
具体的には 「FFRK」+「英雄名」、この組み合わせで投稿されたら1カウントとして集計を行います。
Twitter APIでの試行錯誤
取り掛かってみたものの色々と苦戦しました。
1.まず入口が大変
Twitter APIを使用するためにTwitter社に利用申請をして、開発者として登録をしていただかないといけません。
これが全部英語で申請する必要があって、かつ手続きが多いんですよね。
私自身は仕事でこういうの慣れてるんで特に悩まなかったですが、慣れていないとここでまずは挫けそうですね。
2.7日間しか検索できない
API申請には無償版と有償版の2つあるんですが、無償版の場合は遡って7日間しか検索ができないため、この点はスケジュール化することで対処しました。
3.APIに1.1と2.0があった
もっと調べてから始めたらよかったんですよね、「とりあえずやってみよう」から入るタイプなもんで。。。一通り組んで動作検証や調整し終わってから1.1で作ったの判明しました。参考にしたサイトが悪かった(サイトは悪くない)。
当然2.0の方が多機能なわけでこれから始める人は迷わず2.0を使いましょうね。
4.なぜか集計が合わない①
過去に集計したデータは重複として除外してたのに複合キー誤ってましたね、仕様の理解不足。過去集計データをガシガシ消してましたよ。
5.なぜか集計が合わない②
過去に集計したデータは重複として除外してたのに複合キー誤ってましたね、過去集計データがガンガン重複してましたよ。
6.時間が正しく取れない
正しくは時間は正確なんですけどね、日本時間で取れないんですよ。
イギリス時間になってるので面倒でした。
7.一度に100件までしか取得できない
普通に結果取得すると100件しか取れないんですよね。
これは結果自体にページの概念があって2ページ目以降で構成が変わるんですよ。
これは対策があったのでテクニックで対処しました。
8.似た名前がダブルカウントされる
「Dr.モグ」と「モグ」の場合、モグが2カウントされてしまうんですよね。「光の戦士」や「戦士」とかも。これは検索ワード除外機能で対処しました。
9.正式な名称なんて投稿しない
正式な名称で収集してるもんで「セシル(パラディン)」とかで投稿する人いないんですよね。しねーよ、と。
10.愛称や略称で投稿される
好きな人こそ「ノクティス」は「ノクト」とか愛を込めて投稿しますよね。
当然その場合は拾えません。これは各キャラに複数のキーワードを設定することで対処しました。
11.記号が使えない
「(Ⅳ)」とかプログラム的にすんごい邪魔なんですよね。エスケープして対処。
12.Twitter名に英雄名を含む人が多い
Twitter名に英雄名を含んだ方が投稿=そのキャラクターのカウント1になるんですよね、これは意図しないカウントのため8.と似た方法で対処しました。
13.Twitter名にAPI使用不可文字を含んだ人がいる
これは地味に困りましたのでプログラム側で強引にその文字を消しました。
14.なぜか「マキナ」だけ集計されない
いや、なんで?これだけ未だに解決してないよ?
マキナお前何したんだよ。これが現時点で一番悩んでいます。
Twitter APIでの分析結果
2021年11月1日から30日19時までの期間で集計した結果をまとめました。
勝手にFFRKトレンドぉ!!
— TaY Tosuma@FFRK (@Tay_Tosuma) 2021年11月30日
11月1日~30日(19時)の期間で「FFRK」と「キャラクター名」のセットでのツイート数を集計しました!!
(重複して集計される問題は大幅に解消)
結論!(イベ的に)FF6が皆大好き🤣
あと、傾向見る限り強敵が現れた時に皆さん盛り上がるようです🤤#FFRK #皆で盛り上げるんや pic.twitter.com/mwxQX9QcUy
人気投票みたいで面白かったです。マキナは0件でした。マキナお前何したんだよ。
12月も微調整しつつ実施したいと思います。
ちなみに12月10日時点ではFF9勢が強力ですね、先月ぶっちぎりで1位だったモグ(6)を
ジタンが大きく抑えているのでこのままのペースを期待しています。
Twitter API については時間見つけて最初の利用申請から
実際に今回のプログラムの内容まで解説したいと思っています。
診断メーカー とは
Twitterでよくトレンドにあがっているサービスですね。
入力名に応じてランダムで結果を出力する診断アプリの作成できるサービスです。
利用したことある人はかなり居ると思いますが実際に作ってみようとまではいかない人は多いと思います。私もそうでした。
診断メーカーとレコードキーパー
このサービスをレコードキーパーに繋げるにあたってテーマを2つ考えていました。
縛りプレイのお題
よくTLで目標とするタイムを掲げて挑んだり、4人で攻略したり、チェイン無しで挑んだりと楽しみ方をアレンジする人をよく見かけていたのと、私自身もゲームの楽しみ方は自分でデザインするものと思っているので(ファミコン世代の思想)そういった遊び方につながるようなものをイメージしています。
というのは全部建前で、「Jobs縛りをナチュラルに浸透させる」というのが魂胆です。
この下心。まぁ誰も気づいてないので黙ってましょう。
さすがにTwitterのTLにちらほらとJobsが出てきたら運営さんも黙っちゃいられないでしょう?
でしょう?
いや、そうと言ってください。
はい、で、作ったのは以下です。
今は覇竜ダンジョンと稀に魔石ダンジョンが出るようになっています。
初級⇒中級⇒上級⇒EX級⇒凶級⇒滅級⇒滅+級(+?級)となっていますので、
ぜひ一度遊んでもらえたら嬉しい限りです。
※診断結果の1例
あ、滅+級はテストプレイしてませんので悪しからず。
そのための保身の「β」ですよ。
どの魔石ダンジョンを、どのキャラで挑むか
TL見てるとある程度パーティでよくある形ってのがありますよね。
当然キャラの性能面や手持ちの面などで多少の偏りは自然とは思いますが
メリアドール使ってる人を月に1回でも見ますか??
※使ってる人いたらごめんなさい
ものまねしゴゴ使ってる人を月に1回でも見ますか??
※使ってる人いたらごめんなさい
ということで、思ったのが普段目にしない英雄を使ってもらいたいと思ったので
パーティそのものをランダムで生成する診断となっています。以下です。
毎日結果が変わる仕組みになっていますので、気分転換な遊び方、マンネリな魔石ミッションのモチベーションあげるきっかけ、配信や仲間うちでワイワイする際のネタとしてなどなど、一度でも遊んで頂けたら嬉しい限りです。
そうしてTLでメリアドールとか出てくると、存在感が少しでも出てくるじゃないですかね。そうしたら運営さんの目にももしかしたら止まって、ピックアップされたりして、活躍の場が広がればいいな、とか思っています。
というのは全部建前で、「普段TLで魔石ダンジョンを圧倒してる人たちに敗北の味を思い出してもらおう」というのが魂胆です。
この下心。まぁ誰も気づいてないので黙ってましょう。
え?排出される組み合わせのバランスが悪いって??
そのための保身の「β」ですよ。
※診断結果の1例
診断ツールの作り方についてもまた別でまとめたいと思っています。
今回作った両診断ツールもまだ調整中ですが年内にはβを取りたいですね。
上述した通り、ゲームが楽しめるかは運営さんの努力だけでなくプレイヤー側の遊び方も大きいと思っていますので年末年始に向けて、皆でレコードキーパーを盛り上げていきましょう!!
あ、これは建前じゃないですよ。
お読み頂き有難うございました。
※よければもう1本 関連記事をお読み頂けると幸いです