見出し

2024年7月の作業

   2024年07月23日     6分で読めます

7月の作業履歴です。

7/23(火)

  • AM1GodotFramework
    • フォルダーの整理
      • framework
        • 変更も移動もせずに、そのまま利用することを想定したファイル群
      • framework/demo
        • 削除してよいサンプル
      • framework/template
        • frameworkフォルダーの外に出して、プロジェクト名にリネームして使用することを想定したフォルダー
        • 最小限の共通処理を記載している
        • これらのファイルをもとに、修正や追加をして利用する
  • Godot研究ノート2のプロジェクト作成
    • TechBoosterさんのReVIEW-Templateの最新版をダウンロード
    • フォルダーを展開して、書籍名にする
    • プロジェクトフォルダーをPowerShellで開く
    • docker pull vvakame/review:5.9でアップデート
    • ブログに従って、Dockerfileとdocker-composer.ymlを作成
    • textlintの動作
    • config、画像フォルダー、著者情報などを反映
    • 以上、執筆準備完了

7/22(月)

  • Godotのインスタンスの参照方法について考察
    • インスタンスの登録と提供をするクラスを用意して、起点となるシーンのスクリプトにアタッチ。そのスクリプトで必要なインスタンスを登録する。シーン内のオブジェクトは、インスタンスの提供クラスに自分からさかのぼってインスタンスの提供クラスを検察して、必要とするインスタンスを取得する。シーンのルートにスクリプトを持てるGodotでは、この方法がよく機能する。フレームワークに適用したところ、ほとんどのシングルトンを削除できたり、コマンドのインスタンスを提供する専用のクラスを、このインスタンスの提供システムに統合することで単純化できた
    • シーンを統括するスクリプトで、そのシーンに必要なインスタンスを登録することで、依存関係がわかりやすくなった
    • 利用する側は、@onreadyでインスタンスを取得するとよい
    • インスタンスの登録は、シーン管理スクリプトのみが一か所で行い、利用側は取得のみに限定するのがミソ
  • AM1GodotFramework
    • インスタンスの登録と提供をするInstanceServerと、インスタンスを保持しておくシンプルなディクショナリクラスであるInstanceDictionaryクラスを組み込んで、インスタンスのフローを整理

7/21(日)

  • MINECART RAILS!をKenney Jam 2024に投稿

7/20(土)

  • Kenney Jam 2024のために、MINECART RAILS!の開発を開始
    • プレイヤーの操作まで
    • 他に、ブリックのスリーマッチパズルなども考えた

7/18(木)

  • AM1GodotFramework
    • エンディング実装

7/17(水)

  • AM1GodotFramework
    • 設定画面実装
    • コマンドシステムと、システムコマンド辞書を作成
    • システムコマンドによるリトライ、タイトルへの実装
    • システム効果音のインスタンスをシングルトンに変更

7/16(火)

7/15(月)

  • Godotのpoファイルによる多言語対応を調査
  • AM1GodotFramework
    • タイトルクレジットの多言語対応

7/14(日)

  • AM1GodotFramework
    • 言語オプションボタンのスクリプト(WIP)

7/13(土)

  • Godotエディターのディスプレイスケールを設定ファイルで変更する方法を確認
  • AM1GodotFramework
    • タイトルクレジットとタイトルの行き来
    • 言語オプションボタンの作成開始

7/12(金)

  • AM1GodotFramework
    • タイトルクレジット画面
    • バージョンとクレジットリンク表示
    • ボタン用のテーマ調整

7/11(木)

  • AM1GodotFramework
    • 効果音の同時再生を遅らせる機能の実装
    • ボリュームスライダーの初期化

7/10(水)

  • 事務処理

7/9(火)

  • AM1GodotFramework
    • コンボと得点
    • 爆発とゲームオーバー
    • プレイヤーの移動制限
  • 水位システムの検討

7/8(月)

  • AM1GodotFramework
    • 星と彗星の出現、移動、接触
    • プレイヤーの移動
  • 水位システムの検討

7/7(日)

  • AM1GodotFramework
    • タイトルからゲーム開始
    • デバッグキーでゲームオーバー遷移
  • Godot調査
    • AnimationTreeのステートマシンの使い方
    • ボタンなどのマウス、タップ操作の優先順位にCanvasLayerが関連

7/6(土)

  • AM1GodotFramework
    • デモの起動処理の実装
    • アニメの調査
    • 状態管理クラスAM1StateMachineの追加

7/5(金)

  • AM1GodotFramework
    • デモ用ゲームのレイアウト

7/4(木)

  • AM1GodotFramework
    • ボタンの優先順位の調査とシーンへの反映

7/2(火)

  • AM1GodotFramework
    • グラチェンの更新内容を反映
    • 効果音のenum定義をファイルから削除
    • システム効果音用のスクリプトは自動再生をやめて不要になったので削除

7/1(月)

  • Godotの挙動調査
    • UIの優先順位。シーンツリーの下から優先される。マウスモードをIgnoreにしないと、シーンツリーの上にあるオブジェクトはイベントを受け取れない
    • UIに重なっているときに、ゲームの操作を無視するには、ゲーム操作用のUIを最下層に用意して、そこでマウスイベントを監視するのがよさそう。InputMapにクリックなどを入れてしまうと、UIとの重なりチェックの負担が重いので、避けた方がよさそう
    • 等幅フォントは、ビットマップで作成するか、等幅フォントを使う。Unityのmonospaceに該当する機能はなさそう