ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

Daily

ゲームオーバー画面とリスタート処理

Godotでゲームオーバー画面とリスタート処理を実装。 プレイヤーの初期化部分が正しく出来ておらず、リスタートしても表示されないとか、表示するようになったけど、エネミーに当たらなくなっているとか、一つ一つ修正していって、リスタートも正しく行える…

タイトル画面

Godotでタイトル画面のシーケンスを実装。 てっきり実装したと思っていたプレイヤーの開始部分がまだ実装されていなかったので、まずはそこから実装。 背景や敵キャラは実装済みだったので、タイトル画面のボタンを押したらUIを消して、メインへシグナルを送…

yieldとawait

引き続きGodotでUIの作成。 ボタンを配置したり、ゲームオーバーのメッセージを出すところなどを、ドキュメントを読みながら、真似して実装。 ドキュメントのスクリプトをコピーしていたところ、yieldという命令があって、そんなのあったかなと思っていたら…

HUD

Godotでタイトル画面とゲームオーバー画面用のHUDのためのシーンを作成。 とりあえず、ラベルでテキストを表示。このレイアウトが思ったように調整できなくて苦労する。フォントサイズにアライン、アンカーなどいまいちそのあたりの仕組みがよく分かっていな…

開始と停止

Godotでタイトル画面を実装するために、今まではキャラクターやBGが生成されるとすぐに動いていたので、開始と停止の機能を追加。 各ノードにstartとstopの関数を追加し、それをすぐにメインのスクリプトから呼び出せた。 イベントとかメッセージとか使わな…

実行中のノード

Godotでプレイヤーがやられてしまったときの処理を実装中。 実行中にノードがどのようになっているかは、実行するとシーンウィンドウに「リモート」「ローカル」の項目が現れるので、リモートを選べば、実行中のノード一覧を見ることができる。 エネミーが複…

コリジョン判定成功

Godotでコリジョンが当たらない問題を調査していたところ、原因がやっと分かった。 エネミーキャラはRigidBody2Dを使っているのだが、その移動は単純に座標であるpositionを変更しておこなっていた。 これを速度であるlinear_velociyの値で移動するようにし…

コリジョンチェック

今日もGodotのコリジョン部分のチェック。 以前の2Dチュートリアルのプロジェクトファイルを開いて、コリジョンをどう設定したのか比較してみたのだが、同じように設定しているように見える。なのに期待通りに動いていない。 まだ慣れていないシステムだとバ…

コリジョンデバッグ表示

Godotでプレイヤーとエネミーの動きを調整。 そして、相変わらず、コリジョン判定が正しく取れない。 Godotのメニューのデバッグに「コリジョン形状を表示」という項目があり、それをチェックしておくと、実行時にコリジョンが表示される。 試してみたところ…

エネミー生成

Godotでエネミーを生成し、ステージに追加。 プレイヤーとの当たり判定を取ろうとしたがヒットしたときのイベントが呼び出されない。イベントが正しく設定されていないのか、それともコリジョンが正しく設定されていないのか。 あとステージ上にエネミーが存…

背景のつなぎ目

Godotで背景のスクロールを実装した。 横にシームレスな背景画像を2つ並べてループさせているのだが、その2つのテクスチャのつなぎ目にラインのようなものが見えてしまう。 シームレスに作ったので、そのまま並べればきれいにつながるはずなのだが。 テクス…

描画順番

GodotでBGを設定。結局、エディター上で確認しながらサイズ調整した。 実行してみたところプレイヤーよりも手前に表示されてしまった。 ふとエディター上での順番をプレイヤーより上にBGの位置を変えてみたところ、期待通りにBGの前にプレイヤーが表示される…

メインシーンとBG

Godotでメインシーンを作成し、BGを設定。 とりあえず、BGの画像をメインシーンへ登録してみたところ、表示は出来たがサイズが期待したとおりではない。 さらにこれをループでスクロールさせなくてはいけないわけで。 ドキュメントでスプライト系を調べてみ…

エネミーの作成

Godotでエネミーを作成。 チュートリアルとエネミーの動きは違うけど、やるべきことはほぼ変わらないので、チュートリアルを真似して簡単に実装できた。 ステージがなくても各パーツから作っていくことができるというのもGodotの面白いところ。

プレイヤーのジャンプ

Godotでプレイヤーのジャンプを実装。 以前、Python版で作ったコードを参考にしながら実装した。 Godotのスクリプトの文法はPythonに似ているので、非常にやりやすかった。 多少パラメータを調整しただけで、内容的にはほぼそのままで書けた感じ。

プレイヤーのアニメーションとジャンプ

