さくさく理解する Godot 入門(ただし2Dに限る)
はじめに
クロスプラットフォームの2D/3Dゲームエンジン「Godot」について解説する。
ただし、筆者は Godot を触り始めて間もなく、3D機能についてはまだ勉強できてないし、
Godot はそもそも2Dが得意なので、当面は 2D 機能についてのみ解説することとする。
Godot とは:
- 公式サイト
- クロスプラットフォームの2D/3Dゲームエンジン
- ソースコード:github
- 発音は「ゴドット」ではなく「ゴドー」に近い
(参照→スピーカボタンを押して音声を聞く)
- 画面に各種オブジェクト(ノード)を配置し、オブジェクトにスクリプトをアタッチする形式
- スクリプト言語:GDScript(Pythonライク)、C#、C++(GDNative 経由)
- Unity との比較
やさしい入門
必要な情報はすべて示すが、あまり細かいことにこだわらず、Godot で(2D)アプリを開発する方法を具体的に示す。
- インストール・起動方法
- ダウンロードページ からアーカイブをダウンロードし、解凍するだけ
- Windows 用であれば exe を実行する
- 新規プロジェクト作成
- Hello, World
- 画像表示・上下左右キー移動
- ボタンとイベントハンドラ
- シーンとノード
- シーンのインスタンス化(別シーンの埋め込み・再利用)
- スクリプト
- 入力ハンドラ(マウス・キー)
- レイアウトクラス(CenterContiner, MargineContainer, HBoxContainer, VBoxContainer)
- タイマー
- 自由落下するオブジェクト
- アニメーション
- ジョイント
- パーティクル2D
- シェーダ
2Dノードクラス
Node クラスは Object の派生クラスで、シーンツリーに追加することができる。
すべての 2D 用クラスは Node の派生クラスである CamvasItem の派生クラスとなっている。
ちなみに、本稿では説明しないが 3D クラスは、Node の派生クラスである Spatial の派生クラスとなっている。
- Label
- ColorRect
- TextureRect
- Sprite
- Container
- MargineContainer
- CenterContiner
- HBoxContainer, VBoxContainer
非ノードクラス
- Vector2, Vector3, Vector4
- String
サンプルアプリケーション
エクスポート
- プロジェクト > エクスポート メニュー選択 → エクスポートダイアログが表示される
- ダイアログ左側にエクスポート先プラットフォーム一覧が表示される
- 希望するものが無い場合は、「追加」を押し希望するプラットフォームをドロップダウンから選択する