ラウンド毎の時速ランキングツイート出力を終了します

[11/26夜 追記] 大事なことなので先頭に追記します。イベント期間中に毎時出力している上位Pポイント一覧ツイート(800位までのPのptと時速を出すやつ)は引き続き出力します。あれはボーダーbotで2番目に重要なツイートですので、止める予定はありません。

ラウンド毎の時速ランキングツイートとは

このツイート↓の「上位P時速ランキング」というやつです。毎ラウンドの終了後に出力しています。

出力停止予定スケジュール

現在開催中の第43回アイドルLIVEロワイヤルの最終結果発表(11/28 12:00)をもって終了します。

出力をとりやめる理由

  • 上位50名のラウンド内最高時速を羅列するだけではあまり使い道がない。(もちろん、「一番速かったのでうれしい」「○○さんより速かった」というような用途はあると思料する)
    • 理想としては、「特定順位付近にいるPの現時点の10分速/30分速/時速と、当該Pの開催中イベント全期間および過去同種イベント全期間における10分速/30分速/時速など」が出力されるべき。これなら1位争い・10位争いなどの比較的ハイレベルな活用ケースが想定できるし、あるいは特定アイドル上位時の特定高順位狙い(27位とか37位)でも利用できるだろう。
  • ラウンドの概念がない新イベントJAMが登場した。
  • この出力をするためだけに、ラウンド毎の時速を導出する専用のデータマートを作成している。DBの容量逼迫が極めて深刻なので、1bitでも削れるデータは削りたいし、オンライン時間中のバッチ処理時間は1秒でも解放したい。

代替機能

以下を参照できるようにする機能をWebポータルおよびAPIに近日追加します。

  1. 特定順位付近にいるPの直近10分速/30分速/時速/24時間速(おそらく4000位以上になるでしょう)
  2. 全Pの開催中イベント通期および過去同種イベント全期間における、10分速/30分速/時速/24時間速の最大値および平均値

ツイートはしなくなりますが、結果として従来より高機能になるはずです。

準備ができ次第、改めてお知らせします。

プロダクション明細の「平均レベル」は正確ではありません (+データ取得の話)

Webポータルのプロダクション明細に表示されている平均レベルが、11/17 03:00現在、第53回PMF開始時点の値で更新されました。

↑プロダクションごとの明細ページにおける基礎情報に所属P平均Lv.が含まれています

このプロダクションごとの明細ページは普段それほど使われていない機能なのですが、いつもPMF発表直後から急に利用されるようになり、マッチング発表後に一気にアクセスされます。マッチング発表日のアクセス数だけで、2回前に開催されたイベントの全期間の総アクセス数を超えます。

移籍先のプロを見極めるデューデリジェンスや、マッチング相手の平均レベル調査などに使われているものと勝手に思料しています。

平均レベルは直近のイベントに参加したPだけで計算されている

プロダクションの平均レベルは、「直近のイベントに参加しているプロデューサーの平均値」を計算しています。現在で言えば、鋼鉄公演きらりんロボ(復刻)で1pt稼いだプロデューサーが対象です。

したがって、この平均レベルはほとんどの場合において不正確です。鋼鉄公演(復刻)には8,779プロダクションが参加しましたが、そのうち2名以上が所属するプロダクションにおいて全所属プロデューサーが鋼鉄公演(復刻)に参加したプロダクションは280であり、21名以上に限るとわずか2プロダクションです。

比較的アクティブなプロダクションであれば、割合としては相当数はイベントに参加していますので、一般的傾向としてこの平均レベルは大きく外れた値ではないだろうと思います。先の21名以上の条件でも、「6割の参加」とすれば130プロダクションにまで増加します。しかしいずれにせよ、不正確なことに変わりはありません。

↓ここから、この平均レベルの基となるデータ取得に関するクッソ細かい話が続きますので、特に興味のない方は読まなくて大丈夫です。

続きを読む →

10分毎の観測対象プロデューサ順位を4000位まで広げました

仕様変更点

