投稿記事

2023年 02月の記事 (9)

竹林ソフト 2023/02/28 20:00

キャラクター操作を Physics Based Character Controller で実装する

日本の城郭を築城してねこ巫女で防衛する「ねこ巫女ディフェンダーズ」の開発記録です。

キャラクター操作用のアセットを試してみる

今回は Physics Based Character Controller を使います。多分、なにかのバンドルに含まれていたものだと思います。
https://assetstore.unity.com/packages/tools/physics/physics-based-character-controller-203438

巫女モデルの適用

用意されている prefab のモデルを巫女モデルで置き換えます。キャラクターを移動させても棒立ちアニメーションのままですが、見た目の調整はまたいつかやります。

動いていた Prefab のモデルを入れ替えただけなので、この時点で WASD や XBox コントローラで動作します。大変よいです。

TPS, FPS の切り替えの調整

多くのキャラクター操作アセットがそうなのですが、この Physics Based Character Controller にも TPS, FPS の切り替え機能があります。ゲーム中は基本的には TPS で操作して、火縄銃なんかで遠距離攻撃をするときには FPS に切り替えたいので、この機能は有効にしたままにします。

まとめと今後の予定

とりあえず動作したのでオッケーです。
以下のやり残した項目は、また後日に行います。

  • アニメーションを適切にする。(今は Idle モーションのまま移動する)

Unity あまり詳しくないので試しながら学んでいきます。がんばります。

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

インベントリまわりの開発に着手する

「クラフト&サバイバル&拠点防衛」なゲームを開発していきます。
今回はインベントリまわりに着手します。 TopDown Engine にもインベントリのシステムは用意されているのですが、好みと合わなかったので今回は使いません。

インベントリ処理の開発に着手する

TopDown Engine のアイテム管理について理解が不足しているので、少しずつ実装していきます。とりあえずの方針としては

・TopDown Engine の Inventory に入ったアイテムを自作 UI で操作できるようにする
・ゲーム中も表示し続けるスロットを用意する(数字キーが割り振ってあるやつ)

です。
確認したところ、TopDown Engine が操作キャラの拾ったアイテムを管理している箇所まではわかりました。

次に、何も考えずに UI を仮作成します。

↓アイテム表示枠を作ったところ

そして、アイテムを表示しているあたりまで実装したかったのですが、今回はここまでにします。
アイテムの描画とドラッグして移動できるようにするあたりは、また次回に着手します。
こう、強い信念とかはないので「自作するより、DropDown Engine 付属の Inventory システムをもっと使えばよかったのでは?」という雑念と闘いながら開発しています。

まとめと今後の予定

とりあえず開発に着手したので、よいです。
アイテムの管理もですが、クラフトをどうするかもそろそろ考えていこうと思います。がんばります。

竹林ソフト 2023/02/21 20:00

フィールドに操作キャラを配置する

築城して巫女さんを操作して城郭に籠城するゲームを開発しています。今回はフィールドに操作キャラを配置するあたりです。

操作キャラの役割

とりあえず、以前に用意した VRoid Studio 製の巫女モデルを配置してみました。

↓屋敷にする予定の建物の上に乗ってしまっている様子

このゲームでは建築と防衛の2つのフェーズがあるのですが、建築フェーズでは移動して建築指示をして、防衛フェーズでは城郭の内側から敵を攻撃したり、敵が退却を始めたら追撃するといったことを行わせる予定です。

建築モードへの切り替え

このゲームでは建築や地面への盛り土は即座に行われないため、建築予定のフィールドと実際のフィールドには地面の高さの違いなどが生じます。
操作キャラを表示しっぱなしだと、建築予定と実際との表示を切り替えたときに地面の高さも変わるので、建築予定の表示のときには操作キャラは表示しないことにします。

↓操作キャラの TPS 表示中から、建築モードに切り替えたとき

建築モードのときは、操作キャラの位置とは関係なくカメラ視点を動かせます。

とりあえず、こんな感じでキャラクターの操作と建築モードとが切り替わるようになりました。よいです。

まとめと今後の予定

とりあえず操作キャラを配置して実装を進めました。次は建物のモデリングに着手したり、昼夜の概念や資材運搬をどうするかの仕様を決めていこうと思います。がんばります。

竹林ソフト 2023/02/17 20:00

NPC をコーディングするゲーム開発が楽しくない理由を検討する

NPC をコーディングして領地経営するゲームを開発しているのですが、ぶっちゃけ楽しくなくて開発が停滞しているので、その理由を書き出してどうするか検討する回です。

