Dual-Ego DX15 少し遅くなりましたが今年の新年譜面です。今年のテーマはopenITGの限界を目指す、で行こうと思います pic.twitter.com/8FKJvMeZWf
— paraphrohn (@paraphrohn) 2020年1月3日
とりあえず使ってみたい人向きです。
ダウンロードURLはこちら。(2020年1月14日更新)
https://www.mediafire.com/file/5ksyz8504e56cs9/DUAL_EGO.zip/file
説明の前にいくつか制限事項と注意を。
・ホールド、地雷非対応。
ロールは言わずもがな。対応めんどくさいし最悪固まっちゃうんですよ。
・ソフラン非対応。
レーンごとに「ハイスピを変更する」ことはできますが、BPMの変更そのものはできません。また逆に、途中でBPMが変化する譜面にも使えません。
・停止非対応。
Dual-Egoでは停止しているように見えますが……それはまた後ほど。
・一般MODS非対応。
tornado、beat、boomerangのような前衛オプションはもちろん使えません。というか、そもそもopen/not問わずITG側でのオプションを一切受け付けず、その辺の情報はluaに直接書き込む必要があります。
・2曲目以降、ROUND n表記が消えません。
どうも本体側がバグってるみたいです。
・ぶっちゃけ最初は思い通りに動かないと思います。
作った本人よく把握できてないのでしょうがないです。
・シングルにも使えますがやや難しいです。
ちなみに10パネとか18パネとかにも適用できます。だからどうした。対応のさせ方はまた次回書きます。
・複数難易度を持つ譜面への対応も難しいです。
ある程度luaが書けないと話になりません。
次に、このluaを使った際に表示が変えられるもの一覧です。
・ノートスキン
・判定レーン
・判定文字
・コンボ
・ライフゲージ(主に枠)
・曲名
・プログレスバー(主に枠)
・難易度表示
・BPM表示
簡単に言えば画面上に存在するものほぼ全部です。
では本編に入ります。上のファイル、解凍すると中身はこうなっています。
今回使うのはfgフォルダです。ちなみにbgフォルダには「rateをかけてもムービーがズレない」luaが入ってます。
それで、fgフォルダの中身は以下の通りです。
readme.txtなんてものが入ってますが中身はほぼダミーです。
とにかく、3つのフォルダに素材をどんどん突っ込んでいって、いくつかのxmlを弄れば使えます。
まず初めにstepzone→steps.xmlを弄ります。
stepzoneフォルダ内のreadme.txtに少し書いてありますが、paraph_stepsという配列に、smファイル内の譜面を突っ込む必要があります。
これはsteps.xmlの中身です。この{{}}で囲まれてる部分を、実際に使いたい譜面に置き換えます。基本的には.smファイルの譜面部分(0とか1とかが並んでる部分)をコピペしてきて、サクラエディタで
, → },{
^([^}]+)$ → '$1',
の置換を行えば用意できます。(情報提供: およし様)
これを1行あけてある下から丸ごと書き換えます。以上です。
次にstep_parameters.xmlを弄ります。
一段下げの<Layer>ラッシュの少し下、PrepareCompleteMessageCommand2行目のparaph_BPMを使いたい曲のBPMに合わせます。これで準備完了です。
あとdefault.xmlを弄る必要がありますが、これは前までの日記を参考にUpdateCommand形式で書けば基本大丈夫です。
modsの1行目に{0.000, 'Start'}を残しておいて、if mod[2] == 'Start' then MESSAGEMAN:Broadcast('Start') endを入れておくことと、PrepareCompleteMessageCommandをDual-Egoのdefault.xmlからコピペしておくことさえ守っておけばそうそう壊れません。
後は素材を準備して投げつけます。
需要が高そうな順に説明します。
1. ノートスキン
stepzone → arrows 4x4.png、arrows.xml、arrow 4x4.spriteあたりを弄ります。
ITGスキンのようにグラデーションを移動させたりしたい場合には4x4などの形で用意する必要がありますが、そうでない場合は矢印に使いたい画像1個だけ入れれば大丈夫です。
また、Dual-Egoは途中でスキンを変える関係上少し複雑な記述になっているのでそこも直す必要があります。
・画像1個だけを使う場合
arrows 4x4.png、arrow 4x4.sprite、arrow.xmlを削除して、使いたい画像をarrows.pngとして突っ込みます。
その後、note_operator.xmlの下の方にずらりと並んでいる 'arrows.xml' を全部 'arrows.png' に置換して終了です。
・4x4の画像を用意する場合
arrows 4x4.pngを上書きして、arrow 4x4.spriteを書き換えます。
Delay00xx=の後の0.077を、120÷BPM÷16に書き換えます。
その後、arrow.xmlを開いて以下のように書き換えて終了です。
・スキンを変えたくない場合
DivinEntityというスキンセットの中に4x4形式の"CEL"スキン画像が入っていますので、上下反転するなりして入れてください。
その後、arrow.xmlを同様に書き換えて終了です。
2. 判定文字
life_gauge → judgment 1x6.pngを上書きします。その後、judgment.xmlを開いて以下のように書き換えて終了です。
3. ライフゲージの枠
life_gauge → gauge_frame.pngを上書きします。その後、gauge_frame.xmlをarrow.xmlと同様に書き変えて終了です。
4. ライフゲージの色
life_gauge → LifegaugeP1.xmlを弄ります。
この2枚のレイヤーのうち、上側がベースの色、下側がグラデーションの色を決めてます。
それぞれ、InitCommand内のdiffuseの後を弄ることで好きな色に変えられます。またグラデが必要ない場合には2枚目のレイヤーを消せば単色になります。NegaMessageCommandの行は消しておいてください。
5. プログレスバー、曲名
overlay → overlay.xmlを弄ります。
この4枚のレイヤーがプログレスバーを作っています。上から順に
・フレームの色
・プログレスバーのベースの色
・プログレスバーのグラデーション
・プログレスバーの進行管理(進行していない部分を黒で塗りつぶす)
NegaMessageCommandは消すとして、基本はdiffuseのあとの数字を弄るだけです。
この2枚はそれぞれ曲名、BPM表示を表してます。
現在はBitmapTextで用意していますが、これをFile="ファイル名.png"に変えれば画像での曲名表示も可能です。その場合はFontの行を削除し、またInitCommand内のshadowlength,0およびOnCommand内のself:settext(GAMESTATE:GetCurrentSong():GetDisplayFullTitle()を削除してください。
BPMは自動取得で整数表示されます。フォントと色が変えられます。もちろん画像を用意してそれを使っても大丈夫です。
6. 難易度表示
overlay → difficulty.pngを上書きします。その後difficulty.xmlをarrow.xmlと同様に書き変えれば枠を自由に弄れます。
文字の方はoverlay.xmlで管理されていて、
こうなっています。StartMessageCommand内を以下のように書き変えれば好きな難易度表記ができます。
それだけです。
長くなったので今日はここまでです。他にも変えたいところがあったら気軽に聞いてください。追記します。