いろいろ製作記録 2020/04/10


 最近は夕暮れ~のバージョンアップと3Dゲームの経路探索をいじっています。

●夕暮れ~

 夕暮れ~はeasyモード用の新規5ステージが完成しました。
 背景とBGMはまだ。

.
 コミケがなくなって時間に余裕ができたので、「今まで面倒でほったらかしにしてたところをきっちり作るかぁ!」と思ってメニュー類のマルチウィンドウ化をはじめました。
 今までも部分的にマルチウィンドウ化してたけど、この機会に完全マルチウィンドウにする……。
 なぜ部分的だったのかというと、危険なバグの温床になりそうだったので避けてたわけですよ。
 あと大量にあるフレーム(各種メニュー画面、ゲームオーバー画面、ゲーム実行画面等のこと)を新しいクラス用に書き換えるのが大変すぎて触りたくなかった……。

 しかしまぁいろいろゲームを作ってきてオブジェクトの親子関係の取り扱いも慣れてきたので、いっちょがんばるかぁ!という感じですよ。
 僕のゲームでは、自機等のキャラ、弾、エフェクト、マップ、ステージ管理を全部同じクラスをベースにしてるんだけど、ここにウィンドウ(前述のフレーム)も加わることになる。

 ちなみにこれまでマルチウィンドウ化してたのは、ランキング、コンフィグ、虚夢の乙女のコンティニューなど。
 ランキングの内訳表示とかスコアアップロードのYes/No確認などに使っていた。

.
 最初ツリー型に子ウィンドウを生成するようにしたんだけど、なんか子ウィンドウの動作速度が倍々で速くなっていってちょっと面白かった……。
 子ウィンドウも通常オブジェクト(エフェクト等)と同じ扱いで、各ウィンドウが配下のオブジェクト実行を受け持つので、下の階層は再帰的に呼び出されることになる。そして階層が深いウィンドウほど猛烈な速度で動作する。

 結局、ウィンドウの生成や動作は根っこのフレームが受け持つ形にした。
 ウィンドウ内オブジェクトは各ウィンドウが受け持つ。
 ウィンドウだけ特別扱いにしたくなかったけど、まぁ仕方ない。

・根っこフレーム(根っこウィンドウ)が持つオブジェクト
 ウィンドウとシステムメッセージ(実績のポップアップなど)

・ウィンドウが持つオブジェクト
 ゲーム中に扱うキャラ全部

 みたいな形になる。

.
●3Dゲーム

 3Dゲームは経路探索用の仮マップデータを作ってます。
 FBXファイルから頂点の繋がりを取り出せるっぽいのでblender上で経路データを作った。
 しかしなんかうまくいかない。
 どうも面を張っていないと頂点の繋がりが記録されないらしいですよ。
 blender上で辺として見えていても、FBXエクスポートする際に面が無いと頂点データのみになり、インデックスが作られない。
 点と点の繋がりという情報はFBXには存在しない……。
(edgeというデータがあるんだけど頂点の繋がりが記録されてるわけではなかった)

 つまり、洞窟マップの経路を一本線の繋がりとして作ることができない。
 帯状の道にしないといけないわけですよ。
 blender上の見た目は道でも、経路としては梯子型になる。

 すると
 1 通路ではノードの数が倍必要になる。
 2 移動パスが通路の中央にならない。
 3 今の経路探索プログラムはノード間距離にかかわらず移動コストが同じなので、細い通路作るといろいろ困る。
 となってしまうんだよ……。

 1番については、ノードが増えると探索負荷が増えるものの、まぁなんとかなるだろう……。
 2番は、幅の狭い帯にすればなんとかなる。
 3番は、経路探索プログラムをAスターにすれば解決する……。(めんどくさい。しかしAスターを使えば特徴のないエリアのノードを減らせる)

 とりあえず移動パスを面にして動作テストし、うまくいったら経路探索プログラムも修正しよう……。
 最終的には自作エディタで移動パス作ることになりそうだ。

.
 経路探索がそれなりにできるようなった関係でRTSを作りたくなってきた。



1
≪ 雑記 2020/02/10 作品一覧 次の作品 ≫
Twitterでシェア!



"坂葉" is creating "ゲーム"
ものすごくかっこいいシューティングゲーム「夜光蛾6」の製作
坂葉 is creating ゲーム

ものすごくかっこいいシューティングゲーム「夜光蛾6」の製作
お支払い方法
 クレジットカード
 銀行振込
 楽天Edy決済
 デビット&プリペイドカード(Vプリカ等)
  支援はいつ開始してもOK!
  Entyで支援すると約1.5倍以上オトク!
詳細