Bemanistyle #1 In music game coverage - Dance Dance Revolution, Beatmania, IIDX, Popn Music Sponsored Banner Ad. Contact Keith or Djp to AdvertiseSponsored Advertisement

Go Back   Bemanistyle [dot] com Forums > Bemani Simulation > Theme Discussion
Tags: , , ,

Reply
 
Thread Tools

Stepmania Theme Language Template Thread
Old 09-09-2007, 02:17 AM   #1
Midiman
I am awesome in all ways.
 
Midiman's Avatar
 
Midiman is offline
Join Date: Jun 2007
Posts: 142
Marketplace Rating: 0
Send a message via PM  to Midiman
Default Stepmania Theme Language Template Thread

Purpose of this topic:
  • Eliminate " how do I do X " questions
  • Provide a neat reference when you want to do something quickly in theming, but fail to know the language and terms involved
  • Provide myself a good way to contribute to the theming community
notice that these templates are full. please remove all the terms and fields you do NOT need

( thank you AJ for all the SM4 Knowledge <333 )

Stepmania 3.9
BGAnimations:
Code:
[BGAnimation]
LengthSeconds=0.30
[Layer*]
Condition= // refer to freizia's huge conditional list
Import= // Use this to refer to another ini
File=
Type=
Text= // if using text, File becomes /Fonts/*
OnCommand=
Command= // Equivalent to OnCommand.
OffCommand=
 CommandRepeatSeconds= // Sets command to repeat after x.y seconds.

Actors:
Code:
[Actor]
Text=*
File= // Looks for /Fonts/*
Models:
you can just point File= to *.txt or use this a .model containing this:
Code:
[Model]
Meshes= 
Materials=
Bones=
Stepmania 3.95
BGAnimations:
3.9 INI's can be used in legacy for this. but replace all instances of Type=* with Type=Bitmap/Layer/AutoActor, or leave it blank.

XML:
Regular Layers
Code:
<Layer // this replaces Type=
Name= // GIVE IT A NAME, JOHN
InitCommand= // start before any other command, useful for diffusealpha and zoom.
*Command= // same as 3.9
OnCommand= // again
OffCommand= // again
Condition= // kind of different than 3.9's Conditional System.
/>

Text And Quads
Code:
<BitmapText
Text= // same as 3.9
Font= // same as file
InitCommand= // you get the idea from this point
OnCommand=
OffCommand=
/>

Code:
 <Quad
InitCommand= // you'd want to put zoomtowidth and zoomtoheight here, to make the quad ( rectangular texture ) do things
OnCommand=
OffCommand= 
/>
Models:
mostly the same as 3.9:
Code:
<Layer
File=*.txt
/>

Making Multiple Layers
Code:
 <ActorFrame Command= Condition=> // this makes a " Box " that we carry the other layers in. this can use actions
<Children Command= Condition=> // this makes another " Box " that holds a select section of layers. this can use actions 
<Anything related to layers goes here>
</Children> // Always close your tags, or else 3.95 will claim the XML invalid, which it is.
</ActorFrame>


Actors
Code:
[Actor]
Text= // text
File= // font in question
Stepmania 4.0 CVS
ah yeah baby
, here we go, current shit:

BGAnimations:
local t = Def.ActorFrame{
LoadActor( "File" ) .. {
InitCommand=cmd(actions;);

};
};
return t;
Text ( Thanks AJ! )
Code:
 LoadFont("Fontname")..{
Text="Set text here, or alternately do it in a function if needed"
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_  Y;diffusealpha,0);
OnCommand=cmd(linear,0.5;diffusealpha,1;sleep,0.5;  playcommand,"ChangeText");
ChangeTextCommand=function(self)
self:settext("here's how you can change text programatically!");
end
}
Quads
Code:
local t = Def.Quad{
InitCommand=cmd(actions;);
 };
 };

That's really all there is to it in 4.0 CVS, but to really get a use for the whole language, you must refer to the LUA action and command dump:
http://stepmania.sourceforge.net/Lua.xml



