投稿記事

籠城ゲームの記事 (98)

竹林ソフト 2024/01/09 20:00

ねこ巫女籠城ゲーム開発(雑多な不具合の修正)

気になってた問題を修正していきます。

やったこと

斜めが移動先のときの経路が直線にならないのを修正する

このゲームは長方形グリッドで管理していて、グリッド間は8方向で移動できるようになっています。この仕様で例えば北東を目標にすると、その目標まで斜め方向に移動してほしいのですが「東に進み終えてから北に移動する」という動作になっていました。

確認したら、経路探索の実装で 2D 平面だったのを橋とかの立体交差を管理するために 3D にしたときの修正を間違えていました。具体的には Vector2Int の x, y を Vector3Int の x, z にするあたりが間違っていました。

↓ 修正後の動作

修正後の気付きについては、長方形グリッドの1辺が 2m と長めなので移動が「直線、斜め、直線、斜め」になると結構目立ちます。
これについては、移動経路を探索した後に直線移動に置き換えるとかすると改善できると思いますが、また後でどうにかします。

石垣の縁に斜面を作ってセーブしてロードするとおかしくなるのを修正する

↓ 石垣ブロックに接するように斜面を作ると

↓ セーブしてロードすると石垣ブロックが浮く

これはロード時に石垣ブロックを配置するときに地面の上に石垣ブロックを配置して浮いているように思えます。

石垣ブロック情報をセーブするときに高さ方向の位置情報も含めるようにして修正しました。

橋が地面にめりこんでしまうのを修正する

↓ こうなっていました。

調べたところ橋の高さ方向のオフセット計算まわりが間違っていました。

↓ 修正した結果

よいです。

フィールドの端が折れ曲がっているのを修正する

↓ 修正前のフィールド

プレイヤーから見えない箇所なので折れ曲がっていても関係ないのですが修正してしまいます。
確認したところ「長さが N の格子には頂点が N+1 個ある」のに N 個で処理していたのが原因でした。

まとめと今後の予定

いくつかの不具合を修正しました。どれもそこそこ小難しかったです。
次回は この雑多な不具合の修正を続けるか、もしくは橋の上をキャラが移動できない問題を修正しようと思います。がんばります。

竹林ソフト 2024/01/02 20:00

ねこ巫女籠城ゲーム開発(橋が建築できるかの判定まわり)

橋を建築するあたりの仕様を決めたので実装していきます。

やったこと

橋の両端の地面の高さがすべて同じときだけ建築できるようにする

↓ そういう処理を実装して建築してみた様子

よいです。
ただ、地面の盛り土の上に橋を作るあたりは適切に動作していないので後で修正します。

↓ 橋が地面に埋まっている様子

橋の上を通る移動経路を追加、しようとした

引き続き、橋の上を移動する経路まわりを実装して動作確認をしようとしたのですが、

  • 橋や石垣ブロックの上に移動できない。
  • 石垣の縁まで盛り土してセーブ、ロードすると石垣の位置が盛り土の上になる。
  • 橋が地面に埋まる。

という追加の問題に直面して心がつかれたので、そのあたりの確認と動作確認は次回にやります。

↓ 石垣ブロックの上に移動できない様子。足の接地の見た目も気になる。

まとめと今後の予定

橋についての実装が進んだのはよいです。そして敵が橋の上を移動するときに使う経路探索のための追加処理は次回にやろうと思います。

次回は実装内容の動作確認か、城郭の建築をしてみて問題を洗い出してみようと思います。がんばります。

竹林ソフト 2023/12/26 20:00

ねこ巫女籠城ゲーム開発(橋を作るための仕様確認と実装)

前回までの記事で橋モデルを仮作成して経路探索で使うデータ構造を修正しました。
今回は、具体的に橋をどう処理するかの仕様を決めて実装していきます。

やりたいこと

橋は他の建物に比べると特殊な処理を必要とします。その特殊な処理内容を確認して仕様を決めていきます。

橋を建築できるかどうかの判定

建築できるかの制限で「建築するエリアの地面が平坦でなければならない」というものがあります。ただし橋の場合は橋の端(ややこしい)は平坦でなくてもいいことにしたいです。

↓ こういう石垣ブロックに隣接する橋は、今の制限で建築できる

↓ こういう地面の傾斜に接する橋は、今の制限では建築できない

具体的には「橋の場合だけ、建築できるかの判定で使うエリアと建物が専有するエリアとを分ける」ようにします。
なんというか、仕様決めは「仕様を複雑にしたくない開発者の気持ち vs プレイしやすい方が嬉しいプレイヤーの気持ち」みたいな戦いが脳内で勃発します。

橋の高さをどうするか

橋の高さを固定にしてもいいのですが、橋の端が接する地面の高さに合わせて可変にしようと思っています。なんというか、橋の建築プレビューの際にカーソル位置に橋の端がくるようにして、カーソルがある地面の高さに合わせようと思います。

