![見出し画像](https://assets.st-note.com/production/uploads/images/157121453/rectangle_large_type_2_6090b7576bb7b11784ead90db2d889a3.png?width=1200)
ゲーム開発日記18(10月1日から10月7日)
週一の進捗日記 22週目
コードとかは乗せるかもしれないけどゲーム部分、ストーリーやギミックのネタバレは避けます、 久しぶりに期間一週間の投稿ができた!!()
ところでnoteの記事のタイトル画像ってどうしようか、現在ヴィジュアル面が全くできていないためのせれるものがない、かといって空白だとNoteから最速のメッセージが来る….
ゲームエンジン godot4.2 OS windows10 開発ゲーム:メトロイドヴァニアホラーアクション
進捗報告
レイヤー管理機能と一方向の床
一方向の床とは、 上から落ちた場合床として機能し、下からジャンプした場合当たらずすり抜ける、そして落下に移行し床として機能する そして下むきの移動 wasdのSキー、ジョイコンの下向きに相当するアクションで降りることができる 基本的な物だ、でも基本的なものを作る過程で別の物を作る必要が出た
上からと下からの挙動はgodotにonewaycollsionという方向指定の機能があるためすぐに解決した アクションで降りるが少し難があったのだ それはレイヤー管理機能、当初は一時的に床自体のあたら判定をOFFにする、すこし下にテレポートするなどを考えた
結果的に一方向用床のコリジョンレイヤー、普通の床のコリジョンレイヤーを割り当てプレイヤーのコリジョンマスクを操作することで解決した その過程で作成したのがレイヤーコントロールモジュール
親のコリジョンオブジェクトのレイヤーの変更などを制御するものだ
こいつの関数とシグナルをつなぎ、特定のコリジョンマスクをonoffする
それはつまりgodotのcollisonObject2Dのレイヤーわりふりを自動化してくる機能もつけられる
このような悩みを持っている人はいないだろうか?接触判定やらなんやらでうまくいかずデバッグする、結果単なるレイヤー指定のミスであったことに気づく、手動でレイヤーを割り振るのがめんどくさい このような問題を解決できるようになった
前後の移動を直す
以前、前後の移動を追加しようとしていた 前後の移動が何かというと以下のような状態で、ジャンプを使わず奥(階段を使うか)にいくか手前(素通りして床を進むか)にいくかを選択できるようにするという物、
![](https://assets.st-note.com/img/1728309259-TxmNh0tiZe7bBMW2gdcKUJr5.png?width=1200)
これをじつげんするため前はZ軸用数値とstageのレイヤーを何個か用意してなんとかしようとしていたが、そんな必要がなかった 一方向の床と分かれ道のターニングポイントで代用できると気づいたから、そもそも一マス(tilampの一マスの範囲で)で3っつも4つも分岐することはない、そして2Dであるためそもそも必ず層に当たるのだ、 言語で空間を説明するのは苦手なのでとりあえず絵で描く
![](https://assets.st-note.com/img/1728309883-qjPnfaZygRTKIr23kDQ1NSlu.jpg?width=1200)
例えばこういう場合、以前はなぜか最低でも3層のレイヤーが必要と考えていた、 でも実際は一方向の床で十分なのだ
![](https://assets.st-note.com/img/1728310149-4TEZw1s2AvSlOdQWoC90mVD6.jpg?width=1200)
![](https://assets.st-note.com/img/1728310178-gIE48GtpSnZ3vYkKhHlTLRwM.jpg?width=1200)
ようはトリックでごまかす、という事を覚えたのだ 実装や進捗という点だは大したことないが個人的には結構おおきなことだった
ドア、レバーなど小道具
基礎的なところができたのでドアなどのギミックのためのテンプレートを作った
今後の課題
プロト版 (開発から5月目の10月中に完成させる)
セーブデータなど必須機能
アクション要素 スキルの取得と使用、 バフ効果、
アイテムの取得と使用
マップ移動、ドアエリアに触れると一部の敵とプレイヤーが別の部屋へ移動できるようにする
ミニマップの表示とファストトラベルなど
簡易的な敵、ドロップ品
デバッグルームとしての簡易マップ 拾えるアイテム ボタン レバー 扉 調べれる場所などのテンプレートを作って機能することを確認する
来週は敵のドロップ品、マップシステムとの結合テストができるといいと思う セーブデータなど必須機能もちゃんと作って早めにデバッグしておきたい