2023-11-26に更新

Godot って何だぜ(^~^)?

読了目安:23分

前の記事

📖 2D RPG 制作ツールを作ろうぜ(^~^)? <その2>

情報

📖 Git Hub / きふわらべRPG、他
📺 Discord サーバー 招待 / きふわらべRPG

📅 (2023-09-25 mon) Godot を調べろだぜ

ramen-tabero-futsu2.png
「 Godot(ゴドー)って何だぜ?」

kifuwarabe-futsu.png
「 何かは知らないが、結論は分かるぜ。お父んが思ってるようなやつじゃないぜ」

ohkina-hiyoko-futsu2.png
「 統計的に考えれば 結論はそこへたどり着くわよね」

ramen-tabero-futsu2.png
「 👇 とりあえず インストールするか~」

📖 GODOT

ramen-tabero-futsu2.png
「 C# サポート版と、そうでない版があるぜ。
C# はエミュレータで動かしてるだけで、実行速度は遅いらしいぜ」

kifuwarabe-futsu.png
「 GDScript でなければ、 Godot の良さは 50% も感じられないという事前情報もあるぜ」

ohkina-hiyoko-futsu2.png
「 だいたい 2種類選べます、というようなミドルウェアは 片方は おまけで付いているようなもので、
どっちかは 滅ぶのよ」

ramen-tabero-futsu2.png
「 Godot なんかに本気出しても仕方ない 三日坊主で終わるだろうから
ベンダーロックインしたろ GDScript でいいだろ。飽きたら 死にスキル でいい」

ramen-tabero-futsu2.png
「 Godot_v4.1.1-stable_win64.exe をダウンロードしたんだが、インストーラーかと思ったら
Godot のプロジェクト・マネージャーが出てきた。これはアプリケーションの本体じゃないのか?」

ramen-tabero-futsu2.png
「 フォルダ―の名前に .exe を付けるの止めてほしい。気持ち悪い」

kifuwarabe-futsu.png
「 第一印象から 最悪だな」

ramen-tabero-futsu2.png
「 アセット・ライブラリを開くかどうか尋ねられるが なんのこっちゃ?」

ramen-tabero-futsu2.png
「 アセット・ライブラリを開けても 何も入ってないぜ」

チュートリアルを見ろだぜ

ohkina-hiyoko-futsu2.png
「 👇 チュートリアルがあるみたいよ?」

📖 Godot Engine 4.1 documentation in English

ramen-tabero-futsu2.png
「 このドキュメントはまだバージョン4.1に更新されてないという注意書きがあるぜ」

ramen-tabero-futsu2.png
「 チュートリアル読むのも飽きた」

kifuwarabe-futsu.png
「 Godot もお父んに合わんかー」

アットマークを置けだぜ

ramen-tabero-futsu2.png
「 👇 この画像を Godot の新規プロジェクトのフォルダーの中に置き」

202309_shogi_24-1658--atmark.png

202309_godot_25-1850--atmark.png

ramen-tabero-futsu2.png
「 👆 ドラッグ&ドロップすれば 置けたぜ」

アットマークを上下左右に動かせだぜ?

kifuwarabe-futsu.png
「 そのアットマークを 上下左右に移動させたいところだが」

kifuwarabe-futsu.png
「 そう言えば PC用のゲームパッドを捨ててしまったので この家には ゲームパッドが無いぜ」

ohkina-hiyoko-futsu2.png
「 キーボードのキー入力でよくない?」

ramen-tabero-futsu2.png
「 ビヘイビア・スクリプトを ゲーム・オブジェクトにアタッチするみたいなことが
どっか触れば できるのかな?」

ramen-tabero-futsu2.png
「 👇 GDScript の作成方法が分からん」

📖 プレイヤーの入力を聞く

202309_godot_25-1900--gdscript-o2o0.png

ramen-tabero-futsu2.png
「 👆 左下をガチャガチャやってたら GDScript を作れたかもしらん」

📅 (2023-09-26 tue) キーボードの入力を受け取れだぜ

ohkina-hiyoko-futsu2.png
「 キーボードの右キーを押したら、アットマークが右に 32px 移動するようにしなさいよ」

ramen-tabero-futsu2.png
「 リハビリみたいだな」

kifuwarabe-futsu.png
「 👇 ドキュメントを読めだぜ」

📖 キーボードイベント

ramen-tabero-futsu2.png
「 そんな公式のドキュメント読んでも 何も分からないぜ」

ohkina-hiyoko-futsu2.png
「 GDScript は 書くだけじゃダメで、ゲーム中のオブジェクトにアタッチしないといけないんじゃないの?」

202309_godot_26-0103--attach-o2o0.png

ramen-tabero-futsu2.png
「 👆 確かに キー入力に反応したぜ」

func _input(event):
    if event is InputEventKey and event.pressed:
        if event.keycode == KEY_A:
            print("A was pressed")

ramen-tabero-futsu2.png
「 👆 そのとき 書き足したコードが これ」

kifuwarabe-futsu.png
「 A キーを受け付けたのは分かったんで、アットマークを右へ 32px 移動しろだぜ」

ramen-tabero-futsu2.png
「 アットマークの x 位置って どうやって取得/設定するんだぜ?」

ohkina-hiyoko-futsu2.png
「 👇 ググりなさい」

📖 【Godot】2Dシューティングゲームを作るときのポイントまとめ

ramen-tabero-futsu2.png
「 position とか書けば 何かできるのかだぜ?」

ramen-tabero-futsu2.png
「 position なんか定義されていなかったぜ。クソ記事だな」

extends Node

kifuwarabe-futsu.png
「 👆 お父んのファイルの冒頭、 Node を継承してるのは おかしくないか?」

extends Sprite2D

kifuwarabe-futsu.png
「 👆 Sprite2D を継承すべきでは?」

