投稿記事

籠城ゲームの記事 (99)

竹林ソフト 2023/06/21 08:00

ねこ巫女籠城ゲーム開発(石垣の建築と、建物と壁の削除について)

石垣を建築するあたりを実装します。そして建物と壁の削除まわりについて検討します。

石垣の建築

石垣は、その上に建物が配置できる特殊な建物として扱います。
このゲームでは、斜めになってる裾があるタイプの石垣と、垂直な面だけの石垣ブロックの2種類を扱います。

↓石垣ブロック、高さは3種類

テクスチャは適当ですが、石垣を想像しながら見てもらえると幸いです。

↓裾がある石垣

白いあたりに石垣の裾があると思ってもらえると幸いです。
この石垣の白い裾エリアは、他の石垣の裾エリアと重なって建築できることにします。そうすることで、くぼんだ角度になった石垣の裾の重なりをそれっぽく表現できると思うので。

↓高い石垣

だいたい 32 m 相当の石垣パーツも用意してみました。城門と比較すると高さが想像できてよいです。

石垣についての特殊な処理としては

  • 石垣の位置(裾でない場所)の上には建物を配置できるしユニットの移動もできる。
  • 石垣の裾は他の石垣の裾と重なっても建築できる。
  • 石垣の内側(裾のない側)は地面の高さを石垣と同じ高さに固定する。
    • 裾のない石垣ブロックにはこの処理を適用しない。

話が細かくなるのですが、このルールだと縦長の石垣ブロックで囲んだ範囲の地面の高さを石垣ブロックの高さと同じにできなくなります。(盛り土の傾斜角は 45 deg までなので)

↓裾なしの石垣ブロック(左)、裾ありの石垣(右)

この縦長の石垣ブロックは、裾ありの石垣の端に置くことで石垣に建物を隣接させるときに使う専用パーツとして扱うのでいいかなと思います。(裾がないので建物を隣に置ける)

建築の制限をプレイヤーに押し付けている気もしますが「プレイヤーが建物を配置しようとすると裾ありの石垣パーツが石垣ブロックに自動で変わる」とかいう処理もありかもしれません。また後で考えます。

建物と壁の撤去

当初は Factorio というゲーム同様に、右クリックの長押しで建築物を撤去できるようにしようと思っていました。でも、長い壁をまとめて削除するときは めんどうそうです。

と、ここまで記事を書きながらどうするか考えて「両方提供すればいいか」と思いました。

  • 右クリック長押しで建物、壁、防衛ユニットを削除できる。
    • 削除中の対象はアウトラインで協調する。
      • 削除中は WASD による視点移動しないようにする。
  • 地面を範囲ドラッグして DEL キーを押すと、範囲内の対象物を全削除する。
    • 地面の高さの変更指示はそのままにする。

長押しで削除する機能は未実装なので、改めて作成していきます。次回以降の記事で!

フェーズをなくす仕様にする

ゲームの仕様について考えたことを書きます。
建築フェーズと防衛フェーズとを明確に分けるゲームのつもりでしたが、なくそうと思います。ゲーム Factorio を参考にしたいと思っていて「設計図で建築指示をしてロボットが建築する。敵は随時攻めてくる」というのをイメージしています。

考えたことを箇条書きにしてみると

  • 住民の数に応じて、建築した資材置き場に資材が貯まっていく。
    • Factorio の物流ロボットが資材を運搬するイメージ。
  • 建築指示した建物を、資材置き場の資材を運んで自キャラが召喚したワーカーが作っていく。
    • Factorio の建築ロボットが最寄りのチェストの資材を使って建築するイメージ。
  • 建築指示の操作中は時間の流れを止める。
    • どう建築するかをゆっくり考えられるようにするため。
  • 資材が貯まるまでの時間は、拠点で寝ることでスキップできる。
    • 寝なくても特に問題はない。
  • 敵は定期的に攻めてきて、いつ攻めてくるかはカウントダウン表示する。
    • 急に攻められてストレスを感じないようにするため。
  • フィールドに敵の出現地点が配置されていて、どのくらいの敵が出てくるかわかるようにする。
    • 出現地点は増えうる。
    • この出現地点を撤去できるが、撤去するときは敵が多めに攻めてくる。
  • 敵の出現拠点を無効にするには祠みたいなものを建築する。
    • Factorio の長距離砲台のようなもの。