__________________

- AJ 187, Tweak, Midiman -
Making your themes suck completely less since 2004, 2006, and 2007 respectively.
[/color][/color][/size]
Quote:
Originally Posted by hydrar View Post
are you a woman, because that would explain all the yelling. how come everytime i read your posts your typing in big letters
[/center]
[/center]

Last edited by Midiman : 09-09-2007 at 10:45 PM.
  Reply With Quote

Old 09-09-2007, 07:46 AM   #2
Midiman
I am awesome in all ways.
 
Midiman's Avatar
 
Midiman is offline
Join Date: Jun 2007
Posts: 142
Marketplace Rating: 0
Send a message via PM  to Midiman
Default

So far, I have 3.9 and 3.95 basics.

if anyone feels this is useful, please comment! thank you
__________________

- AJ 187, Tweak, Midiman -
Making your themes suck completely less since 2004, 2006, and 2007 respectively.
[/color][/color][/size]
Quote:
Originally Posted by hydrar View Post
are you a woman, because that would explain all the yelling. how come everytime i read your posts your typing in big letters
[/center]
[/center]
  Reply With Quote

Old 09-09-2007, 11:37 AM   #3
AJ 187
superman brothers
 
AJ 187 is offline
Join Date: Jun 2006
Location: Chicago
Posts: 788
Marketplace Rating: 0
Send a message via PM  to AJ 187
keeping the exploit, thanks
Default

BitmapText in SM4 since you forgot it:

LoadFont("Fontname")..{
Text="Set text here, or alternately do it in a function if needed"
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_ Y;diffusealpha,0);
OnCommand=cmd(linear,0.5;diffusealpha,1;sleep,0.5; playcommand,"ChangeText");
ChangeTextCommand=function(self)
self:settext("here's how you can change text programatically!");
end
}
  Reply With Quote

Old 09-09-2007, 02:10 PM   #4
Midiman
I am awesome in all ways.
 
Midiman's Avatar
 
Midiman is offline
Join Date: Jun 2007
Posts: 142
Marketplace Rating: 0
Send a message via PM  to Midiman
Default

added in.
__________________

- AJ 187, Tweak, Midiman -
Making your themes suck completely less since 2004, 2006, and 2007 respectively.
[/color][/color][/size]
Quote:
Originally Posted by hydrar View Post
are you a woman, because that would explain all the yelling. how come everytime i read your posts your typing in big letters
[/center]
[/center]
  Reply With Quote

Old 09-09-2007, 10:32 PM   #5
dieKatze88
STANLEY FUBAR
 
dieKatze88's Avatar
 
dieKatze88 is offline
Join Date: Jan 2005
Location: New Jersey
Posts: 2,597
Marketplace Rating: 4
Send a message via PM  to dieKatze88
dieKatze88 dieKatze88
Default

3.9:
CommandRepeatSeconds=x.y

Makes Command= loop after a set number of seconds.
__________________
Excel has no secret mod powers.
  Reply With Quote

Old 09-09-2007, 10:44 PM   #6
Midiman
I am awesome in all ways.
 
Midiman's Avatar
 
Midiman is offline
Join Date: Jun 2007
Posts: 142
Marketplace Rating: 0
Send a message via PM  to Midiman
Default

Quote:
Originally Posted by dieKatze88 View Post
3.9:
CommandRepeatSeconds=x.y

Makes Command= loop after a set number of seconds.
Forgot to add this