プレイヤーのアニメーションとジャンプの実装中。 ジャンプはコードで座標計算しようとしていたところ、プロパティにGravityの項目があったので、物理で動かせるかもしれないと、Area2Dについてドキュメントを見てみた。 ところが、エディタで表示されている…

プレイヤーのスクリプト

Godotでプレイヤーのスクリプトを実装中。 今まではチュートリアルで正解がある状態で試していたので、いざ自分で書き始めるといろいろとつまづく。 とくにデバッグの仕方がいまいち分からないので、コードを少し書いては実行して確認するのがなかなかうまく…

プレイヤーキャラクターのアニメとコリジョン

Godotでプレイヤーキャラクターのアニメーションとコリジョンの追加。 アニメーションは以前使ったアセットを流用。 プロジェクトフォルダにコピーするだけで、Godotのエディターで認識され、簡単に利用することができた。

画像データ

Godotでプレイヤーキャラクターの作成。 仮の画像をリソースで追加してみたところ、エラーになってしまって表示できなかった。また別の画像ファイルにしてみたら、今度は大丈夫だった。 画像データに問題があるのかなと思ったけど、ファイル名が長いのが問題…

別PCでクローン

GitHubに登録したGodotのプロジェクトを別のPCでクローンして、Godotのエディターで開いてみた。 とくに問題なく読み込むことができた。隠しフォルダの .godot は登録しなくても大丈夫そうだ。 もしかするとエディタのレイアウトとかの設定が入っているかも…

新規プロジェクト作成

Godotで新規プロジェクトを作成。今回はGitHubでファイル管理するために、リポジトリを作って登録。 プロジェクトのフォルダを見ていたら、隠しフォルダ .godot があったけど、こちらも全部登録する必要はあるのかな。 とりあえず、別環境でクローンして試し…

アニメーションのコピー

Godotの3Dチュートリアル中、アニメーションのコピーの仕方が分からなくて悩む。 ドキュメントにはアニメーションのメニューにコピーとペーストを使うとあったが、これは3.0のときのものらしく、4.0では無くなっているようだ。 で、検索してみたら、イシュー…

アニメーション

Godotの3Dチュートリアル中。 キャラクターにアニメーションをつける部分のドキュメントは4.0にはまだ対応していないとあったが、UIがちょっと見た目違うかなというくらいで、ほぼそのままの感じで実装できた。 ちょっとしたキーフレームでポジションと回転…

ミュージック再生

Godotの3Dチュートリアル中。 BGMの再生を実装。 autoloadsという仕組みで、起動時に自動的に読み込むというもの。最初あまり良くわからなかったが、ドキュメントを見てみたら、Singletons(Autoload)とあった。なるほど、シングルトンの仕組みなのか。

ゲームオーバー画面とリトライ

Godotの3Dチュートリアル中。 ゲームオーバー画面からリトライ部分を実装。 相変わらず、UIのレイアウトの仕組みがいまいちよく分からない。 リトライはシーンのリロードによって実現していて、 get_tree().reload_current_scene()で行っている。

シグナル

Godotの3Dチュートリアル中。UIの部分。 敵を倒したら、点数が加算され、UIの表示が変わるという処理をシグナルで行うようにしているのだが、このシグナルがちょっと苦手。 あるオブジェクトから別のオブジェクトへ指示するような場合に使うのだろうけど、こ…

UI

Godotの3Dチュートリアル中。 あまりまとまった時間が取れていないので、かなりのスローペース。少しずつでも良いので進めていこう。 今日はUI部分の実装。毎回、2Dのビューが最初かなり縮小されて表示されてしまうので、使いづらい。なにか設定とかあるのだ…

プレイヤーやられ

Godotの3Dチュートリアルで、プレイヤーがジャンプしていないときにエネミーに接触するとやられるのを実装。 最初、ジャンプしていないときの判定は床に接触しているとか、相対的な角度で判定するのかなと思っていたら、判定コリジョンの位置をプレイヤーの…

エネミーを倒す

Godotの3Dチュートリアルで、ジャンプしてエネミーを踏み潰す処理を実装。 用意されている関数を使った短めのコードでも良い感じの動きになっていた。 テストプレイしてたら、以前見たおかしな挙動がまた発生した。 再現方法も分かったけど、どうやって調べ…

プレイヤーのジャンプ

Godotの3Dチュートリアルでジャンプを実装。 実行中にパラメータを変更できないと思っていたが、実行中でもエディタ上のパラメータを変更すれば反映されることが分かった。これで見ながら調整ができる。 ただ、プレイヤーのジャンプの調整をしていたのに、な…