知識ゼロからの超チュートリアル Vol.1

2023年9月11日月曜日

GDevelop Tutorial

X f B! P L

はじめに

こちらはインストールしたてほやほやの右も左もわからない方向けの記事になります。 ゲーム制作の基本を押さえつつも作業工数をできる限り抑えてゲームを1本完成させましょう。
(ゲーム制作自体が初めての方はこちらの記事も合わせてお読みください)
必ず押さえておきたい基本中の基本

必ず押さえておきたい基本中の基本

オープンソースのゲームエンジン「GDevelop」をビギナーにもわかりやすく解説します。

シーンエディタ

ステップ:1 新規プロジェクト

最初に白紙の状態のプロジェクトを作成します。

プロジェクトの初期設定を設定します。

このような画面が開けば準備はオッケーです。
(レイアウトやUIは環境ごとにすこし変わります)

ステップ:2 オブジェクト

GDには複数のオブジェクトとビヘイビアが標準で用意されています。
オブジェクトとは「物体」のことで、ビヘイビアは「挙動」のことです。
条件アクションで構成されるイベントによって「挙動(ビヘイビア)を起こす物体(プレイヤーや敵キャラクターなど)」あるいは「挙動を起こさない物体(背景や障害物など)」を制御してゲームを組み立てていきます。

今回は「プラットフォームアクションゲーム」を制作していきます。

このゲームに最低限必要なオブジェクト(物体)は
  1. プレイヤーとなるオブジェクト
  2. 足場となるオブジェクト
  3. 障害物 及び 敵キャラクターとなるオブジェクト

最低限必要なビヘイビア(挙動)は
  1. オブジェクトを足場にするためのビヘイビア
  2. オブジェクトをプレイヤーキャラクターにするためのビヘイビア
以上です。

GDではこれらを簡単に作成するための機能が標準で用意されています。

プレイヤーオブジェクト

では、オブジェクトを用意していきましょう。
「+新しいオブジェクトを追加」を押してオブジェクト追加メニューを開きます。
アニメーションで動かすことができる「スプライト」のオブジェクトを新規作成します。

今回はアセットの画像を使用します。

赤いモノアイ(単眼)のキャラクターを使用しましょう。

1から19までのスプライトをすべて読みこんだら「ループ」にチェックを入れてプレビューしてみましょう。

赤いキャラクターが歩いてますね!
このキャラクターを操作可能なプレイヤーキャラとしましょう。


次にポイントを設定します。

ポイントとはオブジェクトの起点で、その点を座標の基準にしたり回転の中心部にすることができます。

ここまではオブジェクトの「プロパティ」を設定しました。
次はオブジェクトの挙動を決める「ビヘイビア」を設定します。

ステップ:3 ビヘイビア


オブジェクトにビヘイビアを設定することで、特定の動作をさせたり役割を持たせることができます。

「Player」と名付けたスプライトオブジェクトに「プラットフォームキャラクター」のビヘイビアを追加します。
ビヘイビアにはパラメーター(詳細設定)を変更できるものがあります。

今回は初期設定のままで問題ありません。

これで、アニメーションする「スプライト」のオブジェクトに地面を歩いたりジャンプする「プラットフォームキャラクター」のビヘイビアを追加した「Player」を作成しました。

プラットフォームオブジェクト

次に、Playerが歩くための「足場」となるオブジェクトを作成します。





タイルスプライトとは

タイルスプライトはポイントを編集できず、左上に固定されます。
アニメーションもせず静止画です。

ステップ:4 シーンにインスタンスを配置する

オブジェクトメニューからシーン上にオブジェクトをドラッグします。

オブジェクトとインスタンス

シーンに設置されたオブジェクトは「インスタンス」と呼ばれます。
オブジェクトをイベントから生成、削除、変更など手を加えることはできませんが、シーンに配置されたインスタンスは生成、削除、変更などイベントによってそのシーンに限り手を加えることができます。
それがオブジェクトとインスタンスを区別する理由です。
オブジェクトに変更を加える場合はこれまでのようにシーンエディタから編集します。

タイルスプライトはアニメーションしませんが、ハンドルを掴んで引き伸ばすと
選んだ画像のパターンを繰り返しながら自由にサイズを変更できます。
このタイルスプライトを「Platform」と名付け、足場として使用します。

今度はPlayerもドラッグしてシーンに配置します。

PlayerとPlatformを配置したら背景色を変更しましょう


背景色が変更されました。

