[ITG]StepMania5.1のxml→lua自動変換機能について①(使用方法)

記事の目的

これまでの記事ではOpenITG(SM3.9系)で動くluaの記法について解説してきました。
しかし、StepManiaの現在のメジャーバージョンは5.0系であり、3.9系と5.0系ではluaの記法が異なるため、そのままでは動作させることができません。
この記事では、StepMania本体の機能であるxmlluaの自動変換(以下、xml2luaと呼ぶことにします)の使用方法を解説します。

近年開催されている大規模な譜面投稿イベント(例:クソフマス2019)では投稿された譜面のプレイ配信がありますが、その際に使用されるソフトもStepMania5.0系です。
(参考:http://gamecenter-hisakunchi.blog.jp/archives/19690842.html)
これまでの解説と今回の記事で、譜面投稿イベントにluaを使った演出を盛り込んだ作品を提出したいと考えている方の助けになればと思います。

やりたいこと

luaをOpenITGだけでなくStepMania5.0系でも動かしたい

xml2luaの使用方法について

まずはStepManiaフォルダ内のSongsフォルダに、変換したいxmlが入った曲を入れて下さい。
フォルダ構成は変える必要はないので、OpenITGで動作した譜面を曲フォルダごとStepManiaのSongsフォルダ内にコピーすればOKです。


曲をオートプレイで流して、F3を押しながらF6を押し、さらにQを押すと自動変換が実行されます。
(3/23 0:25追記:選曲画面でも同じ操作で変換可能でした)
xmlがあるフォルダに拡張子が.luaのファイルが生成されていたら成功です。


一旦オートプレイを終了し、再度曲を選択するとluaの方が読み込まれます。
想定している動作をすれば変換成功です。

f:id:kai_yuki:20200322234942p:plain

ちなみに、過去にブログで公開した譜面の変換可否は以下の通りでした。
SPACE OF SOUL(Conditionによる分岐)・・・変換成功
S.O.M.E.D.A.Y(難易度に応じてジャケット分岐)・・・変換失敗(大幅に手直しが必要:次回の記事で解説)
Magical Love Words(PlayerIsUsingModifierによる難易度の取得)・・・変換成功
Magical Love Words(GetChild('SongOptions')を用いた実装)・・・変換失敗(ただし微細な修正で対応可能)
怒首領Papasito大往生デスレーベル・・・変換失敗(難易度による分岐の部分のみ失敗、本体部分は変換成功)

怒首領Papasito大往生のようなそれなりの規模のluaでも一発で変換に成功したので、なかなか変換精度は良さそうです。
一方で変換に失敗する場合もあり、その場合はデバッグが必要となります。

次回は難易度に応じた動作変更のSM5対応について解説します。

参考URL

Lua for StepMania 5
https://quietly-turning.github.io/Lua-For-SM5/
StepMania5版のlua解説サイト(英語)です。使用できる関数や3.9系との違いなど、SM5系のluaを作成するのに必要な情報が詰まっています。

paraphrohn’s diary ITGギミック制作記6: StepMania5への対応 (1)
https://paraphrohn.hateblo.jp/entry/2019/09/15/212958
xmlluaの構文の違いについての解説があります。今回の自動変換は、この記事で記載されている内容の置換+αを自動でやってくれるイメージです。