投稿記事

籠城ゲームの記事 (97)

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

ねこ巫女籠城ゲーム開発(セーブデータから石垣配置を読み込んで表示できるようにする)

石垣まわりについて、API の修正は行ったので実際に動作するようにしていきます。

やったこと

セーブデータを読み込んで石垣が適切に表示されるようにする

まずは過去に石垣を描画する評価に使ったセーブデータを読み込んでエラーにならないようにセーブデータを変更しました。

↓ エラーが無くなったときの表示

そして、この状態で保存してみたら石垣情報が保持されないままのセーブデータになってしまったので修正しました。修正したところ、高さ1つぶんの石垣も描画されるようになりました。悪くはないです。

↓ 修正後

石垣の高さが考慮されるようにする

ここまでで(裾のある)石垣と石垣ブロックのデータが適切に読み込めたので、この値を用いて石垣の上の建物について、その描画位置を適切にします。

↓ とりあえず調整したときの様子

石垣の上にある建物(白いキューブ)や木柵の位置が変わったのがわかります。
建物が石垣に埋まったり、石垣から浮かんだりしてるのは石垣の高さを反映させたらそれっぽくなると思いたいです。

次回は、このあたりから再開します。

まとめと今後の予定

何日か着手できない日々が続いていましたが、再開できたので大変よいです。
次回も石垣についてセーブデータを読み込んで適切に描画するあたりを実装していきます。がんばります。

竹林ソフト 2024/04/04 20:00

ねこ巫女籠城ゲーム開発(石垣まわりの修正の続き)

石垣まわりの仕様変更に伴う修正をしていきます。
私が実装しないと完成しないので。

やったこと

石垣まわりの作り直し

今回は「こうしたいんだよなぁ」という感じにクラスのメソッドを変更して、それに伴うコンパイルエラーを修正しました。

↓ 修正したファイル

よいです。
次はいろんな石垣を配置したセーブデータを読み込んで表示できるように調整するあたりです。

タイトルのシーンを修正

雑多な修正として、いろいろ変更してもろもろ動作しなくなっていたので修正しました。

↓ 修正前

↓ 修正後

フォント変更に伴って参照が外れてボタンに文字が表示されなかったのと、建物がカメラに表示されなくなっていたのを修正しました。よいです。

そして改めて見直してみて、高麗門を高くなるように修正をしたせいか違和感を感じたので石垣と土塀の位置を少し高くしてみました。

↓ 石垣と土塀の位置を高くしてみた

これはこれで違和感があるんですけど、建物モデルを作り直した後に再調整しようと思います。

まとめと今後の予定

気が重い作業である石垣まわりの修正に着手できたので大変よいです。
今後も、石垣まわりの修正と雑多なタスクとに着手していこうと思います。がんばります。

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

ねこ巫女籠城ゲーム開発(石垣を建物とは区別する実装に修正する)

前回の記事で石垣の実装をどうするかの仕様を確認しました。今回はその仕様にするための修正をやっていきます。

やりたいこと

具体的には建築モードの際に「建築済み」「建築予定(半透明)」「撤去予定(赤っぽい半透明)」の3種類の描画になるようにしようと思ってコードの修正を始めたのですが、現状の「石垣は特別な建物」という扱いでは私が理解しきれなくなってきたので、そのあたりから修正します。

建築については、フィールドのグリッドごとに下から

  • 地面
  • 石垣
  • 建物

の3つを分けて管理するようにします。今までの「石垣はその上に建物を配置できる建物で、(裾のある)石垣と石垣ブロックとの組み合わせで構成される」という要素も絡んできて複雑すぎになってました。

やったこと

既存の実装を壊して変更する作業なので、目に見える報告をしづらいのですが、
とりあえずエラーを気にせずコードを修正しています。

よいです。

まとめと今後の予定

問題を解決するための修正に着手したのはよいです。
それはそれとして、慢性的な倦怠感のせいか趣味ゲー開発に着手しづらくなっています。なやましいですね。

とりあえず、開発進捗は少なくてもいいので何かに着手して記事にすることは続けていこうと思います。がんばります。

竹林ソフト 2024/03/25 20:00

ねこ巫女籠城ゲーム開発(雑多な修正と石垣建築の続き)

石垣まわりの操作の実装が小難しくて手こずっていますが、着手して進めていきます。こまめに着手して進めて「次はこれに着手しないとなぁ」を更新していきたいです。
あとは、雑多な修正もやっていきます。

やったこと

ボタンのキー割当の表示について


現状ではボタンの左上に、キーショートカットがすごく小さく表示されています。
これについては
  • もうすこし大きく表示する。
  • UI 画像を決めて適用する。
  • 非表示にするオプションを追加する。

とか考えていますが、とりあえず大きくしました。

とりあえず文字が読めるようになりました。よいです。
ただ、このままサブのボタンを表示すると描画が重なってしまうのがわかりました。むつかしいですね。

いずれ、これら下から2段目のボタンを表示しているときにはメインのキー割当て表示を隠すようにしようと思います。そのうちやります。

見下ろしカメラの位置が保存されないのを修正する