次にPlatformにビヘイビアを追加していきます。
今の状態ではPlatformは足場として機能していませんので、ビヘイビアによってPlayerが立って歩ける足場にします。


パラメーターは初期のままで構いません。

Platformにプラットフォームビヘイビアを追加したらシーンエディタに戻ってプレビューを確認してみましょう。

カーソルキーとスペースキーを押してPlayerを動かしてみましょう。

ここまで、シーンエディタのみでPlayerと足場を作成し、キーボードによる操作までが完了しました。

ここから先は「イベントエディタ」を使用して、さらにゲームとしての完成度を高めていきます。

イベントエディタ

ステップ:5 最初のイベントを追加する

まず最初に
Playerを左に移動したとき、Playerの向きを左右反転するようにイベントを組みます。


①その他の条件
②キーボード
③キーを押している
上記の順でクリックしてOKを押します。

どのキーを条件にするのかを求められるので、Leftキーを指定します。

条件が追加されたので、次にアクションを追加します。

①オブジェクト
②Player
③オブジェクトを水平方向に反転させる
④反転を有効にする「はい」
⑤OK


このイベントでは「Leftキーを押している」という条件に一致している間は「Playerを水平に反転する」というアクションが実行され続けます。

ただ、この段階では反転を戻すイベントを組んでいないので、一度Playerを反転させたらずっと反転したままになります。

なので反転を戻すイベントを追加しますが、先程追加したイベントをコピーして使用します。
先程のイベントをコピーして貼り付けたら、一部を書き換えます。
①「Left」→「Right」
②Playerを水平に反転する「はい」→「いいえ」

これにより「Rightキーを押している」という条件に一致している間は「Playerを水平に反転しない」というアクションが実行され続けます。
プレビューで確認してみましょう。

ステップ:6 アニメーションの追加

現段階ではPlayerは無操作状態でもずっと足踏みしています。
ですので、アイドリング時には立ち絵になるようなイベントを追加します。

そのために、一度イベントエディタを離れてシーンエディタに戻ります。
移動アニメーションとほぼ同じ手順で立ち絵のアニメーションを追加します。





一番上にあるアニメーションはデフォルトのアニメーションになります。
イベントでアニメーションを変更しない限り「アニメーション#0」が再生されます。

では。再びイベントエディタに移り、移動時にアニメーションを変更するイベントを追加しましょう。

ステップ:7 一つの条件に複数のアクション

Leftキーを押している間、Playerを水平方向に反転するイベントがありますが、そこへさらにアニメーションを変更するアクションを追加します。

アイドル状態のアニメーション番号は「0」で、移動中のアニメーション番号は「1」です。
ですので「0」のアニメーション番号の代わりに「1」を代入します

アニメーション番号ではなく、アニメーション名で指定することも可能です。

アイドル状態のアニメーション名は「Idle」で、移動中のアニメーション名は「Walk」です。
ですので「Idle」のアニメーション名の代わりに「Walk」を代入します。

「Rightキーを押している」の条件にも同様のアクションを追加します。
「Playerのアニメーションを変更する:"Walk"を代入」
「Playerのアニメーション番号を変更する:1を代入」

これらはいずれもアニメーションを移動用のWalkに変更します。
(値の部分に動的に変化する変数を代入することで、変数に沿ってアニメーションを変えることもできます。)

今の状態だと、停止中のIdleに戻すイベントがないので停止中もずっと足踏みし続けます。
ですので、キーを押していないときはアニメーション番号に「0」、またはアニメーション名に「Idle」を代入するイベントを追加します。

ステップ:8 条件の反転と複数の条件


条件の反転

条件を右クリックすると「条件を反転」という項目があります。

「Leftキーを押している」という条件を反転させた場合
「Leftキーを押していない」という条件になります。

「LeftキーもRightキーも押していない」という条件が揃っている間、Playerのアニメーションに「0(Idle)」を代入するというイベントを追加します。

それではプレビューで確認してみましょう。

ステップ:9 ゲーム性を加える

現段階ではPlayerを動かすことができるだけでゲームと呼ぶにはまだまだ物足りません。
このステップではゲーム性について解説します。
  1. 目的(目標、ゴール)
  2. 目的を妨げる障害
  3. リスク、失敗、敗北
  4. リターン、成功、勝利
ゲームプレイヤーは目標の達成を目指してゲームをプレイします。
なんの障害もなく目標達成できるゲームは達成感が乏しいです。
ですのでゲームには目標達成を妨げる要素が必要になります。

