日記(961)

<前 次>

真に本気なのさ

スクリプト作成講座の記事を書いています。
結構自分でも理解してなくてしどろもどろですが、書いているうちになんとなくわかってきたような気がするので明日ぐらいにはアップできそうな気がします。

Bomber丸Worldのトップページのランダムメッセージを実はこの前こっそりJavaScriptからPHPに入れ替えていたんですが、そのせいでindex.htmlを解析してダウンロードページを自動生成するプログラムに通らなくなってしまっていたので、自動生成プログラムのほうをPHPに対応させておきました。
そして、昨日のバトル2の更なるアレンジ曲を今日作っていました。
テンポを一定にすると結構変わるものですね。
一応このアレンジは大ボス用のアレンジであり、バトル2はザコ・中ボス用です。

1159627509.mid

数値的問題

メモちらしの長さ自動調整アルゴリズムを考えるため計算してたんですが、計算を進めるうちに却ってややこしくなってきて、手が付けられなくなってきました。
いや、式そのものは短いんですが、どうしても勝手に決めた係数が消えてくれないんですよ。
その係数が正しければそのままでも別にかまわないんですが、消えることを前提にして考えていたため当てが外れました。

Bomber丸Worldのバトル2の曲がほぼ完成しました。
なんか、マザー3の影響を色濃く受けている部分があったりなかったりします。
ループ部分の一番最後は、ふにゃふにゃで使うつもりだったボス曲のボツ曲と同じメロディを、その前の部分はふにゃさんのこれまたボツ曲を使っています。
Bomber丸Worldではこうやっていろんな形で昔のボツ曲が姿を表すと思われるのでご覚悟を。じゃなくて、お楽しみに。
開発室のほうにもアップしてますがこっちにもアップしておきました。

1159541722.mid

エラー対応と自動調整について

ナマライザの読み込み処理、これで完成かと思いきや全く正常に動かないプログラムであることが判明!
いえ、まだ実行したわけじゃないですが、簡単なデータを想定してコードを順番にたどっていったら、まだ読み込まれていないデータを処理しようとして、データがないとして、データが丸々残ってるのに次のステップに行って、その次のステップでは次に来るデータが特定の形式であることしか想定していないので、誤った場所のデータでは当然形式が会わなくて、どんどん違うデータを生み出し続ける、ということになってしまっています。
特定のフォーマットのみに対応して高速化を図ろうという考えでしたが、ちょっといくらなんでもデータの狂いに対して弱すぎるようでした。
今の状態だと全く正しく読み込めないばかりか、その正しく読み込めないところを修正したとしても、データそのものに少しエラーがあった場合でも、どんどん誤りを蓄積してそれ以降の全てのデータに悪影響を及ぼすのです。
ログデータは行単位で記録されているので、データの破損があったとしてもそれにより信用できなくなるのは該当する行だけであり、改行コードの一つも出ればそれ以降のデータは正しい可能性が高いのです。
というわけで今後の課題は、データの正しい読み込みと、エラー時の復帰の2つになります。
末端の表示処理はまあ速度さえ気にしなけりゃそれなりに楽にできるでしょう。
データ読み込みのときにも同じことを思っていたような気がしてなりませんが。

メモちらしの改良を考えています。
どうしても粒子の数が増えてくると色々なところで腕が伸びきってしまって扱いにくくなるので、腕が必要以上に伸びないような対策を考えています。
これの根本的な原因は平方根計算をするのを嫌って反発力の算出に距離の二乗に反比例した値ではなく距離に反比例した値を使ってしまったことだったのですが、既にこの仕様で動き出してしまっている以上、この部分は現段階のメモちらしでは変更するわけには行きません。
そこで、対症療法的な考え方ですが、これ以上伸びてもらうと困るという、そういう数値を設定しておいて、腕の長さがその数値を超えている場合は腕の引っ張り強さを上げるのです。
ただ、腕が長すぎる間ひたすら上げっぱなしだと、本当は時間さえかければ規定の長さに戻るのに、その途中であっても規定の長さに達していないというだけで必要以上に腕を引っ張ってしまうので、それが暴走や、縮みすぎという結果を招く可能性が高いです。
それを防ぐには、自動で腕の引っ張り強さを下げることはしないので、とにかく腕の引っ張り強さの上げすぎに注意する必要があります。
腕が長すぎるということは、つまり、腕の引っ張り強さが弱すぎて、反発力に負けているということを意味するので、反発力≧引っ張り力である間だけ引っ張り強さを上げてゆきます。
反発力<引っ張り力となっている間は腕は縮み、腕が縮むと反発力が上がり、引っ張り力は弱まります。
引っ張り強さが足りない場合、腕の長さが規定に達する前に再び反発力≧引っ張り力になるため、改めて引っ張り強さを上げてやります。
これを規定の長さになるまで続けてやれば、おおよそ規定の長さよりも少し短いところで腕は縮み終わるはずです。
縮みすぎたところがあれば、まあ、それを編集するのは長すぎの場合よりは簡単なので、手動で調整してもらいましょう。

