ロキナ

175.8K posts

ロキナ banner
ロキナ

ロキナ

@lokina

ROKINAあるいは黒木ナルミです。ゲームをやったりBMSを作ったり5億円を欲しがったりしています。

虚無県虚無市虚無0-0-0 Katılım Temmuz 2009
192 Takip Edilen913 Takipçiler
ロキナ
ロキナ@lokina·
この方法、ランダム分岐があるBMSだと破綻するという致命的な欠点があるのでダメです
日本語
0
0
2
146
ロキナ
ロキナ@lokina·
これはそもそも「譜面の同一性」の定義が人によって変わり得ることが一番問題かもしれない。極端な話、BGMやBGAのノートは「演奏には影響しない」し、そもそも各ノートの定義番号も「譜面(ノート配置)だけを見る」なら関係ない
日本語
0
0
1
184
ロキナ
ロキナ@lokina·
しばらく考えてたけど、レベル詐称とか作者名の書き間違いとかを修正したいケースを思うと、やはり特定のヘッダーのみハッシュ関数に突っ込む形のほうが理想的ではあるな
日本語
0
0
5
445
ロキナ
ロキナ@lokina·
あとgithubだとツイッター上で全然関係ないサムネになっちゃうからnoteとかにしようかな
日本語
0
0
0
170
ロキナ
ロキナ@lokina·
採用するヘッダーを別で定義(引数として渡す)する場合、もはやハッシュ値は統一されない。そういう色々な「最悪の場合」を考慮して、先の案はあくまで「最小構成」にした。 この一連のツイットを書いていて思ったことがあるので、案を更新しておこう。
日本語
0
0
1
252
ロキナ
ロキナ@lokina·
2.について、これが一番の理由で、「演奏に関係ないヘッダー」を排除する場合文字列マッチで条件分岐しなければならない。 処理負荷自体は問題ではないが、採用するヘッダーをハードコーディングすると、今後演奏に影響するヘッダーが追加される度に、ハッシュプログラムを更新しなければならない。
日本語
1
0
1
346
ロキナ
ロキナ@lokina·
BMSのハッシュ化においてメタコマンドをそもそも全部無視しちゃえばという話だが、先の案でヘッダーを全て巻き込んでいるのには2つ理由があって、 1. 理論上「譜面と定義番号が全て一致するが内容は異な楽曲」が存在しうるため 2. なるべく前処理を少なくするため (続く)
日本語
1
0
7
1.6K
ロキナ retweetledi
masaka / まさかけー
@lokina K-Shoot MANIAのIRだと、譜面からメタ情報の行を取り除いてからハッシュ化していますね これであればメタ情報の行の順序だけでなくレベル変更なども吸収できるかなと思います mz-kb.com/blog/2019/12/1…
日本語
0
1
3
327
ロキナ retweetledi
meta
meta@obj_meta·
@lokina 外から失礼します。 一応beatorajaに類似のものとしてchartHashという譜面内容のみのsha256ハッシュがあります(タイトルやWAV定義など一切のメタデータを含まない) 記録だけされて活用されていなさそうですが…… #L505-L561" target="_blank" rel="nofollow noopener">github.com/exch-bms2/jbms…
日本語
1
1
1
331
ロキナ
ロキナ@lokina·
@hyrorre 普通にjsonオブジェクトとして読み込んで、プロパティの順番をソートした上でjson文字列に戻してハッシュ化、って感じになりますかね? そもそもbmsonって現状BMSONE以外で作成されることがあるのでしょうか(エディタが1種類しかないなら表記揺れの心配はない)
日本語
1
0
0
184
ロキナ
ロキナ@lokina·
複数の本体が乱立するとハッシュ関数が独自実装になって散る恐れがあるので、できれば規格化しちゃいたいですね(俺がやっても見てもらえなさそう)
日本語
0
0
2
563
ロキナ
ロキナ@lokina·
なんか反応見てると思ったよりBMSプレイヤー本体を作ろうとしてる人が多いみたいなので、各位これを意識してもらえると助かります。
ロキナ@lokina

BMSのidentifyにMD5ハッシュを使うの、自然な発想ではあるんだけど、実質を変えない変更(例: TITLEとARTISTの位置を入れ替える)でも全く異なる譜面として扱われてしまう問題はどうにかするべきだと思う

日本語
0
0
7
2K
ロキナ
ロキナ@lokina·
@sack_magiclight IR自体にはBMSデータそのものではなくハッシュ値を送信することになるので、そうなりますね
日本語
0
0
0
100
海岸砂丘
海岸砂丘@sack_magiclight·
@lokina IR側じゃなくてBMSパーサー側で対応するべきっすねこれ
日本語
1
0
0
201
ロキナ
ロキナ@lokina·
コメントや空行を全て無視して、全てのコマンドを一貫した順序で並び替えて、そうして加工された新たなデータに対してハッシュ関数を適用するのが、理想的な対策だろう。そのための追加のメモリと倍近い時間を要するが……
日本語
1
0
5
1.1K
ロキナ
ロキナ@lokina·
新しくIRシステムや本体を作る人はどうか一考を……
日本語
0
0
0
246
ロキナ
ロキナ@lokina·
BMSのidentifyにMD5ハッシュを使うの、自然な発想ではあるんだけど、実質を変えない変更(例: TITLEとARTISTの位置を入れ替える)でも全く異なる譜面として扱われてしまう問題はどうにかするべきだと思う
日本語
1
3
17
3.6K
ロキナ
ロキナ@lokina·
正解でいいか
日本語
0
0
1
285
ロキナ retweetledi
難病
難病@fuj10ne·
どうしてこうなったですよね
日本語
0
1
0
285