BB2021Editorイベントマニュアル

本稿はBB2021Editor上のイベントシステムのマニュアルです。

一部説明を省略している箇所があることをご了承ください。

BB2021Editor全般の操作は別のファイルをご参照ください。

イベントシステムの概要

BB2021ブロック崩しではイベントシステムを実装しており、特定の条件がそろったときに特別な処理を行うことができます。

イベントは以下の3要素から成り立ちます。

注意事項

各項目詳説

トリガー

ステージ開始前

各ステージにおいて、ロードが終了し、ボールを射出できるようになる直前のタイミングを表します。

ステージ開始後

各ステージにおいて、最初にボールが射出された後のタイミングを表します。

ステージ終了

各ステージにおいて、ステージがクリアされたタイミングを表します。

ゲームオーバーになった場合は発生しません。

ステージクリア時のSEが鳴り終わった後に発生します。

ゲームクリア

一番最後のステージがクリアされたタイミングを表します。

ゲームクリア時のSEが鳴り終わった後に発生します。

ゲームオーバー

ゲームオーバーになったタイミングを表します。

ボール喪失時のSEが鳴り終わった後に発生します。

ボール落下

ボールがゲームエリア外に落ちたタイミングを表します。

ボール喪失時のSEが鳴り終わった後に発生します。

パドル衝突

ボールがパドルに衝突したタイミングを表します。

オプションによりパドル中心に衝突した際は起動しないよう設定できます。

パドル中心衝突

ボールがパドルの中心部に衝突したタイミングを表します。

破壊率更新

ブロック破壊率が変動したタイミングを表します。

1%刻みです。それ以下の変動は無視されます。

ブロックグループ衝突

ボールが指定したブロックグループのブロックに衝突したタイミングを表します。

ブロックグループはあらかじめゲーム編集画面で設定してください。

ブロックグループ全破壊

指定したブロックグループのブロックが全て破壊されたタイミングを表します。

ブロックグループはあらかじめゲーム編集画面で設定してください。

メモリ変更

イベントアクション「メモリ書き込み」が実行されたタイミングを表します。

アクションの前後でメモリに変化がない場合(同じ内容を上書きした場合)であっても起動します。

詳細は下記のメモリ機能解説をご覧ください。

条件

特定のステージ内

指定したステージ内でのみ実行されます。

複数のステージ内で実行したい場合、同一内容のイベントを複数作成し、別個にステージ条件を指定する必要があります。

将来的にひとつのイベントで複数のステージを指定できるようになる予定です。

破壊率

ブロック破壊率が指定範囲内にあるとき、もしくは指定範囲を通過した時に実行されます。

持ち球数

ボールのストック数が指定範囲内にあるとき実行されます。

リトライ

1回以上ゲームオーバーになっており、現在リトライとしてプレイしている場合に実行されます。

他のイベント条件やトリガーとは異なり、唯一ゲームオーバー前の状態を引き継ぎます。

メモリ

アクション「メモリ書き込み」によって編集されたメモリの状況に応じて実行されます。

キーと値のそれぞれが完全に一致する場合に条件を満たします。

キーと値のペアは複数登録でき、2つ目以降のペアに関しては論理積(AND、かつ)をとるか論理和(OR、または)をとるか選ぶことができます。

詳細は下記のメモリ機能解説をご覧ください。

アクション

アイテム生成

ゲーム画面上方中央に指定したアイテムを発生させます。

アイテム発動

即座にアイテムの効果を発動します。

プレイヤーを驚かせてしまうため、「テキスト表示」や「メッセージ表示」と組み合わせることを推奨します。

ボールを非表示

ボールを見えなくします。

プレイヤーを驚かせてしまうため、「テキスト表示」や「メッセージ表示」と組み合わせることを推奨します。

ボールを再表示

イベントによって非表示状態にされたボールを見えるようにします。

前景画像を変更

前景画像を差し替えます。

差し替えた画像はゲームクリア後のご褒美ページにおいて、差分画像のひとつとして表示されます。

イベントが実行されなかった場合にはご褒美ページにおいても表示されません。

背景画像を変更

背景画像を差し替えます。

差し替えた画像はゲームクリア後のご褒美ページにおいて、差分画像のひとつとして表示されます。

イベントが実行されなかった場合にはご褒美ページにおいても表示されません。

サウンドを再生

指定したサウンドを再生します。

連続して行うアクションはサウンドの再生終了を待たずに実行されます。

サウンドを変更

指定したSEの内容を変更します。

アクション実行後は永続的にサウンドが変更されます。上書きするためには再度イベントアクションを実行するか、サウンドを指定したステージが開始される必要があります。

持ち球数を変更

ボールのストック数を増減させます。

