「ふにゃさん」に関する日記(3)

<前 次>

無題

なんだか今日は妙にDirect3Dが重くて、調べてみたところ、なぜだか秒間30KBぐらいずつメモリ使用量が増えていっている模様です。
しかもなぜかライブラリ関数のDrawSubsetで。
メッシュのポリゴン数を増やしたら最初は勢いよくメモリを消費するけど最終的には元のペースに落ち着くし、DrawSubsetを複数回呼び出すとその分メモリ使用量が増えます。
動作が重いほうはどうにもBeginSceneとEndSceneだけでなるようだし…。

ふにゃさんのほうは、項目選択系の設定変更ができるようになりました。
ただ、設定変更したときに特別の処理を要するもの(BGMなど)に関してはまだ対応できていません。
あと、BGMに関しては、元々あったBGM変更ボタンは無効にして、設定でのみ変更可能にしようと思います。

無題

唐突ですがふにゃさんの裏話を更新しました。
温度変化ゾーンの仕様は、見た目と食い違う判定になることが多くてわかりにくいため正直失敗だったと思っているのですが、この仕様でステージがいくつもできている以上、この仕様の変更はありません。
というわけで、その分かりにくい仕様を簡単にですが説明したページを作ったというわけです。

無題

てなわけで新メニューができまして、いよいよ設定の作成に取り掛かれそうです。
項目移動の検出が1フレーム遅れたりする問題も解消しました。

1241103437.png

今更気付いたのだが…

ふにゃさんの新メニューシステムを作っていて、メニュー表示のスクロール可能アイコンを作っていて、ちょっと気になることがありました。
マップ上に表示するキャラクターと、文字列などやアイコンなどの表示で、光の当たり方が違うのです。
マップ上のキャラクターは、全員右上から照らされている影の付き方なのですが、文字列などは左上から照らされているのです。
もっとも、それを言い出したらマップチップも結構統一されていなかったりするのですが。

無題

とりあえずメニューのHTML表示はできました。
ついでにHTML表示自体も改良して、普通の文字表示のときと同じように自動で影ができるようにしました。

無題

ふにゃさんのメニューを改良中です。
メニュー項目にHTMLを表示できるようにしたり、たくさんの項目があったりスクロールするように、といった具合です。

無題

ふにゃさん設定の個別の項目はそれぞれ値の入力インターフェースが違うのですが、ある程度パターンはあるはずなので、そのあたりを調べています。
ON/OFFスイッチ、選択肢から選ぶ、数値指定、ファイル名指定、フォルダ名指定、このあたりですね。
ON/OFFは選択肢で代用できるので特別作る必要はなさそうですが…。

無題

ふにゃさんのページをちょっと更新しました。
掲示板関連の告知を上にして、深刻なバグの告知と並べて、ひとまとめにしたんですね。
設定画面も少しずつ作っています。

無題

ふにゃさんの本体プログラムによる設定の画面を考えていました。
一覧から項目を選んでから値の変更画面へ移動、上下ボタンで1個ずつ移動、左右ボタンでまとめて移動、ジャンプボタンで次に進む、攻撃ボタンで前に戻る、可能ならマウス操作にも対応、ファイルやフォルダ設定はコモンダイアログで済ます、こんなところですね。

ふにゃさん2.0

ふにゃさんに関する要望がたまってきて、実際私自身もあったらいいのになーって思う容貌も結構あったので、思い切って対応してみることにしました。
本当は、一度完成品として公開してしまった以上、ゲーム性の変わるような改変は加えたくなかったのですよ。
しかし、ふにゃシリーズの続編として2Dスクロールアクションゲームを作るつもりはないので、次回作で対応するという選択肢もありませんでした。
そして、完全新作で対応するという選択肢もなくはなかったのですが、要望はあくまでふにゃさんに対するものなので、これでは対応したうちには入らないでしょう。
となれば、ゲーム性変更を伴う大幅なバージョンアップによって対応しようということになったわけです。

