オブジェクト

GDevelop では、スクリーンに表示されるものは何であれ、オブジェクトです。これには(例なので、これに限りませんが)プレイヤーキャラクター、敵、背景パーツが含まれます。

用途に応じて、いろいろな種類のオブジェクトが用意されています。たとえばスプライトオブジェクトはグラフィックをアニメーションさせ、テキストオブジェクトはテキストを表示します。

ビヘイビアでオブジェクトに機能を追加したり、イベントを作成してオブジェクトの属性(位置、サイズなど)を変更できます。

オブジェクトのリスト

以下はオブジェクトのリストです。それぞれが固有の機能と目的を持っています。

リンク先のページで、それぞれのオブジェクトについてくわしく説明しています。

オブジェクトによっては実験的なものもあります。それらはまだ開発途上であり、非実験的なオブジェクトと比べて頻繁に更新されます。

オブジェクトを作成する

  1. シーンエディターを開きます。これは新しいプロジェクトを作成した後の既定のビューです。
  2. オブジェクトパネルで新しいオブジェクトを追加するを選択します。
  3. 新しいオブジェクトを追加するダイアログで、オブジェクトの種類を選択します。
  4. オブジェクトの設定を調整します。利用できる設定は、オブジェクトの種類によって異なります。
  5. 適用を選択します。

オブジェクトに名前をつける

オブジェクトには作成時に既定の名前がついています。この名前はオブジェクトエディターか、オブジェクトリストのオブジェクト上で右クリックすると表示されるコンテキストメニューから変更できます。

オブジェクト名に使える文字には制約があるので注意してください。使えるのは英数字のみで、スペースは使えません。単語を区切るためにアンダースコアも使えます(もっともゲーム開発の世界では、単語の先頭を大文字にすることで区切りを示すのが一般的です)。たとえば EnemyBullet のような感じです)。 これはの中でオブジェクト名を確実に識別するための制約です。(訳注:オブジェクト名に Unicode を使えるようにする機能要望が Trello に上がっているため、投票次第では将来この制約が緩和される可能性があります)

良い名前の例として、PlayerRedEnemyRed_EnemyCar1FinalBossFinal_BossWall などを挙げられます。その機能を表す良い名前をつけると、イベントをパッと見ただけでオブジェクトをすばやく認識できるでしょう。

シーンにオブジェクトのインスタンスを追加する

オブジェクトを作成しても、GDevelop はそれをすぐシーンに追加したりはしません。それをオブジェクトパネルからシーンに追加する必要があります。シーンにはオブジェクトのコピーを好きなだけ追加できます。

シーンに配置したオブジェクトの各コピーは、オブジェクトのインスタンスと呼ばれます。あるオブジェクトのインスタンスはすべて、元のオブジェクトが持つ機能を共有していますが、それを個別にカスタマイズすることが可能です。たとえばインスタンスはどれも、他と違う場所に表示できます。

オブジェクトのインスタンスを変更する

一つ以上のインスタンスを選択すると、画面左手にプロパティパネルが出現します。このパネルは選択中のインスタンスに関する情報を表示します。

カスタマイズ可能なプロパティを以下に示します。

位置

すべてのオブジェクトは座標を持ちます。(訳注:[テキスト入力]など画面に表示されないオブジェクトは例外)これらの座標はデカルト平面上の水平位置(X 軸)と垂直位置(Y 軸)に対応しています。X 座標は左に行くと減少し、右に行くと増加します。Y 座標は下に行くと増加し、上に行くと減少します。

角度

角度の設定は、オブジェクトの回転を度単位で定義します。下図は GDevelop が回転角度をどのように理解するかを示しています。

サインやコサインのような三角関数を使用する場合は、角度をラジアンで指定します(1 ラジアン=180 / PI 度、1 度=PI / 180 ラジアン。PI は円周率を表し、値は約 3.14159)。イベントで ToRadToDeg 式を使うと、度とラジアンを相互に単位変換できます。

Z オーダー

オブジェクトが同じレイヤー上で重なり合う場合は、どのオブジェクトが前面に表示され、どのオブジェクトが背後に表示されるかが、Z オーダーによって決まります。たとえばあるオブジェクトの Z オーダー2 であれば、Z オーダー1 のオブジェクトよりも手前に表示されます。