ramen-tabero-futsu2.png
「 おっ、ほんとだぜ。 position.x が定義されているぜ」

ramen-tabero-futsu2.png
「 👇 アットマークが右に 32px 動いたぜ」

📺 動画

ソース管理をしましょう

ohkina-hiyoko-futsu2.png
「 ソースを Git Hub で管理できるようにしましょう」

kifuwarabe-futsu.png
「 👇 リポジトリは作っておいたぜ」

📖 godot-practice

ramen-tabero-futsu2.png
「 Git Hub でのソース管理は 簡単に できそうだ…… 最初から Git でソース管理できるように調整しているのだろう……」

フォント・ファイルを勝手に作りましょう

ramen-tabero-futsu2.png
「 昔、フォント・ファイルを作らなかったかだぜ? あれ残ってる?」

kifuwarabe-futsu.png
「 👇 いくつか 残ってたぜ」

font_Metal01_32x32.png

ramen-tabero-futsu2.png
「 じゃあ それを再利用しよ」

画像の矩形コピーで、スプライト表示しろだぜ

ohkina-hiyoko-futsu2.png
「 Godot で、画像の矩形コピーって できるの? PC98 の頃からあるスプライト描画の基本操作よ?」

ramen-tabero-futsu2.png
「 👇 crop sprite でググってみるか」

📖 How to Crop a image using gdscript in Godot?

ramen-tabero-futsu2.png
「 遠いものは 有りそうだが、欲しいものが 見つからないぜ」

kifuwarabe-futsu.png
「 外部記憶装置に保存するとか データ転送速度の遅さを何も分かってそうだよな」

ohkina-hiyoko-futsu2.png
「 👇 Godot では スプライト・シートと呼ぶんじゃない?」

📖 【Godot】2Dスプライトアニメーションの基本的な使い方

kifuwarabe-futsu.png
「 スプライト・ノードを追加して、その Texture に フォントの PNGファイルをアタッチしろだぜ」

202309_godot_26-0153--font-o2o0.png

ramen-tabero-futsu2.png
「 アタッチしたぜ。ここから どうするのか?」

kifuwarabe-futsu.png
「 垂直のコマ数を VFrames に、水平のコマ数を HFrames に入れろだぜ」

202309_godot_26-0158--frames-o2o0.png

ramen-tabero-futsu2.png
「 👆 入れたぜ」

ohkina-hiyoko-futsu2.png
「 👇 アスキーコードで アットマークは 64 よ」

📖 ASCII CODE

kifuwarabe-futsu.png
「 じゃあ Frame に 64 と入れろだぜ」

202309_godot_26-0202--atmark--o2o0.png

ramen-tabero-futsu2.png
「 👆 なんとなくだが @ が表示されているような気がするぜ」

ohkina-hiyoko-futsu2.png
「 じゃあ フォント表示の基礎までは いけそうね~」

📅 (2023-09-28 thu) Godot のデモ・プログラムを調べようぜ

ramen-tabero-futsu2.png
「 Godot のデモ・プログラムを調べようぜ?」

kifuwarabe-futsu.png
「 日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別の記事: デモ・プロジェクト

📖 まとめ記事 Godot のデモ・プロジェクトを見ていこうぜ(^~^)?

📅 (2023-09-29 fri) デモ眺めるの終わり

ramen-tabero-futsu2.png
「 2D のデモは見た」

ohkina-hiyoko-futsu2.png
「 👇 じゃあ GDScript を覚えましょう」

📖 Godot Engine 4.2の日本語のドキュメント / スクリプト言語

kifuwarabe-futsu.png
「 日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別の記事: GDScript

📖 GDScript を覚えようぜ(^~^)?

📅 (2023-09-30 sat) GDScript には軽く触れた。次はテキスト

ramen-tabero-futsu2.png
「 国語も 技術的にも クソだったな」

kifuwarabe-futsu.png
「 これから どうするんだぜ?」

ohkina-hiyoko-futsu2.png
「 メッセージ・ウィンドウが 手ごろな課題なんじゃない?」

ramen-tabero-futsu2.png
「 システム・ダイアログ・ボックスじゃなくて、ゲームの中に出てくるやつな」

ohkina-hiyoko-futsu2.png
「 Label を使うのが 初歩的なのかしらね~?」

kifuwarabe-futsu.png
「 日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別の記事: メッセージ・ウィンドウを作ろうぜ

📖 Godot でテキストを表示しようぜ?

📅 (2023-10-01 sun) メッセージ・ウィンドウは作った

ramen-tabero-futsu2.png
「 メッセージ・ウィンドウは作った。
まだ作るのかだぜ?
もう気力が 持たないけど」

ohkina-hiyoko-futsu2.png
「 RPGを作るツールを作るという企画ですからねえ」

ramen-tabero-futsu2.png
「 わたしが Godot で RPG を作って、そのソースを公開すれば
そのタスクは クリアーにならないかだぜ?」

kifuwarabe-futsu.png
「 フーム、落としどころとしては マシな方では」

ramen-tabero-futsu2.png
「 その線で行こう とにかく つらい」

エディターのフォントが嫌い

202310__godot__01-1745--EditorFont.png

ramen-tabero-futsu2.png
「 👆 エディターのフォントが嫌い。変えれるのかだぜ?」

kifuwarabe-futsu.png
「 このエディター自体も Godot で作られてるそうだしな。
だったら フォントを変える機能ぐらい あってもおかしくないな」

kifuwarabe-futsu.png
「 👇 できるらしいんだが、詳しく書いてないな」

📖 Changing editor fonts

kifuwarabe-futsu.png
「 👇 プロジェクト設定 ではなくて、 エディター設定 にあるそうだぜ」

📖 How to change code editor font?

Author: Synapse84

Editor Settings -> Interface -> Editor -> Code Font