開発がどんな風に停滞しているか

気が重い項目順に書き出すと

  • 全ての要素をコーディングする総合ステージを遊んでいて、登場させる NPC 用のコーディングをしていたら複雑になってきて疲れた。
    • 途中セーブができないのでコードを編集するたびにリスタートになって苦痛だった。
    • 複数人をダンジョン探索させるためのコーディングが複雑でめんどうだった。
  • コード中の Lua のエラーを処理してユーザに提示するための実装がめんどい。
    • 私が Lua について詳しくないので。
  • スキル実装がめんどい。
  • ダンジョン探索をするキャラが少しずつ強化される仕組みを考えるのがめんどい。

とかでしょうか。
これらをどうするか考えてみます。

どうするか

まず、結局は開発するしかないという現実には触れないことにします。

総合ステージのコーディングが大変

総合ステージの難易度を下げることで対処しようと思います。具体的には、そこまでのチュートリアルで各職業用に作ったコードを使うだけでクリアできるようにします。

あとは、Lua スクリプトを割り当ては今はキャラ生成時にしか行えないのですが、その制限を外したいです。現状だと「このキャラは最初は大工だけど、途中から農夫にする」といったことをするためには「大工も農夫もできるコード」を書くしかなかったのですが、改善してキャラへのスクリプト割り振りを途中で変更できるようにすると「大工用のコード」と「農夫用のコード」を切り替えて使えるので複雑さが減ってよいと思います。

スキル実装がめんどい

全体に適用されるものを技術、キャラごとに適用されるものをスキルと呼んだときに、スキルは自動で取得されるようにします。
今までは「なんかスクリプトで誰がどのスキルを取得するか制御する」とか考えていたのですが、まぁ、その、めんどうそうなのでやめます。

スキルまわりの実装は、簡単なものでいいので実装に着手していきたいです。仕様を書き出してから。

冒険者の管理がめんどい

今までは party.lua という冒険者を管理するためのスクリプトを記述していましたが、もっと簡単にします。
具体的には「冒険者ギルド」という建物を用意して、そこに4人のキャラが集まったらその4人で最寄りのダンジョンに探索にいく、というルールにします。

雑多な仕組みの見直し

あとは「剣と盾を個別に扱うのではなく、1セットの装備として扱う」とか「労働用の道具とは別に、ダンジョン探索用の武器を装備する枠を別途用意する」とか、そういう変更もしたいです。探索に行くときは今持ってる道具を置いて武器に持ち替えてから出発させる、とかいうコードを書かなくていいようにします。

まとめと今後の予定

現状、このプロジェクト終了の危機だなとは思うので、とりあえず遊び方も開発も簡単になるように修正していこうと思います。なんとかします。

竹林ソフト 2023/02/15 20:00

TopDown Engine のアイテム管理を確認する

「クラフト&サバイバル&拠点防衛」なゲームを開発していきます。
アイテムの表示とクラフトについて実装していきたいのですが TopDown Engine について詳しくないので、TopDown Engine で何ができるかを確認します。

TopDown Engine のアイテム管理

とりあえず TopDown Engine が提供するインベントリはこれです。

で、最終的に実現したいのはこういうやつです。

↓Core Keeper のインベントリ画面

↓Keplerth のインベントリ画面

実現したいことは

・アイテムを選択して別のインベントリ枠に移動できる。
 ・移動先には装備欄も含む。
・プレイ中に表示する枠も用意する。
 ・装備の切り替え、使うアイテムの変更を行う。

なので、TopDown Engine のものを使わずに、こういう UI を作ることにします。

TopDown Engine でのアイテム管理について

構成ファイルやソースコードを見ていくと、TopDown Engine が Inventory Engine というまとまりで機能を提供しているのはわかりました。多分ですが、それが提供する Inventory クラスをそのまま使うか、継承して使えばよさそうです。TopDown Engine は継承して使われるのを考慮されてるのは好きです。
ここから先は、改めて実際にアイテム管理をするときに改めて詳しく見ていきます。

まとめと今後の予定

アイテム管理でやりたいことと変更すべき箇所を確認しました。あと、クラフトも結局はアイテムを増減させる操作なので、Inventory クラスの理解が進めばなんとかなりそうなのがわかりました。よいです。
今回は仕様とコードを確認しただけですが、次回は実装を伴う作業に着手したいです。がんばります。

« 1 2

月別アーカイブ

限定特典から探す

記事を検索