投稿記事

籠城ゲームの記事 (97)

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

ねこ巫女籠城ゲーム開発(石垣を積み上げたときの見た目を用意する)

石垣まわりの続きです。
今回は「石垣が N 個ほど積まれている」ときの描画まわりを実装します。

やったこと

本来は「高い石垣の裾は大きくする」とかやりたいのですが、とりあえず指定された高さまで引き伸ばして表示するようにします。何も出来ないよりは雑でいいので何か成果を出すようにします。

石垣の見た目だけ高くなるようにする

後回しにできる処理はメソッドだけ定義して未実装なままなのですが、とりあえず見た目の処理だけ実装しました。
いろんな種類の石垣が配置するセーブデータを読み込んで動作を確認した結果がこれ↓です。

奥側の石垣の高さが2になっています。よいです。
あと、ゲーム中でセーブしたデータをロードして、石垣専用のパラメータが適切に保持されたのも確認しました。よいです。

そのうちやること

石垣の処理を実装しながら「後でやる」と思ったことを列挙します。

  • 高さが N の石垣の建築の進み具合が 50% のときは、高さが N の石垣として敵が登ってくるようにする。
  • 石垣を少しずつ建築するのなら、石垣は高さごとにスライスした見た目を用意するとよさそう。(継ぎ目が目立たないといいなぁ)
  • 「裾のある石垣は内側が地面にならなければならない」というルールにして、地面の高さを強○的にその高さにするのがよさそう。(操作しやすいかは後で考える)

石垣は、なんというか思ってた以上に小難しいです。

まとめと今後の予定

石垣の処理をいろいろ考えて、高さに応じた見た目にするあたりを実装しました。よいです。

石垣については、ここから

  • (裾のある)石垣の上に石垣ブロックが配置できるようにする。
  • 石垣や石垣の上に建物や壁が配置できるようにする。
  • 石垣をユーザ操作で建築できるようにしていく。

というタスクがあるのですが、また次回にやります。
心がしんどいタスクが増えると着手しづらいのですが、今回のように少しでいいので開発していきたいと思います。がんばります。

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

ねこ巫女籠城ゲーム開発(石垣の建築まわりを実装していく)

石垣の建築まわりを実装というか作り直していきます。

やったこと

石垣の種類を変更する

今までは石垣の形状と高さごとに個別の建物として扱っていましたが、高さはパラメータ化する仕様に変更したので石垣の種類を以下のように定義し直しました。

IshigakiBlock,
IshigakiBlockTriangle,

Ishigaki,
IshigakiCorner,

よいです。

既存の実装を修正する

データのフォーマットを変更して、エラーになった箇所をコメントアウトしていきます。
まず、保存する石垣の値を保持するクラスは以下のものに変更しました。

他の建物に比べると、石垣の位置と 1m の高さをいくつ積み上げたかの値を保持するようにしました。よいです。

そして、石垣のパラメータと石垣を建築するボタンの配置も修正したら実行したときのエラーはなくなりました。よいです。

建築するときに表示する石垣モデルを用意する

(裾のある)石垣の角のモデルと斜め用の石垣ブロックのモデルが必要になったので MagicaVoxel で作成しました。

よいです。

セーブデータに記述した石垣データが適切に処理されるようにする

プレイヤーが石垣を配置する操作まわりに着手してもいいのですが、セーブデータにエディタで石垣の配置を追加して、それを読み込ませて表示するあたりに着手します。セーブデータは YAML フォーマットにしているので編集が楽です。

↓ 種類や向きを変えて石垣が配置されているデータを読み込んだ様子

何も表示されていませんが、エラーなく実行できたのでよいです。
そして、もろもろ修正して表示されるようにしたのがこれ↓です。

よいです。
そして、次は石垣が N 個だけ積まれたときのデータの表示や、石垣の上に石垣ブロックがあるときの表示を確認しようと思ったのですが、このあたりの実装は割と小難しいのでまた次回にします。

まとめと今後の予定

石垣まわりの修正に着手しました。大変よいです。

次回は石垣を積み上げた表示、石垣の上に石垣ブロックがある表示、それらの上に建物がや壁があるときの表示なんかに着手します。
それらが終わってからプレイヤーの石垣の配置まわりの修正になるので、まだまだ先は長いですね。がんばります。

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

ねこ巫女籠城ゲーム開発(石垣の建築まわりを修正していく)

石垣についての修正はとても気が重いのですが、少しずつでも開発していきます。

やること

石垣を建築する操作について考えて書き出します。

石垣の定義

まず裾のある石垣、つまり内側と外側のある石垣を単に「石垣」と呼びます。この石垣はそれなりに高く積めるようにします。

そして、垂直な石垣を「石垣ブロック」と呼びます。石垣ブロックは 4m 相当までしか積めないという制限を持たせます。ただ、石垣ブロックは石垣の上にも積めるようにします。そういう城郭を表現したいからです。

↓ 石垣ブロック、色が白色なので石垣っぽくない

石垣を配置する操作

操作を書き出します。

  • 建築パネルから石垣ボタンを押す。
  • R キーで 45 deg ずつ回転できる。
  • 左クリックで平坦な地面の上に配置できる。
  • 配置済みの石垣上面の中央にカーソルをあわせて左クリックすると、石垣の高さが +1 m される。
    • 右長押し(削除)で石垣の長さを -1m できる。
  • 配置済みの石垣の上面の端(内側でも外側でもない側)をクリックすると、そこから直線を引く操作で石垣を配置できる。
    • ただし、石垣の接続がおかしくなる場所には配置できない。
    • このとき作られる石垣の高さはクリック元の石垣の高さと同じになる。

