はじめに
GDevelopをご使用いただく上で避けては通れない、ゲーム開発の前提となる基本中の基本を本記事で予め押さえていきましょう。座標
座標は横方向がX軸で、縦方向はY軸です。座標ではありませんが奥や手前の表示はZオーダーで、値が大きいほど手前に表示されます。
左上の角はXYともに座標0となり、右に進むにつれX座標の値が増え、下に進むにつれY座標の値が増えます。
左上の角がゼロなので、それより左や上はマイナスの値になります。
角度
角度は真右が「0(360)度」になります。
スーパーマリオやソニック・ザ・ヘッジホッグなど、プラットフォームアクションゲーム(横スクロールアクションゲーム)では開始時にプレイヤーが右を向いていますね。
その方向が角度0となります。
そこに90度を足すと真下に、さらに90度を足して180度の場合は真左、さらに90度を足して270度の場合は真上となり、加算されるごとに時計回りに傾いていきます。
例えば、パーティクルエミッターを設置した場合、デフォルトの角度は0なので右方向に粒子を噴射します。
スケール
スケールとは倍率です。
通常は「1(倍)」です。値が2になると2倍、0.5になると半分(0.5倍)です。
サイズ
サイズはスケールと違いPixel単位の値です。
透明度
透明度はオブジェクトの透け感です。
最大値の255ではオブジェクトは透けません。
最小値の0でオブジェクトは完全に見えません(見えないだけで存在はしています)。
変数
変数とは、数式などに代入できる値です。
例えば、「AttackPower(攻撃力)」という変数を作成します。
敵を攻撃したときにAttackPowerの数値分のダメージを与えるとします。
変数AttackPowerの値だけを編集すれば、これを代入したすべてのイベントに適用されますので、個別に値を変更する必要はありません。
また、記述が長い複雑な数式を変数に格納しておけば、入力時に短い記述で済みます。
変数はとても便利で様々な用途があるので、必ず覚えておきましょう。
タイマー
タイマーは時間を計るのに便利です。
「◯◯のイベント開始から◯◯秒後に~」
「前のアクションからX秒待機する」など時間差を作ったり、プレイ経過時間を可視化できます。
また、タイムスケールの値を「2」にすれば倍速になり、「0.5」にすればスローになり、「0」にすれば停止することができます。
シーン全体だけではなくレイヤー単位でもタイムスケールを変更できますので、敵キャラクターのいるレイヤーだけをスローにしたり停止させることも可能です。
必殺技の発動前に一時的にゲームの時間進行を停止させたり、プレイヤーが倒されたときにスローにするなど演出面で使用するのも効果的です。
算術演算子
算術演算子とは和差積商などのことです。
それはつまり「+−×÷」などのことです。
プログラミングで
「x+y」を表すにはそのまま「x+y」と記述します。
「x-y」を表すのもそのまま「x-y」と記述します。
「x×y」を表すには「x*y」と記述ます。
「x÷y」を表すには「x/y」と記述ます。
例:
(5+8×2)-(12÷X)
(5+8*2)-(12/X)
このほかにもmodやn乗根など、数学的ツールを使ってさまざまな計算ができます。
フレーム
フレームとは時間の単位のことです。
フレームレートが60FPSなら、1フレームは「1/60秒=約0.016秒」になります。
毎フレーム、上から順に条件を満たしたイベントが実行されます。
つまり、約0.016秒ごとにイベントが処理されます。
ということは、無条件で実行されるアクションは約0.016秒ごとに繰り返されています。
ただ、端末に負荷がかかるとフレームレートが低下して処理速度も低下します。
「重くなる」「動きがもっさりする」というのはフレームレートの低下による処理速度低下が原因です。
処理を軽くするには、できるだけ重くなる要因を抑えることを意識しながら制作しなければなりません。
レイヤー
レイヤーとは「層」のことです。イメージとしては、透明のフィルムを何層も重ねた感じです。
下のレイヤーにあるオブジェクトは上のレイヤーにあるオブジェクトを覆い隠すことはありません。
また、レイヤーごとにエフェクトをかけたり、カメラの倍率を変えることができます。
おわりに
できる限りご要望にお応えし、その都度、項目を追加していきます📝
フレームについての解説を追記しました(2023/09/28)
返信削除