ramen-tabero-futsu2.png
「 👆 標準フォントと、太字フォントの2つ設定する欄があるのか。
👇 2つ取ってくるか」

📖 MPLUS_FONTS / fonts / otf

ohkina-hiyoko-futsu2.png
「 メインのフォントじゃなくて、コードのフォントを変えたいんじゃないの?」

ramen-tabero-futsu2.png
「 そうだぜ。コードのフォントは別かー」

202310__godot__01-1809--CodeFont.png

ramen-tabero-futsu2.png
「 👆 3点リーダーが 半角なのは 納得がいかないが、 それ以外は 今のところ 素晴らしいぜ」

選択肢を付けたいぜ ♪

ramen-tabero-futsu2.png
「 👇 ここで作業用BGMを 掛けるか」

📻 【V-METAL】FCくにおくんサッカー マタギ学園戦BGM【アレンジ】

kifuwarabe-futsu.png
「 なんだぜ この曲?」

ramen-tabero-futsu2.png
「 マタギ学園! 選曲が めっちゃ 面白いところを 引っ張ってくるな。
1人1票で 人気ランキングを付けたら くにおくんシリーズの上位には来ないが
何票でも入れれるなら 下にはならないような 層の真ん中らへんの分厚いとこにいるような
シリーズの基調イメージを 引っ張り上げている感じのやつ」

202310__godot__01-1822--Choice.png

ramen-tabero-futsu2.png
「 👆 次は 選択肢を出したいんだが」

ohkina-hiyoko-futsu2.png
「 簡単に作るなら 選択肢は2つか 3つの決め打ちかしらねえ?」

!choice 12
1 あいうえお
2 かきくけこ
  さしすせそ

!choice 13
1 あいうえお
  かきくけこ
3 さしすせそ

!choice 23
  あいうえお
2 かきくけこ
3 さしすせそ

!choice 123
1 あいうえお
2 かきくけこ
3 さしすせそ

ramen-tabero-futsu2.png
「 👆 カーソル位置は 4種類あるんじゃないか?」

kifuwarabe-futsu.png
「 下に どんどん スクロールして 次の選択肢が出てくるケースは 考えないのかだぜ?」

ramen-tabero-futsu2.png
「 ごめんなさい しようぜ?」

ohkina-hiyoko-futsu2.png
「 これを作れるんなら RPGのコマンド・メニューも作れそうなもんよね」

ramen-tabero-futsu2.png
「 じゃあ 10行ぐらいの コマンド・メニューで使うこともあるか」

!choice 1,2
1 あいうえお
2 かきくけこ
  さしすせそ

!choice 1,3
1 あいうえお
  かきくけこ
3 さしすせそ

!choice 2,3
  あいうえお
2 かきくけこ
3 さしすせそ

!choice 1,2,3
1 あいうえお
2 かきくけこ
3 さしすせそ

ramen-tabero-futsu2.png
「 👆 カンマ区切りにしておくか」

ramen-tabero-futsu2.png
「 ダメだった……。ラベルのような ヘッド・アップ・ディスプレイは
GDScript から位置指定ができなかった……」

kifuwarabe-futsu.png
「 じゃあ 予め 固定の3つのカーソルを用意しておけだぜ」

ramen-tabero-futsu2.png
「 あっ、 self.offset_top で上下位置を変えれる!」

_unhandled_input と _input は何が違う?

ramen-tabero-futsu2.png
「 _unhandled_input_input は何が違う?」

kifuwarabe-futsu.png
「 👇 これを読めだぜ」

📖 Can anyone explain to me unhandled input and handled input?

Author: Zylann

  • _input - とにかく呼び出されます
  • _input_event - コントロールで呼び出されます(ボタンのクリックやボックスにテキストを入力するなど)
  • _unhandled_input - 上記のいずれもイベントをキャプチャしない場合に呼び出され、通常はゲーム ワールド自体で使用されます。たとえば、テキストボックスで[スペース]を押しても、その機能を使用している場合、キャラクターはジャンプしません

ramen-tabero-futsu2.png
「 分かったぜ。あとは やってみるぜ」

Lerp

ramen-tabero-futsu2.png
「 Godot に Lerp 関数はあるのかだぜ?」

kifuwarabe-futsu.png
「 👇 ある。これを読めだぜ」

📖 Interpolation(補間)

ramen-tabero-futsu2.png
「 分かったぜ。あとはやってみるぜ」

offset_top はピクセル座標なのか?

202310__godot__01-2111--Lerp.png
ramen-tabero-futsu2.png
「 👆 offset_top に指定したピクセル数通りには動いてくれないぜ?」

ohkina-hiyoko-futsu2.png
「 問題ばっかり 起こるわねえ」

kifuwarabe-futsu.png
「 8 px 多めに足してやったら ちょうどいいのでは?」

ramen-tabero-futsu2.png
「 その 8 px の違いは 何から来てるんだぜ?」

kifuwarabe-futsu.png
「 ゲームは ピクセル単位だが、
ヘッド・アップ・ディスプレイは ピクセルのスケールが違うのでは?」

ramen-tabero-futsu2.png
「 その差をどうやって取得できる?」

ohkina-hiyoko-futsu2.png
「 あんたの自作したグリッド、 8 px 単位じゃなくて 16 px 単位なのよ。
だから あんたの足し算が間違ってるのよ」

ramen-tabero-futsu2.png
「 すべての つじつまが 合ったぜ。
直そ」

PackedStringArray って何だぜ?

ramen-tabero-futsu2.png
「 PackedStringArray って何だぜ?」

kifuwarabe-futsu.png
「 👇 メモリの効率のためのコレクションで、文字列の配列をメンバーとして持っているオブジェクトだな」

📖 PackedStringArray

ramen-tabero-futsu2.png
「 中身 数値なんで、数値の配列に変換するには?」