くらいです。
Factorio の線路を配置する操作を参考にしています。

石垣ブロックを配置する操作

石垣ブロックは回転操作がなくて、接続の制限がない以外は石垣ブロックと同様の操作です。

操作の懸念点

斜め方向の石垣のパーツを用意して適切に処理するのがめんどうです。また、この斜めの石垣の縁に土塀を配置したいわけですが、これも大変めんどうそうです。悩ましいですね。

そして操作とは直接関係ないのですが、石垣や壁が斜めに配置できるのであれば、建物も斜めに配置できるようにすべきかを悩んでいます。斜めの石垣の上に斜めの多門櫓を配置するとか。
またいつか考えます。

やったこと

まず、1m 高さの石垣パーツを MagicaVoxel で作成しました。
石垣と石垣ブロックとの違いが見てわかるように、石垣ブロックでない方は上面の内側に土の色を配置しています。よいです。

↓ 作成した石垣と石垣ブロック

正直「これは内側が土になってるんです」と主張するのには勇気がいる出来栄えですが、未来の私がなんとかしてくれると信じます。
現状の見た目は好みではないですが、作業は進んだので大変よいです。

あとは、現状の石垣についての実装を削除して新しいものに置き換えるあたりですが、これは次回の作業に回します。
次回までに脳内で石垣を配置する操作をもう少し行っておきたいのもあります。

まとめと今後の予定

懸案だった石垣を配置する操作を考えて仮決定しました。大変よいです。

そして、もう少し脳内で建築シミュレートしてから石垣の配置、高さの変更、直線を引く操作での配置と順に実装していこうと思います。がんばります。

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

ねこ巫女籠城ゲーム開発(石垣を建築する操作を考える)

石垣の仕様を変更したので UI 操作を修正していく、予定でしたが仕様がまとめきれなかったのでここまでの考えを書き出してみます。

石垣を建築するときの操作

やりたいことは「石垣の建築指示を違和感なく行えるようにしたい」で、いろいろと考えて今の「こういう仕様にする」を書き出してみます。

  • 裾のある石垣と石垣ブロックとを分ける。
    • 裾のある石垣には内側と外側の概念があって、内側は地面になるのを想定している。
    • 裾のある石垣と石垣ブロックでは建築するときに押すボタンが異なっている。
  • 平坦な地面の上に裾のある石垣や石垣ブロックを配置できる。
  • 裾のある石垣はオートタイルのように隣り合う裾のある石垣との接続状況で見た目がかわる。
  • 石垣ブロックを積める個数には上限をもたせる。
  • 裾のある石垣の上に石垣ブロックを配置できる。
  • 裾のある石垣を高くする指示は、裾のある石垣の上に裾のある石垣を追加で配置する。
    • 低くする指示は、削除を行う。
  • Factorio の線路みたいに配置済みの石垣から高さを保持して伸ばすような建築が行える。

今は高さ方向の分解能が 0.5 m なので、石垣を 2m の高さにするには4回クリックする必要がありますが、高さのある石垣を1つ作ったら、Factorio の線路を延ばすのと同じ操作でそこから同じ高さの石垣を伸ばせるようにしたいと思っています。

このあたりについては、もう少し脳内で操作をシミュレートしてから着手します。

まとめと今後の予定

石垣を建築指示するときの操作案を考え中です。
この石垣の指示まわりが終わったら、建築については折り返しな気分なので検討して実装していきたいです。がんばります。

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

ねこ巫女籠城ゲーム開発(Physics Character Controller の調整)

キャラクターの操作に使ってる Physics Character Controller アセットの設定を見直します。

やること

このアセットを使っていておかしいと思っているのは

  • 地面から橋に移動するときに走らないと乗り越えられない。
  • 壁に向かって走ると瞬間的に地面にめり込む。

です。

やったこと

地面と建物の切り替わり位置で移動できなくなる理由を調べた

結論から書くと、Physics Character Controller アセットの移動まわりを管理している Character Manager の Friction Against Floor をゼロの近づけると改善しました。

全然わかってないのですが、異なる Collider まわりで床との摩擦係数が大きい値になってしまって、歩くときの力では動き始められなかったけど、走るときの力では動いた、ということのようです。
ちゃんと理解できてないことは説明できてる気がしないですね。

思った通りに動作するようになったので、よいことにします。

壁に向かって走るとキャラが瞬間的に地面にめり込む

確認したところ、Physics Character Controller アセットのアニメーションが Ladder になったときに動作がおかしくなっていました。

どうも、今のコライダーのレイヤー設定だと壁に正面からぶつかったときに壁がハシゴとして扱われてしまうようです。そして未登録のハシゴアニメーションを再生しようとして見た目がおかしくなっていました。

今のところハシゴを使う予定はないので、このあたりは無効にして対処しました。
よいです。

まとめと今後の予定

キャラクター操作において、違和感がある動作の原因を調べて対処しました。よいです。
次回は、セーブしてロードすると建物の高さ位置が異なってしまう問題に対処しようと思います。

↓ 石垣ブロックが上に、橋が下にずれている様子

このあたりが修正できたら、石垣の処理の作り直しや建物の見た目の作成に着手しようと思います。がんばります。

4 5 6 7 8 9 10

月別アーカイブ

限定特典から探す

記事を検索