くらいです。
このプロジェクトの1つ前の、過去にボツにした籠城ゲームの案に似てきた気がします。ボツにしたプロジェクトは、資材の運搬ルーチンを賢くしようとして私の許容量を超えて破綻した気がするので、そこはいろいろと割り切っていきたいです。

まとめと今後の予定

石垣の建築をやってみて、どうするかとゲーム仕様について考えました。
次回は、削除の実装とか、仕様検討の続きと何から開発するかを考える予定です。がんばります。

竹林ソフト 2023/06/13 21:00

ねこ巫女籠城ゲーム開発(今後のタスク確認)

今まで最低限の項目の機能ごとに実装していましたが、そろそろゲームとして遊ぶのを目指して次に何を実装するかを決めていこうと思います。

ゲームとして遊んで何を評価したいか

これらについて、遊べるようにして評価したいと思っています。

・城郭ができあがっていく様子を見て楽しいかどうか。
・籠城時の「打って出る!」が楽しいかどうか。

城郭ができあがっていく様子を見て楽しいかどうか

街づくりゲーの多くでは、即座に建築終了になるか、時間経過で建て終わるゲームが多いです。
本作は、建築指示した後で自キャラを移動させて、その自キャラの近くから順に建築させていこうと思っています。狙いとしては

・まず全体図を指示できるようにするために、即座に建築を終了させない。
・敵が攻めてくるあたりを確認しつつ、建築の変更や強化を行う範囲を自キャラの移動位置で指定したい。
・掘った地面の土資源を、盛土として利用したい。

というのがあります。
このあたりは、実際に動く様子を見ながら、私が悦に浸れるかを確認したいです。

籠城時の「打って出る!」が楽しいかどうか

今作では、城内に兵士ユニットを生産するために広めのエリアが必要になるようにしようと思っています。
そして、そのエリアで生産した兵士ユニットを敵が劣勢になったタイミングで「総攻撃!」みたいな指示を出せるようにしたいです。

こうすることで、城内に広いエリアを確保する必要ができたり、追撃できるための適度な門の配置になったりと、より現実にある城郭に似てこないかな、と考えています。

・兵士ユニットは、敵から見えないエリアでしか召喚できないようにする。
・生産した兵士ユニットは、総攻撃を指示すると門を開いて敵を追撃し始める。

このあたりも、実際に動かして楽しいか確認したいです。

ゲームとして遊ぶために未実装の項目

これらを評価するために未実装な項目としては、

・建築用の資材置き場の概念を用意するかの仕様を決める。
・追撃時の兵士ユニットの指示方法をどうするか、めんどうにならないか。

なんかが未決定で実装に移れていません。
なんとなく考えている項目を、個別にドキュメントに書き出しながら、改めて脳内で検討して仕様として決めていきたいです。

まとめと今後の予定

現時点では「なんとなく、こうしたいんだよなぁ」としか考えられていない項目について書き出してみました。このあたりを仕様として決めて、実装に移れるようにしていこうと思います。がんばります。

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

ねこ巫女籠城ゲーム開発(地形の高さ変更の修正)

地形の高さの編集について、傾斜が 45 度までになるように制限しつつ編集するあたりを実装します。

実装する内容

地面の高さを変更するときに、45 度を超える斜面ができないよう制限しつつ、選択エリアがクリックされた地点の高さとおなじになるようにします。

斜面の角度制限については、隣接する点との高さを比較します。今回はこれらの処理は再帰呼出しで実装します。

実装した結果

実装したところ、おおよそ適切に動作したのですが、再帰で処理する順番によるせいか、同じ高さにならないことがありました。

↓2マス目からの高さになってほしいけど、なってない様子

単なる再帰で処理するのでなく、幅優先探索になるようにすべきだった気もしたのですが、今回は「高さの変更がなくなるまでこの処理を繰り返す」という力技で解決しました。あとから修正できることは、とりあえず動作すればオッケーです。

編集できる範囲が無限に広いと問題になりますが、これは「操作キャラから一定範囲までしか編集できない」という仕様を追加して動作を保証しようと思います。

↓最終的な操作の様子

とりあえず、よいと思います。

まとめと今後の予定

UI の細かい操作まわりは修正できていませんが、懸案だった傾斜角に制限をもたせた地面の編集ができるようになって大変よいです。
次回は操作まわりの他の作業か、石垣ブロックの追加かタレットまわりに着手しようと思います。がんばります。

竹林ソフト 2023/05/30 20:00

