タイトルの通りである。
私はbeatorajaの7KEYSスキンでW-FIX(beatoraja向けにパッチを当てたW-MIX HD)を使っているのだが、判定文字が点滅してると集中できないので、csvファイルを覗いてどうにか出来ないか探ってみた。
LR2スキンの仕様書などとにらめっこした結果、難しい要素もなく点滅させないように出来たのでここにメモしておく。
■注意
この記事は私自身のメモとしての特性が非常に強いので、わかりやすい解説などはない。
未来の自分及び読む人向け:LR2スキン仕様書と同時に読み進めるか、スキンの仕様を理解していない場合、この記事は意味不明である。
■メモ本体
AC幅の2Pスキンを使っているので、/skin/WMIX_HD/play/csv/AC_2p.csvを開く。
※Microsoft ExcelやCassavaのようなcsvエディタがないとしんどすぎるので注意
画像定義の
#SRC_NOWJUDGE_1P
#DST_NOWJUDGE_1P
#SRC_NOWCOMBO_1P
#DST_NOWCOMBO_1P
が並んでいる所を探す。
どうやらLR2スキンはSRC定義でリソースをロードし、DST定義で貼り付ける、という処理が基本になっているようだ。NOWJUDGEとNOWCOMBOは判定とコンボ数に関する特殊定義とのこと。
この特殊定義は、SRCとDSTの両方とも、最初の引数で判定の条件を指定している。
0が空POORで5がPGREATということのようだ。
0~4の動作を見てみると
- 判定文字パーツを格納しているpngから、GREAT/GOOD/BAD/POORの文字及び真横の透過部分から同じ幅の透過パーツを切り出し、格納する。
- 判定文字と透明パーツを80msの速さでアニメーション(点滅)させる
- タイマー46(判定が発生した場合に動作開始)から500ms後、パーツが消滅する(1行目のloopで-1を指定している為)
ということだと思う。
5の場合のみ、アニメーションパーツが6個用意されており、アニメーションの速さも100msになっている。
PGREATなので派手にしたいのと、点滅が早すぎると眩しすぎるからだろうか。
点滅させない方法としては
・アニメーションのサイクル時間を0にする(サイクルさせない)
・0~4の場合、透明部分を切り出させない(メモリ節約)
・5の場合、切り出し範囲を1つに限定する(メモリ節約)
ということだが、面倒な場合はSRCのcycleの値を0にすれば、その条件下の判定ではとりあえず点滅しなくなる。
このままだとPGREATの色は切り出し範囲の最初である白色で固定されてしまうので、座標と切り出しの引数を変更する必要がある。
私は文字を緑色にしたかったので、PGREATの#SRC_NOWJUDGE_1Pにおいてx,y,w,hを0,168,153,56へ変更、切り出し数を指定する引数であるdiv_x,div_yは1,1としておく
(アニメーションさせない場合は記述する必要がないかも)
PGREATの#SRC_NOWCOMBO_1Pも座標を緑の数字にしたいので、x,y,w,hを154,168,370,56へ変更、div_xは数字が0~9まで必要なので10のままでよいが、横方向は点滅がなくなり1つしかないので1へ変更。
これでとりあえず点滅しなくなった。
■参考文献
このサイトが無かったらpngに同じリソースをいくつも貼る異常行動を取っていたかもしれない。