イベント

GDevelop においてイベントとは、ゲームの仕組みを定義するものです。イベントを使って、因果関係を作成します。たとえばイベントは、プレイヤーが収集可能アイテムと衝突したことを検知し、その結果プレイヤーのスコアを増やす、ということができます。イベントの作成や管理はイベントエディター上でおこないます。

イベントを作るのに、プログラミングの経験は必要ありません。もしプログラミングの経験者であれば、いくつかのコンセプトになじみがあるとは思いますが。

イベントの種類

イベントにはいろいろな種類があります。それぞれ固有の便利なロジックをゲームに提供します。イベントの概念がまだよく分からなければ、次の節までスキップしてください。

種類別イベントの詳細は、リンク先の各ページで確認してください。

もっともよく使われるのは標準イベントです。

条件とアクション

イベントは条件アクションで構成されます。

条件は何かが起きる原因、切っ掛けです。たとえばプレイヤーが何かのオブジェクトと衝突したとか、変数が特定の値と等しいとか、そういう感じです。イベントに条件が設定されていない場合は、すべてのフレームで関連アクションが毎回実行されます。

アクションは条件が真のときに発生する何かです。たとえばオブジェクトを削除するとか、変数の値を増分するとか、そういうことです。アクションがなければ、そのイベントは何もしません。

一つのイベントには複数の条件と複数のアクションを追加できます。たとえば、あるイベントの条件でプレイヤーがジャンプ中かどうかと、かつ敵オブジェクトと衝突しているかどうかをチェックできます。そしてアクションで敵オブジェクトを削除し、なおかつスコアを増やすことができます。

イベントを使って独自の条件とアクション、さらにはを作成できます。くわしくは関数を参照してください。

実行順序

イベントは、それが定義されている順番通りに実行されます。このことは、イベントの実行結果を大きく左右するような、とても重要な影響力を持ちます。

たとえば次のイベントは「Square」オブジェクトを作成し、それをすぐに削除します。(訳注:図には作成の部分は含まれていない)

結果として、「Square」オブジェクトは画面上に一度も表示されません。

もしイベントが意図しない副作用をもたらしていたら、同じフレーム内で先に定義されているイベントが後で定義されているイベントに影響していないかを確認してください。

タイムデルタ

GDevelop は 1 秒間に何度もイベントを評価してオブジェクトをレンダリングし直します。これがどれくらいの頻度で起きるかは、コンピューターの性能に依存します。

比較的低スペックのコンピューター上では、ゲームは秒間 25 フレームで実行されるかもしれません。一方、高速なコンピュータ上では秒間 60 フレームになる可能性があります(これが最大レートです)。

GDevelop はコンピューターの性能に関わらず、できるだけ一定のフレームレートを維持しようと試みますが、端末に処理速度のバラつきがある以上、フレームレートが異なるのは避けようがありません。

たとえば次のようなケースを考えてみてください。

このアクションは毎フレームごとに変数をインクリメントします。もしゲームが秒間 60 フレームで実行されていたら、10 秒後の変数値は 18,000 になるでしょう。一方、もしゲームが秒間 25 フレームで実行されていたら、10 秒後の変数値は 7,500 になります。この非一貫性は、ゲームプレイ体験に重大な問題を引き起こしかねません。

この問題を解決するために、GDevelop には TimeDelta() 式が用意されています。この式は直前のフレームからの経過時間を秒単位で返します。これを使って、フレームレートが変動しても予定通りにゲームを実行することができます。

たとえば次のようなケースを考えてみてください。

このアクションもやはり毎フレームごとに変数をインクリメントします。ただし変数の値には TimeDelta() を乗じた値を使用しています。これによって変数の値はフレームレートによらず一定の速度で増加します。別の言い方をすると、すべてのプレイヤーに同じ体験を保証できます。

経験則に照らして言うと、TimeDelta() は一定時間にわたって値を増加/減少し続ける場合に使います。もしアクションが一度きりなのであれば、TimeDelta() を使う必要はありません。

イベントの作成

  1. イベントエディターを開きます。
  2. イベントを選択して追加アイコンを選択します。
  3. イベントの種類を選択します。

イベントを追加アイコンの方を選ぶと、GDevelop は即座に標準イベントを作成します。

イベントに条件を追加する

  1. イベントエディターを開きます。
  2. すでに作成したイベントを探すか、新しいイベントを作成します。
  3. 条件を追加を選択します。

イベントにアクションを追加する

  1. イベントエディターを開きます。
  2. すでに作成したイベントを探すか、新しいイベントを作成します。
  3. アクションを追加を選択します。

サブイベントの作成

イベントの中にはサブイベントを持つことができる種類があります。サブイベントは他のイベントの内部に存在するイベントです。この種のイベントは、次の条件を満たしたときだけ実行されます。

  • 親イベントの条件が真である
  • 親イベントのアクションが実行を完了している

次の手順で、イベントにサブイベントを追加します。

  1. イベントエディターを開きます。
  2. すでに作成したイベントを探すか、新しいイベントを作成します。
  3. 選択したイベントにサブイベントを追加アイコンを選択します。

サブイベントが親イベントの内部に作成されます。

外部イベントへのリンク、コメント、JavaScript コードはサブイベントを持てません。