投稿記事

2023年 09月の記事 (14)

竹林ソフト 2023/09/29 20:00

NPC をコーディングして領地経営するゲーム開発(クラフトのオーダー修正の続き)

前回は UI の修正を行っていました。今回はその続きからです。

やったこと

UI の修正

Canvas の Render Mode を "Screen Space - Overlay" と "World Space" との2つに分けたら修正できたので、よいことにします。

↓修正前

↓修正後

Lua スクリプトでオーダーを操作できない不具合の修正

建物で何をクラフトするかは、さっき修正したオーダーの表示順と、そのオーダーにチェックが入っていて有効かどうかで決まります。
ただ現状では Lua スクリプトでオーダーを無効にする stopOrder() が動作してないのを修正します。

guild:stopOrder(Items.ArrowHeads)

確認したところ、なんというか、その「冒険者ギルドに『矢尻作らないでね』というスクリプト」になっていました。システムの不具合でなく、シナリオ側のスクリプトの不具合でした。

これ自体をシナリオ側のスクリプトの間違いで片付けるのはあれなので、こういう場合にはエラーがメッセージが表示されるようにしました。

結果的によい方向に修正できたので大変よいです。
それからオーダーが無効なときにチェックボックス UI が変わらなかったのも修正しました。

まとめと今後の予定

ここまでの修正で、ワールド2のステージ3「装備の作成」が終わりました。引き続き、ワールド2の残りステージ「後衛の雇用」「鉱山の採掘」が動くように調整していきます。がんばります。

竹林ソフト 2023/09/27 20:00

クラフトゲーム開発(NPC の経路探索と移動)

A* アルゴリズムによる経路探索と NPC の移動を実装しようと思ったのですが、まだ NPC の移動を遮る壁などが存在しないので、とりあえず A* なしで NPC の移動まわりを実装します。

実装したこと

NPC が移動するようにします。言い換えると時間をかけて位置を変えるあたりを実装します。

経路を返す

とりあえずは移動できない壁とか他 NPC との衝突とかは考えないので、NPC は4方向に移動できるものとして経路を返すあたりを実装します。

雑ぅ! この実装はいずれ A* アルゴリズムで経路探索する仕組みに置き換えるので、これでいいことにします。

時間をかけて移動させる

移動すべき経路を List<Vector2Int> で受け取っておき、それを元に移動させます。

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

実行結果

こんな感じです。

最初のチェストから木材を取って次のチェストに運搬しているのですが、各チェストの木材の有無が適切に処理されてるのも確認できて、大変よいです。

まとめと今後の予定

とりあえず NPC の運搬タスクを実装しました。大変よいです。
次は、セーブ・ロードを実装するか、もしくは必要そうな機能を検討して着手します。がんばります。

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

ねこ巫女籠城ゲーム開発(タイトル画面のメニュー項目の検討)

本当に最低限のゲーム機能が実装できてきたので、ここで「どういうゲームモードを提供するか」を決めて、タイトル画面のメニュー項目を検討して実装します。

ゲームシーンまでの遷移

タイトル画面から、ゲームが開始するまでの遷移を決めていきます。

(ゲーム開始直後の)タイトル画面

案としては

  • 続きから
  • 新規ゲーム
  • ロードゲーム
  • オプション
  • 終了

をメインメニューとして表示して

  • クレジット

のボタンは画面端に配置します。

オプション

操作、グラフィック品質、音量、言語を変更できるようにします。

新規ゲーム

提供したいと思ったものを書き出すと

  • ノーマルモード
  • エンドレスモード
  • クリエイティブモード

です。
チュートリアルをノーマルモード開始時の選択式にするのか、別モードとして提供するかとかの細かいことは検討中です。
それから、ゲーム開始する際のマップ選択や難易度設定も後で考えます。

実装したこと

そして、タイトル画面にボタンを配置したところまでの実装がこれです。

New Game や Options を押したときの処理は未実装ですが、何かしらの実装が進んだので大変よいです。

まとめと今後の予定

どういうメニュー構成にするか決めて、タイトル画面にそのボタンを配置しました。
次回は敵の侵攻経路の調整に着手します。がんばります。

竹林ソフト 2023/09/24 20:00

Unity Screen Navigator を使ってみる

私は Unity 開発については必要になったときだけ検索して調べるスタイルなので、新しい知識が入ってきません。(便利なアセットとかライブラリの情報とか)
なので機会があれば色々と試してみようということで、今回は、ミラティブでのアウトゲーム設計の紹介 の記事にあった Unity Screen Navigator を使ってみます。

やったこと

基本的には github の README_JA.md にまとまってるので、これに従って作業してみます。

↓README_JA を見ながら作ったコード

↓このコードの動作結果、ページが開かれて、次にモーダルが開いたのがわかる。

よさそう。

まとめと今後の予定

思ったよりも簡単に使えていい感じでした。もっといろんな機能を使おうとすると大変かもしれませんが、調べて試してを繰り返せばなんとかなりそうです。
次は MessagePipe か、購入したけど手つかずのアセットを試してみたいです。がんばります。

竹林ソフト 2023/09/22 20:00

NPC をコーディングして領地経営するゲーム開発(クラフトのオーダー処理の修正)

どのアイテムをクラフトするかの優先順位が動作していないので修正します。

やること

  • オーダーの有効と無効の切り替えが動作してないのを修正する。
  • オーダーの項目が多すぎると UI からはみ出るのを Scroll Area にする。

実装したこと

とりあえずオーダーの数が増えてもいいように Scroll View にしました。

↓Scroll View を適用した様子

よいです。
ただ、今の実装だと Scroll View ではスクロールする範囲のみを表示するために Mask を使っているのですが、詳細パネルもマスクされて表示されなくなっていたので修正しました。

↓詳細パネルがマスクされて一部しか表示されない問題の修正前と修正後

そしてこの実装で問題ないか確認していて、このオーダーで表示する項目が増えると戦闘表示のパネルまで重なったときに、マスクすべき項目が表示されるのに気付きました。戦闘表示のパネルでは背景を表示するときに「このマスク範囲のみマスクしない」という設定を使っているので。

↓ダンジョン探索のエリアにオーダーの内容が表示されてしまった様子

よくないですね…
で、ここまででやる気が尽きてしまったので、続きは次回にやります。

まとめと今後の予定

UI の作成や修正はとても苦手です。
次回はこの続きからやります。がんばります。

« 1 2 3

月別アーカイブ

限定特典から探す

記事を検索