投稿記事

籠城ゲームの記事 (97)

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

ねこ巫女籠城ゲーム開発(どういうゲームにするかの検討)

開発が少し進んだので、最終的にどういうゲームにしたいかを書いて確認します。

やりたいこと

ゲームプレイの「築城」「防衛」については実装していて、どういうプレイにするかはイメージできてきました。ただ、防衛が始まるきっかけとか、敵はどう配置されるのかとか、プレイヤーはどうプレイしてどういう体験をするのか、などを決めていません。今回は、これら決めていきます。

ゲーム開始前

ゲームのモードである「チュートリアル」「フリープレイ」「サンドボックス」を選択し、各種パラメータを変更し、ランダム生成されたフィールドを選んでからゲーム開始します。

設定できるパラメータ
- フィールドの広さ: 256x256, 512x512, 1024x1024, 2048x2048
- 地形タイプ: 山, 川, 平地
- 敵の増え方: ゆっくり <-> はやい(5段階)
- 資源の入手量: 多い <-> 少ない(5段階)

序盤

ゲーム開始後は

  • 拠点の位置を指定してもらう。
  • ヘルプパネルの表示

の後に、自由にプレイできるようになります。
序盤にできることは

  • 城郭の縄張りの建築指示
  • 拠点で資源を補給して、移動してビルダーユニットに建築させる
  • 夜ごとに攻めてくる少数の敵に対処する。

を想定しています。
序盤に限りませんが、建築資源がなくなった際にできることは

  • 敵の出現位置を探してまわる。
  • 拠点で修行したということにして経験値を得る。
  • 拠点の資材置き場を整理したということにして追加の資源を得る。
    • フィールドにランダムに資源が落ちてて入手できてもいいかも。

を考えています。

中盤

電力網(霊力網)

Factorio の電力網に相当する仕組みを検討していて、大型電柱に相当する地蔵、変電所に相当する祠のようなものを考えてます。タレットや物見櫓や狼煙台といった稼働する建物には拠点との電力接続が必要なようにします。

電力網があることでタレット数の上限を規定できるほか、「電力網が断たれたので出城が機能しなくなった」的な演出ができればと思っています。

また、電力網での給電は、電力網の上を何かが移動していくような感じにして即座の給電にはならないようにしたいです。

索敵

基本的にフィールドはフォグに覆われていて、操作キャラや物見櫓の周囲だけリアルタイムに描画が更新されるようにします。

また、狼煙台というものを用意します。これは周囲のリアルタイム描画をしない代わりに、敵と活性化した巣を数秒おきに検出してフィールドにマーカー表示するレーダーのような動作をさせようと思います。

フィールドにマーカー表示せずに狼煙を上げるだけの動作をしてもいいのですが、さすがに狼煙だけだと意味がわからなそうです。

敵について

夜ごとに複数ある敵の巣(出現位置)からの少数の敵を撃退するほか、まとまった範囲の敵の巣が活性化して、定期的に大軍が攻めてくるようにします。

敵の行動は、

  • 敵が巣から出てくる
  • まとまった数になったら進軍してくる
  • 攻撃対象が近くなったら走って突撃してくる
  • 数が減ったら撤退し始める

という風にします。
敵がまとまるまで行軍を開始しないようにすることで、狼煙台があれば敵の位置を検出して対処できるようにしたいと思っています。

終盤

敵を倒すことで「知識ポイント」が入手できるようにして、それで敵についての何かの研究が進んだらゲームをクリアできるようにします。

ゲームクリア後もだらだらプレイできるようにしたいのですが、城郭の防衛能力を知るためにも負けるくらい大量の敵が押し寄せてほしさもあります。このあたりは考え中です。

やったこと

ゲームの新規開始まわりの実装

ここまでの仕様を書き出す過程でゲームの新規開始からゲームの終了条件なんかを監視する「管理スクリプト」まわりをどうするかも決めたので実装に着手します。

とりあえずゲームの新規開始で想定しているのは「チュートリアル」「フリープレイ」「サンドボックス」です。このうち、チュートリアルは複数のステージで構成します。

これらのプレイのために決めたファイル構成としては

  • 1つのフォルダに必要なファイルを格納する。
    • ステージ構成を記述したファイル
    • 地形やパラメータを含んだステージデータ x ステージ数
    • ゲーム進行を管理する Lua スクリプト x ステージ数
    • 多言語対応用のファイル(あれば)