kifuwarabe-futsu.png
「 自力で がんばれだぜ」

202310__godot__01-2246--Choice.png

ramen-tabero-futsu2.png
「 👆 選択肢は ひとまず これでいいや」

📺 動画

ohkina-hiyoko-futsu2.png
「 選択肢は 動画に映ってる分で もう十分よ」

📅 (2023-10-02 mon) role_playing_game デモ・プロジェクトのバグを見てみようぜ?

ramen-tabero-futsu2.png
「 デモ・プロジェクトの role_playing_game のバグを見てみようぜ?」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

role_playing_game デモ・プロジェクトのバグを見てみようぜ?

📖 Godot の role_playing_game デモ・プロジェクトのバグを見てみようぜ?

バグは直せなかった

ramen-tabero-futsu2.png
「 バグは直せなかった。 Godot はクソということしか分からなかった」

kifuwarabe-futsu.png
「 今日の勉強は 終わりだな」

📅 (2023-10-03 tue) サボった

...

📅 (2023-10-04 wed) シナリオの分岐を作ろうぜ?

ramen-tabero-futsu2.png
「 パソコンに向かうのも ツラい」

シナリオの分岐を作りなさい?

ohkina-hiyoko-futsu2.png
「 選択肢を選んだあと、次のシナリオに飛ぶような仕組みを作りなさい」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事:Godot でシナリオの分岐を作ろうぜ(^~^)?

📖 Godot でシナリオの分岐を作ろうぜ(^~^)?

📅 (2023-10-05 thu) シナリオの分岐を作った

ramen-tabero-futsu2.png
「 シナリオっていうか 会話の分岐を作った 日付が変わった 疲れた 終わり」

ramen-tabero-futsu2.png
「 もう疲れた」

ゲーム内ウィンドウ

202310__godot__05-2126--Today.png

ramen-tabero-futsu2.png
「 👆 あとは何が欲しいんだぜ?」

ohkina-hiyoko-futsu2.png
「 ファミコン時代のアドベンチャーゲームなら、画面の中央に
イラストが表示されるウィンドウが欲しいんじゃない?」

kifuwarabe-futsu.png
「 もう RPGを諦めてるな」

202310__godot__05-2129--Today2.png

ramen-tabero-futsu2.png
「 👆 512 x 384 ぐらいのウィンドウを置くかだぜ?」

kifuwarabe-futsu.png
「 1280 x 720 の解像度のゲームの中に 512 x 384 の解像度のウィンドウを置くのかだぜ?」

ramen-tabero-futsu2.png
「 比率って そんなに違うのかだぜ?」

kifuwarabe-futsu.png
「 16:9 のアスペクト比のゲームの中に 4:3 のアスペクト比のウィンドウだぜ?」

ramen-tabero-futsu2.png
「 横幅が 512 のとき、 16:9 のアスペクト比にしたら 縦幅は 288 …」

202310__godot__05-2140--Today3.png

ramen-tabero-futsu2.png
「 👆 512 x 288 にして 位置調整するか……」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事: センター・ウィンドウを作ろうぜ?

📖 センターウィンドウを作ろうぜ(^~^)?

疲れた

ramen-tabero-futsu2.png
「 もう疲れた」

📅 (2023-10-06 fri) お父ん、BGM

kifuwarabe-futsu.png
「 お父ん ヒマか?」

ramen-tabero-futsu2.png
「 いや、疲れた」

BGMを付けてくれだぜ

kifuwarabe-futsu.png
「 ヒマなら BGMを付けてくれだぜ」

ramen-tabero-futsu2.png
「 う~ん BGMか~」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事: Godot で BGM を付けようぜ(^~^)?

📖 Godot で BGM を付けようぜ(^~^)?

📅 (2023-10-07 sat) BGMは付いた

ramen-tabero-futsu2.png
「 BGMは付いた、あー眠」

Go to 命令が欲しい

ohkina-hiyoko-futsu2.png
「 パラグラフが終わると メッセージ・ウィンドウが閉じるんだけど?」

ramen-tabero-futsu2.png
「 閉じるぜ?」

ohkina-hiyoko-futsu2.png
「 次のパラグラフに飛んでほしいんだけど」

ramen-tabero-futsu2.png
「 Go to 命令付けるか~

202310__godot__07-1328--Goto-o2o0.png

ramen-tabero-futsu2.png
「 👆 goto: 命令を作っておいたぜ」

センター・ウィンドウを出したり消したりする命令を作ってくれだぜ

kifuwarabe-futsu.png
「 センター・ウィンドウを出したり消したりする命令を作ってくれだぜ」

ramen-tabero-futsu2.png
「 表示するイラストも 変えれるようにしたいよな」

別記事: 再掲

📖 センターウィンドウを作ろうぜ(^~^)?

イラストの差し替えもでけたぜ

202310__godot__07-1551--FileAndRank.png

ramen-tabero-futsu2.png
「 イラストの差し替えもでけたぜ」

背景画像も差替えましょうよ

ohkina-hiyoko-futsu2.png
「 背景画像も差替えましょうよ」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事: Godot で背景画像を差し替えようぜ(^~^)?

📖 Godot で背景画像を差し替えようぜ(^~^)?

差替えれるようにした

ramen-tabero-futsu2.png
「 差替えれるようにしたぜ、疲れた」

選択肢のカーソルもブリンク(Blink;点滅)させなさいよ?

ohkina-hiyoko-futsu2.png
「 選択肢のカーソルもブリンク(Blink;点滅)させなさいよ?」

ramen-tabero-futsu2.png
「 確かに気になっていた。終わらない作業、苦行」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事: Godot で選択肢のカーソルをブリンクさせようぜ(^~^)?

📖 Godot で選択肢のカーソルをブリンクさせようぜ(^~^)?

