投稿記事

コーディングの記事 (86)

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

NPC をコーディングして領地経営するゲーム開発(体験版に向けての作業)

体験版をリリースするためのタスクに着手します。

体験版リリースまでの残タスク

体験版までに実装したいタスクをチケット管理システムで表示してみました。


多いですね。
これらタスクを大きく分類すると

・未実装の機能の追加
・エフェクトの追加
・画像の追加や作り直し
・In-Game エディタの作り込み

です。
In-Game エディタについては、基本的には VS Code を使ってほしいんですけど強○はできないので体験版までに調整します。エディタの作り込みは単にめんどいので本当はやりたくないですが仕方がないです。

残りタスクが多いのですが、順に片付けていきます。私が作らないと完成しないので。

やったこと

ポーズ時にエフェクトが動かないようにする

DOTween や他の仕組みで動いているアイコン画像やエフェクトがゲームのポーズ中に動き続けてしまうのを修正しました。Tweener で管理したり、Time.deltaTime に現在の再生速度を掛けて使うようにしました。

↓修正対象の例: セリフと移動しながら消えるアイテムの増減数

体験版までの範囲は修正したのでオッケーです。

リスタート時に最初の会話シーンをスキップするようにする

このゲームは作ったスクリプトに問題があったら、修正してステージを再読み込みすることを想定しているのですが、再読み込みのたびに「ようこそ! あなたは~」みたいなメッセージが表示されるとよくないと思ったのでリスタート時に会話シーンをスキップする仕組みを追加しました。

↓最初のプレイ時のみ true を返す関数を追加した。

大変よいです。

HTML ドキュメントに CSS を適用した

↓ゲーム外からもドキュメントを見られるように html ページを用意してて、それに何の装飾もしてなかったので css を作成して追加しました。

何もないよりは良くなったのでオッケーです。

経路がないときに警告メッセージが表示されるようにした

character:move(Grid(999, 999)) みたいに存在しないグリッドへの移動を指定したときに、今までは、0 個の移動経路が返されいて、0 個なので移動せずに次の処理が行われて何のメッセージも表示されていませんでした。

↓警告メッセージが表示されるようにしました。

よいです。

コンソールログを保存できるようにした

↓保存ボタンを追加して動作するようにしました。

ベッドで寝ているときのカーソル判定エリアを調整した

↓ベッドで寝ているときにキャラのステータスを見たいときに、立っていたエリアで判定していたので違和感があったのをベッドエリアも判定されるようにしました。

まとめと今後の予定

体験版までにまだまだ終えるべきタスクが残っているので、引き続き着手します。
がんばります。

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

NPC をコーディングして領地経営するゲーム開発(情報表示パネルまわり)

体験版としてリリースするにあたって「あ、これまだ実装してなかったわ」というあたりを実装したり非表示にしたりします。
今回は、ゲーム画面左で建物やアイテムの情報表示をする機能について見直します。

現状の動作

画面左に配置したボタンから、建物とアイテムの一覧を表示できます。
スキル、パーティ情報、チャート表示のボタンについては体験版では実装しないことにしたので「未実装」表示をかぶせています。

↓建物の一覧

↓アイテムの一覧

どうするか

とりあえずの案としては

  • パネルの右上に閉じるためのボタンを配置する。
  • レイアウト、文字や画像サイズを微調整する。
  • アイテム一覧に「全て」「素材」「武器」...という表示をフィルタするボタンを追加する。
  • 説明テキストとフレーバーテキストを追加する。
  • 武器防具のパラメータを表示する仕組みを決める。(これはまた今度でいい)

です。
修正していきます。

作業履歴

順に修正していきます。

↓パネルを閉じるためのボタンをパネルの右上に追加しました。

↓画像の透明部分に他の画像が入り込む問題が発生しました。

これは画像のパッキングの問題だったらしく、Project Settings -> Editor 内の設定でパッキングを無効にして対処しました。

↓アイテムをフィルター表示するためのボタンを作成して動作するようにしました!

↓アイテムをどこで作れるかが表示されるようにしました。

↓鎧の胴体部分の画像だったのを、肩や腰のパーツも含んだ画像になるようにしました。

まとめと今後の予定

アイテム一覧については、フレーバーテキストを作ってない以外はとりあえずオッケーだと思います。装備についてはパラメータ値を表示すべきな気もしますが、また後で考えます。
体験版リリースまでの残り作業は、後はドキュメント系の作業や PV 作成になりつつあります。がんばります。

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

クラフトゲーム開発(クラフトでアイテムを生成する)

クラフトまわりの UI は作成しました。最後のボタンを押してアイテム生成するあたりを実装していきます。

やること

クラフト台を右クリックして、クラフトするアイテムのボタンを押したときにアイテムが生成されるあたりを実装します。

動作確認

実装は思ってたよりも小難しかったですが、とりあえず動作しました。

