東方弾幕風 汎用関数集

夢 終劇仕様ドットアニメライブラリ
東方弾幕風の敵スクリプトで、ボス画像をアニメ描画するためのライブラリです。
スペル発動や弾発射等、アクションを指定することで対応したアニメを描画します。
(東方夢終劇で使用したアニメライブラリを一般公開用に改良したものです)
画像は、KMAP(えむ/nyagakiya氏)にて 公開されていた東方夢終劇仕様ボスドット絵を利用します。
(現在サイト休止によりKMAPからはDLできなくなっています。とりあえず弾 幕風Wikiを眺めてみると幸せになるかも)
使用方法等、詳しい内容はアーカイブ内のマニュアルを参照願います。

ファイルはこちら
※タブの文字数が半角4文字のエディタ用に書かれています。それ以外では表示がずれますが、機能上は問題ありま せん。

現在下記のドット絵について対応しています。
紅魔郷キャラ
大妖精、紅美鈴、小悪魔、パチュリー・ノーレッジ
十六夜咲夜、レミリア・スカーレット、フランドール・スカーレット
妖々夢キャラ
アリス・マーガ トロイド、リリーホワイト、魂魄妖夢
西行寺幽々子、橙、藍、八雲紫 (萃夢想Ver.)
永夜抄キャラ
因幡てゐ、鈴仙・優曇華院・イナバ、八意永琳
蓬莱山輝夜、藤原妹紅
花映塚キャラ
射命丸文、メディスン・メランコリー、風見幽香
小野塚小町、四季映姫・ヤマザ ナドゥ
その他キャラ
博麗霊夢、伊吹萃香、神綺、魅魔

夢終劇仕様ユーザー定義弾
東方弾幕風の敵スクリプトで、東方夢終劇仕様の弾を撃つため定義ファイルです。
(東方夢終劇で使用した定義ファイルを一般公開用に改良したものです)
画像は、KMAP(えむ/nyagakiya氏)にて 公開されていた東方夢終劇仕様弾画像を利用します。
(現在の画像ファイルの状況については夢終劇仕様ドットアニメライブラリと同様です)
使用方法等、詳しい内容はアーカイブ内のマニュアルを参照願います。

ファイルはこちら
※タブの文字数が半角4文字のエディタ用に書かれています。それ以外では表示がずれますが、機能上は問題ありま せん。

汎用関数集
東方弾幕風でよく使いそうな処理を関数化したものです。
大まかに「定型弾幕」「描画」「エフェクト」「特定の値を取得する」の4種類に分かれます。

script_enemy_mainやscript_enemy内で、
1)#include_functionを使ってファイル(function_all.txt、あるいは個別のファイル)を読み込む
2)ファイルから必要な部分をコピペする
上記いずれかの方法で利用できます。
※収録されている関数にはfunctionとtaskの2種類があります。
 taskに関しては@MainLoop内にyield;の一文がないと利用できません。詳しくはページ下部を参照ください。


ファイルはこちら
※タブの文字数が半角4文字のエディタ用に書かれています。それ以外では表示がずれますが、機能上は問題ありま せん。

現在下記の関数が登録されています。
★ 定型弾幕 ★
WideShot01 扇状にShot01を発射する
WideShot02 扇状にShot02を発射する
WideLaser01
扇状にLaser01を発射する
RoundShot01 全方向にShot01を発射する
RoundShot02 全方向にShot02を発射する
RoundLaser01 全方向にLaser01を発射する
RoundWideShot01 全方向にWideShot01を発射する
RoundWideShot02 全方向にWideShot02を発射する
RoundWideLaser01 全方向にWideLaser01を発射する
LineShot 直線上に等間隔速度の弾を発射する
WideLineShot
扇状にLineShotを発射する
RoundLineShot
全方向にLineShotを発射する
RoundWideLineShot
全方向にWideLineShotを発射する
ReflectShot
画面端で反射する弾を発射する
GravityShot
重力で加速する弾を発射する(重力角度指定可)
★ 描画 ★
DrawBossDefault
弾幕風デフォルトのボス画像を描画する(カット自動指定)
★ エフェクト ★
Spark
敵を中心に光線が収束するようなエフェクトを表示する [task]
BombBarrier
ボム発動したとき、バリアを張ってダメージを受け付けなくする [task]
★ 特定の値を取得する ★
GetGapLength 異なる位置にある2つの点AB間の距離を取得する
GetGapAngle 点Aから異なる位置にある点Bへの絶対角度を取得する
GetGapX 点Aからある距離、絶対角度にある点Bのx座標を取得する
GetGapY 点Aからある距離、絶対角度にある点Bのy座標を取得する


使用例:
functionはそのまま呼び出すことができます。
script_enemy_main{

    let count=0;

    @MainLoop{

        if(count==60){
            WideShot01(  −略−  );        ← 呼び出し側
        }

        count++;
        if(count==120){count=0;}

    }

    #include_function ".\function_all.txt"      
ファイルを読み込む

    function WideShot01(                                 あるいは
        −略−
    ){                                                    ← 関数をコピペ
        −略−
    }

}


taskは@MainLoopの最後に yield; の一文を入れて使用してください。
script_enemy_main{

    let count=0;

    @MainLoop{

        if(count==60){
            Spark(  −略−  );        ← 呼び出し側
        }

        count++;
        if(count==120){count=0;}

        yield;       
yield;を忘れずに

    }

    #include_function ".\function_all.txt"      
ファイルを読み込む

    task Spark(                                                 あるいは
        −略−
    ){                                                    ← 関数をコピペ
        −略−
    }

}



∧index