waieiのスコア計算式を他のテーマに移植する※2014/01/20修正
Waiei
NO!
waiei
Not bad.
WAIEI
Yes!Yes!!YES!!!
ジャケットを表示させる
waieiでは、楽曲にジャケットがある場合、表示させることができます。
ファイル名に「jacket」または「albumart」が含まれている画像ファイル、またはファイル名の先頭に「jk_」とついている画像ファイルを用意します。
※グループフォルダの場合は、jacketという名前にする必要があります。(拡張子は対応する形式であればOK)
この時、画像サイズは正方形であれば問題ないですが、公式では256x256を想定しています。もちろん、512x512等大きいほうがきれいに描画されますが、
ジャケットファイルはバナーのようにキャッシュを作成しない為、ホイールのスクロールがかなり重くなります。特に初回読み込み時は尋常じゃない重さになります。
※とくにwaieiはかなりのつぎはぎ実装をしている為、他のテーマよりも数倍の負荷がかかっています。
waiei 1.Xで修復するのは困難ですので、次回作以降にご期待ください。
20段階難易度曲が赤文字になるのを防ぐ
StepManiaは10段階難易度式を採用しており、ほとんどのテーマでは激(5.0デフォルトではHARD)譜面の難易度が10または11以上の曲をボス曲と認識し、赤文字曲になります。
しかし、最近のパッケージでは本家に合わせて20段階難易度を採用しているものが増えてきたため、ほとんどの曲名が赤文字になってしまうという問題が発生するようになりました。
そこで、StepMania3.9の派生バージョンである3.9 Plusでは、SM形式のパラメータに#METERTYPEというものが実装され、難易度表記が何段階基準なのかを設定できるようになりました。
StepMania5.0では対応していないパラメータですが、waieiではGroup.iniで読み取り・認識することができます。具体的な方法は以下の通りです。
Group.iniに#METERTYPEパラメータを設定する
waiei独自の方法です。本来#METERTYPEはStepMania5.0非対応パラメータであるため、オフセットの調整などでファイルを更新すると#METERTYPEの記述が消えてしまいます。ちなみにwaieiのMETERTYPEと赤文字になる難易度の対応は以下の通りです。
METERTYPE | 激(HARD)の難易度 |
---|---|
DDR | 11以上 |
DDR X | 17以上 |
ITG | 13以上 |
曲名を好みの文字色にする
StepMania3.9の派生バージョンである3.9 Plusでは、SM形式のパラメータに#MENUCOLORというものが実装され、曲名の文字色を自由に設定できるようになりました。
StepMania5.0では対応していないパラメータですが、waieiでは読み取り・認識することができます。具体的な方法は以下の通りです。
Group.iniに#MENUCOLORパラメータを設定する
waiei独自の方法です。本来#MENUCOLORはStepMania5.0非対応パラメータであるため、オフセットの調整などでファイルを更新すると#MENUCOLORの記述が消えてしまいます。好みの曲順でソートする
StepMania5.0専用テーマCyberiaStyle 8 Solid Version 8.1では、曲を好みの順番にソートすることができるようになりました。
waieiでも、同様の方法で好みの順番にソートできるようにしました。具体的な方法は以下の通りです。なお、waiei1.33以降である必要があります。
Group.iniに以下のパラメータを記載します。
#SortList_Front:曲フォルダ名1:曲フォルダ名2:…:曲フォルダ名n;
#SortList_Rear:曲フォルダ名A:曲フォルダ名B:…:曲フォルダ名z;
これにより、以下のように曲が並び変わります。
#SortList_Frontで定義したフォルダ(定義順)→
定義していない曲(名前順)→#SortList_Rearで定義したフォルダ(定義順)
ソート仕様についてはgl_yuktさんのツイートを元に実装しています。
正式な仕様はCyberiaStyle8をご確認ください。
なお、waieiは#ExtraAtEndには対応していません。
この機能は、あくまでwaieiがCyberiaStyle8に合わせて実装しています。
両テーマで動作が異なる場合、CyberiaStyle8のほうが正しい動作となりますのでご注意ください。
waieiのスコア計算式を他のテーマに移植する
waieiは、デフォルトのほかに3.9/HYBRID/SN2のスコア計算式をサポートしています。しかし、ほかの多くのテーマでは計算式の変更をサポートしておらず、デフォルトのスコア計算式で処理されてしまいます。
その結果、waieiで出したスコアより成績が悪くても、スコアの値が高ければ上書きされてしまう現象が発生するようになりました。
そこで、ほかのテーマに簡易的にスコア計算式を移植する方法を紹介します。
注意:テーマを改造した時点で、そのテーマの作者が想定している動作ではなくなります。改造後のいかなるバグも自力で対処できないのであれば、改造行為をしないでください。
また、改造することによって動作しなくなる可能性がありますので、必ずバックアップをとってからにしてください。
1. 必要ファイルをコピーする
Themes/waiei/Scripts フォルダ内にある「99 Score.lua」を目的のテーマの Scripts フォルダ内にコピーします。
2. metrics.ini に必要なパラメータを追加する
該当テーマの「metrics.ini」を適当なテキストエディタ(メモ帳では改行コードが認識されない可能性あり、Unicode文字対応エディタ推奨)で開き、[Gameplay]にUseInternalScoringを追加します。
[Gameplay]
UseInternalScoring=GAMESTATE:IsCourseMode()
※2014/01/20:コースモードで動作しなくなるので修正
この値を false にするとスコア計算式の変更が可能になります。 true にするとデフォルトの計算式になります。
コースモードの処理はデフォルトに任せたいので、上記のようにしてモードで処理を変更します。
3. ゲーム中の動作を変更する
該当テーマの BGAnimations/ScreenGameplay decorations フォルダ内にある「default.lua」を適当なテキストエディタで開きスコア計算処理を追加します。
スコア処理は一番下の行にある「return t」の上に記載してください。
local customscore=GetCustomScoreMode();
local cscore="SuperNOVA2";
if not GAMESTATE:IsCourseMode() then
local stepcnt={0,0}
t[#t+1] = Def.Actor{
JudgmentMessageCommand = function(self, params)
if params.TapNoteScore and
params.TapNoteScore ~= 'TapNoteScore_AvoidMine' and
params.TapNoteScore ~= 'TapNoteScore_HitMine' and
params.TapNoteScore ~= 'TapNoteScore_CheckpointMiss' and
params.TapNoteScore ~= 'TapNoteScore_CheckpointHit' and
params.TapNoteScore ~= 'TapNoteScore_None'
then
if customscore=="old" then
Scoring[scoreType](params,
STATSMAN:GetCurStageStats():GetPlayerStageStats(params.Player))
elseif customscore=="5b2" then
local pn=((params.Player==PLAYER_1) and 1 or 2);
stepcnt[pn]=stepcnt[pn]+1;
CustomScore_SM5b2(params,cscore,GAMESTATE:GetCurrentSteps(params.Player),stepcnt[pn]);
elseif customscore=="5b1" then
local pn=((params.Player==PLAYER_1) and 1 or 2);
stepcnt[pn]=stepcnt[pn]+1;
CustomScore_SM5b1(params,cscore,GAMESTATE:GetCurrentSteps(params.Player),stepcnt[pn]);
else
local pn=((params.Player==PLAYER_1) and 1 or 2);
stepcnt[pn]=stepcnt[pn]+1;
CustomScore_SM5a2(params,cscore,GAMESTATE:GetCurrentSteps(params.Player),stepcnt[pn]);
end;
end
end;
InitCommand=function(self)
if customscore=="non" then
CustomScore_SM5a2_Init();
end;
end;
OffCommand=function(self)
if customscore=="non" then
CustomScore_SM5a2_Out();
end;
end;
};
end;
※2014/01/20:SM5A2/A3に対応
上記の場合、スコア計算式はSN2になります。変更したい場合は、上記コードの黄色の文字の部分を以下のものに変更してください。
3.9
Hybrid
SuperNOVA2
※大文字小文字は区別されます。
4. ゲームを起動させて確認
目的の動作であれば移植成功です。
ハイスピードオプションを追加する
StepMania3.9では、テーマごとにハイスピードオプションの項目を設定していました。
StepMania5ではユーザーが各自で設定できるようになっています。
この方法が有効なのはStepMania5.0 Beta3までです。
Beta4以降はゲーム内で自由な速度に変更できるようになりました。
1. StepMania5のセーブデータを保存しているフォルダを開く
まずは、設定を保存しているフォルダを開きます。StepMania5のフォルダ内か、AppData\Roaming\StepMania 5にSaveフォルダがあります。
StepManiaフォルダ内にある場合
・手動でSaveフォルダを作成している場合はここにあります。
AppData\Roaming\StepMania 5フォルダ内にある場合
・Windows+Rキーを押して「ファイル名を指定して実行」を呼び出し、 %AppData%\StepMania 5 と入力します。
・OKを押すと開くフォルダ内にSaveフォルダがあります。
2. SpeedMods.txtを編集
Saveフォルダ内にあるSpeedMods.txtを編集します。
PROFILE単位で編集する場合は「LocalProfiles」フォルダ内の該当するPROFILE番号のフォルダ内に、
全体の設定として編集する場合は「MachineProfile」フォルダ内に「SpeedMods.txt」があります。
メモ帳などのテキストエディタで開いてください。
MachineProfile内のSpeedMods.txtを編集すると、すべてのPROFILEに反映されます。
なお、waieiのリアルタイムハイスピード変更(ゲーム中Select+←/→)ではこの全体設定のSpeedMods.txtを読み取っているため、こちらの編集を推奨します。
・追加したいスピードを書き加えます。
3. ゲームへの反映を確認
反映されていれば追加完了です。