Coder Social home page Coder Social logo

freedom645 / sekai-rec Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 341 KB

プロセカのスコアツール (Web Score Management Tool of Project Sekai)

Home Page: https://app.sekai-rec.net/

JavaScript 0.21% HTML 0.17% Vue 59.10% CSS 2.17% TypeScript 38.35%
project-sekai tesseractjs vue vutify

sekai-rec's People

Contributors

freedom645 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

sekai-rec's Issues

スコア解析のチェック機能

スコア解析におけるチェック機能を実装したい。
将来的に解析結果のUIでユーザにチェック結果を確認してもらい、手修正する際の判断要素にする予定。

  • 解析結果のチェック機能
    • 総ノーツ数(Perfect~Miss合計)が、マスタデータと一致しているか
    • グレ数(Great~Bad)が、判定カウント(Fast + Late + Flick)と一致しているか
    • コンボ数(Combo)が、CB数(Good~Miss)と乖離がないか
      ⇒ CB数に対して最小~最大に収まっているか
      • 最小:floor(総ノーツ数/(CB数 + 1))
      • 最大:総ノーツ数 - CB数

ユーザ機能の追加

ユーザによるスコア管理の追加。

機能

ユーザ関連

  • ユーザ登録
    • Twitter連携による登録
    • 表示名の設定
  • ユーザ認証
    • Twitter連携による認証
  • ユーザ編集
    • 表示名の設定

スコア関連

  • スコア保存/参照
    • 未認証時はindexedDB
    • 認証時はバックエンド

コードリファクタ

仕様が固まってきたため、ドメインオブジェクトを整理してリファクタする。

フィルタの検索機能修正

ハイスコア一覧のフィルタ機能から楽曲の完全一致検索を削除し、代わりに部分一致検索をする。

仕様

  • 任意の文字列を入力可能
  • Enterキー又は虫眼鏡アイコンのクリックにより、入力文字列と部分一致する楽曲のみ絞り込み可能
  • 入力文字列が無い場合は絞り込みしない
  • ×アイコンにより入力内容をクリア可能

画面イメージ

sekai-rec-画面-ハイスコア一覧 drawio

画像解析設定機能

画像解析時に指定される設定項目をユーザが任意で設定できる機能を付ける。
現在はipad pro向けでハードコーディングしているため、使い勝手が非常に悪い。

  • 二値化閾値設定

    • 0 ~ 255段階(スクショ前提なので、ぶっちゃけ要らないかもしれない)
  • 解析座標設定

    • 対象項目はタイトル、難易度、コンボ、精度カウント5種、各判定カウント3種の全11ヶ所
      ※但し、ランクマのリザルトはタイトルがないのでどうしようか悩み中。
    • 座標セットを任意の名前を付けてindexedDB等に保存
    • UIでユーザが指定した画像を表示し、視覚的に設定できるようにしたい
  • OCR設定

    • ワーカ数の設定(文字列ワーカ、数字ワーカの2種)
    • 並列化の設定

※将来的にはDBに入れて設定を「全ユーザで共有」、「設定データセットを選べる」みたいなのを考えている

設定項目の保存

下記の設定項目をindexedDBに永続化し、都度切り替える必要をなくしたい。

  • フィルタ内容
  • スコア表示

ジャケット画像に関する改善

スコア詳細などで表示するジャケット画像を何とかする

  • ジャケット画像をS3に入れてフロントは取得するようにする
  • 存在しない楽曲データの画像は「no image」的なのを出す

READMEの整理

Viteで吐いたままのため、少し内容を整理したい。

※記載内容未定

スコア登録機能の実装

スコア登録機能の実装

  • スコア永続化を実装
    • とりあえず、フロントで永続化する(将来的に認証機能を付けてバックエンドで永続化)
    • LocalStorageだと7日で揮発するから、indexedDBの方が良いかもしれない
  • スコア入力のUIを完成させる
    • 今は入力できるけど、登録できない状態

スコア更新の仕様修正

スコア更新時に一律で上書きされているが、更新の条件を加えてスコアが更新されていない場合はユーザに伝える。

  • 更新条件は優先度順に下記とする。
    1. スコア・・・テクニカルスコアが大きい
    2. 精度・・・PERFECT > GREAT > … の優先順でカウントが大きい
    3. コンボ数・・・コンボ数が大きい
  • ユーザが「強制的に更新」を選択した場合、更新条件を無視してスコアを更新する

画面は下記2ヶ所で修正が必要

  • 手動登録
  • 画像解析登録

未入力登録の抑制

事象

スコア手動登録において、一部が未入力でも登録できてしまう。

登録前 登録ボタン押下
image image

修正点

未入力状態の場合、その旨のダイアログを出して登録はしないようにする。

ScoreRegisterView.vueの登録時のイベントにおいて下記のチェックを入れ、チェックエラーの場合ダイアログを出す。

  • musicTitleが未入力でないこと
  • comboが未入力でないこと
  • accuracyCount.perfectが未入力でないこと
  • accuracyCount.greatが未入力でないこと
  • accuracyCount.goodが未入力でないこと
  • accuracyCount.badが未入力でないこと
  • accuracyCount.missが未入力でないこと
  • judgmentCount.lateが未入力でないこと
  • judgmentCount.fastが未入力でないこと
  • judgmentCount.flickが未入力でないこと

チェックエラー時は下記のダイアログを出す。
image

画像解析によるスコア登録機能の実装

画像からスコア登録する機能を実装する。

  • UI
    • 進捗が分かること
    • 解析結果のチェック機能を付けること
    • 手動補正が可能なこと
    • 画像と結果が紐づき、チェックボックスで登録要否を選べること
    • 既にデータがある場合に、スコア更新か分かること
  • 永続化
    • indexedDBに一括登録

プロセカVer3対応

プロセカのVer3対応

  • 難易度の追加
    • APPEND
  • 二値化の手法変更
    • Ver2以下は閾値固定
    • Ver3以降は難易度部分のみ閾値を下げないと厳しい様子

環境の整備

下記みたいに環境分けて、CDを整備する。

  • 本番環境:リリースノート作成時にデプロイ
  • 開発環境:developにマージ時にデプロイ
  • ローカル環境:対応なし

AP登録機能の追加

楽曲一覧からチェックしたデータを一括でAP登録する機能。

ゲーム画面を確認しながら、チェックするだけなので多少楽になるはず。

Reviewdog追加

PR時に下記の静的チェックを実施する

  • ESlint
  • Type check

ホーム画面の実装

ちゃんとしたホーム画面を作る。

下記を表示する。

  • 著作権に関する記載
  • データ保存に関する注意事項
  • 使用方法(別ページ?)

ハイスコア一覧のUI改善

使ってみるとハイスコア一覧表示が見づらい・使いづらいので改善する。

フィルタ機能の追加

  • AP:未指定、AP済、未AP
  • FC:未指定、FC済、未FC
  • 未登録除外

ハイスコア一覧

  • デフォルトの並び順をプロセカと同じにする(楽曲ID順?)
  • レコードに未登録楽曲の表示
  • スコアの列を分ける
    • 減点表記(AP -xxx)
    • 精度表記(Great-Good-Bad-Miss)
    • 割合(xx.xx%)
    • RM表記(Pe3 + Gr2 + Go*1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.