です。
とりあえず着手した内容としては、ステージ構成を記述したファイルを読み込めるようにしました。

↓ チュートリアル用の stages.yaml ファイル

あとは、とりあえずボタンを作成して配置しました。

よいです。
ボタンが押されたときのステージ選択や実際に新規ゲームを開始するあたりの実装は、また後で行います。

まとめと今後の予定

考えてなかった敵の出現について仕様を考えました。ゲームが具体化したので大変よいです。

次回は、ビルダー実装の続きか雑多なタスクに着手していこうと思います。がんばります。

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

ねこ巫女籠城ゲーム開発(敵を配置してみる)

敵軍がわらわらと城郭に押し寄せるようにしたくて、今回は敵を多めに配置してみて「見た感じ」を確認します。

やったこと

敵をたくさん配置してみる

とりあえず 200体の敵を配置してみます。

↓ 2m 格子グリッドごとに1体を配置しつつ位置と向きを乱数で個別にずらしたもの

配置間隔については、もう少し密に配置した方が良い気もしますが、現状でもそこまで違和感がないと思いました。このゲームではグリッド間隔が 2m ごとなので、この描画で違和感が少なければこれでいこうと思います。

次に、敵の数を増やしてみます。

↓ 敵の数を 40x25 の 1,000 体にしたもの

まず「大軍だな」と思えるのはよいです。ただ、初期位置は個々にずらしているのですが、ずらす量が少なくて「格子状に配置されてるんだな」というのが見てわかります。

敵をグリッドへの初期配置する際に乱数でずらす量は、もう少し多くてもよさそうです。

敵の移動についての検討

敵の移動については Boids アルゴリズムを意識しつつ移動方向は地面に定義してしまおうと思っていて、

  • グリッドごとに「この上にいるユニットはこっちに移動しろ」という8方向の移動ベクトルを定義して適用する。
  • 同じグリッドにいる敵とは離れようとする。
    • 隣接グリッドの敵の数に応じてその方向から斥力を受ける。

くらいでなんとかならんかな、と思っています。
この処理だと崖上の折れ曲がった細い道だと敵が滑落しそうですが、敵はスケルトンなのである程度は落ちてもいいかな、とも思っています。

移動経路を与えて移動させたときに、実際にどんな風に見えるかは次回以降に実装して確認します。

まとめと今後の予定

敵を 1,000 体ほど配置すると大軍に思えるのが確認できました。よいです。
次回は、この続きで敵を移動させてみてどう見えるかの確認か、建築ワーカーまわりに着手しようと思います。がんばります。

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

ねこ巫女籠城ゲーム開発(ビルダーに地面の高さを変更させる)

操作キャラから出てくるビルダーが地面の高低差を変更するあたりを実装していきます。

やったこと

ビルダーに地面の高低差を変更させる

細かいことは後回しにして、とりあえず実装しました。

↓ ビルダーが移動して地面の高さを変更していく様子

気付きとしては

  • 運搬している資材があるときは、アイコンでいいので描画した方がいい。
    • 描画しないと何をしているかわからない。
  • 建築し終えたビルダーは、他に建築すべき場所があるときはそこに移動してほしい。
    • 操作キャラに戻らずに次の場所に移動してほしい。
  • 建築して高低差が変更されても、変更された高さが低くてわかりにくい。
  • 斜面上の操作キャラやワーカーが浮いて見える。

とかでしょうか。
建築中のビルダーが、それっぽくアニメーションするのも必要そうに思いました。
とはいえ、懸案だったビルダーによる高低差の変更タスクに着手できて大変よいです。

ビルダーの修正案について

動かしてみて「わらわら感がないな」と思いました。なんかこう複数のビルダーが蜘蛛の子を散らすように広がって各所で作業してほしいです。なので

  • ビルダーの生成間隔を短くする。
  • ビルダーが既に割り振られている場所の優先度を下げる。

とかを実装したいです。

後は作業後のビルダーを削除するとか、ビルダーのアニメーションを再生するとか、運搬中の資材を描画するとかの未実装の内容にも着手して動作を確認したいです。

まとめと今後の予定

ビルダーが地面の高低差を変更するあたりを実装しました。とりあえずの実装ですが、動作して大変よいです。

次回はこの続きか、敵の軍勢の描画テストをしようと思います。がんばります。

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