調べたところ、ロード時に保存した値を適用した後に別の処理で値が上書きされていました。WASD でのカメラ視点と、TPS 操作時のカメラが異なっているあたりが関係していました。

そう思って修正していたら、そもそも保存すべき値も違っていました。
↓ 座標系の y と z を間違えていたコード

恥ずかしい…

こういう不具合は、私の心が折れそうになるのでやめてほしいと思いました。このコードを書いたのも私ですが。
ともあれ、動作が修正できたのは大変よいです。

石垣まわりの仕様

さて、本題の石垣まわりの修正をしていきます。
現状において未実装なのは

  • 石垣の高さを下げる操作まわり
  • 建築済みの石垣と建築予定の石垣の高さをわかるように描画するあたり
  • 石垣の端をクリックして直線を引く操作で石垣を配置するあたり

です。
そして、今からどういう修正を行うかですが着手前に言語化してみると

  • 建築モードの描画において、石垣は特別な処理が必要になる。
  • 建築予定の半透明の石垣の描画と建築済みの不透明での石垣の描画の2つを重ね合わせて行う。
  • 建築済みの石垣は、Raycast の対象にならないようにする。
  • 建築予定の建物については、削除予定の半透明の描画と建築予定の半透明の描画の2つが区別がつくように描画する。
    • 削除予定の半透明の描画の方は Raycast の対象にならないようにする。

でしょうか。
少しずつ実装していきます。追記すると

  • 建築モードを抜けるときには、建築予定の描画は非表示にして建築済みの表示にする。
  • 建築済みの表示の方の Raycast を有効にする。

です。

建築モードの石垣の描画を修正していく

とりあえず、石垣を建築したときに半透明と不透明の両方を描画するあたりに着手します。

↓ 建築モードのときには特別な処理をするためのコード

とりあえず着手しただけですが、着手前より進みました。よいです。

まとめと今後の予定

雑多なタスクに着手して、石垣についてどう実装する必要があるかをまとめました。
どうすべきか確認できて、漠然とした「めんどいな」が「~をする必要があるけどめんどいな」にランクアップしたので大変よいです。

次回も雑多なタスクに着手したり、石垣の実装を進めようと思います。がんばります。

竹林ソフト 2024/03/18 20:00

ねこ巫女籠城ゲーム開発(お城アセットの購入と調整)

今回は Japanese Modular Castle アセットを購入して HDRP から Built-in に変更しました。

やったこと

城郭アセットの購入

とくに理由もなく、気になっていた Japanese Modular Castle アセットを購入しました。このアセットは $98.99 なので、昨今の為替レートで買うのは少し勇気が必要でした。

そして買ってから気付いたのですが、このアセットは HDRP のみ対応だったので、買った直後は全体がピンク色の表示になっていました。Unity あるあるです。

Unity では描画において Built-in, SRP, HDRP があって、HDRP はリアル寄りの表現がしたい場合によく使われているそうです。
ただ、この ねこ巫女籠城ゲーム開発では、

  • VRoid Stduio モデルを描画するのは Built-in が楽。
  • Terrain と草木の描画に使っている The Illustrated Nature アセットが Built-in 対応のみ。

と、使っているアセットの関係で Built-in で開発しています。私の Unity パワーが不足していて「これは Built-in 対応らしいけど URP にして使うか」とかはできていません。

城郭アセットを Built-in で使う

なので、購入した HDRP 対応アセットを Built-in で使えるように調整します。
「アセットの作者は HDRP で綺麗に描画してほしいんだろうな」と思うと少し心が痛みますが、必要なので変更します。

やったことは「Materials にある各マテリアルの Shader をとりあえず Standard にして、名前に対応するテクスチャを登録し直した」です。

↓ Materials フォルダ

↓ Standard Shader を変更している様子

具体的には、マテリアルが M_Fish の場合は Standard Shader の Albedo を T_Fish に変更して、Normal Map を T_Fish_N に設定しました。

あと、設定してないファイルに T_Fish_M があるのですが、これはマスクファイルで、Unity の マスクマップとディテールマップ のページによると、メタリック、オクルージョン、ディティールマスク、スムースネスを色の各チャンネルに格納したもののようです。なるほど?

本来の表現によせるには、このファイルを分けてそれぞれを登録すればよさそうです。
ただ、ここまででピンク色でないモデル描画ができたので、マスクマップを登録するのはまたいつかやります。

↓ 描画できた様子

まとめと今後の予定

なんかこう、突発的にモデルのアセットを購入したので、プロジェクトに取り込んで描画してみました。

今更ですが、城郭の描画にこのリアル寄りのアセットを使うとすると「あれ? 神社や町の建物もリアル寄りにすべきなんじゃないの?」という気がしてきて本当に悩ましいです。私はモデル作成は得意ではないので。

あとは、私のゲームで使いやすいようにモデルをもっと細かいパーツにする必要もあります。

なので引き続き Magica Voxel でモデルを自作しながら開発して、余力があれば見た目を変更できる機能で選べるものとして、このモデルを使えるようにしたいと思います。がんばります。

2 3 4 5 6 7 8

月別アーカイブ

限定特典から探す

記事を検索