のんびりしすぎてました。

今日28日だと思ってたのだ。
まあいいや。

のんびりナマライザのファイル読み込みと表示を作ろうとしてたんですが、その前に完成しているべきファイル解析ができていなかったので、今思い出しながら作成中です。

爆ボンのカスタムパーツのページを独立させました。
他にもいくつか更新してます。
ドラクエ8のエンディングの話とか。

Lunascape2.6.5

Lunascapeのバージョンが2.6.5になっていたのでインストールしました。
わかりやすいところでの2.5との最大の違いはタブに閉じるボタンがついたことです。
これにもまあ良し悪しはあって、簡単にわかりやすく閉じられる反面、そのタブを単に選ぼうとしてクリックしたところが運悪く閉じるボタンだったりすると予期せず閉じられてしまうことがあるのです。
最終的に慣れの問題だとは思うのですが。

TGscriptの吹き出しのデザインを作っていました。
今回ただ掲示板の記事に使うだけでなく色々な用途に使いたいので拡張性と可搬性を持たせて一つの関数にしてしまいました。
あと、ついでにアイコンもいくつか追加したのです。
7つ追加で1つ削除。
削除された1つは、システムアイコンとしての役割を持たせます。

15000

やぁ、あっさりカウンター15000回りましたね。
だからって別に何の特典もありませんが。

掲示板。TGBBSの開発をスタートしました。
いえ、TGscriptの共通設定を作っているところです。
ひとまずアイコンの設定が一段落着いたところなんです。

FrieveさんとこのFaleal Story、キーボードで動かすと画面表示が著しくずれるため、WindowsXPでは動かないものだとずっと思っていたのですが、マウス操作のみでプレイすると問題なく動かすことができたので久々に一気にクリアしてしまいました。
データがわかりやすい形式で記録されてたおかげで過去の自分に改造されまくりで法外な退職金が出されたりロプティーバニーキックが最強攻撃になっちゃったり、Frieveドラゴンより強い蟹がデスの書を持って転げ落ちてきたり、お城の中で唐突に甲殻寄生獣が現れたり、ハチャメチャな旅路となってしまいました。

リセットさん

今日は爆ボンのバトルステージのことでも書いてみようかと思ったのですが7割方書いたところで突然パソコンが再起動されてしまい、文章が消失してしまいました。
再起動後書き直そうとしてエディタを開いたのですがやる気が減退してしまい、結局何もせず終わりました。

メモちらしを少し改良しました。
どことも繋がっていない粒子が動いてしまうとどこにも繋げないうちにどこかへ飛んでいってしまうことがあったので、どことも繋がっていない粒子は動かさないようにしたのです。
ただ、現在位置の座標を更新しないだけでかかっている力やそれから算出される速度の値は時々刻々変化しているので、どこかに繋げた瞬間内部的に持っていた速度でいきなり動き出すのが問題ではあります。
だったら速度の値を0にすればいいとも考えられるのですが、前回の速度の値と現在の力の値などが多少複雑に結びついていたりするのでそう簡単に変えられないのですよ。
このあたりをきっちり書き直せばアップできそうではあります。

昨日の日記で日記プログラムはCGIとPHPに分かれていることを書きましたが、実は今このCGIで動いている部分がCGIでなければならない理由は全くなく、むしろ一部のPHPとの動作の違いで同じはずのアドレスが別物にされたりしてうまくブラウザのキャッシュが使えず表示に必要以上の時間がかかるという不都合だけがあるのです。
そういえば日記の削除機能が未実装だったので公開前にはその点も改善しなきゃいけませんね。

<前 次>