ある程度のストレス(負荷)があることで、クリア時の達成感が大きくなります。
しかし、負荷が大きすぎるとプレイに苦痛が生じます。
そこをカバーするために適度な報酬があると、負荷が軽減されやすいです。
ある程度のリスクが用意されている代わりに、相応のリターンを受け取ることができればメリハリが生まれてプレイ意欲を高めることが期待できます。

ストレスとカタルシスのバランスはとても重要です。
リスクとリターン 【ゲーム性】

リスクとリターン 【ゲーム性】

"ゲーム性"カテゴリーでは、ゲーム性を「かけひき」と見立て、そこで考えられることについて解説していきます。今回のお話は、私が昔からさまざまなところで展開し、ある程度知られることになった理論。今後のこのカテゴリーの骨組みとなる話なので、改めてご紹介します。

ゲーム性を上げると、一般性が下がる 【ゲーム性】

ゲーム性を上げると、一般性が下がる 【ゲーム性】

"ゲーム性"カテゴリーも17本目になりましたが、最初にお知らせしたこと。「ゲーム性を上げると、一般性が下がる」可能性について深掘りします。どういうこと?


今回のゲームでは非常にシンプルな目標を設けます。
プレイヤーをスタート地点からゴールへと導くことを目標とし、それを妨げる負荷も適度に用意します。
ただゴールに到達するだけではなく、それまでの過程に報酬も用意します。

ステップ:10 カメラの設定

シーンエディタを開き、Platformを表示領域の外まで伸ばしましょう。

この状態ではプレイヤーは画面外に出ると隠れてしまいますので、カメラがPlayerを追うようにしましょう。

イベントエディタを開きます。
新しいイベントを追加します。
条件は空欄にします。
空欄の条件とは「常に実行」と同義です。

空欄になっている条件にアクションを追加します。
①その他アクション
②オブジェクトの中央にカメラを合わせる
③オブジェクトに「Player」を入力


これで「無条件に、カメラがPlayerの中央に合わさる」というイベントが追加されました。
ちなみに、イベントはドラッグで順番を自由に変更できます。
無条件のイベントを一番上に移動させてみましょう

プレビューを確認してみましょう。
常に画面の中央にPlayerがくるようになりました。
ただ、Playerの下にあるスペースがかなり広いですね。
カメラの視点をすこし上にずらしてみましょう。

無条件のイベントにアクションを追加します。

カメラのY座標をPlayerのY座標から250Pixel引きます。

①その他アクション
②カメラ中央のY座標
③「値」の数式エディターを開く
④数式エディター内のオブジェクトを開く
⑤オブジェクト内の位置を開く
⑥位置内のY座標を開く
⑦パラメーターにPlayerを入力


「Player.Y()」と入力されましたね。
これは「PlayerのY座標」を取得する数式です。

カメラのY座標をPlayerのY座標から250Pixel引きますので、Player.Y()-250と入力します。

PlayerのY座標を取得するときに数式エディターを使わず、直接「Player.Y()」と入力しても構いません。
オブジェクトの座標以外にも、数式によってさまざまな値を取得できます。

数式一覧


それではPlatformを配置して自由にレイアウトしてみましょう。



■おわりに
Vol.1はステップ10までとなります。
おつかれさまでした。

次回、Vol.2では
ゴール、リスポーンポイント(復活地点)、ダメージ判定のある障害物、敵キャラ、アイテム、スコアを追加していきましょう。

最後までお読みいただきありがとうございました。

最後までお読みいただきありがとうございました😆
もしよろしければ下記のボタンから応援よろしくお願いします🙇



こちらの記事はいかがでしたか?
ぜひご評価をおねがいします🙏

プロフィール


My name is Cratier.
I'm an indie game developer.


Read more...

このブログを検索

Translate

UPDATE

最新コメント

人気の投稿

アーカイブ

リンク元ランキング

カテゴリー

アンケート



Q.クレイティアのGD覚書でお気に入りのコンテンツはどれですか?

チュートリアル
TIPS
RTA Develop
雑記
That's談
その他


Q.あなたのGDvelop使用歴はどれくらいですか?

1ヶ月未満
半年未満
1年未満
1年以上
2年以上
3年以上
4年以上
5年以上

オープンチャット

LINEアカウント

ご連絡フォーム、またはLINEから お問い合わせ、ご要望、ご指摘など、お気軽にご連絡くださいませ。

ご連絡

名前

メール *

メッセージ *

💗雑談CHAT💗
お気軽にお話しください🐹
同時接続人数:

もしよろしければ下記のボタンから応援よろしくお願いします🙇




QooQ