基本的な構成はScriptVersionV2版RAINSと同じです。

▼ファイル構造

　★：単体自機スクリプト・RAINS3両方の動作に必須
　☆：RAINS3の動作に必須
　##：自機ごとの固有の文字が入る

・[\（root）（このファイルが置いてあるフォルダ）]
│　　	★RAINS3.dnh	RAINSとして動作させるためのコアファイル
│　　	★##.dnh	単体動作用の、各自機のコアファイル
│　　	　Config.ini	設定ファイル
│
├[\RAINS]
│　│	RAINSの核となるスクリプトが入っている
│　│	★RAINS_Core.dnh		最重要スクリプト。全自機共通のメイン動作や必須の関数など
│　│	☆RAINS_System.dnh		RAINS3動作時の必須関数集
│　│					　自機の数・装備の数・自機の名前等が変わったら変更が必要
│　│	☆RAINS_FullInclude.dnh		RAINS3動作時に必要なスクリプトファイル及び
│　│					　各自機の##_PlayerInclude.dnhを取り込む
│　│	☆RAINS_SpellInclude.dnh	各自機＆自機間共通のスペルカードスクリプトを取り込む
│　│	　RAINS_Item.dnh		専用アイテムを動作させるためのスクリプト（サンプルアイテム付き）
│　│	
│　└[\img]
│　	RAINS選択時の画像と、独自アイテムの画像データが入っている
│
├[\CommonFiles]
│　│	全自機で共有するデータが入っている
│　│	　libs.dnh		ライブラリ
│　│	★Common_LocalData.dnh	全自機で使用する共通のファイル一覧
│　│	　Common_Effects.dnh	全自機共通のエフェクトタスク集
│　│	★Common_Include.dnh	全自機で使用するスクリプトファイルのインクルードリスト
│　│	　ReigekiBomb.dnh	一部自機＆装備共通ボムのサンプル
│　│
│　├[\img]
│　│	全自機で共有する画像データが入っている
│　│
│　└[\se]
│　	効果音データが入っている
│　	（なにかと共通するファイルが多いため、全ての効果音をここにまとめておくのを推奨）
│
└[\##（機体毎のルートフォルダ）]
　　│	★##_System.dnh		自機毎のメイン動作を記述する
　　│	★##_ShotData.dnh	自機毎の弾画像データ
　　│	★##_ShotTasks.dnh	自機毎のショットを撃つためのルーチンと、弾の動作
　　│	★##_LocalData.dnh	自機毎のファイルの一覧とShotDataの在り処
　　│	★##_PlayerInclude.dnh	自機毎のスクリプトファイルのインクルードリスト
　　│	　##_Bomb.dnh		自機毎の固有のスペルカードスクリプト
　　│	　##_Effects.dnh	自機毎のエフェクトタスク集
　　│
　　└[\img]画像データ
	自機別の画像データが入っている


▼libs.dnhの関数・マイクロスレッド一覧

　自機スペルカードスクリプトにもインクルード可能
　引数などの詳しい情報は、libs.dnhを確認してください。
　また、必要に応じて拡張してもかまいません。
　（ScriptVersionV2版RAINSから変更されたものが多い点に注意）
	
	task TKeyCheck
		キー入力状況を監視する
		…と同時に変化する可能性がある固定変数も監視する

	function getMoveDirection
		キーの入力状態から移動方向（角度）を返す
		未入力の場合は負の値を返す

	function update_target
		自機ショットが当たる敵オブジェクトIDを専用の変数EnemyListに格納

	function SetTarget01
		EnemyList配列の情報を元に、angleとの角度差がもっとも小さい敵をターゲットとする
		ターゲットがいない場合は-1を返す

	function SetTarget02
		EnemyList配列の情報を元に、もっとも近い敵をターゲットとする
		ターゲットがいない場合は-1を返す

	function Horming_DEG
		ホーミング処理
		調整後の角度を返す
		最大旋回速度に限度のある砲台にも使えます。

	function GetAngleDifference
		2つの角度の差を求める

	function IsEnemyExisting
		指定したIDの敵オブジェクトが「存在」するかを調べる

	function IsEnemyAlive
		指定したIDの敵オブジェクトが「生存」しているかを調べる
		ボスの撃破演出中などで、ライフが0でも存在する敵にはfalseを返す

	task EraseBullets
		指定した時間中の弾消し。
		アイテムにするか否かを選択可能

	function EraseEnemyShotOnLine
		基点座標、方向、長さ情報から直線状の敵弾を消去
		無限ループ対策つき

	function GetLength
		2点間の距離を求める。

	function RAINS3_Rect_Set
		左上座標とサイズからObjSprite####_SetSourceRectを実行
		こちらは通常の短形（OBJ_SPRITE_2D or OBJ_SPRITE_3D）用

	function RAINS3_Rect_Set_List
		RAINS3_Rect_Setの短形リスト（OBJ_SPRITE_LIST_2D）用バージョン

	function RAINS3_SetCA_For_Add
		CAは「Color＆Alpha」の略。
		加算描画オブジェクトには透明度設定が反映されないが、
		この関数を用いると透明度をカラーに変換してカラーを設定するため、
		透明度の値を反映させることが出来る。（加算描画専用）

	function RAINS3_OnDraw_Init
		オブジェクトの描画設定を初期化
		何かと初期化することが多い短形リスト（OBJ_SPRITE_LIST_2D）での
		使用を想定しています。

	function SetPolygon01
		四角形の自由変形オブジェクトの頂点位置設定
		左上の座標と大きさから設定するバージョン

	function SetPolygon02
		四角形の自由変形オブジェクトの頂点位置設定
		左上の座標と右下の座標から設定するバージョン

	function SetUVmapping01
		四角形の自由変形オブジェクトのUV設定
		左上の座標と大きさから設定するバージョン

	function SetUVmapping02
		四角形の自由変形オブジェクトのUV設定
		左上の座標と右下の座標から設定するバージョン

	function H_to_ColRate
		色相（0〜359）をRGBのいずれかの色要素（0〜2）に変換

	function CreateRingEffect
		環状（筒状）エフェクトを生成する。

	function SetPolygon_Ring
		環状エフェクトのプリミティブを設定する

	function SetPolygon_Pipe
		擬似立体による筒状エフェクトを表現したい場合、SerPolygon_Ringの代わりに使用。
		プリミティブの上下関係を保障できないので、加算（ADD）での使用が基本となる

	function SetPolygon_Pipe2
		筒状エフェクトを表現したい場合、SerPolygon_Ringの代わりに使用。
		Z座標も使用しており、SetPolygon_Pipeよりも計算量が少ない。
		ただし回転は3軸ともObjRender_SetAngleXYZで行う必要がある。
		プリミティブの上下関係を保障できないので、加算（ADD）での使用が基本となる

	function SetUVmapping01_Ring
		環状（筒状）エフェクトに対して、SetUVmapping01と同じような感覚でUV設定が行える
