LR2カスタムフォルダ用コマンド
前回新規LNボムの仕様について何一つ書いてなかったので先にそちらを。
簡単にまとめると現行のボムを縦に4個並べて各LNで参照するという非常にお手軽な代物。

上から順に通常ボム・黒鍵LN・白鍵LN・皿LNになってます。
また、モーション自体は変えてないのでLNボムの右8個は使用されません。
どのLNボムを何色にするかはボム作家さんにお任せしますが、仕様変更の可能性もなくはないので
しばらくは通常ボム製作だけに絞っておいた方が良いかと思われます。
で、本題のカスタムフォルダ関連。
結構長いです。
簡単にまとめると現行のボムを縦に4個並べて各LNで参照するという非常にお手軽な代物。

上から順に通常ボム・黒鍵LN・白鍵LN・皿LNになってます。
また、モーション自体は変えてないのでLNボムの右8個は使用されません。
どのLNボムを何色にするかはボム作家さんにお任せしますが、仕様変更の可能性もなくはないので
しばらくは通常ボム製作だけに絞っておいた方が良いかと思われます。
で、本題のカスタムフォルダ関連。
結構長いです。
詳しくは公式のまとめを読んだ方が早いんですが、いくつか補足を交えて解説を。
○カスタムフォルダ定義の書式
#COMMAND:検索コマンド
#MAXTRACKS:表示曲数の制限(0で無制限)
#CATEGORY:カスタムフォルダの説明(選曲スキンでの扱いによります)
#TITLE:カスタムフォルダ名
#SUBTITLE:カスタムフォルダの説明(選曲スキンでの扱いによります)
#INFORMATION_A
#INFORMATION_B
上記をまとめてメモ帳に入力し、拡張子を「lr2folder」として任意の場所に保存します。
※配置場所に制限はありません(LR2ジュークボックスに登録してあるフォルダ内であればどこでも可)が、
扱いはフォルダになるため、LR2の仕様上bms曲フォルダと同一階層に置いても表示されません。
※LR2におけるジュークボックスのディレクトリの扱いについては別な機会にまとめます。
○定義項
検索対象データを指定します。具体的な項目については公式のまとめ参照。
数字の場合と文字列の場合で引数が変わるので注意。
※difficulty(譜面難易度)で検索した場合はLR2側の難易度フィルタは無視されます。
○引数(便宜上こう呼ぶことにします)
定義項が数字の場合:不等号(<、=、>、<=、>=)
定義項が文字列の場合:LIKE 'キーワード'
※引数の手前に「!」を付けるとNOT検索になります。
※文字列に関する補足
・ワイルドカードは「%」を使います。('%キーワード'で後方一致、'キーワード%'で前方一致、'%キーワード%'でキーワードを含む)
・キーワードが半角アルファベットの場合、大文字・小文字の区別はされません。
例1
☆7の曲
level = 7
例2
ジャンルにClassicを含む曲
genre LIKE '%classic%'
○複数条件指定
ANDとORが使えます。また定義項と引数を半角括弧で囲むことにより条件を独立させることが出来ます。
例3
☆7で、かつジャンルにClassicを含む曲
level = 7 AND genre LIKE '%classic%'
例4
☆7で、かつジャンルかタグどちらかにClassicを含む曲
level = 7 AND (genre LIKE '%classic%' OR tag LIKE '%classic%')
○並び順の指定
ORDER BY 「定義項」 「ソート引数」の形で指定します。
便宜上ソート引数と書きましたがここにはASC:昇順かDESC:降順が入ります。
また、定義項はカンマ区切りで複数指定可能です。
※ORDER BY命令で並び順指定時、LR2側のソート機能は無視されます。
※文字列でソートした場合は大文字・小文字が区別されるため、
タグなどのユーザーが大・小文字で統一できる文字列での利用にしか向かないかと思われます。
例5
例4の検索結果をdifficulty順に表示(ビギナー→黒穴の順)
level = 7 AND (genre LIKE '%classic%' OR tag LIKE '%classic%') ORDER BY difficulty DESC
例6
例4の検索結果をdifficulty順に並べ、同一難易度の場合はトータルノーツが少ない順に表示
level = 7 AND (genre LIKE '%classic%' OR tag LIKE '%classic%') ORDER BY difficulty, totalnotes DESC
○ようするにこれがやりたかっただけ
例7
プレイランクAAAの曲をスコアレートが高い順に表示
rank >= 8 ORDER BY rate ASC
例8
ノマゲクリア曲をミスカウントが少ない順に表示
clear = 3 ORDER BY minbp ASC
うちのように全曲BACKBMPを自炊しており、かつbackbmpファイル名を
曲名の大文字アルファベット表記(曲名が全角文字の場合はローマ字読み)にしているという特殊環境の場合は
検索条件に関わらずbackbmp定義によるタイトルソートが可能という特典があります。
(タグの方がbackbmp自炊の手間が無い分、格段に楽ですが一部利用出来ない機能があります。)
※dbファイル内の登録名からの検索なのでbackbmp定義さえ統一してあれば、
実際のbackbmpファイル名は大・小文字どっちでも問題ありません。
bms曲のフォルダ名を読み仮名にしている人は少なくないと思いますが、
これはあくまでも選曲画面でのDIRECTORYソート時に読み仮名でソート出来るというもので、
ORDER BY命令によるソートでpathの降順をかけてもイベント順→タイトル順になるためあまり意味がありません。
ちなみにうちのbms曲フォルダはBACKBMPファイル名と同じフォルダ名にしてます。
○更に特殊な応用例(ローカルライバルフォルダ)
カスタムフォルダの書式を
#COMMAND __RIVAL__
#MAXTRACKS 「LR2ID」
とし、\LR2files\Rival\に上記で指定したライバルのスコアファイル(「LR2ID」.db)が入っていれば、
オフライン状態でもライバルフォルダが表示され、ライバルスコアの参照が出来ます。
※lr2folderファイルはRivalフォルダ以外の場所に置く必要があります。
※ライバルのスコアは、当然ながら最新のスコア状態ではない可能性があります。
※その気になればライバル登録しなくてもスコア比較が可能です。(相手のdbファイルが入手できれば)
※プレイスキンでは参照できないのでぶっちゃけスコア比較くらいしか出来ません。
(このローカルライバルフォルダから選曲した場合は通常フォルダで選曲した場合と同じ扱いになります)
※既にライバル登録している人のローカルライバルフォルダを作った場合、
オンライン時に同じライバルフォルダが2つ表示されます。(どちらもライバルフォルダとして機能します)
○蛇足
LR2での検索コマンドにはSQL構文というものが使われています。
プレイカウントフォルダのコマンドでORDER BY命令を見つけて軽く調べた程度なので付け焼刃にも程があるんですが、
どうやらLR2ではSQL構文において良く使われる「配列処理」が使えないらしいんですね。
これにより、大小文字の区別だったり、あるいは特定条件で検索した後、特定条件で並べ替えて、
その中の上から/下から○番目の値を抽出、といった複雑なコマンドが使えないとか何とか。
(上から/下から○個目まで、という表示なら#MAXTRACKSとの併用で可能です)
まぁ必要無いですけどね。
次回はLR2に役立つかもしれないフリーソフト①です。多分。
○カスタムフォルダ定義の書式
#COMMAND:検索コマンド
#MAXTRACKS:表示曲数の制限(0で無制限)
#CATEGORY:カスタムフォルダの説明(選曲スキンでの扱いによります)
#TITLE:カスタムフォルダ名
#SUBTITLE:カスタムフォルダの説明(選曲スキンでの扱いによります)
#INFORMATION_A
#INFORMATION_B
上記をまとめてメモ帳に入力し、拡張子を「lr2folder」として任意の場所に保存します。
※配置場所に制限はありません(LR2ジュークボックスに登録してあるフォルダ内であればどこでも可)が、
扱いはフォルダになるため、LR2の仕様上bms曲フォルダと同一階層に置いても表示されません。
※LR2におけるジュークボックスのディレクトリの扱いについては別な機会にまとめます。
○定義項
検索対象データを指定します。具体的な項目については公式のまとめ参照。
数字の場合と文字列の場合で引数が変わるので注意。
※difficulty(譜面難易度)で検索した場合はLR2側の難易度フィルタは無視されます。
○引数(便宜上こう呼ぶことにします)
定義項が数字の場合:不等号(<、=、>、<=、>=)
定義項が文字列の場合:LIKE 'キーワード'
※引数の手前に「!」を付けるとNOT検索になります。
※文字列に関する補足
・ワイルドカードは「%」を使います。('%キーワード'で後方一致、'キーワード%'で前方一致、'%キーワード%'でキーワードを含む)
・キーワードが半角アルファベットの場合、大文字・小文字の区別はされません。
例1
☆7の曲
level = 7
例2
ジャンルにClassicを含む曲
genre LIKE '%classic%'
○複数条件指定
ANDとORが使えます。また定義項と引数を半角括弧で囲むことにより条件を独立させることが出来ます。
例3
☆7で、かつジャンルにClassicを含む曲
level = 7 AND genre LIKE '%classic%'
例4
☆7で、かつジャンルかタグどちらかにClassicを含む曲
level = 7 AND (genre LIKE '%classic%' OR tag LIKE '%classic%')
○並び順の指定
ORDER BY 「定義項」 「ソート引数」の形で指定します。
便宜上ソート引数と書きましたがここにはASC:昇順かDESC:降順が入ります。
また、定義項はカンマ区切りで複数指定可能です。
※ORDER BY命令で並び順指定時、LR2側のソート機能は無視されます。
※文字列でソートした場合は大文字・小文字が区別されるため、
タグなどのユーザーが大・小文字で統一できる文字列での利用にしか向かないかと思われます。
例5
例4の検索結果をdifficulty順に表示(ビギナー→黒穴の順)
level = 7 AND (genre LIKE '%classic%' OR tag LIKE '%classic%') ORDER BY difficulty DESC
例6
例4の検索結果をdifficulty順に並べ、同一難易度の場合はトータルノーツが少ない順に表示
level = 7 AND (genre LIKE '%classic%' OR tag LIKE '%classic%') ORDER BY difficulty, totalnotes DESC
○ようするにこれがやりたかっただけ
例7
プレイランクAAAの曲をスコアレートが高い順に表示
rank >= 8 ORDER BY rate ASC
例8
ノマゲクリア曲をミスカウントが少ない順に表示
clear = 3 ORDER BY minbp ASC
うちのように全曲BACKBMPを自炊しており、かつbackbmpファイル名を
曲名の大文字アルファベット表記(曲名が全角文字の場合はローマ字読み)にしているという特殊環境の場合は
検索条件に関わらずbackbmp定義によるタイトルソートが可能という特典があります。
(タグの方がbackbmp自炊の手間が無い分、格段に楽ですが一部利用出来ない機能があります。)
※dbファイル内の登録名からの検索なのでbackbmp定義さえ統一してあれば、
実際のbackbmpファイル名は大・小文字どっちでも問題ありません。
bms曲のフォルダ名を読み仮名にしている人は少なくないと思いますが、
これはあくまでも選曲画面でのDIRECTORYソート時に読み仮名でソート出来るというもので、
ORDER BY命令によるソートでpathの降順をかけてもイベント順→タイトル順になるためあまり意味がありません。
ちなみにうちのbms曲フォルダはBACKBMPファイル名と同じフォルダ名にしてます。
○更に特殊な応用例(ローカルライバルフォルダ)
カスタムフォルダの書式を
#COMMAND __RIVAL__
#MAXTRACKS 「LR2ID」
とし、\LR2files\Rival\に上記で指定したライバルのスコアファイル(「LR2ID」.db)が入っていれば、
オフライン状態でもライバルフォルダが表示され、ライバルスコアの参照が出来ます。
※lr2folderファイルはRivalフォルダ以外の場所に置く必要があります。
※ライバルのスコアは、当然ながら最新のスコア状態ではない可能性があります。
※その気になればライバル登録しなくてもスコア比較が可能です。(相手のdbファイルが入手できれば)
※プレイスキンでは参照できないのでぶっちゃけスコア比較くらいしか出来ません。
(このローカルライバルフォルダから選曲した場合は通常フォルダで選曲した場合と同じ扱いになります)
※既にライバル登録している人のローカルライバルフォルダを作った場合、
オンライン時に同じライバルフォルダが2つ表示されます。(どちらもライバルフォルダとして機能します)
○蛇足
LR2での検索コマンドにはSQL構文というものが使われています。
プレイカウントフォルダのコマンドでORDER BY命令を見つけて軽く調べた程度なので付け焼刃にも程があるんですが、
どうやらLR2ではSQL構文において良く使われる「配列処理」が使えないらしいんですね。
これにより、大小文字の区別だったり、あるいは特定条件で検索した後、特定条件で並べ替えて、
その中の上から/下から○番目の値を抽出、といった複雑なコマンドが使えないとか何とか。
(上から/下から○個目まで、という表示なら#MAXTRACKSとの併用で可能です)
まぁ必要無いですけどね。
次回はLR2に役立つかもしれないフリーソフト①です。多分。
Entry ⇒ 2012.01.22 | Category ⇒ LR2関連 | Comments (0) | Trackbacks (0)
| NEXT≫