Function.nss

From TLWiki

Jump to: navigation, search
$Revision: 54 $

//=============================================================================//
//■初期値定義
//=============================================================================//
//boot内で初期化
function BootInit()
{
	InitBGM();
}

//各シナリオファイルで初期化
function Init()
{
	InitBGM();
	LoadBox();
	

	//↓以下、超速でどのみち要復帰なので本番では未使用かも
	//選択肢でつるすのに使用
	CreateWindow("selectwin", 111, 0,0, 800,600, true);
	SetAlias("selectwin","selectwin");
	//効果をつるすのに使用
	CreateWindow("effectwin", 112, 0,0, 800,600, true);
	SetAlias("effectwin","effectwin");

	//立ち絵用変数初期化
	InitStand();

	//要既読設定
	$フル構成名 = "nss/" + $構成名;
	//$構文名 = "mainscene";
	Conquest($フル構成名,"main",true);
	Conquest($フル構成名,"mainscene",true);

}

function EndScene()
{
	Delete("フォント1A");
	Delete("@gradbox*");
	Delete("@selectwin/*");
	Delete("@selectwin");
	Delete("@effectwin/*");
	Delete("@effectwin");

}

//=============================================================================//
//■超速関連
//=============================================================================//
//超速判定
function ChkSkip()
{
	$SceneAllRead=false;
	$SceneAllRead=Conquest($フル構成名,"mainscene",null);
	$超速スキップ = "";
	if(($SYSTEM_skip && #SYSTEM_skip_express && $AllRead) || ($SYSTEM_skip && #SYSTEM_skip_express && #SYSTEM_skip_absolute)){
		SkipOut();
		$超速スキップ = "あり";
	}else{
		$超速スキップ = "なし";
	}

}
	//未読時もスキップをするかどうかの状態を設定、1(true):有効、0(false):無効
	//#SYSTEM_skip_absolute
//スキップ時処理
function SkipOut()
{
	//既読に設定 true;
	if(#SYSTEM_skip_absolute){ $AllRead =Conquest($フル構成名,$構文名,true);}
	

	//BGM
	SetVolume("@bk*", 500, 0, null);
	//SE
	SetVolume("@SE*", 500, 0, null);
}

//=============================================================================//
//■ボックス定義
//=============================================================================//

function LoadBox()
{
	LoadMainFont();
	
	LoadBox00();
	LoadBox01();
	LoadBox02();
	LoadBox03();
	LoadBox04();
	LoadBox05();
}

//デフォルト画面下、4行全幅24
function LoadBox00()
{
	CreateTexture("gradbox00",1000,0,0,"cg/sys/box/box00.png");
	SetAlias("gradbox00","gradbox00");
	Fade("gradbox00",0,0,null,false);
	Request("gradbox00", Hideable);
}
//特殊用、全画面、14行全幅、ボックスグラデスペーサー
function LoadBox01()
{
	CreateTexture("gradbox01",1001,0,0,"cg/sys/box/spacer.png");
	SetAlias("gradbox01","gradbox01");
	Fade("gradbox01",0,0,null,false);
	Request("gradbox01", Hideable);
}
//特殊用、画面中央、4行全幅、ボックスグラデスペーサー
function LoadBox02()
{
	CreateTexture("gradbox02",1002,0,0,"cg/sys/box/box02.png");
	SetAlias("gradbox02","gradbox02");
	Fade("gradbox02",0,0,null,false);
	Request("gradbox02", Hideable);
}
//特殊用、画面左、14行半幅、ボックスグラデスペーサー
function LoadBox03()
{
	CreateTexture("gradbox03",1003,0,0,"cg/sys/box/spacer.png");
	SetAlias("gradbox03","gradbox03");
	Fade("gradbox03",0,0,null,false);
	Request("gradbox03", Hideable);
}
//特殊用、画面右、14行半幅、ボックスグラデスペーサー
function LoadBox04()
{
	CreateTexture("gradbox04",1004,0,0,"cg/sys/box/spacer.png");
	SetAlias("gradbox04","gradbox04");
	Fade("gradbox04",0,0,null,false);
	Request("gradbox04", Hideable);
}
//特殊用、全画面、14行全幅
function LoadBox05()
{
	CreateTexture("gradbox05",1005,0,0,"cg/sys/box/box02.png");
	SetAlias("gradbox05","gradbox05");
	Fade("gradbox05",0,0,null,false);
	Request("gradbox05", Hideable);
}

function SetTextWindow()
{
	ShowChapterName();
	CreateWindow("box00",1010, 40,440, 760,200, true);
	CreateWindow("box01",1011, 40, 40, 760,560, true);
	CreateWindow("box02",1012, 60,250, 760,240, true);
	CreateWindow("box03",1013, 40, 40, 460,560, true);
	CreateWindow("box04",1014,350, 40, 460,560, true);
	CreateWindow("box05",1015, 40, 40, 760,560, true);
}
function ShowChapterName()
{
	$チャプター名 = $構成名 +"->"+ $構文名 +":"+ $スクリプトバージョン +"";
	$SYSTEM_spt_name = "$チャプター名";
}

//=============================================================================//
//■テキスト定義
//=============================================================================//AROUND//LEFTDOWN//500//560
function LoadMainFont()
{
	LoadFont("フォント1A", "MS 明朝", 24, 0xFFFFFF, 0x000000, 500, AROUND, "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉっゃゅょアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポァィゥェォッャュョ、。ー…!?蓉司哲雄");
}
function SetMainFont()
{
	SetFont("MS 明朝", 24, 0xFFFFFF, 0x000000, 500, AROUND);
}
//"$ボックス名","$テキスト名"
function SetText()
{
	SetMainFont();
	
	if("$SYSTEM_present_preprocess" == "box01"){
		LoadText("$構文名","$SYSTEM_present_preprocess","$SYSTEM_present_text",720,520,-1,36);
	}else if("$SYSTEM_present_preprocess" == "box02"){
		LoadText("$構文名","$SYSTEM_present_preprocess","$SYSTEM_present_text",720,180,-1,36);
	}else if("$SYSTEM_present_preprocess" == "box03"){
		LoadText("$構文名","$SYSTEM_present_preprocess","$SYSTEM_present_text",400,520,-1,36);
	}else if("$SYSTEM_present_preprocess" == "box04"){
		LoadText("$構文名","$SYSTEM_present_preprocess","$SYSTEM_present_text",400,520,-1,36);
	}else if("$SYSTEM_present_preprocess" == "box05"){
		LoadText("$構文名","$SYSTEM_present_preprocess","$SYSTEM_present_text",720,520,-1,36);
	}else{
		//box00,box05
		LoadText("$構文名","$SYSTEM_present_preprocess","$SYSTEM_present_text",720,200,-1,36);
	}
	
	Request("$SYSTEM_present_text", Erase);
	Request("$SYSTEM_present_text", Hideable);
}

/*
function SetText("$ボックス名","$テキスト名")
{
	SetMainFont();
	
	if("$ボックス名" == "box01"){
		LoadText("$構文名","$ボックス名","$テキスト名",720,500,-1,36);
	}else if("$ボックス名" == "box02"){
		LoadText("$構文名","$ボックス名","$テキスト名",720,180,-1,36);
	}else if("$ボックス名" == "box03"){
		LoadText("$構文名","$ボックス名","$テキスト名",420,500,-1,36);
	}else if("$ボックス名" == "box04"){
		LoadText("$構文名","$ボックス名","$テキスト名",420,500,-1,36);
	}else{
		//box00,box05
		LoadText("$構文名","$ボックス名","$テキスト名",720,200,-1,36);
	}
	
	Request("$テキスト名", Erase);
	Request("$テキスト名", Hideable);
}
*/

function TypeBegin($非表示フラグ)
{
	$boxtype = $SYSTEM_present_preprocess;
	$textnumber = $SYSTEM_present_text;
	
	//ボックスグラデ表示
	$boxgrad = "@grad" + $boxtype;
	Fade($boxgrad,500,1000,null,true);

	//タイピング開始&ウェイト
	Request($textnumber, Enter);
	WaitText($textnumber, null);
	
	$txt = $boxtype + "/*";
	
	if($非表示フラグ == 1)
	{
		Fade($txt,250,0,null,false);
		Request($txt, Disused);
		Fade($boxgrad,500,0,null,true);
	}else{
		Fade($txt,0,0,null,true);
		Request($txt, Disused);
		//WaitFade($txt,null);
	}
}
//バックログに入れない
function TypeBeginNL($非表示フラグ)
{
	$boxtype = $SYSTEM_present_preprocess;
	$textnumber = $SYSTEM_present_text;
	
	//ボックスグラデ表示
	$boxgrad = "@grad" + $boxtype;
	Fade($boxgrad,500,1000,null,true);

	//タイピング開始&ウェイト
	Request($textnumber, Enter);
	Request($textnumber, NoLog);
	WaitText($textnumber, null);
	
	$txt = $boxtype + "/*";
	
	if($非表示フラグ == 1)
	{
		Fade($txt,250,0,null,false);
		Request($txt, Disused);
		Fade($boxgrad,500,0,null,true);
	}else{
		Fade($txt,0,0,null,true);
		Request($txt, Disused);
		//WaitFade($txt,null);
	}
}
//消去時Fade所要時間指定用→未動作[08/09/10]
function TypeBegin2($非表示フラグ,所要時間)
{
	$boxtype = $SYSTEM_present_preprocess;
	$textnumber = $SYSTEM_present_text;
	
	//ボックスグラデ表示
	$boxgrad = "@grad" + $boxtype;
	Fade($boxgrad,500,1000,null,true);

	//タイピング開始&ウェイト
	Request($textnumber, Enter);
	WaitText($textnumber, null);
	
	$txt = $boxtype + "/*";
	
	if($非表示フラグ == 1)
	{
		Fade($txt,所要時間,0,null,false);
		Request($txt, Disused);
		Fade($boxgrad,所要時間,0,null,true);
	}else{
		Fade($txt,所要時間,0,null,true);
		Request($txt, Disused);
		//WaitFade($txt,null);
	}
}
function Type2Begin2($非表示フラグ,所要時間,透明度)
{
	$boxtype = $SYSTEM_present_preprocess;
	$textnumber = $SYSTEM_present_text;
	
	//ボックスグラデ表示
	$boxgrad = "@grad" + $boxtype;
	Fade($boxgrad,500,透明度,null,true);

	//タイピング開始&ウェイト
	Request($textnumber, Enter);
	WaitText($textnumber, null);
	
	$txt = $boxtype + "/*";
	
	if($非表示フラグ == 1)
	{
		Fade($txt,所要時間,0,null,false);
		Request($txt, Disused);
		Fade($boxgrad,所要時間,0,null,true);
	}else{
		Fade($txt,所要時間,0,null,true);
		Request($txt, Disused);
		//WaitFade($txt,null);
	}
}
/*
	$txt = $boxtype + "/*";//"box0*/*"
	Fade($txt,所要時間,0,null,false);
	
	//Request("$textnumber",Erase);
	Request($txt, Disused);
	
	if($非表示フラグ == 1)
	{
		Fade($boxgrad,所要時間,0,null,true);
	}else{
		WaitFade($txt,null);
	}

}
*/
function HideBoxGrad(所要時間,待ち)
{
	$boxtype = $SYSTEM_present_preprocess;
	$boxgrad = "@grad" + $boxtype;
	Fade("$boxgrad",所要時間,0,null,待ち);
}
function ShowBox00Grad(所要時間,待ち)
{
	Fade("@gradbox00",所要時間,1000,null,待ち);
}
function HideBox00Grad(所要時間,待ち)
{
	Fade("@gradbox00",所要時間,0,null,待ち);
}
function ShowBox02Grad(所要時間,待ち)
{
	Fade("@gradbox02",所要時間,1000,null,待ち);
}
function HideBox02Grad(所要時間,待ち)
{
	Fade("@gradbox02",所要時間,0,null,待ち);
}

//バックログでのファイルとファイルの間に1行入れる
function Enter1line()
{
	SetBacklog(" ",null,null);
}

//=============================================================================//
//■立ち絵系
//=============================================================================//
//立ち絵表示
//bu,buL,buR,st,stL,stR

//立ち絵用変数初期化
function InitStand()
{
	//立ち絵の描画優先度
	$ST_LAYNUM=31;
	$BU_LAYNUM=41;
	//サーフェイスの描画優先度
	$STSF_NUM=$ST_LAYNUM+1;
	$BUSF_NUM=$BU_LAYNUM+1;
	
	//X基準移動量
	$STX_X="@0";
	$STL_X="@-200";
	$STR_X="@200";
	$BUX_X="@0";
	$BUL_X="@-170";
	$BUR_X="@170";
	
	//パス
	$ST_PATH="cg/st/";
	$BU_PATH="cg/bu/";

}

function CreateSt($X移動,$Y移動,$元画像,待ち)
{
	$全画像=$ST_PATH + $元画像;
	xSetStand("stX",$ST_LAYNUM,$STX_X,$X移動,$Y移動,$全画像,待ち,true);
}
function CreateStL($X移動,$Y移動,$元画像,待ち)
{
	$全画像=$ST_PATH + $元画像;
	xSetStand("stL",$ST_LAYNUM,$STL_X,$X移動,$Y移動,$全画像,待ち,true);
}
function CreateStR($X移動,$Y移動,$元画像,待ち)
{
	$全画像=$ST_PATH + $元画像;
	xSetStand("stR",$ST_LAYNUM,$STR_X,$X移動,$Y移動,$全画像,待ち,true);
}
function CreateBu($X移動,$Y移動,$元画像,待ち)
{
	$全画像=$BU_PATH + $元画像;
	xSetStand("buX",$BU_LAYNUM,$BUX_X,$X移動,$Y移動,$全画像,待ち,true);
}
function CreateBuL($X移動,$Y移動,$元画像,待ち)
{
	$全画像=$BU_PATH + $元画像;
	xSetStand("buL",$BU_LAYNUM,$BUL_X,$X移動,$Y移動,$全画像,待ち,true);
}
function CreateBuR($X移動,$Y移動,$元画像,待ち)
{
	$全画像=$BU_PATH + $元画像;
	xSetStand("buR",$BU_LAYNUM,$BUR_X,$X移動,$Y移動,$全画像,待ち,true);
}
function xSetStand($ナット名,描画優先度,$基準X移動量,$X移動量,$Y移動量,"画像",待ち)
{
	CreateTexture($ナット名, 描画優先度, center,600,"画像");
	SetAlias($ナット名,$ナット名);

	Move($ナット名,0,$基準X移動量,0, null,true);
	Move($ナット名,0, $X移動量,$Y移動量, null,待ち);

}
function FadeSt($X移動量分,$Y移動量分,$画像,待ち)
{
	FadeSurface($STSF_NUM,$ST_LAYNUM);

	DeleteSt();
	CreateSt($X移動量分,$Y移動量分,$画像,待ち);
	FadeDeleteSurface();
}
function FadeStL($X移動量分,$Y移動量分,$画像,待ち)
{
	FadeSurface($STSF_NUM,$ST_LAYNUM);

	DeleteStL();
	CreateStL($X移動量分,$Y移動量分,$画像,待ち);
	FadeDeleteSurface();
}
function FadeStR($X移動量分,$Y移動量分,$画像,待ち)
{
	FadeSurface($STSF_NUM,$ST_LAYNUM);

	DeleteStR();
	CreateStR($X移動量分,$Y移動量分,$画像,待ち);
	FadeDeleteSurface();
}
function FadeBu($X移動量分,$Y移動量分,$画像,待ち)
{
	FadeSurface($BUSF_NUM,$BU_LAYNUM);

	DeleteBu();
	CreateBu($X移動量分,$Y移動量分,$画像,待ち);
	FadeDeleteSurface();
}
function FadeBuL($X移動量分,$Y移動量分,$画像,待ち)
{
	FadeSurface($BUSF_NUM,$BU_LAYNUM);

	DeleteBuL();
	CreateBuL($X移動量分,$Y移動量分,$画像,待ち);
	FadeDeleteSurface();
}
function FadeBuR($X移動量分,$Y移動量分,$画像,待ち)
{
	FadeSurface($BUSF_NUM,$BU_LAYNUM);

	DeleteBuR();
	CreateBuR($X移動量分,$Y移動量分,$画像,待ち);
	FadeDeleteSurface();
}

function FadeSurface($SF_NUM,$EF_NUM)
{
	CreateSurface("suf",$SF_NUM,1000,0,false);
	SetAlias("suf","suf");

	CreateEffect("ef",$EF_NUM,0,0,800,600,"Plain");
	SetAlias("ef","ef");
	SetSurface("ef","suf");
	
	Move("suf",0,0,0,null,true);
	Draw();

	SetSurface("ef",null);
	Delete("ef");
}

function FadeDeleteSurface()
{
	FadeDelete("suf",300,false);
}


//立ち絵削除
function DeleteSt()
{
	Delete("stX*");
}
function DeleteStL()
{
	Delete("stL*");
}
function DeleteStR()
{
	Delete("stR*");
}
function DeleteBu()
{
	Delete("buX*");
}
function DeleteBuL()
{
	Delete("buL*");
}
function DeleteBuR()
{
	Delete("buR*");
}

//立ち絵表示
function StandIn("ナット名", 待ち)
{
	Fade("ナット名", 0, 0, null, true);
	Fade("ナット名", 400, 1000, null, 待ち);
}
//立ち絵非表示
function StandOut("ナット名", 待ち)
{
	FadeDelete("ナット名", 400, 待ち);
}

//立ち絵to立ち絵
function CreateComposite("ナット名", 画像優先度)
{
	//CreateSurface("ナット名", 画像優先度, X座標, Y座標, α判定);
	CreateSurface("ナット名", 画像優先度,1000,0,false);//仮想スクリーンを生成
	//CreateEffect("ナット名", 画像優先度, X座標, Y座標, X幅, Y幅, "エフェクト名");
	CreateEffect("ef",41,0,0,800,600,"Plain");//プレーンエフェクト(毎フレーム画像実画面の切り出し)
	SetSurface("ef","合成");//プレーンエフェクトのレンダリングターゲットをサーフェイスに変更

	Move("合成",0,0,0,null,true);
	Draw();
	Wait(10);

	DeleteBu();
	DeleteBuL();
	DeleteBuR();
	DeleteSt();
	DeleteStL();
	DeleteStR();
	Delete("背景*");
	SetSurface("ef",null);
	Delete("ef");
}

//=============================================================================//
//■効果ムービー系
//=============================================================================//
function CreateEffectMovie("ナット名",描画優先度,所要時間, 透明度,レンダー処理,αチャンネル, "ムービーファイル",待ち)
{
	CreateMovie("ナット名",描画優先度, center,middle,true,αチャンネル,"ムービーファイル");
	Fade("ナット名",0,0,null,true);
	Request("ナット名", レンダー処理);
	Fade("ナット名",所要時間, 透明度,null,待ち);
}
//紙焼きin
function TransMvOut("ナット名",RX,RY,RZ,待ち)
{
	CreateMovie("ナット名",1019, center,middle,false,true,"dx/301.ngs");
	Rotate("ナット名",0, RX,RY,RZ, null,false);
	WaitPlay("ナット名",待ち);
	Request("ナット名",Disused);
}
//紙焼きout
function TransMvIn("ナット名",RX,RY,RZ,待ち)
{
	CreateMovie("ナット名",1019, center,middle,false,true,"dx/302.ngs");
	Rotate("ナット名",0, RX,RY,RZ, null,false);
	WaitPlay("ナット名",待ち);
	Request("ナット名",Disused);
}
	//左下から
	//TransMvOut("切替ムービーout",0,0,0,null);//3400//
	//左上から
	//TransMvOut("切替ムービーout",180,0,0,null);
	//右下から
	//TransMvOut("切替ムービーout",0,180,0,null);
	//右上から
	//TransMvOut("切替ムービーout",0,0,180,null);

	//左下へ
	//3400//
	//TransMvIn("切替ムービーin",0,0,0,null);
	//左上へ
	//TransMvIn("切替ムービーin",180,0,0,null);
	//右下へ
	//TransMvIn("切替ムービーin",0,180,0,null);
	//右上へ
	//TransMvIn("切替ムービーin",0,0,180,null);

//=============================================================================//
//■テクスチャー系
//=============================================================================//
//テクスチャー表示

//以下↓旧マクロ//
function CreateTxt("$画像")
{
	$切替画像= "cg/texture/" + $画像;
	CreateTexture("@effectwin/効果95",95, 0,0, $切替画像);
	Request("@effectwin/効果95", OverlayRender);
}
//↑まで旧マクロ//


//テクスチャ指定
function CreateTx("ナット名",描画優先度,所要時間, 透明度,レンダー名, "$画像", 待ち)
{
	$切替画像= "cg/texture/" + $画像;
	CreateTexture("ナット名",描画優先度, 0,0, $切替画像);
	Request("ナット名", レンダー名);
	Fade("ナット名",0, 0,null,true);
	Fade("ナット名",所要時間, 透明度,null,待ち);
}

//テクスチャ番号指定で表示
function CreateTxNum($テクスチャ番号)
{
	CreateTxNumX("効果95",95,$テクスチャ番号);
}
function CreateTxNum2($テクスチャ番号)
{
	CreateTxNumX("効果96",96,$テクスチャ番号);
}
function CreateTxNumEX($テクスチャ番号)
{
	CreateTxNumX("効果95",95,$テクスチャ番号);
	Fade("@effectwin/効果95",0, 0,null,true);
}
function CreateTxNumEX2($テクスチャ番号)
{
	CreateTxNumX("効果96",96,$テクスチャ番号);
	Fade("@effectwin/効果96",0, 0,null,true);
}
//前半中盤: 1:昼, 2:夕, 3:夜, 4:夜点灯, 5:肉, 6:その他, 7:夕雨
//後半  :11:昼,12:夕,13:夜,14:夜点灯,15:肉,16:その他,17:夕雨
//回想系 :31:近過去回想1
//			41:遠過去回想1
function CreateTxNumX("$ナット名",描画優先度,$テクスチャ番号)
{

	if($テクスチャ番号==2){
		$画像 = "txt0320_レントゲン.png";
	}else if($テクスチャ番号==3){
		$画像 = "txt0330_レントゲン.png";
	}else if($テクスチャ番号==4){
		$画像 = "txt0210_ノイズ2.png";
	}else if($テクスチャ番号==5){
		$画像 = "txt0420_血管.png";
	}else if($テクスチャ番号==6){
		$画像 = "txt0331_レントゲン.png";
	}else if($テクスチャ番号==7){
		$画像 = "txt0230_ノイズ2.png";//txt0310_レントゲン.png
	}else if($テクスチャ番号==11){
		$画像 = "txt0220_ノイズ2.png";
	}else if($テクスチャ番号==12){
		$画像 = "txt0120_ノイズ.png";
	}else if($テクスチャ番号==13){
		$画像 = "txt0330_レントゲン.png";
	}else if($テクスチャ番号==14){
		$画像 = "txt0210_ノイズ2.png";
	}else if($テクスチャ番号==15){
		$画像 = "txt0430_血管.png";
	}else if($テクスチャ番号==16){
		$画像 = "txt0331_レントゲン.png";
	}else if($テクスチャ番号==17){
		$画像 = "txt0230_ノイズ2.png";//txt0430_血管.png//txt0420_血管.png
	}else if($テクスチャ番号==31){
		$画像 = "txt0210_ノイズ2.png";
	}else if($テクスチャ番号==41){
		$画像 = "txt0220_ノイズ2.png";//txt0230_ノイズ2.png//txt0310_レントゲン.png
	}else{
		$画像 = "txt0210_ノイズ2.png";
	}

	$切替画像= "cg/texture/" + $画像;
	$窓ナット= "@effectwin/" + $ナット名;
	CreateTexture($窓ナット,描画優先度, 0,0, $切替画像);

	if($テクスチャ番号==6){
		Request($窓ナット, AddRender);
	}else if($テクスチャ番号==3){
		Request($窓ナット, MulRender);
	}else if($テクスチャ番号==4){
		Request($窓ナット, OverlayRender);
	}else if($テクスチャ番号==14){
		Request($窓ナット, MulRender);
	}else if($テクスチャ番号==17){
		Request($窓ナット, AddRender);
	}else if($テクスチャ番号==31){
		Request($窓ナット, MulRender);
	}else if($テクスチャ番号==41){
		Request($窓ナット, MulRender);
	}else{
		Request($窓ナット, OverlayRender);
	}

}

//肉専用テクスチャ//
function CreateTxNum6("ナット名",描画優先度,透明度,待ち)
{
	$切替画像= "cg/texture/txt0421_血管.png";///txt0331_レントゲン.png/
	CreateTexture("ナット名",描画優先度, 0,0, $切替画像);
	Request("ナット名", MulRender);
	Fade("ナット名",0, 0,null,true);
	Fade("ナット名",所要時間, 透明度,null,待ち);

}
function FadeTx(所要時間,透明度,待ち)
{
	Fade("@effectwin/効果95", 所要時間,透明度, null, 待ち);
}
function FadeDeleteTx(所要時間,待ち)
{
	Fade("@effectwin/効果95", 所要時間,0, null, 待ち);
	Request("@effectwin/効果95",Disused);
}
function DeleteTx()
{
	Delete("@effectwin/効果95");
}
//function DisusedTx()
//{
//	Request("@effectwin/効果95",Disused);
//}
function FadeTx2(所要時間,透明度,待ち)
{
	Fade("@effectwin/効果96", 所要時間,透明度, null, 待ち);
}
function FadeDeleteTx2(所要時間,待ち)
{
	Fade("@effectwin/効果96", 所要時間,0, null, 待ち);
	Request("@effectwin/効果96",Disused);
}
function DeleteTx2()
{
	Delete("@effectwin/効果96");
}
//function DisusedTx2()
//{
//	Request("@effectwin/効果96",Disused);
//}

function CreateTextureEX("ナット名",描画優先度, X座標, Y座標, "画像")
{
	CreateTexture("ナット名",描画優先度, X座標, Y座標, "画像");
	Fade("ナット名",0,0,null,true);
}

//=============================================================================//
//■画面切り替え定義
//=============================================================================//
	//終了値=0->トランジション解除
	//終了点>開始点=ナット表示
	//終了点<開始点=ナット消去

//背景用の画面切り替え、非表示⇒表示
function TransIn("ナット名",所要時間,境界値,"$画像",待ち)
{
	Fade("ナット名", 0, 0, null, true);
	Fade("ナット名", 所要時間, 1000, null, false);
	$切替画像= "cg/data/" + $画像;
	DrawTransition("ナット名", 所要時間, 0, 1000, 境界値, null, "$切替画像", 待ち);
}
//背景用の画面切り替え、表示⇒非表示
function TransOut("ナット名",所要時間,境界値,"$画像",待ち)
{
	Fade("ナット名", 所要時間, 0, null, false);
	$切替画像= "cg/data/" + $画像;
	DrawTransition("ナット名", 所要時間, 1000, 0, 境界値, null, "$切替画像", 待ち);
	Request("ナット名",Disused);
}

//背景用画像定義+切替
function CreateTransIn("ナット名",描画優先度,"表示画像",所要時間,境界値,"$画像",待ち)
{
	CreateTexture("ナット名", 描画優先度, 0,0, "表示画像");
	TransIn("ナット名",所要時間,境界値,画像,待ち);
}


//フェードして削除
function FadeDelete("ナット名", 所要時間, 待ち)
{
	Fade("ナット名", 所要時間, 0, null, 待ち);
	Request("ナット名", UnLock);
	Request("ナット名", Disused);
}

//ブラックフェード用の黒一枚板作成
function CreateBlack("ナット名",透明度)
{
	CreateColor("ナット名", 120, 0,0, 800,600, 0x000000);
	Fade("ナット名", 0, 透明度, null, true);
}
//ブラックフェード(レンダー処理が減算合成)用の白一枚板作成
//減算合成の画像を重ねれば重ねる程、#000000に近づいていく
function CreateBlack2("ナット名",透明度)
{
	CreateColor("ナット名", 120, 0,0, 800,600, 0xFFFFFF);
	Request("ナット名",SubRender);
	Fade("ナット名", 0, 透明度, null, true);
}
//ホワイトフェード用の白一枚板作成
function CreateWhite("ナット名",透明度)
{
	CreateColor("ナット名", 120, 0,0, 800,600, 0xFFFFFF);
	Fade("ナット名", 0, 透明度, null, true);
}
//ホワイトフェード(レンダー処理が加算合成)用の黒一枚板作成
//加算合成の画像を重ねれば重ねる程、#FFFFFFに近づいていく
function CreateWhite2("ナット名",透明度)
{
	CreateColor("ナット名", 120, 0,0, 800,600, 0xFFFFFF);
	Request("ナット名",AddRender);
	Fade("ナット名", 0, 透明度, null, true);
}

	//画面転換用トップフェード
//トップブラックフェード用の黒一枚板作成
function CreateTopBlack("ナット名",透明度)
{
	CreateColor("ナット名", 1020, 0,0, 800,600, 0x000000);
	Fade("ナット名", 0, 透明度, null, true);
}
//トップブラックフェード(レンダー処理が減算合成)用の白一枚板作成
//減算合成の画像を重ねれば重ねる程、#000000に近づいていく
function CreateTopBlack2("ナット名",透明度)
{
	CreateColor("ナット名", 1020, 0,0, 800,600, 0xFFFFFF);
	Request("ナット名",SubRender);
	Fade("ナット名", 0, 透明度, null, true);
}
//トップホワイトフェード用の白一枚板作成
function CreateTopWhite("ナット名",透明度)
{
	CreateColor("ナット名", 1020, 0,0, 800,600, 0xFFFFFF);
	Fade("ナット名", 0, 透明度, null, true);
}
//トップホワイトフェード(レンダー処理が加算合成)用の黒一枚板作成
//加算合成の画像を重ねれば重ねる程、#FFFFFFに近づいていく
function CreateTopWhite2("ナット名",透明度)
{
	CreateColor("ナット名", 1020, 0,0, 800,600, 0xFFFFFF);
	Request("ナット名",AddRender);
	Fade("ナット名", 0, 透明度, null, true);
}

//=============================================================================//
//■動作コマンド系
//=============================================================================//
function FadeFade("ナット名",描画時間,透明度, テンポ,待ち)
{
	Fade("ナット名", 0, 0, null, true);
	Fade("ナット名", 描画時間, 透明度, テンポ,待ち);
}
function FadeMove("ナット名",描画時間, 透明度, X座標,Y座標, テンポ,待ち)
{
	Fade("ナット名", 描画時間, 透明度, テンポ, false);
	Move("ナット名", 描画時間, X座標,Y座標, テンポ, 待ち);
}
function FadeZoom("ナット名",描画時間,透明度,倍率, テンポ,待ち)
{
	Fade("ナット名", 描画時間, 透明度, テンポ, 待ち);
	Zoom("ナット名", 描画時間, 倍率, 倍率, テンポ, 待ち);
}
function MoveZoom("ナット名",描画時間, X座標,Y座標, 倍率, テンポ,待ち)
{
	Move("ナット名", 描画時間, X座標,Y座標, テンポ, false);
	Zoom("ナット名", 描画時間, 倍率, 倍率, テンポ, 待ち);
}
function FadeMoveZoom("ナット名",描画時間, 透明度, X座標,Y座標, 倍率, テンポ,待ち)
{
	Fade("ナット名", 描画時間, 透明度, テンポ, false);
	Move("ナット名", 描画時間, X座標,Y座標, テンポ, false);
	Zoom("ナット名", 描画時間, 倍率, 倍率, テンポ, 待ち);
}
function ZoomRotate("ナット名",描画時間, 倍率, X軸回転角度,Y軸回転角度,Z軸回転角度, テンポ,待ち)
{
	Zoom("ナット名", 描画時間, 倍率, 倍率, テンポ, false);
	Rotate("ナット名", 描画時間, X軸回転角度,Y軸回転角度,Z軸回転角度, テンポ, 待ち);
}
//=============================================================================//
//■プロセス系
//=============================================================================//

//=============================================================================//
//■サウンド系
//=============================================================================//
// 定義
function CreateBGM("ナット名","$音楽データ")
{
	$場所指定 = "sound/bgm/" + "$音楽データ";

	CreateSound("ナット名", BGM, "$場所指定");
	SetVolume("ナット名", 0, 0, NULL);
	SetAlias("ナット名", "ナット名");
	Request("ナット名", Lock);
}

function CreateSE("ナット名","$音楽データ")
{
	$場所指定 = "sound/se/" + "$音楽データ";

	CreateSound("ナット名", SE, "$場所指定");
	SetVolume("ナット名", 0, 0, NULL);
	SetAlias("ナット名", "ナット名");
}

function CreateVOICE("ナット名","$音楽データ")
{
	$場所指定 = "voice/" + "$音楽データ";

	CreateSound("ナット名", VOICE, "$場所指定");
	SetVolume("ナット名", 0, 0, NULL);
	SetAlias("ナット名", "ナット名");
}

// 再生
function BGMStart("ナット名",秒数,ボリウム,再生方向,再生スピード,テンポ,ループ設定)
{
	Request("ナット名", "Play");

	SetFrequency("ナット名", 0, 再生スピード, NULL);
	SetPan("ナット名", 0, 再生方向, NULL);
	SetLoop("ナット名", ループ設定);
	SetVolume("ナット名", 秒数, ボリウム, テンポ);
}

function SEPlay("ナット名",秒数,ボリウム,ループ設定)
{
	Request("ナット名", Stop);
	Request("ナット名", Play);
	SetLoop("ナット名", ループ設定);
	SetVolume("ナット名", 秒数, ボリウム, null);
	Request("ナット名", Disused);
}

//function SoundStop("ナット名")
//{
//	SetVolume("ナット名", 3000, 0, NULL);
//}

//■分割bgmの再生制御
//02日常2
function SetVolume_bk02(秒数, ボリウム1,ボリウム2,ボリウム3, テンポ)
{
	Request("@bk021", "Play");//ベーシック
	Request("@bk022", "Play");//ノイズ
	Request("@bk023", "Play");//リズム
	SetLoop("@bk021", true);
	SetLoop("@bk022", true);
	SetLoop("@bk023", true);
	SetVolume("@bk021", 秒数, ボリウム1, テンポ);
	SetVolume("@bk022", 秒数, ボリウム2, テンポ);
	SetVolume("@bk023", 秒数, ボリウム3, テンポ);
}
//04不吉な予感2
function SetVolume_bk04(秒数, ボリウム1,ボリウム2,ボリウム3, テンポ)
{
	Request("@bk041", "Play");//ドラム&パーカッション
	Request("@bk042", "Play");//ノイズ・ギター
	Request("@bk043", "Play");//ノイズ・シンセ
	SetLoop("@bk041", true);
	SetLoop("@bk042", true);
	SetLoop("@bk043", true);
	SetVolume("@bk041", 秒数, ボリウム1, テンポ);
	SetVolume("@bk042", 秒数, ボリウム2, テンポ);
	SetVolume("@bk043", 秒数, ボリウム3, テンポ);
}
//05緊迫1
function SetVolume_bk05(秒数, ボリウム1,ボリウム2,ボリウム3, テンポ)
{
	Request("@bk051", "Play");//ドラム&パーカッション
	Request("@bk052", "Play");//ギター
	Request("@bk053", "Play");//シンセ&ループ
	SetLoop("@bk051", true);
	SetLoop("@bk052", true);
	SetLoop("@bk053", true);
	SetVolume("@bk051", 秒数, ボリウム1, テンポ);
	SetVolume("@bk052", 秒数, ボリウム2, テンポ);
	SetVolume("@bk053", 秒数, ボリウム3, テンポ);
}
//06緊迫2
function SetVolume_bk06(秒数, ボリウム1,ボリウム2,ボリウム3, テンポ)
{
	Request("@bk061", "Play");//ベーシック
	Request("@bk062", "Play");//ノイズ
	Request("@bk063", "Play");//リズム
	SetLoop("@bk061", true);
	SetLoop("@bk062", true);
	SetLoop("@bk063", true);
	SetVolume("@bk061", 秒数, ボリウム1, テンポ);
	SetVolume("@bk062", 秒数, ボリウム2, テンポ);
	SetVolume("@bk063", 秒数, ボリウム3, テンポ);
}
//11悲しい2
function SetVolume_bk11(秒数, ボリウム1,ボリウム2, テンポ)
{
	Request("@bk111", "Play");//ベーシック
	Request("@bk112", "Play");//ノイズ
	SetLoop("@bk111", true);
	SetLoop("@bk112", true);
	SetVolume("@bk111", 秒数, ボリウム1, テンポ);
	SetVolume("@bk112", 秒数, ボリウム2, テンポ);
}
//13非日常2
function SetVolume_bk13(秒数, ボリウム1,ボリウム2,ボリウム3, テンポ)
{
	Request("@bk131", "Play");//ベーシック
	Request("@bk132", "Play");//ノイズ
	Request("@bk133", "Play");//リズム
	SetLoop("@bk131", true);
	SetLoop("@bk132", true);
	SetLoop("@bk133", true);
	SetVolume("@bk131", 秒数, ボリウム1, テンポ);
	SetVolume("@bk132", 秒数, ボリウム2, テンポ);
	SetVolume("@bk133", 秒数, ボリウム3, テンポ);
}
//14邪悪
function SetVolume_bk14(秒数, ボリウム1,ボリウム2,ボリウム3, テンポ)
{
	Request("@bk141", "Play");//ドラムループ
	Request("@bk142", "Play");//ギター&バス
	Request("@bk143", "Play");//ノイズループ
	SetLoop("@bk141", true);
	SetLoop("@bk142", true);
	SetLoop("@bk143", true);
	SetVolume("@bk141", 秒数, ボリウム1, テンポ);
	SetVolume("@bk142", 秒数, ボリウム2, テンポ);
	SetVolume("@bk143", 秒数, ボリウム3, テンポ);
}

//タイトル、エクストラメニュー
//ボタン選択決定処理
function BtnSelected($ボタンナット名)
{
	BtnSelectedSE();
	Fade($ボタンナット名,300,0,null,false);
}
//ボタン選択音(EXIT系)
function BtnSelectedSE()
{
	SEPlay("@se_sys02",0,800,false);
	SetVolume("@se_sys02", 2500, 0, null);
}
//ボタン選択音
function BtnDecidedSE()
{
	SEPlay("@se_sys01",0,1000,false);
	SetVolume("@se_sys01", 1500, 0, null);
}
function BtnDecided($ボタンナット名)
{
	BtnDecidedSE();
	Fade($ボタンナット名,300,0,null,false);
}

//■全BGMを纏めて定義//ゲーム内で1回だけ初期化
//36files
// 1:basic, 2:noiz, 3:rhythm
function InitBGM()
{
	if(! $BGM_Init){
		$BGM_Init = true;
		
		CreateSE("se_sys01","se_sys決定");////se_config決定
		Request("se_sys01", Lock);
		CreateSE("se_sys02","se_sys選択肢決定");
		Request("se_sys02", Lock);

		CreateBGM("bk01","sp01");
		CreateBGM("bk02","sp02");
		CreateBGM("bk021","sp02_basic");
		CreateBGM("bk022","sp02_noiz");
		CreateBGM("bk023","sp02_rhythm");
		CreateBGM("bk03","sp03");
		CreateBGM("bk04","sp04");
		CreateBGM("bk041","sp04_basic");
		CreateBGM("bk042","sp04_noiz");
		CreateBGM("bk043","sp04_rhythm");
		CreateBGM("bk05","sp05");
		CreateBGM("bk051","sp05_basic");
		CreateBGM("bk052","sp05_noiz");
		CreateBGM("bk053","sp05_rhythm");
		CreateBGM("bk06","sp06");
		CreateBGM("bk061","sp06_basic");
		CreateBGM("bk062","sp06_noiz");
		CreateBGM("bk063","sp06_rhythm");
		CreateBGM("bk07","sp07");
		CreateBGM("bk08","sp08");
		CreateBGM("bk08_ver2","sp08_ver2");
		CreateBGM("bk09","sp09");
		CreateBGM("bk10","sp10");
		CreateBGM("bk11","sp11");
		CreateBGM("bk111","sp11_basic");
		CreateBGM("bk112","sp11_noiz");
		CreateBGM("bk12","sp12");
		CreateBGM("bk13","sp13");
		CreateBGM("bk131","sp13_basic");
		CreateBGM("bk132","sp13_noiz");
		CreateBGM("bk133","sp13_rhythm");
		CreateBGM("bk14","sp14");
		CreateBGM("bk141","sp14_basic");
		CreateBGM("bk142","sp14_noiz");
		CreateBGM("bk143","sp14_rhythm");
		CreateBGM("bk15","sp15");

		//ED//
		//SP_ED1	the red road/Pale Green	(TRUE ED)
		CreateBGM("bk_ed1","SP_ED1");
		//SP_ED2	diving deep/Pale Green	(姫谷ED,GOOD ED2)
		CreateBGM("bk_ed2","SP_ED2");
		//SP_ED3	Miracles may/いとうかなこ	(GRAND ED)
		CreateBGM("bk_ed3","SP_ED3");
		//SP_ED3_violin	Miracles may (Violin Ver.)/インスト	(理性ED,GOOD ED1)
		CreateBGM("bk_ed3_violin","SP_ED3_violin");
		//SP_ED4	VLG/ワタナベカズヒロ	(善弥ED,BAD ED1)
		CreateBGM("bk_ed4","SP_ED4");
		//SP_ED5	The Hunger/Ken1		(睦ED,BAD ED2)
		CreateBGM("bk_ed5","SP_ED5");
		
		//SP_OP	I'm in blue/Pale Green
		CreateBGM("bk_op","SP_OP");

		
		/**/
		CreateBGM("bk_ed2_inst","SP_ED2_inst");
		CreateBGM("bk_ed3_inst","SP_ED3_inst");
		CreateBGM("bk_ed4_inst","SP_ED4_INST");
		CreateBGM("bk_ed5_inst","SP_ED5_INST");

		//タイトル画面//
		CreateBGM("bk_op_inst","SP_OP_inst");

		//メディアライブラリ//
		CreateBGM("bk_ed1_short","SP_ED1_short");
		CreateBGM("bk_ed2_short","SP_ED2_short");
		CreateBGM("bk_ed3_short","SP_ED3_short");
		CreateBGM("bk_ed3_violin_short","SP_ED3_violin_short");
		CreateBGM("bk_ed4_short","SP_ED4_short");
		CreateBGM("bk_ed5_short","SP_ED5_short");
		CreateBGM("bk_op_short", "SP_OP_short");
		
		//夕焼け小焼け
		CreateBGM("bk_yuuyake","SE_yuuyake");

	}
}

/*
sweet pool:BGMリスト

01・日常1
02・日常2		‡
03・不吉な予感1
04・不吉な予感2	‡
05・緊迫1			‡
06・緊迫2			‡
07・穏やかな空気
08・語り			v2
09・静けさ
10・悲しい1
11・悲しい2		|
12・非日常1
13・非日常2		‡
14・邪悪			‡
15・肉のテーマ

★歌もの(別途ご相談)
・OP
・GOOD ED
・NORMAL ED
・BAD ED
・その他ED
*/

//=============================================================================//
//エクストラメニュー用
function LockOutExtra()
{
	$SYSTEM_menu_lock=false;
	$SYSTEM_skip=false;

	//メッセージを消す(SPACE)のロック状態の設定
	$SYSTEM_text_erase_lock=true;
	//自動メッセージ(A)
	$SYSTEM_text_auto_lock=true;
	//スキップ(Ctrl),超速(N)
	$SYSTEM_skip_lock=true;
	//前選択(R)
	$SYSTEM_backselect_lock=true;
	//バックログ(B)
	$SYSTEM_backlog_lock=true;
	//セーブ(S)
	$SYSTEM_save_lock=true;
	//ロード(L)
	$SYSTEM_load_lock=false;

}

//=============================================================================//
//■開発・デバッグ用
//=============================================================================//
function SetDebug()
{
	//スキップ
	//$SYSTEM_skip = true;
	//選択肢跡も継続してスキップ
	//#SYSTEM_keep_skip = true;
	//未読時でもスキップ
	#SYSTEM_skip_absolute = true;
	//Requestによるテキスト一文字のタイピング間隔を設定、単位はミリ秒
	$SYSTEM_text_interval = 10;
	
	//#SYSTEM_text_speed = 50;
	
	//終了確認画面の有効状態
	$SYSTEM_menu_close_enable = true;
	
	#SYSTEM_script_debug="nss/sys_debug.nss";
	$SYSTEM_menu_lock = false;
	
	/*
	$SYSTEM_save_lock=true;
	$SYSTEM_load_lock=true;
	
	$SYSTEM_skip_lock=true;
	//自動メッセージの有効設定
	$SYSTEM_text_auto_lock=true;
	$SYSTEM_text_erase_lock=true;
	
	#SYSTEM_window_full_lock=true;
	*/
}
function SetDebugSkip()
{
	$SYSTEM_menu_lock = 0;
	$SYSTEM_skip = true;
	#SYSTEM_skip_express = true;
	#SYSTEM_skip_absolute = true;
}

function config_default()
{
	//システムの再生速度を設定、標準速度は3、値:0~12
	#SYSTEM_play_speed = 3;
	#SYSTEM_text_speed = 900;
	#SYSTEM_break_play_movie=false;
	#keep_auto_and_skip = false;
	//未読時もスキップをするかどうかの状態を設定、1(true):有効、0(false):無効
	#SYSTEM_skip_absolute = false;
	#SYSTEM_click_break_voice=false;
	#SYSTEM_sound_bgm = true;
	#SYSTEM_sound_se = true;
	#SYSTEM_sound_voice = true;
	#SYSTEM_auto_wait_per_character=100;
	#SYSTEM_auto_text_break_voice=false;
	#SYSTEM_sound_volume_bgm = #SYSTEM_sound_volume_bgm_default;
	#SYSTEM_sound_volume_se = #SYSTEM_sound_volume_se_default;
	#SYSTEM_sound_volume_voice = #SYSTEM_sound_volume_voice_default;
	#donot_ask_overwrite_savedata=false;
	#donot_ask_load_savedata=false;
	
	#SYSTEM_voice_enable_another = true;
	
	#SYSTEM_video_aspect_fixed=0;
	
	//
	//現在のウィンドウモード状態を設定、
	//1(true):フルスクリーンモード、0(false):ウィンドウモード
	#SYSTEM_window_full = FALSE;
	//スキップの状態を設定、1(true):有効、0(false):無効
	$SYSTEM_skip = FALSE;
	//選択肢後継続してスキップをするかどうかの状態を設定、1(true):有効、0(false):無効
	#SYSTEM_keep_skip = FALSE;
	
}

//=============================================================================//
//■レイヤーメモ
//=============================================================================//
function layer()
{
	bg			15
	(ev)		20
	texture		25
	st			30
	bu			40
	movie		55
	<overlay>	60
	ev(bg)		65
	texture01	70
	texture02	75
	effectframe	75
	st2			83
	bu2			84
	texture11	90
	texture12	95
	<overlay>	98
	effectframe	99
	choice bg	100
	choice		101~102(103)
	choice window 110
	selectwindow  111
	effectwindow  112
	ブラックフェード用板	120
	box grad		1000~100X
	boxTextWindow	1010~101X
	トップブラックフェード用板	1020
	
	config menu		1100
	load,save,backlog		1200~
	menu yes/no	1300
	debug		1400
}
/*
○○○○◎○○○○●○○○○◎○○○○●○○○○◎○○○○●○
*/