ねこ巫女籠城ゲーム開発(建築操作の改善)

前回は城郭を少し作ってみました。今回は、その城郭を作る操作で未実装の機能を実装したり、操作しにくかった点の改善をしていきます。

地形の編集操作の見直し

45 度の傾斜までしか作れないようにする理由

城郭については専門家じゃないので都度調べるのですが、城郭の斜面の傾斜は 45 度がよい、という説明が多いようです。

45 度
https://www.touken-world.jp/tips/44007/
https://shirobito.jp/article/923

草が生えている場合や堀切などでは 60 度までの傾斜もあったようですが、このゲームでは 45 度までしか傾斜を作れないということにします。

小田原市|総構(小峯御鐘ノ台大堀切の 50~60 度の堀切を紹介している)
https://www.city.odawara.kanagawa.jp/kanko/spot/p31082.html

ただ、極端な例を出すと自然地形の崖は当然 45 度以上の傾斜なわけで、「プレイヤーが変更した場合の傾斜は 45 度までにする」みたいな仕様がよさそうなのですが、どうするかは悩み中です。
とりあえず、盛土と掘削の操作の上限を 45 度にする変更は実装します。

45 度の制限の実装方針について

今はドラッグして作った範囲に対し、更に上下ドラッグすることで編集できます。

↓ドラッグでエリアを作って、そのエリアを上下ドラッグして高低差を指示する

高低差がない平坦なエリアを編集するときはいいのですが、すでに高低差があるエリアを編集するときにどうするかは決める必要があります。

↓高低差があるエリアの例

高低差があるエリアのときにどうするかの案

・エリア内を最初にクリックしたセルの最も低い頂点の高さにする。
・クリックしたセルの周囲のセルを順に同じ高さに変更していく。
 ・ただし、この変更で傾斜が 45 度に収まるように制限する。

例えば、この上の画像ときに右上のセルをクリックしたら、右上のセルの高さに合わせようとしつつも 45 度の制限で高さを変更しきれずに、にエリア内の各頂点の高さが1ずつ上がるような動作を想定しています。

具体的には、同じ高さにする処理を、その高さから最も離れた頂点から順に処理していけばいいと思うんだけど、記事が長くなったので実装と動作結果は次の記事にまとめます。

まとめと今後の予定

今回は地形の編集操作について検討して方針を書き出しました。次回は実装と動作確認を行います。今回のように、機能の見直しも続けていきますが、ゲームとして通して遊ぶために未実装な機能も選んで着手していきたいです。がんばります。

竹林ソフト 2023/05/23 20:00

ねこ巫女籠城ゲーム開発(城郭の構成要素を作ってみる)

そろそろ城郭を作ったときに見た目がどうなるかを評価したいので、防衛用の建物の見た目を用意します。

防衛用の建物の用意

Unity Asset Store の POLYGON Samurai - Low Poly 3D Art by Synty アセットを利用します。

↓アセットのパーツを組み合わせたりして作った建物。

建築予定の建物は全てが半透明で描画されるべきなのですが、一部しか半透明になってないません。修正しようと思ったけど大変そうだったので、このまま評価を続けます。

防衛施設を作ってみる

城郭全体を作るのは大変なので、城郭の構成要素だけを作ってみます。

角馬出

雰囲気は出てるけれども、地表がどのくらいの斜面になってるかは全然わからないと思う。それから狭間が大きいのが目立ってるので修正したい。
斜面をわかりやすくするためにどうするかは少し調べてから検討します。

枡形門

これも雰囲気はわからなくはないが、垂直な石垣である「石垣ブロック」がまだ配置できなくて代わりに盛り土を使ったことによる違和感が大きい。枡形の内側は草地でなく土にしておくべきだったとも思いました。
それから、今は櫓門の入り口の幅が 4m で狭く感じるので、1グリッドぶん広くして 6m にするのが良さそう。ただ、櫓門の入り口を 6m にして他の高麗門と冠木門は 4m のままにするかは少し迷っているので、また後で考えます。

まとめと今後の予定

とりあえず建物を仮配置して雰囲気を確認しました。よいと思います。
そして、実際に城郭の編集をしてみて「操作中の補助線ほしい」とか「これは操作しづらい」とか思ったので、今後の開発で少しずつ修正していきます。
ただまぁ、課題はあるにせよやりたいことは実現できそうな感じなので大変よいです。がんばります。

月別アーカイブ

限定特典から探す

記事を検索