※本記事にはアフィリエイトリンクを含みます。
企画が固まったら、次はいよいよ実際にゲームエンジンで形にしていく番です。今回はGodot(今回採用したゲームエンジン)でプロジェクトを立ち上げ、プレイヤーキャラクターを動かせるようにするまでの最初のステップでつまずいた点をまとめます。エラーが出ないのに動かない、というやっかいなパターンが多く出てきた回でした。
つまずき①:ノード検索欄が反応しない
Godotでは、シーン(画面に表示する要素のまとまり)を作るとき、「ノード」と呼ばれる部品を追加していきます。ノードを追加する際、名前を入力して絞り込む検索欄が用意されているのですが、この検索欄が場所によって反応したりしなかったりする現象に遭遇しました。
対処法は、「その他のノード」というボタン経由でノード追加画面を開くことです。このときは、その経路から検索できました。エディターのバージョンや状態によって挙動は異なるため、同じ現象が出た場合の確認方法の一つです。同じ「ノードを追加する」という操作でも、入り口によって挙動が変わることがある、と覚えておくと余計な時間を使わずに済みます。
つまずき②:ジャンプキーが「存在しない」と怒られる
移動やジャンプの操作を実装しようとしたところ、InputMap action "jump" doesn't existというエラーが出ました。これは「jumpという名前の操作(アクション)が登録されていません」という意味のエラーです。
このエラーが出たら、プロジェクト設定の「入力マップ」に jump が登録されているか、コード中の名前と一致しているかを確認します。アクション名を追加することと、実際のキーを割り当てることは別の工程です。名前が登録されていてもキーを割り当てていなければ操作できないため、両方を確認します。
つまずき③:エラーは出ないのにキー入力が効かない
アクションとキーの両方を設定し直しても、今度はキーを押しても一切反応しないという状態になりました。しかもエラーメッセージは一切出ません。
エディターにゲームを埋め込んで実行した際、原因を探ったところ、埋め込み実行画面のインタラクションモードが「2D」になっており、ゲームへの入力が無効になっていました。「入力」を選び、ゲーム画面をクリックして操作を確認します。
ここでの学びは、「エラーが出ない不具合は、コードに加えて実行環境側の設定も確認してみる」という考え方です。コードを何度見直しても原因が見つからないときは、一度画面表示の設定を確認してみる価値があります。
つまずき④⑤:カメラも地面も「動いていないように見える」
カメラを追従させたのに変化を感じない
プレイヤーにカメラが追従するよう設定したのですが、実際に動かしてみても「変わった気がしない」という感覚がありました。
これは実は正常な動作でした。カメラ(Camera2Dというノード)をプレイヤーの子ノードとして配置していたため、このときはプレイヤーが画面中央付近に表示される設定になっていたのです。カメラの追従制限やスムージングなどの設定によっては、中央からずれることもあります。プレイヤーが動くと背景の方が流れていくので、プレイヤー自身の見た目上の位置は変わらない、というのが正しい挙動でした。
地面を追加しても「見た目が変わらない」
同様に、地面のオブジェクトを追加したのに画面上に何も表示されない、という現象もありました。
原因は、当たり判定を作るCollisionShape2Dというノードが、判定の範囲だけを持ち、見た目の描画は担当していなかったことです。Godotでは「当たり判定」と「実際に画面に表示される見た目」が別々のノードとして分かれている設計になっています。地面を表示するには、Sprite2DやColorRectといった、見た目を担当する別のノードを追加する必要がありました。
AIと二人三脚で進める上での気づき
これら「見た目上は変わっていないように見えるが、実は正常」というパターンは、原因を切り分けるまでに何度もやり取りが発生しました。この経験から得た運用上のコツは、変化を伴う設定を行う前に「この後どう見えるか」を先に説明してもらう、というものです。「一見変わっていないように見えますが、これは正常な挙動です」と事前に一言添えてもらえれば、無駄な確認のやり取りを減らせたはずでした。
まとめ・次回予告
今回は、Godotでの最初のシーン作りで実際に発生したつまずきをまとめました。エラーが出ないタイプの不具合が多く、原因の切り分けに手間取りました。入力設定や表示状態、当たり判定と描画の役割を確認することが切り分けに役立ちました。次回は、キャラクターデザイン編として、NovelAIでのキャラクター生成の試行錯誤を紹介します。
今回のようなつまずきは、公式ドキュメントを手探りで読むより、体系立てて学べる講座で一度基礎の地図を頭に入れておく方が、結果的に近道になることも多いです。
