!このコードは Lua です!
たとえばsm/sscファイルの中に
#TEST:AAABBBCCCDDD;
というパラメータが存在した場合、
GetSMParameter(song,"TEST");
とすると AAABBBCCCDDD が返ってきます。
存在しない場合は空文字。
Str2Colorはおまけ。
"1.0,0.5,0.8,1.0" のように、色情報が文字列となっているときに使うことで
各色情報が個別にテーブルデータで返ってきます。
値が異常な場合は白が返ってきます。
例:水色を返す
local str_col="0.0,0.5,1.0,1.0";
local tab_col=Str2Color(str_col);
self:diffuse(tab_col[1],tab_col[2],tab_col[3],tab_col[4]);
—
2021年追記
悲しいことに標準で同じ機能が用意されていた。無知は罪。
local str_col="0.0,0.5,1.0,1.0"
self:diffuse(color(str_col))
!このコードは Lua です!
たとえばsm/sscファイルの中に
#TEST:AAABBBCCCDDD;
というパラメータが存在した場合、
GetSMParameter(song,"TEST");
とすると AAABBBCCCDDD が返ってきます。
存在しない場合は空文字。
Str2Colorはおまけ。
"1.0,0.5,0.8,1.0" のように、色情報が文字列となっているときに使うことで
各色情報が個別にテーブルデータで返ってきます。
値が異常な場合は白が返ってきます。
例:水色を返す
local str_col="0.0,0.5,1.0,1.0";
local tab_col=Str2Color(str_col);
self:diffuse(tab_col[1],tab_col[2],tab_col[3],tab_col[4]);
—
2021年追記
悲しいことに標準で同じ機能が用意されていた。無知は罪。
local str_col="0.0,0.5,1.0,1.0"
self:diffuse(color(str_col))
function GetSMParameter(song,prm)local st=song:GetAllSteps();if #st<1 thenreturn "";end;local t;t=st[1]:GetFilename();if not FILEMAN:DoesFileExist(t) thenreturn "";end;local f=RageFileUtil.CreateRageFile();f:Open(t,1);local tmp={};local pl=string.lower(prm);while true dol=f:GetLine();local ll=string.lower(l);if string.find(ll,"#notes:.*") or f:AtEOF() thentmp[1]="";break;-- [ja] BOM考慮して .* を頭につけるelseif string.find(ll,".*#"..pl..":.*") thentmp=split(":",l);if tmp[2]==";" thentmp[1]="";elsetmp=split(";",tmp[2]);end;break;end;end;f:Close();return tmp[1];end;function Str2Color(prm)local c={"1.0","1.0","1.0","1.0"};c=split(",",prm);if #c<4 thenc={"1.0","1.0","1.0","1.0"}end;return c;end;