【Godot】使い方(7)プレイヤーの移動①

Godot ゲーム制作

 この章から数回に渡って、キーを押してプレイヤーを移動できるようにしていきます。移動や攻撃など、入力に対してキャラクターに細かな動作を実施したい時には、コーディングが必要になってきます。まずはコーディングの設定と画面構成まで見ていこうと思います。


コーディングは専門用語も多く、ルールも言語ごとで様々に違ってくるので、ゆるく個人の趣味の範囲で楽しむには、深堀りはハードルが上がりすぎるので、このサイトではとりあえず「だらりんと作っても、同じようになぞれば動く」を目指して、複雑な用語などの説明はできるだけ省いて、単純に記述していきたいと思います。コーディングの基礎的なところは、公式のマニュアルページマニュアル日本語翻訳サイトなどで確認してください。


コーディング
一般的に思われている「プログラミング」という作業のメイン部分。いわゆる呪文のようなアルファベットが何十行、何百行と並ぶ。ここで様々な動作の定義や判断、命令などをすることで、基本のエディタだけではできない動きや変化をゲーム内で起こすことができる。

スクリプト
Godotでのプログラムファイルのこと。スクリプトを各ノードにアタッチ(紐付け、関連付け)することで、色々な動作をプログラミング上で制御できるようになる。オブジェクト・ノードごとに作成することができる。


コーディングをする準備

 まずは操作するプレイヤー用のプログラムファイル(スクリプト)を作成します。スクリプトを今までに作成してきたノードにアタッチすると、コーディングができるようになります。

①「Player」シーンタブから「Player」を選択し、右上の緑の+の付いたアイコンを選択。
 (「選択したノードに新規または既存のスクリプトをアタッチする」)
②パスにスクリプトのファイル名が自動で作られ表示されるので確認。
 変えたい時は好きな名前に変更。拡張子は「.gd」のままに。
③「作成」を選択。

プログラムファイル作成


拡張子「.gd」とは
Godotエンジンで使用される、専用のスクリプト言語であるGDScriptのファイル形式を表しています。このファイルの中で、Godotエンジンで提供されるスクリプト言語を使用すると、キャラクターを動かしたり、ステータスを書き換えたりなど、様々な命令を与えることができます。


作成された画面が以下になります。自動で3つのエリアが作成されます。

コーディング初期画面

①宣言エリア
この範囲では、クラスの定義メンバー変数の宣言ができます。ここでは、extends Area2Dが自動で書き込まれています。クラスは設計図、変数は箱のようなものです。この宣言エリアで宣言された変数(メンバー変数)は、この.gdファイル内のスクリプト全体で使うことができます。

②準備エリア
func _ready():で始まるエリアです。ゲーム開始時に1度だけ呼び出されます。点数やステータスなどを初期化する場所だと考えたら良いと思います。

③メインエリア
各ノードがアクティブの間、毎フレーム自動で呼び出されるエリアです。ここが呼び出されている時に各動作や状態を受け取り、条件に合った命令を実行します。フレームとは、1秒間に何回でゲーム画面が更新されるかという単位になります。

  • 各エリア内はインデント(字下げ)で管理されています。4つのスペースを入れることで、それを判断しています。各エリア、各命令をプログラム上で判断する開始と終わりの目印になるので、必ず入れないといけません。4つ以外の数でのインデントや、インデントの入れ忘れがあるとエラーになります。
  • 指定されたエリア外で記述されても、無視されるか、エラーになります。必ず目的に応じた場所に記述はされなければなりません。
  • コメントは「」を頭につけることで、入れることができます。その行の#以降に記述された内容がプログラムに影響を与えず書き残せます。メモを入れたい時に使用します。



スピード設定

 次に、ゲーム内のスピード調整をします。

スピードのコーディング

「extends Area2D」と「func _ready():」の間に
     @export var speed = 400
と入力します。それぞれの単語の間にはスペースを1つづつ入れます。

speed」は変数になるので、自分の好きな名前で構いません。(この後別の場所でも使用するので、そこで書き換えを忘れそうな時は、このままの名前を使用してください。)
一番右の400がスピードを表します。今回の場合では、この数字を大きくするとキャラクターの移動スピードが速くなり、小さくすると遅くなるように使用します。
その前の「var」はこれからspeedという名前の変数を使いますよ、という宣言です。変数を宣言する時に、頭につけます。


頭に「@export」をつけることで、godotツール右にあるインスペクターウインドウから、直接この値を変更できるようになります。(下図参照)

インスペクターウインドウ内のスピード調整項目

この項目は、上記コードを入力すると自動で作成されます。ここの値を変えることでもキャラクターの移動速度が変わりますが、スクリプト内の400という数字はそのまま変わりません。

また、「@」と入力すると、下図のように入力候補が出てくれるので、全てを入力しないでも、そこから必要な命令文を選択することで、スクリプトを入力することもできます。

アットマーク入力