下図では、左手の茂みの Z オーダーは 2、コインの Z オーダーは 1、右手の茂みの Z オーダーは 0 になっています。

Z オーダーの値は、負の数値と 0 を含む任意の整数になります。

レイヤー

すべてのオブジェクトはレイヤー上に存在します。そしてレイヤー単位で下から上(奥から手前)に向かって順番に描画されていきます。これはつまり、一番上のレイヤーにあるオブジェクトは常に下のレイヤーにあるオブジェクトよりも手前に表示されるということです(たとえ下のレイヤーにあるオブジェクトの Z オーダーの方が大きかったとしても)。

一般的には背景オブジェクトと、(プレイヤーキャラクターのような)操作可能なオブジェクトと、UI オブジェクトはそれぞれ別のレイヤーに分けるのがふつうですが、特に制約はありません。

エディターで位置と角度を固定する

シーンにたくさんのオブジェクトが配置されているせいで、特定のインスタンスを選択するのが難しいことがあります。エディターで位置と角度を固定するオプションにチェックを入れると、そのインスタンスはエディター上で選択できなくなります。これは本当に選択したい方のインスタンスの選択を易しくしてくれるでしょう。(訳注:クリックして選択できないだけで、ドラッグによる範囲選択やインスタンス一覧からの選択は可能)

インスタンス変数

インスタンス変数は、あるオブジェクトのインスタンスに固有の変数です。インスタンス変数テーブル上で、特定のインスタンスに関連付けた変数を定義し、値を設定できます。

くわしくはオブジェクト変数を参照してください。

カスタムサイズ

このオプションをチェックすると、インスタンスの幅と高さを変更できます。インスタンスの幅と高さは元のオブジェクトと別個のもので、変更が他に影響することはありません。

インスタンスタイマー

シーンに配置されたオブジェクトのインスタンスは、イベントからアクセスできる固有のタイマーを持ちます。タイマーについての詳細は、このページを参照してください。

可視性

オブジェクトのインスタンスは、デフォルトで可視属性がオンになっています。これはつまり、画面に表示されるということです。イベントを使うと、ゲームの途中で任意のインスタンスを隠すことができます。非表示のインスタンスは、もはや画面に表示されませんが、シーンの中にはふつうに存在しています(衝突に反応したり、他のイベントもすべて機能します)。

スプライトやテキストのようなオブジェクトは、他に不透明度という属性も持ちます。不透明度は 0 から 255 までの値を取り、オブジェクトの透明性を定義します(0 で完全に透明、既定値の 255 で完全に不透明)。これは可視性とはまた別に変更できます。

オブジェクトをグループ化する

複数のオブジェクトをグループにまとめることで、グループ内のすべてのオブジェクトを一括して管理できます。

これを使うと、イベントをオブジェクトの数だけ繰り返す必要がなくなり、たくさんのオブジェクトを一回のイベントで処理できます。またゲームのパフォーマンスが向上し、保守性が高まり、イベントの可読性も上がります。

オブジェクトは次の手順でグループ化できます。

  1. ツールバーのグループアイコンを選択します。
  2. クリックしてグループを追加を選択します。
  3. グループを選択します。
  4. グループの編集ダイアログで、グループに追加するオブジェクトを選択します。
  5. 適用を選択します。

グループ名はデフォルトで「Group」になります。名前を変更するには、グループを右クリックして名前の変更を選択してください。グループが何を含んでいるのか説明するような名前をつけることを推奨します。

イベントエディターを使う

ゲームの最中であっても、イベントを使ってオブジェクトのインスタンスまたは複数のインスタンスのプロパティを変更したり操作できます。GDevelop でゲーム制作していると、できるのです。ゲームのプレイ中にリアルタイムでオブジェクトを操作したり、そういうことが。イベントとイベントエディターについて深く掘り下げるのは、このページの取り扱い範囲を超えるため、くわしくはゲーム作りの基本コンセプトを参照してください。

  • すべてのオブジェクトは同じ共通の機能(位置や角度など、このページに書かれていた機能すべて)を共有し、すべてのオブジェクトを使用できるたくさんの条件とアクションがあります。
  • オブジェクトはまた特定の機能も提供します。たとえばスプライトオブジェクトにはアニメーション機能があり、アクションを使うと再生中のアニメーションを変更できます。 特定のオブジェクトに関する詳細は、このページのリンクからたどってください。