投稿記事

2023年 09月の記事 (14)

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

NPC をコーディングして領地経営するゲーム開発(ダンジョン探索の後衛の処理)

3人の NPC がダンジョン探索できる仕組みがあるのですが、前衛と後衛の概念がなくて遠距離武器の意味がないので「1,2番目が前衛、3番目は後衛」「後衛は遠距離武器でないと攻撃できない」とかのルールを追加していきます。

実装

遠距離武器を持った NPC が後衛になるようにする

「後衛は遠距離武器でないと相手を攻撃できない」を実装する前に、パーティメンバーの並び順を自動調整する機能を先に実装します。今は「冒険者ギルド」に入った順にパーティ編成されていますが、NPC の並びが前から「遠距離、近接、近接」になってしまうと3番目になってしまった近接装備の NPC が攻撃できないからです。
装備ごとに「攻撃できる距離」を定義して、それの順に並ぶようにします。

この並びの調整については、アイテムパラメータに "Ranged" という属性があるので、武器が Ranged のときに 1 を返し、それ以外のときに 0 を返すメソッドを Sort() に渡して List<Character> Members をソートして実現します。

Ranged でない後衛が攻撃できないようにする

「遠距離武器でないので相手を攻撃できません」とか表示できるように、攻撃できないメッセージを表示するための状態を追加しました。

そして後衛で遠距離武器でないときには この状態に遷移させるようにしました。よいです。

Melee が相手の後衛を攻撃できないようにする

これは、攻撃が命中するかの判定を繰り返す回数を前衛の最大数である2までになるように変更して実現しました。

よいです。

まとめと今後の予定

ここまでで遠距離武器のための処理を追加して動作するのを確認できました。大変よいです。
次回は引き続きワールド2用の機能を実装しつつ、各ステージをクリアできるようにしていきます。がんばります。

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

クラフトゲーム開発(物流システムの実装に着手)

ホームエリアでアイテムを運搬する物流システムを実装していきます。

物流システムで行うこと

探索エリアで素材を集めてきた自キャラが帰還ポイントわきのチェストに素材をまとめて格納すると、クラフトで必要になる素材を各 NPC が取りに来るあたりの実装です。

  • 運送クラスがどこに何を運ぶかを管理する。
    • NPC が運搬タスクを受け取る。
      • NPC が運搬を行う: 運搬元まで移動、運搬先に移動

くらいです。
先に NPC をゲーム内でどう管理するかを具体的に決めた方がいい気もしましたが、素材の運搬は必須タスクなので細かいことを考えずに必須要素を実装していきます。

実装すること

運搬タスクの管理

最終的には部屋において、そこにあるクラフト台が作れるものを部屋のチェストが要求した場合にはクラフトさせる仕組みにしますが、とりあえずはチェストごとに運搬タスクを管理する仕組みにします。

NPC の状態遷移

とりあえず Idle, Transport だけを実装します。

アイテム運搬

運搬の経路もとりあえず壁を考慮せずに目的地まで直線経路で移動すればいいことにします。経路探索とグリッドに沿った移動は後でやります。

実装したこと

NPC がチェストから別のチェストにアイテム運搬するまで実装したかったのですが、チェスト、部屋、運搬、フィールドとかのクラスを実装してたら作業量が多くなったので、実際に動くのは次回の記事でやります。

↓今回の作業で変更したファイルとか

まとめと今後の予定

今回はアイテムの運搬をどうするか考えて実装を開始しました。次回までには何かしら動くようにしたいです。がんばります。

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

ねこ巫女籠城ゲーム開発(タイトルシーンの仮作成)

「こういうタイトル画面どうかな」と思ってしまったので作ってみました。

どういうタイトルシーンにしようと思ったのか

襖絵とか掛け軸の水墨画で、逆光の中にキャラクターが武器を構えて立っているようなシーンです。

作ってみた

↓まずはキャラクターと建物を配置します。キャラクターは T ポーズのまま

↓背景を暗くした

↓Post Processing を適用して建物の描画を白黒にした

↓仮のタイトルとメニューボタンを配置したところ

作ってみた気付き

  • タイトル文字列が建物の描画に埋まってしまっている。
    • 縁取りだかタイトルロゴの背景を用意すればよさそう。
  • さすがに暗すぎる白黒で地味すぎる。
  • キャラクターの逆光感が少ない。
  • 城郭の威圧感が伝わってこない。

改善すればもう少しよくなる気がするのですが、作ろうと思って作った点はよいと思います。

まとめと今後の予定

本来の開発から脱線してタイトル画面を仮作成してみました。作り終えて「白黒じゃなくてカラーの方がいいのでは?」とも思いましたが、またいつか再開します。
次回からはゲーム部分の実装に戻ります。がんばります。

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

NPC をコーディングして領地経営するゲーム開発(ワールド2をクリアできるようにしていく)

このゲームではチュートリアルを兼ねたキャンペーンがあって、今は3つあるワールド(各ワールドに6つくらいのステージがある構成)のうち、体験版の範囲の1つ目のワールドまでが実装済みです。しばらくは、残った2つのワールドをとりあえず遊べるタスクに着手していきます。

ワールド2で実装すべきこと

ゲームとして面白さの調整は後にして、まずは各ステージをクリアできるようにしていきます。ワールド2のステージ構成と残りタスクを列挙すると、

  • 冒険者パーティ ... 探索のエフェクトとかが未着手。
  • 鍛冶屋の建築 ... 動作する。
  • 装備の作成 ... 動作する。剣と盾を1つの装備として扱う機能変更はまだ。
  • 後衛の雇用 ... 後衛は遠距離攻撃でないと攻撃が届かない、とかが未実装。
  • 鉱山の採掘 ... 動作する。

となっています。
未実装の内容は、NPC を選んでパーティを Lua スクリプトで編成して操作するのがめんどうで「冒険者ギルドの建物に集まった3人が自動で探索を始める」という仕様に変更した影響が大きいです。

実装すること

剣と盾を1つの装備として扱うように変更することと、後衛の処理だけ実装してしまいます。

剣と盾を1つの装備として扱う

両手持ちの武器に比べて、武器と防具を個別に管理すると面倒だったので、「鉄の剣」「鉄の盾」でなくて「鉄の剣と盾」にしようという案です。

↓修正したアイテム画像(画像が小さい)

↓剣を装備したら対応する盾も装備させるようにしたコード

↓そして、あとは色々調整して装備するようになりました。

動作するようになったので大変よいです。

後衛は遠距離攻撃でないと相手を攻撃できないようにする

ここまでの作業に思った以上に時間がかかったので、続きは次の記事にします。

まとめと今後の予定

剣と盾を1つのアイテムとして扱えるような修正をしました。この装備を外すときにプレイヤーにどう Lua スクリプトを記述してもらうかは、また後で考えて実装します。
次回は、ダンジョン探索時に後衛は遠距離武器でないと相手に攻撃できないあたりを実装します。がんばります。
!!!

1 2 3 »

月別アーカイブ

限定特典から探す

記事を検索