↓クラフトボタンをクリックすると、そのアイテムがワークベンチに作られるあたり。

今はクラフトするとフィールド上のワークベンチにアイテムが作られるような動作をします。これだとアイテムを拾うのにクラフトパネルを閉じて時間を流す必要があって微妙です。

・クラフトすると、インベントリにアイテムを追加する。
 ・インベントリに収まらないときにフィールドに配置する。

という動作に修正します。

まとめと今後の予定

いずれまた修正しますが、とりあえずクラフトが動作して大変よいです。
次回はアイテムを使えるようにするあたりか、装備や攻撃まわりに着手したいです。がんばります。

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

NPC をコーディングして領地経営するゲーム開発(VSCode 利用を促すメッセージ表示を行う)

このゲームでは Lua スクリプトを編集するので、ゲームにコードを編集するエディタ機能を実装しました。ただエディタを色々と調整するのが大変なのがわかったので、VS Code (Visual Studio Code) を外部エディタとして使えるようにしています。

今回は、その VS Code を使ってもらうための情報表示まわりを実装します。

実装したいこと

  • タイトル画面に「VS Code 使ってね」というメッセージを表示する。
  • VS Code 使う場合の設定について説明する。

UI 設計は「最高の正解」を即答できる自身がないので「許容できる正解」を目指して作業していきます。

UI の作成履歴

↓タイトル画面下にメッセージを表示したもの。違和感がすごいので却下。

↓設定パネル表示中のみメッセージ表示したもの。よさそう。

↓設定パネルから Emacs ボタンを削除して設定方法の表示ボタンを追加した。

↓設定方法の説明パネル

ここまでで、

  • 設定パネルを開いたときに VS Code の利用を促すメッセージ表示
  • VS Code についての設定方法を表示できる

という機能を追加できました。大変よいです。

まとめと今後の予定

VS Code の利用を促す機能を実装したので、体験版リリースに向けてのタスクがまた1つ片付きました。大変よいです。
次は、ゲーム画面左の情報表示パネルの実装が途中までなのをどうにかするあたりに着手します。がんばります。

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

NPC をコーディングして領地経営するゲーム開発(体験版の見直し)

今回も後回しにしていた雑多なタスク開発を行いますが、体験版を遊びながら不具合や気付きを探していいきます。
そろそろ体験版をリリースしたいのです。

体験版を遊んでいく

体験版用のブランチは git リポジトリに作成済みなので、ビルドして実行していきます。

タイトル

・クレジットのボタンを押しても動作しなかった。
 → クレジットを記載したファイルがパッケージにコピーされてなかった。修正した。

・開発中でなく未実装と表示することにした。
 → 未実装の機能のボタンの上に「未実装」と表示した。

・遊ぶべきフォルダがないのに「続ける」ボタンを押せる。
 → 続けるために必要なフォルダがあるかの判定を追加した。

・オプション設定の作業ディレクトリのパスを編集させる入力フォームの表示がおかしい。
 → パスの途中から表示される。動作はするし、わからないので後回し。

カスタマイズ

・Tooltip 表示が適切でなかった。
 → 表示しなくていいはずの Tooltip が表示されていた。修正した。

ステージ選択

よさそう。

ゲーム開始時のイベントシーン

これ、システム上は問題がないと思うんだけど、導入が雑すぎる。
シナリオの文章をどうするかは、また後で考えたい。

イベントシーン中のヘルプ表示

これも動作は悪くないんだけど、ヘルプがヘルプになってない。
「ワーク」とか、いきなり言われてもわからないと思う。ヘルプ含むドキュメントは見直しが必要そう。

ゲーム画面

動作は問題ないし悪くはないけど、左上に表示されてる目標であるタスクがもう少し目立った方がいい気もする。
ゲーム開始直後にタスクの文字列の上でエフェクトを再生するとか?なんか工夫したい。

あと、リスタート後に画面がフェードインしている最中は UI を非表示にしてるせいで「スキップ」ボタンが押せないのがちょっと気になった。フェード中に ESC キー押下でスキップできるから現状でもいいとは思うけど。

それから、Tooltip を表示したときに Alt+Tab でフォーカスを切り替えると Tooltip 表示が残り続けてしまう不具合を見つけた。
→ 対処できなくはないけど、仕様と割り切っても良い気がする。

しばらくプレイしていて、Space キーでの Pause と Play が切り替わらないのに気付いた。調べていって、IME が有効なときの Space 押下が処理できてないのがわかった。
→ エディタを開いているとき以外は Input.imeCompositionMode = IMECompositionMode.Off; でもって IME 切り替えを無視させるようにした。

まとめと今後の予定

とりあえず、最初のステージを遊び終わるところまでプレイして、ゲームシステム的には問題ないが、ドキュメントを見直していく必要があるのがわかりました。
単にめんどうで気が重い作業ですが、がんばります。

月別アーカイブ

限定特典から探す

記事を検索