TokioGL最終版

出しました。これで最終版です。
バージョンを正しく返さないバグを修正したのと、サンプルの増強。

それと、ふにゃさんのウナギカズラをニコニ・コモンズ素材として提供開始しました。
果てしなく需要がなさそうですが、二次創作を自由に行っていただけます。

無題

ふにゃさんの目立たない部分の改良をちまちまと行っていました。

そういえばアキヤメの旧アンパンマンDBが今更Googleに出るようになってきたようです。
どうも検索結果のページばかりがインデックスされているようですが。

無題

ふにゃさんの設定画面を作っているのですが、1.12のときのように他の機能を先に付け足したときにありもしない設定メニューが出てしまうという現象を防ぐために、完成まではトップメニューはつけずに、実行時のパラメータ引数で設定に入るようにしました。

無題

ふにゃさんやってたら作ってないはずの設定メニューがゲーム本体に出てきたのを発見したので直しておきました。

Luaの関数として呼び出されたC関数の中でC++のクラスを使った場合どうなるのかが気になって少し実験していました。
何が気になっていたのかというと、関数内でエラーが起こった場合、C++の例外ではなくてC言語のlongjmp(gotoの強化版のようなもの)で関数を抜けるのですが、そのときクラスのデストラクタまですっ飛ばしてエラー処理まで処理が飛ぶのではないかと思ったのです。
実際試してみたところ、longjmpでもちゃんとデストラクタは呼ばれるようなので、この点では安心してよさそうです。

無題

NeoMuplでMIDIが時々無音になる症状はいまだ改善されていません。
ポートの開きなおしじゃやっぱりResetの代わりにならないようですね。
VC++とVC#の両方でそれぞれプログラムを組まなければいけないのでDirectMusicを直接いじるようなことはしたくないのですが、そうも言ってられないようです。
めんどくさい。

ふにゃさんの設定画面作り始めました。
とりあえず左右でカテゴリを選んで上下で設定項目を選んで、決定ボタンで設定内容の変更、と、そんな感じですかね。

無題

どうも昨日出たバグは軽量化と称して行われた作業で動作が変わってしまったのが原因だったようです。

無題

ふにゃさんの軽量化を進めつつ計量化で問題が起きていないかチェックしていたら、バグっぽいものに遭遇しました。
私自身が作ったステージではないのでもしかしたらそういうステージだったのかもしれませんが、バナナを全部取っていないのにステージクリア扱いになってしまったのです。
とりあえず原因として思い当たる節があるのでちょっと検証用のステージを作っています。

無題

ボンバーマンの絵を描いてました。
手足が丸くて短い爆ボン仕様なー。

ふにゃさんのほうは無駄なコードを省いて軽量化&表面化しにくいバグの追放作業。
地味な作業ではありますが地味に実行ファイルが小さくなっていたりまずい実装を見つけたりしております。

1227365427.png

妖精リンリンのひみつ

で、引き続きふにゃさんのソースの細かい書き直しをやっていたらどうにも面倒なバグがあったようなので昨日修正していたのを18日の分まで差し戻しました。
見てみたところ、変数名に誤解が生じやすい部分があったようなので、面倒ですが全部修正中です。

それはそうと、子供たちがひしめく中映画館に行く勇気がなかったために見ていなかったアンパンマン映画「妖精リンリンのひみつ」が、いつの間にやらDVDとして出ていたので買ってきました。
いつもは普通にDVDだけなんですが、DVDになって間もないらしく、限定版DVD-BOXとか言うことでなんかマスコットが付いてきました。
マスコットは正直言って別にいらんのですが、ヒヤリコの話も一緒に入ってるのはうれしいところです。
まだ本編は見ていないのですが、やなせたかしのメッセージを見る限り、内容的には今まで評判のよかった要素を詰め込んだ感じになってるようです。

<前 次>