過去ログ修正完了
うおーす。更新しましたー。
スクリプト作ろうコーナーの言語仕様更新ですよー。
…なんだかあまり厳密には決まってなさそうですが、細かい部分は作り始めてみないとわからないのである程度曖昧にしてあります。
そして今日は日記の過去ログを全て修正し終えました。
これに伴い未登録の日記へのリンクも削除しました。
…本当に、やっと終わりました。
それと、前々からh2とh3の小見出しが真ん中に来ると見難いと感じていたので、思い切ってスタイルシートを変更して左寄せにしてしまいました。
プログラミング関係の話題。プログラミングコーナーを更新したとか、プログラミングの内容に踏み込んだ話とか。
うおーす。更新しましたー。
スクリプト作ろうコーナーの言語仕様更新ですよー。
…なんだかあまり厳密には決まってなさそうですが、細かい部分は作り始めてみないとわからないのである程度曖昧にしてあります。
そして今日は日記の過去ログを全て修正し終えました。
これに伴い未登録の日記へのリンクも削除しました。
…本当に、やっと終わりました。
それと、前々からh2とh3の小見出しが真ん中に来ると見難いと感じていたので、思い切ってスタイルシートを変更して左寄せにしてしまいました。
そして今日はスクリプトのページを書いてました。
スクリプト作成については今までやってきた連続物企画より事前に考えておかなければならない部分が多いので。
なんというか、他のと比べて、「プログラミング」の部分が大きいのですよ。
ライブラリの使い方がわかれば何とかなるとか、いつもやってることを他の言語で書き換えるとかいうのとは違って純粋なアルゴリズムの部分が多いのでよく考えないと…。
メモちらしを少し改良しました。
最小化したときには描画命令そのものを呼び出さず、負荷を抑えます。
GIF構造、ローカルカラーのところまではわかったのですが、どうにもラスタデータのところがわかりません。
ラスタデータは圧縮されているからどこで終わるか教えてもらわないとどこまでを画像と見ていいのかわからないわけで。
「,」か「!」の文字が来ると次の画像?
だとすると色番号44や33はどうなるの?
ってことで。
そうそう、ミディビ更新しました。
著作権表示とちょっとしたエラーチェック。
音の重なりチェックは結構簡単なアルゴリズムで動いています。
同時発音数チェックもできればやりたいんですが、これについては結構な処理数になるのでやらなさそうな気がします。
Bomber丸WorldのアニメーションファイルにGIFファイルを使おうかと思っているのでとりあえずGIFファイルの解析のために、GIFファイルを読み込んで色々な情報を抜き出して表示するソフトを作り始めました。
ファイルフォーマットはhttp://www.geocities.co.jp/SiliconValley/1361/gif87a.txtを見ながら作っています。
現在のところ「Screen Descriptor」まで読み込んでます。
で、今度の更新はプログラミング言語作りになったわけです。
簡単なものだということでスクリプト言語と呼んでいますが。
実際のところ、Bomber丸Worldに使うスクリプトのページをプログラミングコーナーにもってきただけです。
ふにゃさんのシークレット機能を一つ実装しようかと思ったのですが、ちょっと考えなければならない部分が多かったので今回は中途で終わりました。
考えてもみればシークレット以外にもやるべきことは多くありますし。
とりあえずふにゃさんのシークレットの条件を全て考えてみました。
プレイ時間とか入手アイテム数とかクリア数とかよくありそうなのもありますが、中にはビックリするような条件のものもあったりします。
プログラミングのDirectX7のページを移動しました。
ついでに少し誤字脱字も直しておきました。
…今度の更新は久々にDirectX7にしようかな。
爆ボンのブルーリゾート1面のページを更新しました。
そろそろどきどきモード攻略開始です。
まともな攻略記事とかもそろそろ作り始めますよ。
そうそう、プログラミングのページをリニューアル予定です。
あ、いや、別にデザイン変更とかそういうのじゃなくて、アドレス変更です。
そしてダウンロードページと同じように管理していこうかなと思っています。
今までのprogXX.htmlっていうアドレスだとアドレスから内容がわかりにくくて、管理面でも全てのコンテンツが同じディレクトリにあって管理しにくかったんですよ。
こういうアドレス変更のときは毎度毎度のことなんですが、以前のURLにアクセスすると自動的に移転後のページに飛ぶようにしています。
ただ、1年間アクセスのないアドレスの場合は飛ばないようにしています。
コンテンツは多くないながらも決して少なくもないので一気にやろうとはせず少しずつ段階的に行っていこうと思っています。
物理量解析エンジンをアップしました。
以上。
じゃなくて、SuperScoreBallのページを若干微妙に多分誰にも気付かれないようにしかしある種の訪問者には確実にわかるところも変更しました。
NeoMuplでOggVorbisの再生を確認しました。
おそらくこれは前にインストールした「Direct Show Ogg Vorbis Filter」のせいだと思うので、別途ソフトが必要と記載しておきました。
それと、ソートを高速化。
構造体や文字列のようにコピーに時間のかかるデータだとクイックソートよりシェルソートのほうが速いと聞いたのでマイクロソフトのサイトからコードを拝借してきて実装してみました。
今はちょっと中途半端な状態なのでアップは出来ません。
明日をお楽しみに。
ミディビの自動バックアップ機能を作ろうと頑張ってみましたがダメでした。
アプレットのstopメソッドで記録してstartメソッドで呼び出しというのを試みたのですが、どうにもInternetExplorerの場合ページ移動しただけで全リソース解放してしまうようで、どのタイミングで初期化を入れてもどのタイミングで記憶してもことごとく消えてしまいます。
お絵描きアプレット等ではいったいどこにデータを保管しているのか不思議です。
何か変数に修飾詞をつければ保持されるのでしょうか。
それとも特別なデータの置き場所がどこかにあるんでしょうか。
まだ調べる必要がありそうです。
NeoMuplの読み込みのほうの高速化もできたのでアップしました。
これで大分完成に近付きました。
OGGの演奏についてはNeoMupl側では何も対策はしないつもりです。
OggVorbisはそもそもあまり聞きませんし、それにDirectShowへの追加機能としてユーザーが任意につけられる機能なのです。
曲名自動取得とファイルからループ位置を取得についてはできそうなら挑戦してみる、といった程度ですね。
どうもBoostはVC++6ではRegexとかSpiritとか、Boostの最大の魅力にあたる部分が使えないことが多いようです。
VC++.NET2003なら全部対応らしいですが。
VC++2005EEはもってるけど正直あまり使おうという気になりません…。
ハ、ハラが痛いので今日はこの辺で…。
マザー3クリアしました。
ん~…しかしねぇ。
「さあ泣け」と言わんばかりのラスト付近の演出には正直興ざめでした。
今更出てこられても困るキャラに、忘れてたのであわてて加えましたといった感じの1・2との繋がりに、そしてラスボスが○○××(自主規制)
正直ネンドじんの健気さに一番泣けました。
あとプログラム的に問題のある部分も多かったように感じました。
フィールド上の移動が快適じゃないんですよね。
特に人が多い狭い道を散々走り回らされた最終章はかなり苦痛でした。
しかも人が増えたんで何言ってるのかと思えばスタッフが投げやりになったとしか思えない聞いててうんざりするような無意味な単語しか喋らない人間ばかり。
あいつら全員ブタマスクにしてブヒーとか言わせておいたほうがよっぽどよかったのに。
浜辺で出会ったあの無自覚なカップルのようないいキャラもいっぱいいたんですけどね。
それにしても納得いかないのは最後の耳にたこができるほどの感謝の嵐。
正直豚どもの手の内で踊らされていただけという印象しかなかったためありがとうと言われても違和感しか湧いてきませんでした。
それはそれはおいといて…
今日Boostをインストールしました。
C++の強力なライブラリ群です。
実はずっと前に一度インストールに失敗していたのですが、今回Boostの本を見つけたので改めて挑戦することにしたのです。
ところがやはり今回もエラーが連発。
前回はここで失敗したと思って諦めたのですが、今回少しエラーメッセージの流れを止めて全体を見てみると、どうやらエラーが出ているのは一部だけのようで、大部分はうまくいっているようだったので、そのまま我慢して続けていたらなんとかインストールが終了しました。
しかしやはり一部には使えないものもあるようです。
確認した中では、shared_ptr、shared_array、weak_ptr、scoped_ptr、scoped_array、tokenizer、format、が使えて、intrusive_ptr、lexical_cast、regex、が使えなかったようです。
intrusive_ptrはともかく、lexical_cast、regex、はすごく使えそうだったので残念です。
メモちらしです。
ちらつき防止にはDoubleBufferedプロパティが効きます。
自前でダブルバッファリング処理するのかなと思ってMSDNライブラリのグラフィック関連の項目を見ていたらさりげなくDoubleBufferedプロパティのことが書いてありましたよ。
いや、あっけない。
そして、粒子の切り取り・コピー・貼り付けにも対応しました。
これはただ単純に粒子に関連付けられているテキストをクリップボードで操作しているだけですけどね。
物理シミュレーションにより動かすプログラムがちゃんと動くかどうかエクセルで数値を入れて計算したらすぐ発散して何もかもが吹っ飛んでしまうという結果が出ました。
数値計算によるシミュレーションではどうしても離散値しか取れないから、境界をまたいで変化してしまうと境界付近での動きが無視されて現実にはありえない動きを見せるんですよ。
まあ、数値計算の理論と実際に動かした結果もまた違うものなんですけどね。
そもそもエクセルで計算した分には距離がマイナスというケースも計算していたんですが、プログラム上では意味があるのは絶対値だけなので発散はしないその場合だと発散はしないんですよね。
まず、摩擦を入れないと絶対に収束しないのです。
それでまあ、エクセル上でいろんな数値を入れて試した結果、紙面上で求めた理論の式とはやや違う形になり、係数もある程度増えました。
紙面上での計算は理想条件を仮定しているけど実際には理想であるはずがありませんものね。
しかしどうしても残る問題が、収束の遅さです。
こればかりはなかなか式の係数をいじるだけじゃうまくいかなかったんです。
そこで早送りでシミュレーションして見かけ上早くするという手法をとることにしました。
そんなわけでこの部分のプログラムはメモちらしに入れることができました。
そうそう、Distanceメソッドの誤差についてはhttp://d.hatena.ne.jp/mifumi323/20060504で触れておきました。
今日は必要に迫られてフロッピーディスクドライブを買いに行きました。
そうしたら、なんか電車にしても店にしても、やたらと人がいるんですよね。
考えてもみたら今日は大連休の初日でした。
そうそう、FDDを買うついでに大神も買ってきました。
それはそうと、昨日言っていたソフトの名前、決まりました。
その名も、「メモちらし」。
そして、早速プログラムに取り掛かったのですが、ベクトルを作るのが面倒くさくてyanesdkからVector2Dを引っ張ってきたら、たまたまDistanceメソッドの近似計算を見つけて、その程度の近似なのか数値的に計算してみました。
それが今日の画像です。
理論的にその程度の精度を持つかはまた後で改めて計算することにしましょう。
爆ボンのコーモリンのページを作りました。
はっきり言って相手にする価値もないような脇役ですが、行動パターンが意外と面白いので書いてみました。
あと、こっそりグリーンガーデン1面のどきどきモードでの合格タイムも記載しました。
そうそう、Cygwin導入してみました。
いや、何ってね、いろんなフリーソフトがUNIX用だったりするわけですよ。
いや、Windowsにもフリーソフトは多いけど「役立つ」というよりは「面白い」とか「便利」というのが多くて、必要になるのはUNIXのフリーソフトであることが多いです。
そりゃWindowsのシェアが大きいから多くのソフトがWindowsに移植されてたりするけど、やっぱりUNIXのソフトはUNIXで使ったほうがちゃんと動くだろうし、種類も豊富だろうと思うのですよ。
そんなわけでCygwinインストーラでインストールできる分全部インストールしたら1GB超えちゃいましたよ。
もっと少ないかと思ってたんですが。
マザー3買ってきましたよ。
第一章が終わったところですが…ええ、この段階で早くも「ハッピーエンド」はありえなくなったわけですね。
まさか64版からあったあのセリフがどうでもいい知らせと最悪の知らせをもってきたものだとは想像もしてませんでした。
いや、でも、その、なんかね、正直、やっぱりマザー3は3Dであってほしかった。
やっぱりどうしても3Dのゲームを無理矢理ドット絵に落とし込んだようなゲームにしか見えないんですよ。
無益な戦闘を避ける手段は今回はダッシュらしいですね。
弱い敵なら蹴散らせます。
そうそう、プログラミングのページを更新しました。
DirectShowはどうにもDirectXとは別枠のような気がしたのでDirectXとは別のページに書いてます。
参照設定の方法も違いますしね。
とりあえず読んで大体の流れはつかめるようになったのでRubyでCGI組んでししゃもを会話するチャットを作ってみました。
どうもししゃもはそれなりに動いてくれてはいるようですがどうにもブラウザに出力する時点でCGIクラスにエラーが起こってるみたいです。
正直、私の良く知っている言語と見た目の大きく異なるRubyはあまり使いたくないんですけどね。
とりあえずししゃもを動かすCGIが完成したらRubyからはとっとと離れるつもりです。
ちなみにししゃもで何をやりたいのかというと、アルニックにね、特定の確率でししゃもによる会話を織り交ぜようと考えているんですよ。
本来ならゆいと同じ辞書方式で事足りるはずなんですが何せ辞書を作れるのが私しかいないということで、どうしても辞書の量が足りなくなっちゃうんですよね。
あと、複雑なアルゴリズムで返事を決めようとするとどうしてもサーバーに負荷がかかるので、そういう重くする原因になることは分散して処理させようという考えもあったりするのですよ。
うちのサーバーではRubyが使えないんですが自分のパソコンでなら使えるので、例えば、サーバー上でアルニックが喋るとき、CGIからうちのパソコンに人工無能の返事を考えるようにリクエストを送って、それでうちのパソコンが頑張って答えを出してサーバーに送り返す、そういうのをやってみたいんですよ。
これをやると必然的にうちのパソコンに繋がらないときアルニックはあほあほになってしまいますが、まあそれも愛嬌です。
Rubyをインストールしてました。
巷の優れた人工無能ちゃんは大部分がRubyで書かれていたりするので。
とりあえずロイディとししゃもをダウンロードしてきました。
しかしうちのサーバーではRubyは使えなさそうなので、自宅サーバーと繋げて使うようなやり方ができるかなと考えています。
しかしまあ、予備知識が無いとほとんど読めませんな。
変数の命名規則がかなり独特で、わかる人には一目瞭然、わからん人には誤解を招くという、ちょっとRubyで書かれたプログラムを見てみたい人には厳しいものがあります。
Ruby→http://www.ruby-lang.org/ja/
ロイディ→http://www.rogiken.org/SSB/reudy.html
ししゃも→http://yowaken.dip.jp/sixamo/
こっそりパネルαとじゃんけんαを更新ですよ。
VBのコードの問題点を指摘してくれるソフトをたまたま見つけたので、あたっている部分だけ修正してアップしました。
ついでに著作権情報や一部アルゴリズムも変更しておきました。
そのソフトを見つけるきっかけとなったのがNeoMupl。
NeoMuplの動作が極端に遅いということ、そして解決法は先日書いたとおりですが、ソートアルゴリズムや文字列-データ対応のプログラムなんかはいかにも誰かが作っていそうだったので手近なところでVectorで探していたら、目的のものは見つからずに他の便利そうなソフトが見つかったというわけです。
結局ソートアルゴリズム周りで楽はできそうにないので再びC#も視野に入れ始めたのですが、現段階の問題として、VC#2005がExpressEditionだからなのかあるいはC#だからなのか、エクスプローラからのドラッグ&ドロップができなくて、一歩踏み出せずにいます。
これさえあればもう迷わなかったんですけどね。
C#でエクスプローラからのドラッグ&ドロップの方法を模索しつつVBで効率のよいアルゴリズムを作るとしましょう。
そうそう、アキタラヤメル企画にレゴのコンテンツを追加しようと思います。
今レゴでオリジナルの作品がいくつもあり、それらを分解する前に作っておいたLDrawのデータがあるのですよ。
うちのキャラのいくつかはレゴで作ったものが元ネタだし、こういうのがあってもいいと思うのですよ。