function Stage1(){
	//共通変数
	let x = 0;
	let y = 0;
	let speed = 0;
	let angle = 0;
	
	//連続再生スクリプトへのパス
	let PluralPath_MidBoss = csd ~ "Stage\1\MidBoss\Plural.txt";
	let PluralPath_Boss = csd ~ "Stage\1\Boss\Plural.txt";
	
	//ザコ敵スクリプトへのパス
	let Zako01 = csd ~ "Stage\1\Zako\Zako01.txt";
	let Zako02 = csd ~ "Stage\1\Zako\Zako02.txt";
	let Zako03 = csd ~ "Stage\1\Zako\Zako03.txt";
	let Zako04 = csd ~ "Stage\1\Zako\Zako04.txt";
	let Zako05 = csd ~ "Stage\1\Zako\Zako05.txt";
	let Zako06 = csd ~ "Stage\1\Zako\Zako06.txt";
	let Zako99 = csd ~ "Stage\1\Zako\Zako99.txt";
	
	//ザコ敵コンパイル
	CompileEnemyFromFile( Zako01 );
	CompileEnemyFromFile( Zako02 );
	CompileEnemyFromFile( Zako03 );
	CompileEnemyFromFile( Zako04 );
	CompileEnemyFromFile( Zako05 );
	CompileEnemyFromFile( Zako06 );
	CompileEnemyFromFile( Zako99 );
	
	//ステージ1BGM再生
	ChangeBGM( "", bgmStage1 );
	//ステート変更
	State = State_Stage1_First;
	
	//120F(2秒)待つ
	FWait( 120 );
	
	//第1陣
	x = CenterX;
	y = MinY - 20;
	speed = 5;
	angle = 90;
	
	loop( 14 ){
		CreateEnemyFromFile( Zako01, x + 100, y, speed, angle,  1 );
		CreateEnemyFromFile( Zako01, x - 100, y, speed, angle, -1 );
		FWait( 10 );
	}
	
	FWait( 90 );
	
	//第2陣
	x = MinX + 32;
	y = MinY - 20;
	speed = 4;
	angle = 90;
	loop( 10 ){
		CreateEnemyFromFile( Zako02, x, y, speed, angle, NULL );
		x += ( MaxX - MinX - 32 * 2 ) / 9;
		FWait( 8 );
	}
	
	FWait( 60 );
	
	x = MaxX - 32;
	loop( 10 ){
		CreateEnemyFromFile( Zako02, x, y, speed, angle, NULL );
		x -= ( MaxX - MinX - 32 * 2 ) / 9;
		FWait( 8 );
	}
	
	FWait( 160 );
	
	//第3陣
	x = MinX + 64;
	y = MinY - 20;
	speed = 3;
	angle = 90;
	CreateEnemyFromFile( Zako03, x, y, speed, angle, NULL );
	x = MaxX - 64;
	CreateEnemyFromFile( Zako03, x, y, speed, angle, NULL );
	
	FWait( 240 );
	
	//第4陣
	x = MaxX - 64;
	y = MinY - 20;
	speed = 2.6;
	angle = 90;
	loop( 14 ){
		CreateEnemyFromFile( Zako04, x, y, speed, angle, [ 1.4, 60 ] );
		x -= 8;
		FWait( 10 );
	}
	
	FWait( 60 );
	
	x = MinX + 64;
	loop( 14 ){
		CreateEnemyFromFile( Zako04, x, y, speed, angle, [ -1.4, 60 ] );
		x += 8;
		FWait( 10 );
	}
	
	FWait( 60 );
	
	//第5陣
	x = MaxX - 32;
	y = MinY - 20;
	speed = 5.6;
	angle = 0;
	CreateEnemyFromFile( Zako06, x, y, speed, angle, [MinX + 64, MinY + 94] );
	
	FWait( 150 );
	
	x = MinX + 32;
	y = MinY - 20;
	speed = 5.6;
	angle = 0;
	CreateEnemyFromFile( Zako06, x, y, speed, angle, [MaxX - 64, MinY + 94] );
	
	FWait( 180 );
	
	x = MinX + 32;
	y = MinY - 20;
	speed = 4;
	loop( 16 ){
		CreateEnemyFromFile( Zako05, x, y, speed, angle, NULL );
		x += 24;
		FWait( 8 );
	}
	
	FWait( 240 );
	
	//ステート変更
	State = State_Stage1_MidBoss;
	
	//中ボス 黒百合
	DeleteEnemyShotToItem( ALL );
	CreateEnemyBossFromFile( PluralPath_MidBoss, 0, 0, 0, 0, NULL );
	WaitForZeroEnemy();
	
	//ステート変更
	State = State_Stage1_Latter;
	
	FWait( 180 );
	
	//第1陣
	y = MinY - 20;
	speed = 6;
	angle = 90;
	ascent( i in 0..4 ){
		x = MaxX - 32;
		loop( 10 ){
			CreateEnemyFromFile( Zako05, x, y, speed, angle, NULL );
			x -= 30;
			FWait( 8 );
		}
		x = MinX + 32;
		loop( 10 ){
			CreateEnemyFromFile( Zako05, x, y, speed, angle, NULL );
			x += 30;
			FWait( 8 );
		}
		if( i == 1 || i == 2 ){
			let mx = 0;
			let my = 0;
			if(i == 1){
				x = MaxX - 32;
				y = MinY - 20;
				mx = MinX + 64;
				my = MinY + 94;
			}else{
				x = MinX + 32;
				y = MinY - 20;
				mx = MaxX - 64;
				my = MinY + 94;
			}
			speed = 5.6;
			angle = 0;
			CreateEnemyFromFile( Zako06, x, y, speed, angle, [mx, my] );
		}
		FWait( 30 );
	}
	
	FWait( 60 );
	
	//ラスト強い娘
	x = CenterX;
	y = MinY - 40;
	speed = 4;
	angle = 90;
	
	CreateEnemyFromFile( Zako99, x, y, speed, angle, NULL );
	WaitForZeroEnemy();
	FWait( 180 );
	
	//ステージ1ボスBGM再生
	ChangeBGM( bgmStage1, bgmStage1Boss );
	//ステート変更
	State = State_Stage1_Boss;
	
	//ボス 白百合
	DeleteEnemyShotToItem( ALL );
	CreateEnemyBossFromFile( PluralPath_Boss, 0, 0, 0, 0, NULL );
	WaitForZeroEnemy();
	
	//ステージクリア
	
	//ステージ1ボスBGM停止
	ChangeBGM( bgmStage1Boss, "" );
}