この処理のついでに、橋の幅だけ地面が平坦でない場合には建築できない判定もします。

↓ 橋の端が地面に接しているか判定して、こういう建築はできないようにする

今のところ地面が敵に壊される要素はないので、この仕様で問題ないと思います。

やったこと

とりあえず、ここまでの仕様で橋を特別扱いすることにしたので、Bridge クラスを作成しました。
そしてこのクラスの実装の続きは次回の記事にまとめます。

あとは、現状の橋とキャラとの描画を確認したりもしました。


よいと思います。

まとめと今後の予定

橋を建築するときの仕様を確認しました。

あと、このプロジェクト開発を促進するためにどうするかを考えています。
今年の開発においては「記事を継続することで開発を継続する」という理念があったのですが、開発を継続するだけでは1年経過しても完成しないのがわかったので、どうにかしていきます。

具体的には、この籠城ゲーム開発記事の投稿頻度を週2回にすることを考えています。
ただ、できない約束をすると私がつらいので着手できたら追加で投稿しようと思います。がんばります。

竹林ソフト 2023/12/19 20:00

ねこ巫女籠城ゲーム開発(橋のための実装を経路探索に追加する)

橋、つまり立体交差を扱えるように経路探索まわりを修正します。

やりたいこと

経路探索には A* アルゴリズムを使っています。このアルゴリズムで使うグラフで立体交差を扱えるように作り直します。

作業内容を列挙すると

  • 橋と地面との連結部分にノードを追加する。
  • 橋の上を通るときに使うエッジとノードを追加する。
  • ついでに既存のノードまわりを作り直す。

になります。
A* アルゴリズムがどういうものかは説明できるほど詳しくないので省略します。

やったこと

既存のノードまわりを作り直す

さっきは「ついでに」と書きましたが、橋のための機能追加する前に変更したいので着手しました。
詳しく書いても仕方がないので省略しますが、今までは平面のフィールドを格子状のグリッドに分割して、そのグリッドをノードにして隣接するタイル(ノード)とのエッジを作成していました。でも、平面で必ず連結しているのでノードを作らなくても動作するようにしました。

簡潔に書くと「小難しい変更に着手できて大変よい」です。

まとめと今後の予定

実は、Ci-en の投稿記事のストックが貯まってたのと小難しい実装に着手したくないのがあって1ヶ月くらいこのプロジェクト開発に着手できていませんでした。

今回、やっと開発に着手できたので大変よいです。毎週の記事投稿も意味があるなと思い直しています。

次回は今回の変更に加えて、橋を処理するための実装に着手したいです。がんばります。

竹林ソフト 2023/12/12 20:00

ねこ巫女籠城ゲーム開発(橋の実装に着手した)

ここ数回の記事で、以前の記事 で書き出した残タスクから石垣の処理を実装しました。よいです。
次に何をやるかですが、こういうときは「一番やりたくないタスク」に着手するのが正しいと思っているので「橋や櫓門といった階層構造のある建物の仕様を決めて実装する」に着手します。

橋や櫓門といった階層構造の仕様を決めて実装する

このタスクで行うべきことは

  • 橋を建築できるようにする。
  • 操作キャラが移動するための Collider を追加する。
  • ユニットが移動できる足場を経路探索用に追加する。

です。

橋を建築できるようにする

とりあえず現時点で橋を建築してみた結果がこれです。

気付きとしては

  • 盛り土の傾斜が最大 45 deg なので、石垣でない地面に橋を作るとこうなる。
  • 橋を地面と同じ高さに建設できるようにする。
    • 地面からの高さに制限をつける。
    • 建設する地面は平坦でないといけないことにする。
  • 建築モードを抜けたときに即座に建築されなかった。(不具合)

です。
橋の片側が地面と同じ高さに建築されるよう、引き続き修正していきます。

操作キャラが移動するための Collider を追加する

これは、三人称視点で操作するときの操作キャラは物理挙動に沿って制御するので、それ用の Collider が必要になる、というあたりです。
これについては、橋などに追加した移動メッシュにコライダーを追加すればいいことにします。Unity 詳しくないので調べながら実装して試してみます。

ユニットが移動できる足場を経路探索用に追加する

正直、橋がなければフィールドの経路探索は 2D に限定できるのでとても楽です。(過去作では橋の下は敵が通り抜けられないようにしました)

橋を追加したことで、橋の上を通る経路、橋の下を通る経路を処理する必要があるのでこれもまた後で実装していきます。

まとめと今後の予定

とりあえず橋の処理に着手しました。よいです。
引き続き、建築まわりの処理と経路探索の処理を実装していきます。がんばります。

6 7 8 9 10 11 12

月別アーカイブ

限定特典から探す

記事を検索