📅 (2023-10-08 sun) ブリンク直した

ramen-tabero-futsu2.png
「 ブリンク直した 疲れた」

命令を複数行書けるようにしましょう

var document = {
    "タイトル画面":[
        """\
        !
        bgm: タイトル
        """,
        """\
        !
        scene: タイトル
        """,
        """\
        !
        bg: 崎川駅前
        """,
        """\
        !
        choice: 1,2
         ・スタート
         ・終了
        """,        
    ],

    # ...

ohkina-hiyoko-futsu2.png
「 👆 ここらへんの、1命令に複数行文字列1つ使ってるの 手際が悪くない?
複数行文字列1つに 命令を複数書けるようにできないの?」

ramen-tabero-futsu2.png
「 ワンライナーと 複数行命令が混ざってるのが 手際を悪くしてるんだぜ」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事: Godot の GDScript を使ってさらにその上にゲームスクリプトを作ろうぜ(^~^)?

📖 Godot の GDScript を使ってさらにその上にゲームスクリプトを作ろうぜ(^~^)?

命令は全部、単一行命令にした。命令を連続して書けるようにした

202310__godot__08-0223-TabIndent-o2o0.png

ramen-tabero-futsu2.png
「 だいぶ こなれてきたんじゃないかな」

エンディングを作りましょう

ohkina-hiyoko-futsu2.png
「 エンディングを作りましょう」

ramen-tabero-futsu2.png
「 画面1枚でいいか……」

202310__godot__08-0252--Ending-o2o1o0.png

ramen-tabero-futsu2.png
「 👆 これが 現在 発揮できる 最大のパフォーマンスだぜ」

kifuwarabe-futsu.png
「 もう それで いいんじゃねーの」

ramen-tabero-futsu2.png
「 👇 魔王魂で エンディングっぽい曲を探してきて 当てはめたった」

📺 動画

ohkina-hiyoko-futsu2.png
「 これで充分よ」

⏰ 同日 13:23

ramen-tabero-futsu2.png
「 ふぁーあ 起きた」

ohkina-hiyoko-futsu2.png
「 自由位置ウィンドウ は実装しないの?」

ramen-tabero-futsu2.png
「 やならければいけない作業が 増えるからなあ」

ohkina-hiyoko-futsu2.png
「 ファミコン時代の ロール・プレイングゲームって ウィンドウが いっぱい出てくるじゃない」

ramen-tabero-futsu2.png
「 確かに。メッセージ・ウィンドウを 一般化 した方がいいかな?」

kifuwarabe-futsu.png
「 ウィンドウ (Window;窓)という用語は いろんなものに被りまくるから、
なんか 名前を付けた方が よくないかだぜ?」

ramen-tabero-futsu2.png
「 昔から ウィンドウ って呼んでたけどな。
10分 考えるか。
なんとかウィンドウ にするのか、別の名前を新しく定義するのか」

ohkina-hiyoko-futsu2.png
「 弁当箱みたいだから ランチボックス (Lunch Box;弁当箱) ってどう?」

ramen-tabero-futsu2.png
「 弁当箱は スーパーファミコンの蔑称だろう。
しかし 他の代案も出せないし lunchbox の線で考えるか。
しかし 文字数が長いなあ」

kifuwarabe-futsu.png
「 もう box でいいのでは?」

シナリオの仕様

202310__godot__08-1340-Scenario.png

ramen-tabero-futsu2.png
「 👆 現在の実装だと シナリオを書けば それは メッセージ・ウィンドウ に表示されるけど、
ウィンドウの名前を指定して 書き分けるようにした方がいいのかだぜ?」

ohkina-hiyoko-futsu2.png
「 シナリオ・ファイルは 上から下に読めないと やってられないわよ」

kifuwarabe-futsu.png
「 ウィンドウの画面遷移は たいてい ツリー構造をしていないか?」

ramen-tabero-futsu2.png
「 Godot がそもそも ツリー構造の性質を備えているから それに乗るか」

ohkina-hiyoko-futsu2.png
「 シナリオは Window の一部分なのか、
それとも Window の一部分が シナリオなのか、
どっちなの?」

ramen-tabero-futsu2.png
「 Window が上に立つんだが、
シナリオを 第2の位置に下げるのは 違和感があるな」

202310__godot__08-1349-Windows.png

ramen-tabero-futsu2.png
「 👆 こんな風に Windows の下に 全ての窓を置きたいけど」

kifuwarabe-futsu.png
「 ランチボックスじゃないのか」

ohkina-hiyoko-futsu2.png
「 ひとまず 既存の分を再編したらいいんじゃない?」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事: Godot でサブウィンドウを作ろうぜ(^~^)?

📖 Godot でサブウィンドウを作ろうぜ(^~^)?

📅 (2023-10-09 mon スポーツの日) サブウィンドウは途中

ramen-tabero-futsu2.png
「 いろいろ やらなければならいことが 分かったので サブ・ウィンドウの開発は中断だぜ」

BGMがループしないの、直しなさいよ

ohkina-hiyoko-futsu2.png
「 BGMがループしないの、直しなさいよ」

ramen-tabero-futsu2.png
「 ループ地点を設定できるのかと思ったら そういう設定がない……」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事: Godot で BGM をループするようにしてくれだぜ(^~^)?

📖 Godot で BGM をループするようにしてくれだぜ(^~^)?

BGM のループはできそう

ramen-tabero-futsu2.png
「 やり方分かった 疲れた」

実行ファイルを作りましょうよ?

ohkina-hiyoko-futsu2.png
「 配布の練習をするために 実行ファイルを作りましょうよ?」

ramen-tabero-futsu2.png
「 ネットで配れるのかな?」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事: Godot で実行ファイルを作ろうぜ(^~^)?

📖 Godot で実行ファイルを作ろうぜ(^~^)?

⏰ 同日 13:16

ramen-tabero-futsu2.png
「 ふぁーあ 起きた」

ramen-tabero-futsu2.png
「 Windows Desktop 用の実行ファイルも作れた。充分だろ」

ゲーム中の特定の動作をいつでも一時停止する機能を作りなさい

ohkina-hiyoko-futsu2.png
「 ゲーム中の特定の動作をいつでも一時停止する機能を作りなさい。
この機能がないと サブ・ウィンドウなどの様々な機能の実装が 先に進まないわよ」

ramen-tabero-futsu2.png
「 簡単そうで 自力実装しろと言われると あれっ? と思う機能だよな」

kifuwarabe-futsu.png
「 長くなりそうだ。日記の中では流れていってしまう。別記事にまとめてくれだぜ」

別記事: Godot で一時停止を実装しようぜ(^~^)?

📖 Godot で一時停止を実装しようぜ(^~^)?

📅 (2023-10-10 tue) Pause Ok

ramen-tabero-futsu2.png
「 Pause も実装したぜ」

ohkina-hiyoko-futsu2.png
「 じゃあ サブ・ウィンドウ の実装に進めそうねえ」

ramen-tabero-futsu2.png
「 これから寝る」

⏰ 同日 21:53

ramen-tabero-futsu2.png
「 疲れた」

kifuwarabe-futsu.png
「 システム・メニューを出す続きをやってくれだぜ」

再掲: Godot でサブウィンドウを作ろうぜ(^~^)?

📖 Godot でサブウィンドウを作ろうぜ(^~^)?

📅 (2023-10-11 wed) まだサブ・ウィンドウ

ramen-tabero-futsu2.png
「 はー、難しすぎるなー」

サブ・ウィンドウ

kifuwarabe-futsu.png
「 まだ続きだぜ」

再掲: Godot でサブウィンドウを作ろうぜ(^~^)?

📖 Godot でサブウィンドウを作ろうぜ(^~^)?

サブ・ウィンドウ

ramen-tabero-futsu2.png
「 はー、問題が芋づる式に噴出だ! また明日!」

📅 (2023-10-12 thu 20:10) つら

ramen-tabero-futsu2.png
「 つら」

サブ・ウィンドウ

kifuwarabe-futsu.png
「 まだ続きだぜ」

再掲: Godot でサブウィンドウを作ろうぜ(^~^)?

📖 Godot でサブウィンドウを作ろうぜ(^~^)?

不存在なのか、不可視なのか、不透明なのか?

ramen-tabero-futsu2.png
「 ウィンドウを 消す という行為に一貫性を見出していないので、また明日再挑戦だぜ」

ohkina-hiyoko-futsu2.png
「 不存在という状態を作るしかなくない?」

📅 (2023-10-13 fri 21:08) 状態機械をガチガチに作ろうぜ?

ramen-tabero-futsu2.png
「 はー つらい つらい」

サブ・ウィンドウ

kifuwarabe-futsu.png
「 てこづっているようだな。状態機械をガチガチに作ろうぜ?」

ramen-tabero-futsu2.png
「 なんで こんなに難しいのか。他の人 どうしてるか分からん」

再掲: Godot でサブウィンドウを作ろうぜ(^~^)?

📖 Godot でサブウィンドウを作ろうぜ(^~^)?

📅 (2023-10-14 sat 12:08) サブ・ウィンドウだ サブ・ウィンドウだ!

ramen-tabero-futsu2.png
「 状態機械を ガチガチに作るのが 妥当だったんだ……」

サブ・ウィンドウ

kifuwarabe-futsu.png
「 そら、続きだぜ!」

再掲: Godot でサブウィンドウを作ろうぜ(^~^)?

📖 Godot でサブウィンドウを作ろうぜ(^~^)?

📅 (2023-10-15 sun 12:50) デバッガを使いまくった

ramen-tabero-futsu2.png
「 Godot でもブレークポイント使えるの昨日気づいて 調べまくったら
シナリオを キューにして ポップしまくっていたから 空になって 1回だすともうメッセージ出てこないウィンドウの理由が分かった」

サブ・ウィンドウ

kifuwarabe-futsu.png
「 そら、続きだぜ!」

再掲: Godot でサブウィンドウを作ろうぜ(^~^)?

📖 Godot でサブウィンドウを作ろうぜ(^~^)?

サブ・ウィンドウはうまくいった

📺 動画

ramen-tabero-futsu2.png
「 サブ・ウィンドウは うまくいったぜ」

ohkina-hiyoko-futsu2.png
「 次は戦闘画面かしらねえ?」

雑魚戦闘曲

ramen-tabero-futsu2.png
「 フリー音楽のサイトから 雑魚戦闘曲を探すか。
かっこよくても合わないんだよな」

202310__photo__15-2202--開発中画面.png

kifuwarabe-futsu.png
「 👆 ひどい画面だwww」

202310__photo__15-2240--開発中画面-れさ改.png

ramen-tabero-futsu2.png
「 👆 モンスター画像を置くだけで 精一杯だぜ」

202310__godot__16-0007--戦闘シーン.png

ramen-tabero-futsu2.png
「 👆 上下に 黒いのを付けるだけで 昔のゲームっぽく見えるな」

ohkina-hiyoko-futsu2.png
「 昔というのが 具体的に いつなのか 分かんないけど。 似非歴史なんじゃないの?」

📅 (2023-10-16 mon 18:49)

ramen-tabero-futsu2.png
「 RPGの自作戦闘を作らなければいけないのかだぜ? なんでそんな激務を?」

RPGの自作戦闘を作ろうぜ?

kifuwarabe-futsu.png
「 RPGと名の付くものは だいたい 戦闘シーンがあるしなあ」

ohkina-hiyoko-futsu2.png
「 長くなりそうな話は 別記事でしましょう!」

別記事:

📖 Godot でRPGの自作戦闘を作ろうぜ(^~^)?

📅 (2023-10-17 tue 18:48)

ramen-tabero-futsu2.png
「 締切りのあるのが つらい」

自作戦闘

ohkina-hiyoko-futsu2.png
「 あんたがイベントに申し込んだんじゃない」

kifuwarabe-futsu.png
「 👇 さっさと作れば楽になるぜ?」

再掲: Godot でRPGの自作戦闘を作ろうぜ(^~^)?

📖 Godot でRPGの自作戦闘を作ろうぜ(^~^)?

📅 (2023-10-18 wed) 阪神戦観て寝てた

Zzz

📅 (2023-10-19 thu) 戦闘画面の見た目を調整しようぜ?

202310__godot__18-0019--BattleScene.png

ramen-tabero-futsu2.png
「 👆 これで フィックスしようとしたんだが、動画にして見てみると 見にくくてな」

自作戦闘

kifuwarabe-futsu.png
「 👇 長くなりそうな話は 別記事でやってくれだぜ」

再掲: Godot でRPGの自作戦闘を作ろうぜ(^~^)?

📖 Godot でRPGの自作戦闘を作ろうぜ(^~^)?

📅 (2023-10-20 fri 19:11) 戦闘を作ろうぜ?

202310__godot__19-2143--BattleScene.png

ramen-tabero-futsu2.png
「 👆 昨日は 戦闘画面のレイアウトをいじって 手作り的なエンカウント トランジションも付けたのだった」

ohkina-hiyoko-futsu2.png
「 次は 画面ではなくて 戦闘を作りましょう」

kifuwarabe-futsu.png
「 👇 長くなりそうな話は 別記事でやってくれだぜ」

📖 Godot でRPGの自作戦闘を作ろうぜ(^~^)?

📅 2023-10-21 sat, 22 sun 用事

(^~^)

📅 2023-10-23 mon 疲れた

ramen-tabero-futsu2.png
「 疲れたぜ」

kifuwarabe-futsu.png
「 開発期間も 新しいことを始める時間も もうそろそろ無いし、
戦闘画面を 少しでもマシにしてくれだぜ」

📖 Godot でRPGの自作戦闘を作ろうぜ(^~^)?

📅 2023-10-24 tue ゲームパッドを買った

202310__godot__24-2323--GamePad.png

ramen-tabero-futsu2.png
「 👆 ゲームパッドを7個買った。届いたら Godot で使えるか確認するぜ」

ohkina-hiyoko-futsu2.png
「 1996年の次世代機戦争の頃のゲームパッドねえ」

ramen-tabero-futsu2.png
「 Nintendo Switch 風のゲームパッドも買っておいたぜ」

ohkina-hiyoko-futsu2.png
「 ロクヨン、ゲームキューブ、ウィーユーのリモコンは無いの?」

ramen-tabero-futsu2.png
「 即売会の長机の卓上に置くスペースが無いんで」

kifuwarabe-futsu.png
「 👇 じゃあ 戦闘画面の開発に戻れだぜ」

📖 Godot でRPGの自作戦闘を作ろうぜ(^~^)?

202310__godot__24-2349--GamePad-PcEngine.png

ramen-tabero-futsu2.png
「 👆 任天堂、セガ、ソニー、マイクロソフトの4つのゲームパッドを抑えておけば
誰かの心に引っかかるだろうと思っていたが、 NEC が無かったので追加で購入」

kifuwarabe-futsu.png
「 わかった、わかった」

📅 2023-10-25 wed 寝てた

Zzz...

📅 2023-10-26 thu 気力ゼロ

ramen-tabero-futsu2.png
「 やる気ナッシング」

kifuwarabe-futsu.png
「 👇 分かった 分かった 戦闘画面を作れだぜ」

📖 Godot でRPGの自作戦闘を作ろうぜ(^~^)?

📅 2023-10-27 fri ⏰ 21:23 もう疲れた

ramen-tabero-futsu2.png
「 毎日 毎日 日付を跨いでまでプログラミング、疲れた。
ゲームに関わりたくない」

kifuwarabe-futsu.png
「 昨日、Amazon から箱が届いていたぜ?」

ramen-tabero-futsu2.png
「 👇 ゲームパッドが来たんだ。箱を空けるか……」

📖 Godot でゲームのコントローラーを使おうぜ(^~^)?

📅 2023-10-30 mon ⏰ 22:12 もう疲れた

ramen-tabero-futsu2.png
「 もう疲れた」

kifuwarabe-futsu.png
「 キーコンフィグができなければ、好きなゲームパッドで ゲームができないんじゃないか?」

ramen-tabero-futsu2.png
「 👇 少し着手するかあ」

📖 Godot でキーコンフィグを作ろうぜ(^~^)?

📅 2023-10-31 tue

📖 Godot でキーコンフィグを作ろうぜ(^~^)?

📅 2023-11-03 fri 文化の日

ramen-tabero-futsu2.png
「 👇 ちょっとでも パソコンの前に座るか……」

📖 Godot でキーコンフィグを作ろうぜ(^~^)?

とりあえず シーンをぶらさげる(リンクする)ことができた

ramen-tabero-futsu2.png
「 👇 とりあえず 最低限のキーコンフィグを付けたぜ」

📺 動画

📅 2023-11-07 tue レバー対応

202311__godot__07-0415--Lever.png

ramen-tabero-futsu2.png
「 👆 レバー対応もした」

📖 Godot でキーコンフィグを作ろうぜ(^~^)?

仮想キー化を進めたら、選択肢カーソルの位置がおかしくなった

ramen-tabero-futsu2.png
「 ゲームパッドのボタンを キー・コンフィグ できるようにする改造をしたことによって、
選択肢カーソルの位置や、移動できる範囲が おかしくなったぜ」

kifuwarabe-futsu.png
「 👇 大変なバグを踏んでいるのかも知らん、別記事で解説してくれだぜ」

📖 Godot で選択肢カーソルを作ろうぜ(^~^)?

📅 2023-11-13 mon 外部リソースのジョインもマージもできん

ramen-tabero-futsu2.png
「 👇 ぐぬぬ。 Godot で、外部リソースのジョインもマージもできないぜ」

📖 リソース

ohkina-hiyoko-futsu2.png
「 Godot の開発者はなんも考えてないのよ」

ramen-tabero-futsu2.png
「 じゃあ リソース管理のやり方を 練り直しだぜ」

📅 2023-11-14 tue ファイル構成のベストプラクティスを探せだぜ!

202311__godot__14-2306--FileSystem.png

ramen-tabero-futsu2.png
「 👆 プロジェクトに入れるものは 3大要素 に分かれるぜ」

  • ⚡ ツリーのルート。とにかく最初はこれをダブルクリック
  • 🍋 素材。大雑把な種類で分ける
  • 📂 別のプロジェクトへツリーをコピー・ペーストしたいときのために分けた、部分木。 Transfer Data

ramen-tabero-futsu2.png
「 👆 この3つを さっと 見分けられないと やってられない」

kifuwarabe-futsu.png
「 🪑 と 🍉 は何だぜ?」

ramen-tabero-futsu2.png
「 🪑 は、素材の著作権者を 見分けやすくする印だぜ。
🍉は、モジュール名だぜ」

ohkina-hiyoko-futsu2.png
「 特訓しないと なんだか 分からないわねえ」

📅 2023-11-16 thu コード掃除

ramen-tabero-futsu2.png
「 AssistantDirector が持っているメソッドが多すぎる。
ScenarioWriter に分担できるところは 分担していくぜ」

📅 2023-11-17 fri コード掃除

ramen-tabero-futsu2.png
「 メッセージ・ウィンドウのソースコードが長すぎる。
コードを掃除していくぜ」

📅 2023-11-18 sat ビジュアルノベル部分だけ切り出そうぜ?

ramen-tabero-futsu2.png
「 RPGの開発が伸び伸びになってしまう。
いったん、ビジュアルノベルの部分だけ切り出すぜ」

(📅 2023-11-19 sun) .tscnファイルが破損したので自力で復元中

ramen-tabero-futsu2.png
「 リソースのIdの紐づけが切れたら ファイルが開かなくなった。
どこが破損したかも 教えてくれないので 自力で復元中」

📖 Godot で、破損した .tscn ファイルを自力で復元しようぜ(^~^)?

(📅 2023-11-20 mon) ラベル設定のファイル名を整えようぜ?

ramen-tabero-futsu2.png
「 ファイル名の付け方が バラバラでつらい」

kifuwarabe-futsu.png
「 👇 長くなりそうな話は、別記事で解説してくれだぜ」

📖 Godot の LabelSettings 外部ファイルの名前の付け方を考えようぜ(^~^)?

(📅 2023-11-21 tue) ノードパスに縛られずにフォルダー階層にしたい

202311__shogi__21-1906--folder-o2o0.png

ramen-tabero-futsu2.png
「 👆 フォルダーを自由に作って そこにノードを移動できるようにしたいぜ。
そのとき パスも リンク切れしないようにしたいぜ」

ohkina-hiyoko-futsu2.png
「 Godot エディター上で 移動すれば リンクは切れないんじゃないの?」

ramen-tabero-futsu2.png
「 ノードパスの仕様が難しい。もっと適当に ノードを移動したい」

kifuwarabe-futsu.png
「 👇 長くなりそうな話は、別記事で解説してくれだぜ」

📖 Godot でノードパスを気にせずにシーン・ビューでノードを移動したいぜ(^~^)

(📅 2023-11-22 wed) 命令も、ノードパスに縛られずにフォルダー階層を作れるようにしたい

202311__shogi__22-2138--programmers-monkey-o2o0.png

ramen-tabero-futsu2.png
「 👆 したいというか、もうした」

ohkina-hiyoko-futsu2.png
「 他の グローブ 🌏 の下も そうできるようにしなさいよ」

202311__shogi__22-2329--folder-o2o0.png

ramen-tabero-futsu2.png
「 👆 📂 を見つけると、引き続きその中も探索される、という特別な意味を持たせた。
📂🗻戦闘開始トランジション を省いても 🗻1コマ は見つけてくれるぜ」

(📅 2023-11-24 fri, 25 sat) コード掃除

...

(📅 2023-11-26 sun) スクリプトを全部、シナリオで書けないの?

202311__shogi__26-1403--KeyConfigModerator-o2o0.png

ramen-tabero-futsu2.png
「 👆 キーコンフィグの こういうスクリプトを 全部 自前のシナリオのト書きで書けないかだぜ?」

ohkina-hiyoko-futsu2.png
「 GD Script の表現力を シナリオが上回ってないなら 苦労が増えるだけじゃない?」

kifuwarabe-futsu.png
「 👇 長くなりそうな話は、別記事で解説してくれだぜ」

📖 Godot の GDスクリプトを、自前のスクリプトで置き換えようぜ(^~^)?.md

フォルダ―構成、ツリー構成

202311__shogi__26-2037--Structure-o2o0.png

ramen-tabero-futsu2.png
「 👆 役職ごとに プロジェクトを分け、
あとで 各プロジェクトをマージするための構成は ひとまず このようにするぜ」

kifuwarabe-futsu.png
「 何日間も 微妙に 仕様変更を繰り返していたやつが 終わったのか?」

ramen-tabero-futsu2.png
「 まだ暫定だぜ」

.

ツイッターでシェア
みんなに共有、忘れないようにメモ

むずでょ

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント