投稿記事

2023年 04月の記事 (15)

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

すくすくスクワット VR(スクワットのカウント準備)

あまり真面目に考えずに、気楽に開発していきます。動けばいいのだ。

スクワットデータの記録

まずはスクワット時の VR ヘッドセットの位置を記録してみます。
いつもの手順で XR を使う設定をして、保存するプログラムを作りました。

↓作ったプログラムからの抜粋

よいです。
そして、このプログラムを実行してスクワットしました。

↓スクワット時のヘッドセットの高さ座標のグラフ

それっぽいグラフでした。よいです。

スクワットしたかの判定について

こういう周期的なデータに適した手法があるのかもしれませんが、詳しくないので簡単な仕組みにします。

屈み時の頭の位置から、立ち時の頭の位置に遷移したときに、カウントを+1する。

です。
そして、この立ってるときの頭の基準値ですが基本的には最大値を使います。ただ、単に最大値を使うとジャンプしたりしたときの値が使われてしまうので、どうにかします。
具体的には分散を計算して、その値が大きくないかでジャンプしてないか判断します。

↓普通に立った後に3回ジャンプしたときの高さ座標のグラフ

↓分散を計算するコード


ジャンプしたときのデータに計算した分散を重ねて表示したグラフ

ジャンプしたときの分散が大きくなっているのがわかりますね、大変よいです。

まとめと今後の予定

ここまで実装すれば実際にスクワットをカウントする実装もできるはずなのですが、それはまた次回に実装します。とりあえず、ここまで動作して大変よいです。
次回はスクワットをカウントするあたりと、VRM モデルを動かすあたりに着手しようと思います。がんばります。

竹林ソフト 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 切り替えを無視させるようにした。

まとめと今後の予定

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

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

クラフトゲーム開発(クラフトまわり)

クラフト要素を実装していきます。前回までで TopDown Engine のインベントリの扱い方はわかったので、それを応用すれば実装できると思っています。

クラフトの基本

クラフト操作の流れを書き出すと

  • クラフトする建物を右クリックし、専用 UI を開く。
  • クラフト対象のボタンへのカーソルオーバーで詳細情報がわかる。
  • クリックで1回クラフトする。
    • 矢などは1回のクラフトで 20 本くらい作られるようにする。

↓Necesse より

実装方針

とりあえずクラフト用のデータ構造を定義します。
基本的にはこの2種類のデータ構造があればよさそうです。

  • 建物名
    - この建物でクラフトできるアイテム名 x n

  • アイテム名
    - クラフト時に消費するアイテム名, 数 x n

これを YAML で定義するとこんな感じになります。

CraftTables:
- Name: Workbench
  Required: {}
  Recipes:
  - Wood
  - WoodenPlank
Items:
- Name: Log

- Name: Wood
  Required: { Log: 1 }
  ProducedCount: 5

- Name: Wooden Plank
  Required: { Wood: 2 }
  ProducedCount: 3

これを読み込む処理は YamlDotNet for Unity アセットを使ってこんな感じにしました。

アイテムについては、説明や他の情報も含めた方がよさそうなので必要に応じて追記していきます。

アイテムが消耗品か、装備品か。それぞれでどう処理すべきかとかは、また後で考えます。Lua スクリプトで直接消耗品の効果を記述しても良い気もするのですが、もう少し考えます。

それから、さっきの YAML ファイルを読み込んで表示する UI とか、クラフトボタンを押した処理はまた後で実装します。

まとめと今後の予定

クラフトまわりの実装に着手しました。よいです。
次回は、クラフトの残りを引き続き実装していきます。がんばります。

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

ねこ巫女籠城ゲーム開発(カメラ操作の見直し)

ここまでに実装した機能をプレイしながら、気になった点をどう改善するか決めていきます。

カメラ操作での気付き

現状では、キャラクター中心の TPS で操作できるし、Bird View での視点操作にもできるしで、好きな方に切り替えて操作できます。ただ、何もかも自由に操作できるよりは「こういうプレイをしてほしい」という誘導のための制限もあった方がいいと思っています。TPS と Bird View のカメラ切り替えに制限を加えるかは、どうするか決めていきたいです。

↓自キャラ中心の TPS 表示

↓建築時の Bird View 表示

とりあえず気付きとしては

・Bird View に制限がないので建築指示をするだけなら自キャラを操作する必要がない。
 ・防衛中は自キャラで攻撃したり、防衛ユニットを率いるので自キャラを操作する。
 ・内政中は自キャラの周辺しか建築作業ができないので自キャラを操作する。

・建築パネルが画面中央に表示されると自キャラが隠れて戸惑う。
 → 画面下か画面右に UI を寄せるべき。

・TPS の際の自キャラが小さい。

です。

キャラ操作と建築指示のカメラ操作をどうするか

前提となるアイディアは「建築指示は Bird View で自キャラ関係なくカメラを操作して行う。召喚ユニットを引き連れて行う建築作業や戦闘は自キャラを移動させる必要がある」です。

とりあえずの方針を

・Bird View モードの場合
 ・左クリックした位置に自キャラが経路探索して移動する。
 ・建築作業は移動してないときに自動で行う。攻撃は射撃と防御のみ自動で行う。

・TPS モードの場合
 ・WASD や XBox コントローラで自キャラを移動させる。
 ・建築作業は移動してないときに自動で行う。攻撃はキーやボタン操作で動的に行う。

に決めました。
XBox コントローラをどうサポートするかは後でまた考えます。TPS モードで戦闘するときだけでもコントローラを使えるようにしたいと思っています。

建築パネルが画面中央に表示されるのをどうにかする

他の街づくりゲームを参考にして、UI は下に寄せてみようと思います。

↓ The Wandering Village より

実際の UI 配置は建築できる建物を列挙してから考えます。今は防衛用の建物しか列挙してないので。

TPS の自キャラが小さい

単に大きくします。
自キャラ中心に全方位に移動しながらアクションするような、よくあるゲームを参考にします。

まとめと今後の予定

実際に建物の建築指示を操作した考察もしようと思っていましたが、思ってたよりも時間がかかったので続きは次の記事にまとめます。
今後も実際にプレイしながら「ここは改善しないとな」みたいな見直しをしていきます。がんばります。

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

すくすくスクワット VR 案(旧 筋トレ・ワンダーランド)

短期 VR プロジェクトとして、スクワットした回数で樹木を育てるマルチプレイゲームを不定期で作っていきます。要素をしぼりまくって短い時間で体験版相当まで開発する予定です。

ゲーム案

先週の段階では「自分専用のフィールドに建物を建築できて…」みたいにボディビルダーならぬシティビルダーな方向で考えていたのですが、夢を広げると開発が終わらないので仕様を小さくします。

箇条書きにすると

  • スクワットするとワールド中央の木が大きく育っていく。
  • マルチプレイ。みんなで木を囲んでスクワットするイメージ。
  • 数日ごとにワールドはリセットされる。

です。

必要になる技術

VR 自体は以前に「腹筋ローラー VR (R-18)」を作ったときに雰囲気はわかったので、「マルチプレイまわり」についての学習をしながら開発する予定です。

とりあえず動作することを最優先にしたいので、いろいろ割り切って実装していく予定です。なので、小難しい仕様はとりあえず実装しません。

まとめと今後の予定

自分の筋トレを兼ねて少しずつ開発していく予定です。
まずは VR でスクワットをカウントするプログラムや、マルチプレイまわりについて調べたりしようと思います。がんばります。

« 1 2 3

月別アーカイブ

限定特典から探す

記事を検索