thanks!`
__________________

- AJ 187, Tweak, Midiman -
Making your themes suck completely less since 2004, 2006, and 2007 respectively.
[/color][/color][/size]
Quote:
Originally Posted by hydrar View Post
are you a woman, because that would explain all the yelling. how come everytime i read your posts your typing in big letters
[/center]
[/center]
  Reply With Quote

Old 09-11-2007, 09:09 PM   #7
dieKatze88
STANLEY FUBAR
 
dieKatze88's Avatar
 
dieKatze88 is offline
Join Date: Jan 2005
Location: New Jersey
Posts: 2,597
Marketplace Rating: 4
Send a message via PM  to dieKatze88
dieKatze88 dieKatze88
Default

Types on 3.9

0 = Normal
1 = Stretch to Screen (Only works in BGs)
2 = Tile?
3 = ???? (Profit?)
__________________
Excel has no secret mod powers.
  Reply With Quote

Old 09-11-2007, 10:08 PM   #8
AJ 187
superman brothers
 
AJ 187 is offline
Join Date: Jun 2006
Location: Chicago
Posts: 788
Marketplace Rating: 0
Send a message via PM  to AJ 187
keeping the exploit, thanks
Default

3 is particles
  Reply With Quote

Old 09-12-2007, 12:57 PM   #9
Wan
g//ay for k//eternal
 
Wan's Avatar
 
Wan is offline
Join Date: Jun 2006
Location: Santiago, Chile
Posts: 886
Marketplace Rating: 0
Send a message via PM  to Wan
Default

(can this thread be used for questions? If yes, that's fine. Otherwise, please move this post where appropriate)

I have a confusion with the XML thing. Let's see:

In the ITG2 AC theme, there's the following overlay for ScreenAttract, that displays the "INSERT COIN" text when there aren't credits inserted, "PRESS START" when inserted, "FREE PLAY" when it's set up, etc.

Code:
<ActorFrame><children>
	<BitmapText
		Font="_eurostile outline"
		Text="???"
		OnCommand="x,SCREEN_CENTER_X;y,SCREEN_BOTTOM-86;shadowlength,2;zoom,1;PlayCommand,Refresh"
		CoinModeChangedMessageCommand="PlayCommand,Refresh"		
		RefreshCommand="%
			function(self) 
				if GAMESTATE:GetCoinMode()==COIN_MODE_HOME then self:settext(''); return end
				local coins=GAMESTATE:GetCoins()
				local coinsPerCredit=PREFSMAN:GetPreference('CoinsPerCredit')
				if coins&gt;=coinsPerCredit or GAMESTATE:GetCoinMode()==COIN_MODE_FREE then 
					self:playcommand('PressStart') 
				else 
					self:playcommand('InsertCoin') 
				end 
			end"
		InsertCoinCommand="settext,INSERT COIN;diffuseshift;EffectColor1,1,1,1,0;EffectColor2,1,1,1,1;EffectPeriod,2;EffectOffset,1;effectdelay,1"
		PressStartCommand="%
			function(self)
				self:settext('PRESS &START;')
				self:diffuseblink()
				self:effectcolor1(1,1,1,0)
				self:effectcolor2(1,1,1,1)
				self:effectperiod((GAMESTATE:GetCoinMode() == COIN_MODE_FREE) and 1.0 or 0.3)
			end"
	/>
	<BitmapText
		Font="_eurostile outline"
		Text="???"
		OnCommand="x,SCREEN_CENTER_X;y,SCREEN_BOTTOM-56;shadowlength,2;zoom,0.8;diffuse,0.7,0.7,0.7,1;diffusebottomedge,#DFB629D0;PlayCommand,Refresh"
		RefreshCommand="%
			function(self)
				if GAMESTATE:IsEventMode() then self:settext('EVENT MODE') return end
				if GAMESTATE:GetCoinMode()==COIN_MODE_FREE then self:settext('FREE PLAY') return end
				if GAMESTATE:GetCoinMode()==COIN_MODE_HOME then self:settext('') return end
				local coins=GAMESTATE:GetCoins()
				local coinsPerCredit=PREFSMAN:GetPreference('CoinsPerCredit')
				local credits=math.floor(coins/coinsPerCredit)
				local remainder=math.mod(coins,coinsPerCredit)
				local s='CREDIT(S)  '
				if credits&gt;0 then s=s..credits..'  ' end
				s=s..remainder..'/'..coinsPerCredit
				self:settext(s)
			end"
		CoinInsertedMessageCommand="PlayCommand,Refresh"		
		CoinModeChangedMessageCommand="PlayCommand,Refresh"		
	/>
</children></ActorFrame>
What I want to do is to display images instead of BitmapText (obviously keeping the conditions), and I don't know what to change @@
__________________




  Reply With Quote

Old 09-10-2008, 10:31 PM   #10
Wan
g//ay for k//eternal
 
Wan's Avatar
 
Wan is offline
Join Date: Jun 2006
Location: Santiago, Chile
Posts: 886
Marketplace Rating: 0
Send a message via PM  to Wan
Default

I'm sorry to bump a thread THIS old, but I'm having (again) questions...

I want to convert a .ini BGAnimation to .xml, and I don't know how to convert this:

[Layer3]
File=ScreenSelectMusic stage 2.png
Type=3 // 0=sprite, 1=stretch, 2=particles, 3=tiles
TileVelocityX=50
TilesStartY=240
...etc

I still don't get how to specify that a layer is a tile, a stretch, etc
__________________





Last edited by Wan : 09-10-2008 at 10:48 PM.
  Reply With Quote

Old 09-10-2008, 11:46 PM   #11
AJ 187
superman brothers
 
AJ 187 is offline
Join Date: Jun 2006
Location: Chicago
Posts: 788
Marketplace Rating: 0
Send a message via PM  to AJ 187
keeping the exploit, thanks
Default

Tiles and the other types don't exist in later SM versions so you have to work around it.

Code:
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomtowidth,SCREEN_WIDTH;zoomtoheight,SCREEN_HEIGHT);
OnCommand=cmd(texcoordvelocity,0,-1;customtexturerect,0,0,5,5;diffuse,0.8,0.8,0.8,1);
code's for 4, but the main things to keep in mind:
1) texcoordvelocity and customtexturerect are the key elements to replicating tiles. play with them to find something that works.
2) stretch to screen width and height to cover the entire screen (you may also need more)
3) textures for tiling MUST either be a power of two in both dimensions or must have the stretch texture hint, i.e. _tile (stretch).png
  Reply With Quote

Old 09-11-2008, 12:19 AM   #12
sharksoda
SHARK SHARK SHARK
 
sharksoda's Avatar
 
sharksoda is offline
Join Date: Oct 2006
Location: Seattle, WA
Posts: 352
Marketplace Rating: 0
Send a message via PM  to sharksoda
soda
Default

Quote:
Originally Posted by AJ 187 View Post
3) textures for tiling MUST either be a power of two in any directions you are going to be moving in or must have the stretch texture hint, i.e. _tile (stretch).png
it will tile on x fine even if the y value is non power of 2, and vice versa.
  Reply With Quote

Old 09-11-2008, 10:45 PM   #13
Wan
g//ay for k//eternal
 
Wan's Avatar
 
Wan is offline
Join Date: Jun 2006
Location: Santiago, Chile
Posts: 886
Marketplace Rating: 0
Send a message via PM  to Wan
Default

Quote:
Originally Posted by shakesoda View Post
it will tile on x fine even if the y value is non power of 2, and vice versa.
i.e. a 640x480 texture would work fine?
__________________




  Reply With Quote

Old 09-11-2008, 11:16 PM   #14
AJ 187
superman brothers
 
AJ 187 is offline
Join Date: Jun 2006
Location: Chicago
Posts: 788
Marketplace Rating: 0
Send a message via PM  to AJ 187
keeping the exploit, thanks
Default

neither is a power of two so no
  Reply With Quote
Reply



Go Back   Bemanistyle [dot] com Forums > Bemani Simulation > Theme Discussion
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Sponsored Advertisement



All times are GMT -6. The time now is 12:54 PM.

vBulletin skin developed by: eXtremepixels
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
| Home | Register | FAQ | Members List | Calendar | Today's Posts | Search | New Posts |