Foret いろんな弾つくり方
Foret9で作れる弾を出来るだけ考える
注意:あくまでForet9の1ユーザーとしての意見です そして、あくまでも作例です
注意:あくまでForet9の1ユーザーとしての意見です そして、あくまでも作例です
■基本■
☆自機弾☆
識別名 「自機弾」の性質は、最小横3列、最大横8列の弾に固定される。
表示できるフレーム数は約25フレームで、最長でも0.5秒程度で画面外に出ると考えていい。
25フレーム、速度0の画像スプライトでアニメーションを作れば、自機弾のアニメーションも可能。
当たり判定の設定も出来る。
識別名 「自機弾」の性質は、最小横3列、最大横8列の弾に固定される。
表示できるフレーム数は約25フレームで、最長でも0.5秒程度で画面外に出ると考えていい。
25フレーム、速度0の画像スプライトでアニメーションを作れば、自機弾のアニメーションも可能。
当たり判定の設定も出来る。
☆敵弾☆
基本攻撃:指定方向に弾を発射する。汎用性が最も高い。ものすごく使える。
ばらまき攻撃:1度に異なる速度の弾を複数発射できる。
花火攻撃:弾間隔に従って全方位に弾を発射する。発射角度指定は不可。
渦巻攻撃:真右を0°として、時計回りに渦巻き弾を発射する。弾間隔をマイナスにすれば逆回転も可。ものすごく使える。
菊花攻撃:調整中なのです
ばらまき攻撃:1度に異なる速度の弾を複数発射できる。
花火攻撃:弾間隔に従って全方位に弾を発射する。発射角度指定は不可。
渦巻攻撃:真右を0°として、時計回りに渦巻き弾を発射する。弾間隔をマイナスにすれば逆回転も可。ものすごく使える。
菊花攻撃:調整中なのです
※攻撃設定※
出現対象:弾と敵、どちらを弾として発射させるかの設定。
攻撃速度:射出速度の設定。±でムラを設定できる。速度単位はdot per 10flames。
発射間隔:発射する時間間隔の設定。単位はフレーム。
弾数:1度にいくつの弾を発生させるかの設定。ムラ設定可。
弾間隔:本体から射出される弾同士の間隔角度°の設定。ムラ設定可。
発射角度:基準となる発射方向を指定する。
指定値:発射角度で絶対指定を選択した場合の指定値。単位は角度°で、右向きを0°として時計周りに進角する。
発射角度補正:発射角度のムラの設定。
出現対象:弾と敵、どちらを弾として発射させるかの設定。
攻撃速度:射出速度の設定。±でムラを設定できる。速度単位はdot per 10flames。
発射間隔:発射する時間間隔の設定。単位はフレーム。
弾数:1度にいくつの弾を発生させるかの設定。ムラ設定可。
弾間隔:本体から射出される弾同士の間隔角度°の設定。ムラ設定可。
発射角度:基準となる発射方向を指定する。
指定値:発射角度で絶対指定を選択した場合の指定値。単位は角度°で、右向きを0°として時計周りに進角する。
発射角度補正:発射角度のムラの設定。
■1次弾■
弾を敵から直接発射させてできる弾、画面表示限界は、自機ショットを含め2000超
☆ショットガン☆
ばらまき攻撃で、攻撃速度にムラを持たせると出来る。ショットガンの幅角度は「発射角度補正」で設定。
ばらまき攻撃で、攻撃速度にムラを持たせると出来る。ショットガンの幅角度は「発射角度補正」で設定。
☆花火弾☆
花火攻撃でできる。攻撃速度、弾間隔が小さければ小さいほど高密度の花火になる。敵が動いていると避けにくくなる。
花火攻撃でできる。攻撃速度、弾間隔が小さければ小さいほど高密度の花火になる。敵が動いていると避けにくくなる。
☆自機狙い弾☆
基本攻撃でできる。発射角度を自機方向、とすればよい。
基本攻撃でできる。発射角度を自機方向、とすればよい。
☆自機狙い弾(遅れ)☆
自機狙いだが、数フレーム前の自機の位置に対して発射する。
基本攻撃でできる。発射角度をロックオンした方向、とし、その攻撃の数フレーム前に「自機位置をロックオン」をする。
自機狙いだが、数フレーム前の自機の位置に対して発射する。
基本攻撃でできる。発射角度をロックオンした方向、とし、その攻撃の数フレーム前に「自機位置をロックオン」をする。
■2次弾■
弾として扱う敵を作り、色々な挙動をする玉を作る
※注意事項※
画面内に表示できる敵数は、弾数よりも制限がキツく、約500が限度
「弾として扱う敵」もこの限度を受けるので、注意
画面内に表示できる敵数は、弾数よりも制限がキツく、約500が限度
「弾として扱う敵」もこの限度を受けるので、注意
※事前準備※
弾として扱う敵の設定は、基本的に
弾として扱う敵の設定は、基本的に
- 当たり判定 を手動で設定するとよい。長方形の当たり判定を設定可能(当たり判定は回転不可)
- 対自機 はチェックしておく
- 対自機弾 は基本は「当たらない」を選択すれば弾と同様。「通常」にするとショットで壊せる弾を作れる
- ボムで消える弾を作りたい場合は対ボムダメージ を大きく設定する
- 爆発エフェクト はチェックしない
- 「弾として扱う敵」を射出する「親の敵」を撃破すると、子の敵は消滅する(弾消し)(ただし孫世代は消えない)
- 出現アイテム数 を設定しておくと、弾消しが生じた際にアイテムを吐く
- 得点 を設定していると、弾消しで点数が入るようになる
☆追跡ミサイル☆
用意する敵
用意する敵
敵1=ミサイルの絵
絵の方向は「前方」
敵2を発射しながら、自機追跡させる
自機追跡させたままだと、永遠に自機追跡するので、途中で自機追跡を切って直進するように設定するとよい
x軸のみ、y軸のみの自機追跡をさせると、それぞれ自機追跡開始前のy軸、x軸の速度を維持したまま、自機追跡する
絵の方向は「前方」
敵2を発射しながら、自機追跡させる
自機追跡させたままだと、永遠に自機追跡するので、途中で自機追跡を切って直進するように設定するとよい
x軸のみ、y軸のみの自機追跡をさせると、それぞれ自機追跡開始前のy軸、x軸の速度を維持したまま、自機追跡する
敵2=煙の絵
煙のアニメーション画像をxフレームで用意
xフレーム後消滅するように敵を設定
煙のアニメーション画像をxフレームで用意
xフレーム後消滅するように敵を設定
敵1を親が発射すれば完成
敵2が自機追跡を開始するタイミングの調整をすれば、発射数フレーム後に自機追跡を開始するミサイルを作れます
敵2が自機追跡を開始するタイミングの調整をすれば、発射数フレーム後に自機追跡を開始するミサイルを作れます
☆並列弾☆
並列弾とは、互いの弾がひっつきもはなれもせずに平行に飛んでいく弾のこと
並列弾とは、互いの弾がひっつきもはなれもせずに平行に飛んでいく弾のこと
※例※
●● (左が後述の敵3、右が敵2)
●●
●●
●●
●●
↓↓
●●
●●
●●
●●
↓↓
並列弾の間には当たり判定はないので、間も通れる
敵1=停止し、2方向に敵2と敵3を撃つ弾
敵2=発射された後、α+1フレーム待機してx°右折する弾
敵3=発射された後、αフレーム待機してx°左折する弾
敵2=発射された後、α+1フレーム待機してx°右折する弾
敵3=発射された後、αフレーム待機してx°左折する弾
敵1○ を親敵が発射
敵1はすぐに指定方向からマイナスx°に敵2を発射
その後すぐに指定方向からプラスx°に敵3を発射
敵1はすぐに指定方向からマイナスx°に敵2を発射
その後すぐに指定方向からプラスx°に敵3を発射
敵2と敵3が同時に発射されたように見せるために、敵2を1フレーム待たせます
親敵に直接敵2、敵3を打たせてもかまいませんが、親敵が移動している場合に並列弾がくずれてしまいますので敵1を挟んでいます
αやx°の調整で、並列弾の間隔などを調整できます
親敵に直接敵2、敵3を打たせてもかまいませんが、親敵が移動している場合に並列弾がくずれてしまいますので敵1を挟んでいます
αやx°の調整で、並列弾の間隔などを調整できます
■使える渦巻き攻撃■
実は渦巻き攻撃ってすごく使えるんですね。
渦巻き+基本攻撃(前方)で弾幕バリエーションが一気に増えます。
渦巻き+基本攻撃(前方)で弾幕バリエーションが一気に増えます。
☆親敵に渦巻き攻撃をさせて、その弾を次のように設定します。
「敵Aを発射」で…
敵Aは間髪置かずにに「前方」へ「3発」(適当な間隔角)弾を撃って消滅します。
その敵Aを渦巻き攻撃すると、に3発の弾が親敵からくるりと発射されるようになります。
この3発の弾の間隔角を「120度」にすると、対称的に弾を打ち出すようになります。あとはコレの応用ですね。
敵Aは間髪置かずにに「前方」へ「3発」(適当な間隔角)弾を撃って消滅します。
その敵Aを渦巻き攻撃すると、に3発の弾が親敵からくるりと発射されるようになります。
この3発の弾の間隔角を「120度」にすると、対称的に弾を打ち出すようになります。あとはコレの応用ですね。
☆もし渦巻き攻撃を「とぎれとぎれ」にしたい場合はどうすればいいでしょうか。
このばあい、新たに敵Bを設定します。
敵Bは間髪置かずに消滅するだけの敵です。
これを敵A、敵Bを交互に好きな時間間隔で撃たせれば、くるくる回る弾が、途切れ途切れに発射されるようになります。
敵Bは間髪置かずに消滅するだけの敵です。
これを敵A、敵Bを交互に好きな時間間隔で撃たせれば、くるくる回る弾が、途切れ途切れに発射されるようになります。
☆渦巻きをきれいに見せるには?
例えば敵Aが撃つ弾を敵C(見えず当たらない敵)にします。
敵Cは数十フレーム直進した後、前方に2発の弾を撃ちます。
こうすると、敵からではなく敵の周りから円形に弾が発射されるように見えて、なんともフシギです。
敵Cは数十フレーム直進した後、前方に2発の弾を撃ちます。
こうすると、敵からではなく敵の周りから円形に弾が発射されるように見えて、なんともフシギです。
☆渦巻きで安地をつぶす?
安地が発生した場合、一番手っ取り早いのは自機狙い弾をちょくちょく撃つ事ですが、
渦巻き弾だけで安置をつぶせるでしょうか。
渦巻き弾だけで安置をつぶせるでしょうか。
弾の当たり判定の大きさにもよりますが、360度1周でも弾と弾の当たり判定に隙間があると、何周弾を撃っても安地ができます。
敵本体をなんらかの形で横移動させながら撃てば、どんどん安地をつぶせては行けます。どうしますかね。
敵本体をなんらかの形で横移動させながら撃てば、どんどん安地をつぶせては行けます。どうしますかね。
☆渦巻きの進行角度の設定の妙味(むずかしいよ)
進行角度1なら、ぐるーりと360フレームで1周する、なんともゆっくりした回転になりますよね。
だから進行角度を上げて行きたい。
でも進行角度を、例えば6度にすると、先述の安地がどかーんと増えてしまいます。
これは0度6度12度…と一周してもまた0度6度12度…と同じ角を辿ってしまうからです。
コレを解決するにはどうしたらいいでしょう。
だから進行角度を上げて行きたい。
でも進行角度を、例えば6度にすると、先述の安地がどかーんと増えてしまいます。
これは0度6度12度…と一周してもまた0度6度12度…と同じ角を辿ってしまうからです。
コレを解決するにはどうしたらいいでしょう。
例えば進行角度を7度にしてみましょう。1周目がおわった次の角度は4度から始まります。
2周目は1度です。つまり順に、0,4,1,5,2,6,3,0,4…と、速度が早い回転ながら、360度全方位に弾を撃つことになりますね。こんな角度をβ角にしましょう。
このようなβ角に入る数はどういう数か?
7の例を見てわかるように、7周で全方位になってますよね。
こんな数は、β周すると全方位を満たすようになります。
これを式にすると
aβ=360y+1
この方程式を満たす整数a,y,βの組を探せばいいわけです。
こんな式、見たこと、ありませんか。
2周目は1度です。つまり順に、0,4,1,5,2,6,3,0,4…と、速度が早い回転ながら、360度全方位に弾を撃つことになりますね。こんな角度をβ角にしましょう。
このようなβ角に入る数はどういう数か?
7の例を見てわかるように、7周で全方位になってますよね。
こんな数は、β周すると全方位を満たすようになります。
これを式にすると
aβ=360y+1
この方程式を満たす整数a,y,βの組を探せばいいわけです。
こんな式、見たこと、ありませんか。
βを求めていくと、
1 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173 179
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173 179
ほら、見えてきました。間違ってたら書き直してください。すいません。
■ビーム■
ビームは男のロマン
☆斜め方向射出や、回転するビーム☆
斜め方向に伸びたり、ビームごと回転するビームは、当たり判定の形が特殊なので普通には作れません
なので、見た目のビームとその裏を通る当たり判定弾の2つを重ね合わせて、あたかもビームに当たって死んだかのように見せることが出来ます
なので、見た目のビームとその裏を通る当たり判定弾の2つを重ね合わせて、あたかもビームに当たって死んだかのように見せることが出来ます
用意する敵
敵1=ビームの絵(ここで、ビーム画像の発射地点を画像中心にし、ビームの後ろ側は透明に作る)
:作画例:
■
■
■
■←ビームの逆側は黒(0,0,0,0)で透明に
■
◇←ビーム射出の根元=スプライトの中心
□
□←ビーム本体
□
□
□
↓
発射方向
■
■
■
■←ビームの逆側は黒(0,0,0,0)で透明に
■
◇←ビーム射出の根元=スプライトの中心
□
□←ビーム本体
□
□
□
↓
発射方向
画面上のどこから打たれても画面内で途切れないようにするには、ビーム本体の長さを十分とっておくことが必要です
Foret9ならば、416x480ですからその斜めの長さの640ドットくらいの長さにするとよいでしょう
なので結果的に、スプライトの縦の長さは1280ドットぐらいになります
Foret9ならば、416x480ですからその斜めの長さの640ドットくらいの長さにするとよいでしょう
なので結果的に、スプライトの縦の長さは1280ドットぐらいになります
絵の方向は「前方」
ビームの絵はアニメーション化するなどして、ロックオン=>実体化、のようにするとよい
ビームの絵はアニメーション化するなどして、ロックオン=>実体化、のようにするとよい
弾1=(ほぼ)透明な弾
当たり判定のみをもつ(ほぼ)透明な弾。
当たり判定のみをもつ(ほぼ)透明な弾。
敵1は出現してから前方に弾1を打ち出す
敵1を親が発射すれば完成
ビームの根元と先のほうで当たり判定の発生に若干のラグが生じたり
当たり判定の大きさと速度によってはビーム上を自機が横切ったりできちゃうかもしれません
また、ビームを回転させた場合も当たり判定は直進していますので、ビームの進行角よりちょっと遅れた角度に当たり判定が生まれますし、ビームの先っちょは当たり判定がありません
そこは気合で
当たり判定の大きさと速度によってはビーム上を自機が横切ったりできちゃうかもしれません
また、ビームを回転させた場合も当たり判定は直進していますので、ビームの進行角よりちょっと遅れた角度に当たり判定が生まれますし、ビームの先っちょは当たり判定がありません
そこは気合で
■ボム効果■
Foret9でのデフォルトボム効果は1枚のスプライト(フェードイン)に限定されるが
アイデア次第で、自機中心のエフェクトを出すことが出来る
アイデア次第で、自機中心のエフェクトを出すことが出来る
敵1(敵2の補充用)=敵2を一定時間間隔xで発射する透明な敵 ボムやショットで消えないようにする
敵2(エフェクトの卵)=高速の自機追跡を常に行い、一定時間間隔xで消滅する透明な敵 ショットでは消えないが、ボムで消えるようにする 消滅時に敵3を射出する
敵3(エフェクトの本体)=ボムやショットで消えないようにする 必要に応じて高速の自機追跡をさせる
このようにすると、次の効果が得られます
ボムボタンと同時に自機を追跡していた敵2が消滅して、敵3を出現し、自機中心の派手な追加エフェクトやフラッシュを発生できる
※注意※
- 敵2は自機がボムを発射する可能性のあるシーンでかならず自機についていなければならないので、高速かつ、消滅後も敵1からすぐに復帰させる必要があります
- 敵1はシーン命令「画面クリア」で消えてしまいますので、画面クリアを使った直後にシーン側で敵1を出現させるようにします
- Foret9で「死後イベント・新たな敵を出現」を用いて敵から敵を発生させた場合、シーンの「倒すまで待機」命令が解かれてしまう場合があります
その場合、次々と待っていた敵が出てきますので
- 完全透明なスプライトが画像として認識されない場合がありますので、注意
- 透明なスプライトを作りすぎると、テストプレーで画面上に残った敵の発見が遅れますので、テストプレーの時は見えるようにするとよいです
文責:海原雄山