LoginSignup
17
15

【Godot】Godot Engineを使ってみよう

Last updated at Posted at 2023-09-15

■はじめに

最近Unityが"Runtime Fee"ってのを導入して、Unityに対しての不満が多く飛び交っているので、Unity以外でもゲーム作っといた方が仕事とかで役立つかなと思って、この記事を書いてます

●Godotについて

  • 2014年リリース。UnityやUEと比べると、比較的新しいゲームエンジン
  • 利用料金なし。完全無料( 詳細 )
  • Windows,Macに加え、Web上やAndroidでも開発できちゃう
  • 2D/3D対応
  • コンソール以外ビルド可能 (詳細)
  • プログラミング言語は、Godot専用のGDScriptというものや、C#、C/C++、D、Kotlin、Rubyなどの多様な言語がある( 詳細 )
    • GDScriptに関しては、Godot内で完結できるそう。(C#などの言語は、VSCodeなどのコードエディタが必要)

・GDScriptについて

image.png
(画像引用元)

  • Godot専用の言語。Python風のシンプルな構文っぽい
  • コンパイル時間短め
  • マルチスレッド対応
  • ガベージコレクション未使用

■使ってみる

●ダウンロード

こっからダウンロードできます。
C#を利用したい場合、.NETエディションをダウンロードする必要があります

また、Web上でも起動できます。
(起動するには、作成済みのプロジェクトのzipファイルを用意する必要があります)

●起動

こっからは、公式ドキュメントの方が分かりやすいかもです

・プロジェクトの新規作成

  1. プロジェクトマネージャーの[New Project]ボタンをクリック
  2. プロジェクトのディレクトリを作成(※空のフォルダである必要があります)
    image.png
    • ProjectName:プロジェクト名
    • ProjectPath:パス。[Browse]でディレクトリ参照
    • Renderer:レンダラーの選択。お好みのものを選択。(基本的に左のでいいと思う)

・既存のプロジェクトのロード

  1. プロジェクトマネージャーの[Import]ボタンをクリック

  2. 作成したプロジェクトフォルダ内の、.godot という拡張子のファイルを選択して[Open]ボタンでロードできます
    image.png

●Unityとの仕様の違い

・基本要素

  • シーンSceneとPrefabが混ざった感じ
  • ノード:Component的な役割
  • シーンツリー:HierarchyView的な役割
  • シグナル:OnColliderのようなコールバック的な役割

・画面構成

image.png

  1. Scene Dock:Hierarchy View的な役割。シーンの操作をする
  2. FileSystem Dock:Project View的な役割。ゲームの素材の管理をする
  3. Inspector Dock:Inspector View的な役割。選択されたシーンの操作をする
  4. WorkSpace:Scene ViewとGame Viewの併用ビュー(2D/3Dってやつ)の操作や、GDScriptの編集ができる。
    • 画面中央上部から、2D, 3D, Scriptなどを切り替えられる
      image.png
    • AssetLib:UnityでいうところのAssetStore

●プロジェクトの実行

Godotには、UnityのGameViewのような存在がなく、実際にゲームのウィンドウを実行して確認します。

エディタの右上に実行関係の機能がまとまってます。
image.png

  • Play (F5):プロジェクト自体を実行する
  • PauseScene (F7):一時停止
  • Stop (F8):終了
  • PlayScene (F6):現在選択中のシーンを実行する
  • PlayCustomScene (Ctrl + Shift + F5):プロジェクトフォルダ内にあるシーンを選択して実行する

●GDScriptをいじってみる

下記の公式ドキュメントを参考にしながら、GDScriptに触ってみます

  1. まず、プレイヤーのシーンを作成しましょう。

    • FileSystem Dock上で、右クリックして[New Scene]を選択して作成します
      image.png
  2. 次に、プレイヤーを表示するために、Spriteノードを追加しましょう。

    • Scene Dock上で、[Other Node]を選択して、Spriteを選択します
      image.png
  3. SpriteノードのTextureという項目に、適当なテクスチャを適用する

    • 適当な画像を持ってきて、FileSystem DockにD&Dでテクスチャをプロジェクトに追加します。
    • その画像をSpriteノードのTextureにD&Dして適用します
      image.png
  4. 次に、スクリプトを作成します

    • Scene Dockの右上のアイコンをクリックして追加できます
      image.png
  5. 下図のような画面が表示されるので、このまま[Create]で作成する

    • [Language]で使用する言語を選択できます。(今回はGDScript)
    • [Inherits]で基底クラスを選択できます。
      image.png
  6. こんな感じのコードを作成する
    公式ドキュメントの例にならって、回転スクリプトを作成してみます
    (本来の.gdという拡張子を便宜上.pyとしています)

    Player.py
    extends Node2D
    
    var moveSpeed = 400
    var rotateSpeed = PI
    
    # Called when the node enters the scene tree for the first time.
    func _ready():
        print("Hello world")
    
    
    func _process(delta):
        rotation += rotateSpeed * delta
    
        var vel = Vector2.UP.rotated(rotation) * moveSpeed
        position += vel * delta
    
  7. F5でプロジェクトを実行して、回転することを確認
    Test_1.gif

●プロジェクトをエクスポートする

まず、エクスポートするにはテンプレートというものをインストールする必要があるそうです

また、アイコンを変更する場合、Rceditというものが必要だそうです

  1. ツールバーのEditorManage Export Templates...を選択
    image.png

  2. このように表示されたら、Download and Installをクリック
    image.png

  3. インストールが完了したら、ツールバーのProjectExportを選択
    image.png

  4. 上部あたりのAdd...をクリックして、プラットフォームを選択する
    image.png

  5. とりあえずビルドさせたい場合、[Modify Resources]という項目をOffにする

    • アイコンなどを変更したい場合、Onでないといけないっぽい。
    • アイコンの変更は何故かクッソ面倒な感じなので、後々紹介する予定です
      image.png
  6. [Export Project]をクリックして、エクスポート先のディレクトリ選択する
    image.png

これで、指定したディレクトリを確認すると、.exeファイルができているハズです!
(エクスポート時に、プログレスバーが閉じるの早すぎて完了したか分からないけど、ビルドできてます)

■さいごに

エクスポートの設定とかが面倒だったりして、慣れるまで時間がかかりそうですが、頑張りましょう…!

●参考サイト

・公式ドキュメント

17
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
15