waiei / EXFolder開発キット

⇦ StepMania(資料)へ戻る

EXFolder(ボスフォルダ)開発キット
EXFolder Development Kit

最終更新:2015年12月20日


waiei系テーマの機能、EXFolderをあなたのテーマに実装させるための資料です。
対象者:テーマ製作者

準備

テーマ開発キットのダウンロード

ファイル最終更新日:2015年12月20日

  • 一部パラメータが取得できていない問題に対応しました

ファイル構成

それぞれのファイルの説明です。

 

metrics.ini-additional-text.txt

BGAnimationLua.txt

Scripts/90 EXF_Base.lua

Scripts/91 EXF_function.lua

Scripts/90 FileRW.lua

Scripts/91 Life.lua

Scripts/100 StepMania.lua

BGAnimations/ScreenEXFolderIntro decorations

BGAnimations/ScreenEXFolderIntro overlay

BGAnimations/ScreenSelectExMusic background

BGAnimations/ScreenSelectExMusic decorations

BGAnimations/ScreenSelectExMusic overlay

実装

今回は例として、StepMania5.0.9のデフォルトテーマに実装してみます。

ファイルのコピー・上書き

BGAnimationフォルダ内のLuaに追記

BGAnimation/ScreenSelectMusic decorations/default.lua

local t = LoadFallbackB();
t[#t+1] = EXF_ScreenSelectMusic();
t[#t+1] = Def.ActorFrame{
	CodeMessageCommand = function(self, params)
		if params.Name=="ExFolder" then
			StartEXFolder(GetActiveGroupName());
		end;
	end;
};

BGAnimation/ScreenStageInformation underlay/default.lua

local t = Def.ActorFrame {};
t[#t+1] = EXF_ScreenStageInformation();

BGAnimation/ScreenGameplay overlay.lua

local t = Def.ActorFrame {};
t[#t+1] = EXF_ScreenGameplay();

BGAnimation/ScreenEvaluation/default.lua

local t = Def.ActorFrame {};
t[#t+1] = EXF_ScreenEvaluation();

BGAnimation/ScreenTitleMenu decorations.lua

local t = Def.ActorFrame {};
t[#t+1] = EXF_ScreenTitleMenu();

BGAnimation/ScreenEvaluation background/default.lua

デフォルトテーマの場合、リザルト画面専用の背景があるため、第2引数は true になります。

-- 上の行はデフォルトのコードから書き換えないでください --
t = EXF_ScreenEvaluation_Background(t,true);
return t

ScreenWithMenuElementsを使用している等で、backgroundがない場合は第2引数をfalseにします。

local t = Def.ActorFrame {};
t = EXF_ScreenEvaluation_Background(t,false);
return t;

BGAnimation/ScreenProfileSave Background

Metrics.iniの編集

ScreenEXFolderIntroセクション

[ScreenEXFolderIntro]
ShowHeader=false
ShowFooter=false
ShowHelp=false
Fallback="ScreenWithMenuElements"
NextScreen="ScreenSelectExMusic"
PrevScreen="ScreenSelectMusic"
StopMusicOnBack=true
TimerSeconds=99
TimerStealth=true
CodeNames=EXFolderIntroCode()
CodeLeft="MenuLeft"
CodeLeft2="Left"
CodeLeft3="DownLeft"
CodeRight="MenuRight"
CodeRight2="Right"
CodeRight3="DownRight"
CodeUp="MenuUp"
CodeUp2="Up"
CodeUp3="UpLeft"
CodeDown="MenuDown"
CodeDown2="Down"
CodeDown3="UpRight"
CodeStart="Start"
CodeCenter="Center"
CodeBack="Back"
CodeEffectUp="EffectUp"
CodeEffectDown="EffectDown"

ScreenSelectExMusicセクション

[ScreenSelectExMusic]
ShowHeader=false
ShowFooter=true
Fallback="ScreenWithMenuElements"
NextScreen="ScreenSelectMusic"
PrevScreen="ScreenSelectMusic"
PlayMusic=false
StopMusicOnBack=true
TimerSeconds=60
TimerStealth=true
CodeNames=SelectExMusicCode()
CodeLeft="+MenuLeft"
CodeLeft2="+Left"
CodeLeft3="+DownLeft"
CodeRight="+MenuRight"
CodeRight2="+Right"
CodeRight3="+DownRight"
CodeUp="MenuUp,MenuUp"
CodeUp2="Up,Up"
CodeUp3="UpLeft"
CodeDown="MenuDown,MenuDown"
CodeDown2="Down,Down"
CodeDown3="UpRight"
CodeStart="Start"
CodeBack="Back"
CodeBackRelease="~Back"
CodeCenter="Center"

LifeMeterBarセクション

[LifeMeterBar]
#OverOnCommandはデフォルトで書かれています。
OverOnCommand=diffuse,Color("Orange");diffuserightedge,BoostColor(Color("Orange"),1.5)
InitialValue=LifeMeterInit()
DangerThreshold=LifeMeterDanger()
LifePercentChangeW1=LifeMeterW1()
LifePercentChangeW2=LifeMeterW2()
LifePercentChangeW3=LifeMeterW3()
LifePercentChangeW4=LifeMeterW4()
LifePercentChangeW5=LifeMeterW5()
LifePercentChangeMiss=LifeMeterMiss()
LifePercentChangeHitMine=LifeMeterHitMine()
LifePercentChangeHeld=LifeMeterHeld()
LifePercentChangeLetGo=LifeMeterLetGo()
LifePercentChangeCheckpointMiss=LifeMeterCheckpointMiss()
LifePercentChangeCheckpointHit=LifeMeterCheckpointHit()

ScreenSelectMusicセクション

[ScreenSelectMusic]
CodeNames="ExFolder,ExFolder2"
CodeExFolder="Select,Up"
CodeExFolder2="Select,MenuUp"
#以下、デフォルトの内容

動作確認

情報取得用関数

△TOP