ねこ巫女籠城ゲーム開発(建築ワーカー実装の続き)

建築ワーカー実装の続きをやっていきます。

やったこと

建築ワーカーを生成して目的地まで移動して作業させる

Bad Bots というアセットをワーカーやタレットとして使おうと思っていたので利用します。テクスチャを木目に変えたらカラクリっぽくならないかなと思っています。

↓ Bad Bots のモデルの大きさを調整して並べた様子

まずは操作キャラが移動してなくて近くに建築対象があるときに、ワーカーが生成されて目的地に移動するあたりを実装します。

すぐ上の行で「実装します」と書きましたが、経路判定からなんやらで実装のために修正したコードが多くて大変でした。

↓ ビルダーが移動して建築予定地に移動して、建築し追えたら戻って来る様子

アニメーションすらしてないし、いろいろと修正したい気持ちはありますが動作したので大変よいです。
操作キャラがビルダーから離れ過ぎたらビルダーの作業を中断して戻るとか、ビルダーが適切な資源を運び込むようにするとかは未実装ですが、おいおいやります。

まとめと今後の予定

ビルダーを生成して、最寄りの建物の建築作業を行うあたりを実装しました。未実装の箇所もありますが、とりあえず動作して大変よいです。

今回は建物に対するビルダーの作業でしたが、地面への掘削、盛り土のあたりも同様にビルダーに作業させたいと思います。

次回は地面に対してビルダーが作業するようにするあたりか、敵の移動について仕様を決めて実装していきたいと思います。がんばります。

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

ねこ巫女籠城ゲーム開発(敵の火縄銃モーションを作る)

敵として利用するアセットを購入したのですが、火縄銃での攻撃モーションを持ってなさそうなので作成していきます。

やったこと

スケルトンモデルの購入

このゲームでは操作キャラに VRoid Studio で作ったものを利用するので、敵はあまりリアルすぎないものを探して購入しました。

↓ 購入した Skeleton Warrior アセット(両手斧と弓キャラとを購入した)
https://assetstore.unity.com/packages/3d/characters/humanoids/fantasy/skeleton-warrior-with-two-handed-axe-tier2-193492

↓ 購入したアセットと操作キャラを並べてみた様子

リアルすぎないものを選んだのですが、Toon な VRoid Studio と並べると違和感が大きいのがわかりました。で、さすがに違和感が大きかったので lilToon を適用しました。

↓ 敵キャラに lilToon を適用して笠をかぶせたりしたもの

ましになりました。よいです。
これ以上の調整はまたいつかやろうと想います。

アニメーションの generic から humanoid への変換

火縄銃での攻撃モーションを作るにあたって、なにかのアニメーションをベースに上半身のポーズだけ変える、とかやりたいのですが提供されてるアニメーションが generic だったので humanoid に変換しました。

変換には Animation Converter を購入して利用しました。Blender の .fbx 形式として出力してからインポートし直す方法もあるようですですが、今回はお金で解決しました。

↓ .fbx として出力してインポートする方法の紹介記事
https://www.hanachiru-blog.com/entry/2020/02/18/120000

AnimConverter を使う手順としては、README に従って作業したら完了しました。

↓ AnimConverter のウィンドウ

ただ、変換時の設定を Loseless にしていたら、あるアニメーションのサイズが 10 MB を超えたりしたので Lossy に変更しました。そうすることで 3 KB くらいになりました。

後は、移動しないアニメーションに Root Motion が有効になるように設定したりしました。

↓ Root Motion についての説明の記事
https://light11.hatenadiary.com/entry/2019/04/18/003100

よいです。

UModeler Pro でのモーション作成

後は火縄銃のモデルを持たせて発射時のポーズを1つ作ってみました。

↓ 作ってみたポーズ

作ってみて、スケルトンが撃つにしては発射時の姿勢がよすぎて違和感があるので後でまた修正します。
なんかこう、中腰で歩きながら腰だめで火縄銃を撃つようなイメージがあります。

ともあれ、ここまでの作業でモーションが作れそうなのが確認できたのは大変よいです。

まとめと今後の予定

敵アセットを購入してモーションを1つ作ってみました。よいです。

次回は、建築ワーカーの実装の続きや、城郭の縄張り操作の修正に着手したいです。がんばります。

1 2 3 4 5 6 7

月別アーカイブ

限定特典から探す

記事を検索