これまでボーダーbotが毎10分に観測するプロデューサー順位は2500位まででしたが、11/10 20:00より、これを4000位まで拡大しました。(issue #22)

できるようになった理由

  1. ボーダーbotの設備増強(観測機材の増設 3台→4台)。
  2. イベントに参加するプロデューサー数が昨年比で5分の3強程度まで減少したことにより、全体としての観測対象が減ったたため、余剰が出た分を従来より広いレンジでの定時観測に振り分けることが可能になった。

仕様変更により新たにできるようになったこと

①イベント明細の上位プロデューサースコアが4000位まで表示されるようになりました。

↑例:鋼鉄公演 きらりんロボ -襲来! コスメティア帝国-(復刻)

②開催中のイベントにおいて一度でも4000位以内に入ったプロデューサーは、プロデューサー別の明細ページで、イベントpt推移グラフが表示されるようになりました。

これまでは200位/2000位を狙うプロデューサー向け機能として提供しており、グラフを表示するためには2500位以内に入る必要がありました。

↑4000位以内に入った時点で、プロデューサー明細ページでプロデューサー毎のグラフが作成されます。

4000位狙いの場合でも対応できるよう、比較対象となる過去イベントの4000位推移も出力できるようにしました。4000位狙いはもちろんですが、従前はより下の順位でも表示できるようになりましたので、2000位未満の順位から1枚取りを狙う際などに活用ください。

※初めてイベントに参加するユーザはプロデューサー明細ページが未作成のため、本グラフは利用できません。

イベント順位情報APIで、4000位までのプロデューサーポイントを毎時取得できます。

今後の予定

このボーダーbotは、(イベント観測に全力で専念すれば)10万人が参加していても漏れなく最終結果を取得できる設計になっています。昨今のイベント参加者は2.5万人程度であり、切り詰めれば余裕があります。

アイドリング時間を活用し、これまでなかなか実装のできなかった、PRA結果の取得などを計画しています。(issue #21)

カード名称が重複する[ルミナススター]北条加蓮に対応しました

10月9日に追加された[ルミナススター]北条加蓮への対応を行いました。(issue #23)

ここ数日にわたり、システムの部分停止や不正な表示などにかかわる複数のご指摘をしてくださり、誠にありがとうございました。残念ながらまだ不良は残っていると思いますので、もしお気づきの点がありましたらTwitterにてリプライで教えていただけますと幸甚です。

変更点

  1. 2020年10月に追加された[ルミナススター]北条加蓮および[ルミナススター]北条加蓮+は、カード名称をそれぞれ[ルミナススター]北条加蓮(2020)、[ルミナススター]北条加蓮(2020)+としました。これはMobage上の資料室の名称とは異なりますが、フリートレードページなど、一部の機能での表記に準拠しています。
    • つまりシステムとしては、引き続きカード名称の重複を許容していません。この前提を変更すると、テーブル定義の変更では足らず、「カード名称は絶対一意でない」という前提で作られている箇所があり、アプリ内でもC#でいうIDictionary、JavaでいうHashMapのキーに要所要所で使われてるため、影響範囲があまりにも甚大なので無理でした。
  2. カードに「別名」をもたせました。前項の2020年版の[ルミナススター]の特訓前後は、別名を[ルミナススター]北条加蓮(+)としています。
    1. カード明細ページで、別名が存在するカードは名称と別名を併記するようにしました。
    2. カード詳細検索で、別名の表示および別名での検索をできるようにしました。
    3. APIのカード /api/v2/cards/[cardHash?] において、別名を取得できるようにしました。
  3. 【内部仕様】カード名称からのアイドル情報パースにあたり、[]で囲まれたプレフィクス後のアイドル名を、完全一致から、アイドル名の集合に対する前方一致マッチングに変更しました。
    これまでの仕様では、「[ルミナススター]北条加蓮(2020)+」のようなカード名の場合、
     プレフィクス:ルミナススター
     アイドル名:北条加蓮(2020) ※そんなアイドルはいないのでパースに失敗する
     特訓前後:特訓後
    と判定してしまっていました。
  4. 【内部仕様】カード名称でカードを照合する処理において、これまでのカード名称での単純照合から、「優先:カード名称に設定されているカード」「優先条件で一致しない場合の劣後:カード別名に設定されているカード」の二段階照合に変更しました。

オンラインショップのロゴ画像差し替え

boothで販売しているボーダーbot支援用のロゴ画像を差し替えました。

ロゴ画像のURLが imcg.pink-check.school という古いURLのままであることに、つい先程気が付きました…ので直しておきました。

売上の用途について

ボーダーbotのBOOTHでの売上はすべてLinodeサーバ(VPS)およびツイート画像生成サーバの購入費用に充てています。

現在は、各種設備費用の一部をadsenseの広告+BOOTHでの売上で賄っています。ご支援のおかげで、昨今の機能拡張を繰り返す中にあってもなお、これら維持費用のうちのかなりの割合を”持ち出し”以外で満たすことができています。本当にありがたいことです。

※ボーダーbotはこれまで常に赤字であり、「利益」は一切ありません。ゲームにおける他人様のデータ取得により利潤を得る予定は今後もありません。

ご支援の分はできる限り、改善や機能拡張につなげていきたいと思っています。心から御礼申し上げます。

観測機材を増設しました

データ取得サーバを増強しました

日頃より、ボーダーbotへのたくさんのご支援をいただき、ありがとうございます。

頂戴したご支援で、設備を強化しても固定費を含めた当面の費用を充当できる目処がたち、このたびデータ取得サーバー(観測機材)を1台増強することができました。これにより、データ取得サーバの数は従来の3台から4台になりました。

ボーダーbotにおけるデータ取得サーバの役割は「障害発生時における挙動・ポリシーについて」を参照ください。

なお、購入いただいたロゴ画像の収益は、すべてLinodeサーバ(VPS)などの維持費に充当しています。

増設した機材で現在行っていること

増設した機材を利用して、従来は余裕がなく行えていなかった、最近のイベントに触れていない休眠プロデューサーの情報の更新を行っています。

これまで、ボーダーbot上で表示されている情報の最終更新日が2019年のプロデューサーが約56万名おりましたが、まもなくこれらプロデューサーの情報が逐次更新される予定です。

将来的な活用予定

増強した機材を利用して、以下の機能拡張を計画しています。

  • 現在は2500位までしか観測していない毎10分のイベントポイントの観測範囲を4000位まで拡大。(#22)
  • PRA結果の観測。(#21)

カード明細ページで参照できる画像を増やしました

プレミアムサイン付き画像、お仕事画像(クエスト画像)、透過画像をカード一覧のカード明細ページで見られるようになりました。

お仕事画像とは

お仕事画像は、マイページでアイドルの短冊をクリックすることにより、表示することのできるアイドル画像のことです。

マイページ表示例

または「新お仕事」を選択している場合に、画面遷移時にも表示されます。

カード明細ページでの表示

カード明細ページで、カード画像上部にあるタブを選択することで表示を切り替えることができます。

例:[すくx2あかりんご]辻野あかり+

なお、ほとんどの R は、お仕事画像が透過つき PNG 形式で提供されます。これはRの背景がCu/Co/Paそれぞれで共用であるためです。

例:辻野あかり+

イベントのパワー持ちカードを管理するようにしました

パワー持ちの特技を一覧で見られたらいいのになあー
フリトレ履歴も主にトレードするのはパワー持ちばかりだし、いちいち名前検索するの面倒だし勝手に絞り込みができたら楽だなあー

と自分で使っていて思いましたので、さっそく追加してみました。

できるようになったこと

上記ツイートにも記載のあります通り:

パワー持ちカードを取得可能なイベント

現在開催中の第42回ロワイヤルからです。

実装自体は前イベントの秋のぜいたくグランピングアイプロの時点で終わっていました。ですが、イベント終盤にリリースして変なバグを踏みたくないなーということで安全策を採り、アイプロの終了直後にリリースしたところ、なんとMobage側の仕様としてイベントの終了後はパワー持ち一覧のページを取得できなかった…(仕様不理解によるバグを踏んだ)

おかげでアイプロのパワー一覧を取得できず、しかも開発環境のDBを運悪く洗い替えてテスト時のパワー持ちカード一覧データも残っておらず…

それら都合により、パワー持ち一覧を取得できるのは、現在開催中の第42回拓海ロワイヤルからとなっています。

最近検知されたカード画像の変更

ご利用ありがとうございます。
「アイドルマスター シンデレラガールズ」運営事務局です。

9/8 15:00頃、アイドルの画像を一部変更いたしました。

アイドル画像の一部変更について(Mobage)

というお知らせがmobage版シンデレラガールズで通知されました。これに触発されましたので、ボーダーbotが最近検知した「カード画像の変更」について以下にまとめました。本件はボーダー観測に何一つ関係がないことから、この開発ノートに書いておきます。

ImageMagickの使い方把握ついでにアニメーションGifの比較も作りましたので添えておきます。各カード画像は、「修正前」「修正後」「比較アニメーションGif」の順に並んでいます。

なお、デレマスボーダーbotは、画像に差異がないかを定期的に確認しています。6,544カード全種類を一気にチェックするのはMobage側にかける負荷が高いため、「リーダーに設定されている数が多いカード」を優先してチェックするアルゴリズムになっています。

※注意:以下の変更内容は、今回のお知らせで修正対象となったもの以外も含まれていると思います。検知が最近になっただけで、かなり前に修正されたものも混じっているかもしれません。

[ゴーフォーヴィクトリー]仙崎恵磨

CardHash: 1a488f8bab8e0efae8f777f10b21dc6a

[センター・キャプテン]愛野渚

CardHash: 868c92e18aa41e24a61546b2100548b5

[センター・キャプテン]愛野渚+

CardHash: 701f66d34f5d7d58aa7d977ca3450565

[ブレイブステージ]緒方智絵里

CardHash: 17dfc3a665a0263e5b922f1c47a7667b

[碧眼の姫君]メアリー・コクラン

CardHash: 990199c5bd44be16361a787dda7e5ec2

[くのいち忍ドル]浜口あやめ+

CardHash: 159060b683d4e8bea49d2c90753f61c7

[貴婦人のたしなみ]和久井留美+

CardHash: ad621fe47393a5bcba98b5729077ac4e

喜多日菜子

CardHash: 35ed8cc4e33cec53aea016cb9e2f0f22

[大傾奇娘]丹羽仁美

CardHash: 26b2a0c90723a9b074e65e4ecb2c937e

[大傾奇娘]丹羽仁美は、人間の目だとほとんど差がわかりません。

[大傾奇娘]丹羽仁美+

CardHash: f04628745ca35b5896d03126fcdbed8d

[色づき紅葉・スマイル]佐々木千枝

CardHash: 7d617c6da4e598221715f638460b14b4

私見ですが、[色づき紅葉・スマイル]佐々木千枝は右に余白ができているので、運営がなにか間違えてている気がします。

Cinderella API v2 リリース

Cinderella API v2 (APIv2) をこの度リリースしました。これまで提供してきた、Cinderella API v1 (APIv1) の後継となります。

APIv2 の狙い

Cinderella API は地味な機能ですが、いまでは複数の Web サイト(道場リストなど)や、複数の Discord bot などで利用して頂いています。

デレマスボーダーbotのデータは、なるべく多くのプロデューサーの方々に、多様な形で利用していただきたいと思っています。CSV はそのひとつです。その中にあって、 API も、Web ポータルと同等に重要な機能として取り扱っています。

この度、APIv1 の利用状況を踏まえつつ、APIv1 では不十分・不親切だった点を改善してより利用しやすい形に設計し直したものが APIv2 です。

APIv2 の新機能

  • フリートレード履歴を取得できるようになりました。リアルタイムに準じたフリートレード履歴を提供します。期待される更新までのdelayはおよそ2分程度です。
  • ダブル特技の深化を踏まえ、カード API ではメイン特技・ダブル特技の詳細な効果を出力するようになりました。編成の組み合わせ検討などに利用することができます。

プロデューサー・プロダクションごとの時速も出力する計画はありますが、時速出力は場合によっては将来的になくなる可能性があるため、いまのところは実装していません。

APIv1 から改善された点

  • APIv1 では、検索パラメータの不足や誤りがある際に、400 Bad Request が返却されたり 404 NotFound が返却されたりと一貫性がなく、かつ NG である理由がわかりませんでした。
    → APIv2 では、パラメータ問題発生時のステータスコードは 400 に統一されるとともに、メッセージでNG事由が返却されるようになりました。
  • 利用状況を踏まえ、頻繁にアクセスされるAPIは積極的にキャッシュするようになりました。道場 API 、カード API などの利用率の高い API は、 APIv1 よりも高速に提供されます。
  • Key 名称が可変値になっている Hashmap(IDictionary) 形式の object は非常に扱いづらかったため、これらは全廃しました。これにより、 jq コマンド等での利便性が向上しました。(実はこれは製造時の誤りだったので、できればさっさと直したかったのですが、あまりにも破壊的な変更となるため運用後にはもう変えられませんでした)

APIv1 の取り扱いについて

  • deprecated (非推奨) になりました。
  • 引き続き利用することはできます。すぐに APIv1 が使えなくなるわけではありません。
  • 原則として、 APIv1 は不良があった場合でも今後は改善しません。また、将来的な他機能変更などに巻き込まれて利用不可能になった場合、対応するかどうかはわかりません。
    (APIv2 と APIv1 の両方をメンテナンスするのは大変なので…)
  • APIv1 を利用したアプリを作成・運用されている方々におかれましては、可能であれば、 APIv2 への切り替えをお願いできればと思います。出力内容は類似していますので、ほとんどの場合、大きな修正にはならないと想定しています。

利用にあたってのご意見、こういう API があったら便利なのに…というご要望などがありましたら、 Twitter: @imcgborder までお寄せください。

デレマスボーダーbotの機能追加・拡張は、(現時点においては)これが最後の予定です。しばらくは既存機能の改善と保守に努める予定です。