このイベントではストック数は0より小さくなりません。

プレイヤーを驚かせてしまうため、「テキスト表示」や「メッセージ表示」と組み合わせることを推奨します。

強制ゲーム終了

強制的にゲームオーバーにします。

プレイヤーを驚かせてしまうため、「テキスト表示」や「メッセージ表示」と組み合わせることを推奨します。

○○秒待機

指定の秒数間隔を空けて次のイベントを実行します。

ステージが進行した場合解除されます。

「タイマーを表示」アクションと組み合わせると有効です。

待機中もゲームは進行します。また他のイベントは実行されます。「連続して行うアクション」にのみ影響があります。

タイマーを表示

ゲーム画面中にタイマーを表示します。

「○○秒待機」アクションと組み合わせることを強く推奨します。本アクションの次のアクションに「○○秒待機」を設定することで、タイマーで設定した時間になったときに次のアクションが発生するように見せることができます。

テキストを表示

指定したテキストをゲーム画面中に表示します。

ゲームの進行を妨げません。

メッセージ表示

ブラウザの機能を使用してメッセージダイアログを表示します。

ダイアログの表示中ゲームの進行が停止します。

OK or キャンセル表示

ブラウザの機能を使用して、確認ダイアログを表示します。プレイヤーの選択に応じて次に行うアクションを切り替えることができます。

次に行うアクションだけでなく、キャンセルされた場合のアクションを別個に登録することができます。

何もしない

実行されてもゲームに影響を与えないイベントです。

ページをリロード

現在のページをリロードします。

ページ移動

指定したURLへ強制的に移動します。

メモリ書き込み

フラグ管理用のメモリに書き込みを行います。

キーはメモリの番地を表す文字列です。空文字でも問題ありません。先頭および末尾には空白文字を入れられません。

キーの表す番地にまだ書き込みがない場合、上書モードと追記モードの挙動は変わりません。

既に書き込みがある場合、上書きモードでは値が新しい値に変更されます。追記モードでは元の値の末尾に新しい値をつなげた値に変更されます。

詳細は下記のメモリ機能解説をご覧ください。

メモリ機能解説

メモリは複雑なイベントを実現するためにBB2021ブロック崩しへ導入された概念です。

メモリはイベントシステム以外には影響を一切及ぼさず、またイベントシステム以外はメモリの状態を変更することはできません。 複雑なイベントを必要としない場合はメモリ機能を使用しないことをお勧めします。

メモリの実体

メモリの実体は「連想配列」というものになっています。別名として「Dictionary」とも呼ばれます。連想配列は下記のような構造をしています。

{ キー1:値1, キー2:値2, キー3:値3, ... }

特徴としては以下の点が挙げられます。

  • キーと値のペアになっている。
  • キーと値のペアはいくつでも増やせる。
  • キーの文字および値の文字は任意に決定できる。

メモリの運用

メモリ機能を使用することで、イベントアクションが実行されたことを記録できるようになります。これにより、いわゆるフラグ管理が可能となります。

例として以下の状況を挙げます。

  • 背景画像をプレイの状況によって切り替える。画像の種類は以下の4種類。
    1. 通常画像(通常髪・通常表情)
    2. 差分画像 髪ほどけ・通常表情 
    3. 差分画像 通常髪・赤面
    4. 差分画像 髪ほどけ・赤面 差分画像
  • ブロック破壊率が50%を超えたとき、表情を通常から赤面に変更する。
  • ブロックグループ「髪留め」がすべて破壊されたとき、髪を通常からほどけた状態に変更する。

この状況では、差分画像の変更は以下の順番のいずれかで行う必要があります。そうでないと、表情が赤面から通常に戻るなどの不具合が現れます。

  • 1→2→4

    破壊率が50%を超える前に髪留めが破壊されたケース

  • 1→3→4

    破壊率が50%を超えた後に髪留めが破壊されたケース

このような処理を行うためにはメモリを使ったイベントを以下のように組む必要があります。

  • ステージ開始時に、メモリに「髪:通常」を書き込み、さらにメモリに「表情:通常」を書き込む。
  • ブロックグループ「髪留め」が全破壊されたとき、メモリに「表情:赤面」があるならば、差分画像2に切り替え、さらにメモリに「髪:ほどけ」を書き込む。
  • ブロックグループ「髪留め」が全破壊されたとき、メモリに「表情:赤面」があるならば、差分画像4に切り替える。
  • 破壊率更新時、破壊率が50%を超えていて、そしてメモリに「髪:通常」があるならば、差分画像3に切り替え、さらにメモリに「表情:赤面」を書き込む。
  • 破壊率更新時、破壊率が50%を超えていて、そしてメモリに「髪:ほどけ」があるならば、差分画像4に切り替る