2008年05月19日

 今回も蔵出しです。おおよそ3年前のネタですが気にしません。誰か書くかなーと思って放置してたんですが、やっぱり誰も書かなかったので書く事にしました。海外あたりで書かれると思ったんだけどなあ…。

スターフォックス アサルト
任天堂 (2005-02-24)
売り上げランキング: 763
おすすめ度の平均: 3.5
2 哀しいかな…
2 これホントにスターフォックス?
4 良作ですが・・・
4 一長一短といったところか
5 これは面白い

ゲームデータ内に開発用のデータが残っている?

 GameCubeにておおよそ3年くらい前に発売され色々と話題になった「スターフォックスアサルト」ですが、実はゲームデータの中にC言語用のヘッダファイル「_shottype.h」が入ってます。

 その中には

  • 同じフォルダ内に存在する「_en_shot.bin」のデータ構造を示していると思われる構造体定義
  • 構造体中の数値の意味を表すと思しき定数定義。
  • それらへの豊富なコメント

 が含まれており、少しCをかじった程度だった3年前の私*1でも容易にそれらを用いてデータ表を作る事が出来ました。その結果、おそらくこのデータは敵・味方の攻撃データを示すものと思われました。

 まずはそのデータを示します。CSV形式です。

 「アンドロフ」はきっと突っ込み待ちなんだと思います。まあそれは置いておいて。SE番号のテーブルで説明が一切無いのは最初からです。全部空白だったんだもん。また、最初のテーブルでも終盤が空白になっていますが、これはショットタイプの定義が168個あるのに対し、実際のデータは129個分しかないためです。これがどういう意味なのかは分かりません。

 ところどころの数値はゲームをやっていたときの感覚と合致するんですが、ところどころ怪しいです。ブラスターが貫通する事になっていますし、エフェクト番号なんて全然合っていません。

 しかし、チャージブラスターは二段階までは直接ダメージ、三段階目(最強)では誘爆ダメージってあたりが妙にリアルです。完全に間違いとも思えません。

 また、追尾性能の項なのですが、GameCubeのCPUであるPowerPCでは微妙にFloatの形式が違うため、そのまま16進数で表示させています。ですが、Wikipediaの記事を読んでもらえば分かるとおり、今回の表に出てくる数値はどれも殆ど0に近いです。

 その上、「ホーミング」の追尾性能の欄が0x00000000(=0.0f)だったり、そもそも出てくる数値が0x00000000と0x000000e0の二種類だけ、と怪しさ満点だったため、これ以上は追求しない事にしました。

 いまいち信憑性が怪しかったので一旦お蔵入りさせて、海外あたりで解析されるのを待ってたんです…が、全然情報が出てこなかったので、三年越しという事にはなりますが、今回掲載する事にしました。オチがなくてゴメンネ。

 これを読んだあなた。どうか真相を暴いてください。それだけが私の望みです。(お約束)

結局、このヘッダファイルは何だったのか

 単なるミスであると言う可能性はつまらないので除外しておきます。

 私の結果は実は間違いで、本当は正しいデータを取得できるのだとしたら、スタッフはネットユーザにこのデータを見つけてもらいたかった、という事に当然なるのでしょう。ですが、このデータによって対戦の幅や戦略が深まるとはあまり思えません。「ポケモン」ならともかく、アクションゲームであるこのゲームにはあまりそういった情報が必要とは思えません。しかし、スタッフがユーザに内部の情報を与えて盛り上げようとしてたのなら、ゲーム初のCGM(笑)の先駆者だったかもしれません。

 もしかすると、あえて間違ったデータとヘッダファイルを与えて、こういう感じの記事が上がってくるのを待ってたのかもしれません。

 ポケモン赤緑の「サントアンヌ号横のトラック」、金銀の「金のはっぱ」「銀のはっぱ」、「シロガネ山のレッド」、ルビーサファイアにおける「トクサネの白い岩」、レジ***の点字、ダイヤモンド・パールにおける謎の洋館のように、本質的にはあまり意味の無いデータを与え、ユーザをもてあそんでただけかもしれません。つーかポケモンその手の多すぎだろw

 ネットユーザがこういう感じで「あーでもない」「こーでもない」ってあたふたしてる姿が見たかったのかもしれませんね。この可能性が一番面白そうだな。

 いやーホント気になるんで誰か真相を暴いてください。

  • *1: でも今と比較してあんまり進歩してないかも^^;

2008年05月04日

 今回は作って配布しようと思ってたはいたけれど、いつの間にか忘れていたソフトです。この機会に蔵出ししておきます。

プログラムの概要

 Yer Another nsdecは、NScripterのスクリプトファイル「nscript.dat」を復号化して、人間が読む事の出来るシナリオファイルに変換するプログラムです。

 変換は高速で、数秒以内に終了します。

 GPLライセンスなので、ソースコードも公開しています。

ダウンロード

使い方

 NScripterのシナリオファイル(nscript.dat)をnsdec.exeと同じフォルダに配置し、「復号化.bat」を実行してください。すぐに終わり、result.txtという復号した結果が現れます。

 result.txtの修正等を行った後に「暗号化.txt」を行うと今度はその修正したスクリプトを再度暗号化できます。

解説

 元々のnsdec.exeは、表示に懲りすぎているためかいかにも「解析してる」っぽい感じは出てるんですが、いかんせん遅すぎます。

 そしてその復号化処理というのが、実は0x84とxorしてるだけの簡易的なものです。ので、普通に実装すればあそこまで時間は掛からずにすぐに復号が終わります…。

 友人が去年の夏ぐらいに「次の冬コミはNScripterでギャルゲー出すぜ!」とか言い出したので、サンプルソース集めのために作りました。でも結局、前回の冬コミのアレは私がスクリプト書いてます。

 NScripterなのですが、簡単な事を行うにはすぐに書けて良いのですが、ちょっと複雑な事をしようとすると一気に大変になる印象でした。難易度が指数関数的に上がります。(指数関数って言いたいだけ)

 プログラミング初心者が「簡単にゲーム作りたい」って言って作るのには全くお勧めしないです…。普通にRuby+SDLあたりが良いんじゃないかなあ…。

2008年04月28日

 2chのトリップを検索するソフト、つまり「特定の文字列が含まれるトリップを検索してくれるソフト」はあるんですが、普通に「トリップキーからトリップを生成してくれるソフト」が無かったので作りました。需要無いから無いんだろうなあ…。

 前自分が使ってたと思うトリップを検索してみたら、数学板で使われてた。自分が書いたのか、それとも赤の他人か…。

 トリップ生成アルゴリズムに関しては、Wikipediaの情報を参考にしました。あと、文字コードはすべてShift_JISで処理するとうまくいきます。

 「適当にトリップ生成->検索」が面白いwwww

 「test」とか適当なトリップキーを使ってる人も結構居るんですね…。

 もうmod_rubyでの作り方なんて忘れてましたよ。前書いたCMSのソースがあったから良かったものの…。そんな状況から始めて、製作時間およそ1時間。おっせー。

 mod_rubyなのですが、PHPみたく$_GET['key']で値を取得できないのが面倒ですね。それぐらいはシステム備え付けで良いと思うんだけどな…。ruby on railsですか?さすがにこの程度のプログラムでそれは重過ぎる…。

 WikipediaのURLに(や)や_が含まれているとどうもうまくリンク貼れないみたいです…。なんだろう?「はてな」記法用のモジュールのバグかな…。とりあえず全部エンコードしておけば貼れるみたいですが。

2008年04月27日

動物化するポストモダン―オタクから見た日本社会 (講談社現代新書)
東 浩紀
講談社
売り上げランキング: 5044
おすすめ度の平均: 4.0
4 やや飛躍はあるが
5 マーケティング関係者は必読の書
4 「面白い見方」をしていると思う
3 あまり心を打つものがないというか、、、
5 様々なサブカル系理論の元

 二ヶ月くらいかけてチマチマ読みました。なかなか面白かったです。この手の話はやはり哲学畑の人の書いた本が面白い。

 ちょっと出てくる作品が古いですね。出版が2001年なのでしょうがないのですが…。オリジナルとコピーの区別が消滅し、二次創作が栄えるという話があって、エヴァンゲリオンの製作会社がパロディ的な作品を幾つも出している*1事に言及しているのですが、これ今だったら間違いなく「魔法少女リリカルなのは」だと思うんですよ。

 エヴァのパロディ的作品も確かに「オリジナルとコピーの区別が消滅」しているとは思うのですが、「魔法少女リリカルなのは」はもはや原作の「とらハ」と肩を並べるどころか、原作より人気があります。また、「リリカルおもちゃ箱」、アニメ第一期、第二期、第三期で雰囲気がほぼ代わり、「オリジナル」という概念すらも存在していない気がします。

 あとはデータベース消費、つまりは萌え要素を組み合わせて無数のキャラを作って消費しているという話も出てきて、実例として「デ・ジ・キャラット」が出てくるのですが、これは今だとやはり「初音ミク」な気がします。特に物語も設定も無い、絵と声しか無いのにここまで消費活動が盛んなのは、やはりバックにお約束というか、萌え要素やシチュエーションのデータベースがあるからではないかと。

 後半で出てきた「この世の果てで恋を唄う少女YU-NO」がとっても気になります。すごく面白そう。エロゲーだけど。どうせなら完全ノーカットのPC-98版がやりたいな~。

 第二冊目の「ゲーム的リアリズムの誕生」も買いました。またちまちま読んでみようと思います。「ひぐらしのなく頃に」も言及しているらしいので、ちょっと期待。

  • *1: 近くのゲーセンで魔女っ子コスのフィギュア見つけた。ちょっと欲しかったけど、14歳という年齢を理由に自粛しました。(ぇ

2008年04月19日

 マイナーバージョンアップなのにも関わらず多数のダウンロードありがとうございます!!

20080419-01.png

 ってえええええええええ!!2ミリオン*12万件弱っすかw

 これバグじゃないの!?

 4.5MB × 2万件≒90GB…。自宅サーバだったらまた止められてるなw

 バグじゃなかったら何の影響なんだろう?

 「さきゅばす」の開発者、緊急募集中です!

 ぶっちゃけ開発するときに動画系の知識はあんまり要らない*2ので気楽にどうぞ。

 詳しくは公式サイトで。

2008/04/25:追記

 その後は一日数百件の「常識的な範囲」に落ち着いた模様。やっぱバグかイタズラ?

 今回の犯人は私じゃないですからねー!(ぉ

  • *1: 詳しくはカブトボーグ51話を!
  • *2: 私もよくわからない^^;

2008年04月18日

 GPLにしたので、とりあえずGPLなリリースをしとこうかな、と。

 さすがに、そろそろ開発降りたいんだぜ。あとはフロントエンド更新するだけです。

「さきゅばす」の公式サイトは移動しました

 こちらに移動しました。

バージョンアップ通告について

 ここでバージョンアップを通告するのはあと何回も無いと思ってください。

 その代わり、リリースページのRSSを取得するようにしてください。

ソフトの概要

 ニコニコ動画の動画を、コメント付きの動画として保存します。従来は「カハマルカの瞳」などのキャプチャソフトを使うのが定石でしたが、この方式では高いスペックのPCを要求し、フレームレートも低くなりがちです。

 このソフトはそうした弱点を克服し、低スペックなPCでもコマ落ちなしで綺麗に変換することが出来ます。

 変換にはffmpegを用い、iPodやPSP向けのmp4動画などを作成することも可能です。

ダウンロード

 こちらの公式サイトよりお願いします。

リリースメモ

 GPLになってはじめてのリリースです。このバージョンより、ソースも同時配布となります。

 ユーザ側から見ると、今回は前回とあまり変更はありません。せいぜいFFmpegが新しくなったことぐらいでしょうか。

更新履歴

  • 同梱のFFmpegを新しくしました。
  • ニコニコ動画の仕様変更への対応
  • バグの修正
  • FFmpegの変更にともなう各種修正
  • オープンソース以降に伴うUIその他もろもろの変更。

スクリーンショット

20080418-01.png

 チャージ三回、フリーエントリー、ノーオプションバトル!!

 というわけで、カブトボーグ見ました。狂気そのものだなwww

 毎回でてくる使い捨てヒロインがかなりかわいいのも良いですね。個人的にはシルクハット被ってる子が一番好みでした。シルクハットいいよねー!!

 であと某「Fateは文学」テンプレート的には「カブトボーグVxVはポストモダニズム」らしいよwwなんでww

 ソーカル事件から「でたらめ」ってことかな?

Fateは文学           狼と香辛料は経済
Airは芸術            なのはは友情
CLANNADは人生       こじかは葛藤
リトバスは筋肉          極上生徒会はモラトリアム
鳥の詩は国歌         ハルヒは感性
SchoolDaysは神話      ARIAは現実
君が望む永遠は哲学     すももは楽園
攻殻は政治            Myself;Yourselfは月9
うたわれるものは日本史A  アイマスはわが娘
ひぐらしは論理学       初音ミクは真実の光
EVAは聖典           00は教科書
神霊狩は音楽          true tearsは真実
Kanonは奇跡          H2Oは格差社会
ゼロの使い魔は国旗     D.C.~ダ・カーポ~は純愛
ムリョウは日常         efは旋律
まなびストレートは青春   みなみけは食事
砂糖菓子の弾丸は撃ちぬけないは社会派ミステリ
落語天女おゆいは伝統芸能  カブトボーグV×Vはポストモダニズム
らき☆すたは日常       シャニティアは英雄憚 
バンブーブレードは竹刀   シゴフミはキラメキ 

まだ再現できてない点

  • 静止画だけの動画でたまにガクガクになる。ffmpeg本体に手を入れないとだめっぽい。しかも大手術・・・。
    • libavfilterのFPSフィルタでどうにかなる?

2008年04月14日

 受験なのにコメント欄のSPAMを手動で削除するとか出来るわけないだろ常識的に考えて…

 ということで、(マシンパワー的に)安上がりだけど効果のある方法を考えてやってみました。

 今のところ来てません。どれくらいもつかな…。コメント/トラックバックの公開前の手動確認などは行っておらず、直ちに公開されるので、SPAMコメント/トラックバックが来てたら…そういう事だと思ってください^^;

スクリプト名変更

 出来れば呼び出されたくすらないので*1、スクリプトファイルの名前を書き換えてしまいます。

  • mt-comments.cgi → mt-comment.cgi
  • mt-tb.cgi → mt-trackbacks.cgi

 に書き換えた場合、mt-config.cgiの以下の部分を書き換えてください。

# AdminScript mt.pl
#ここの部分のコメントを外し、書き換えた後のスクリプト名に変更する。
CommentScript mt-comment.cgi
TrackbackScript mt-trackbacks.cgi
# SearchScript mt-search.pl
# XMLRPCScript mt-xmlrpc.pl
# ViewScript mt-view.pl
# AtomScript mt-atom.pl
# UpgradeScript mt-upgrade.pl

 これで完了です。

コメント対策

 「さきゅばす」公式サイトの掲示板でも行っている、「今年何年?」認証です。日本語が読めないと駄目なのが痛いところですが、ほとんどSPAM以外に外国語コメントは来たことがないのでまあこれで良いでしょう。

 「個別エントリ」、「コメントの一覧」、「コメントプレビュー」のテンプレートのメール欄の下に、西暦の入力欄を作成します。

<p>
  <label for="comment-code">今年は西暦何年?(SPAM対策です): </label>
  <input id="comment-code" name="code" size="30" />年
</p>

 次に、認証のためのコードを少し追加します。lib/MT/App/Comment.pmを以下を参考にして追加してください。

sub post {
    my $app = shift;
    my $q = $app->{query};
    return $app->error($app->translate("Invalid request"))
        if $app->request_method() ne 'POST';
    #追加開始
    my $code = $q->param('code') || '';
    $code =~ s/^\s+|\s+$//g;
    if ($code eq '') {
       return $app->handle_error("今年は西暦何年か答えてください。");
    }
    my @code_localtime = localtime(time);
    my $code_true_code = 1900 + @code_localtime[5];
    if ($code ne $code_true_code) {
       return $app->handle_error("今年は西暦$code年じゃないですよ。");
    }
    #追加おわり

 保存する際、自分のBlogの文字コードと同じ文字コードで保存してください。ちなみにこのサイトの場合はUTF-8です。

 どこかのページを再構築して実際にためしてみてくださいね。

トラックバック対策

 トラックバックも同じように「今年何年?」で認証するのは無理なので、メールと同じ感じでいいかなーと。。。

 そのため、必ずスクリプト名は変更してください。

 まずはページの上の方にコメントとしてついているRDFのトラックバック欄を書き換えます。

 lib/MT/Template/ContextHandlers.pmを以下を参考にして書き換えてください。

sub _hdlr_entry_tb_data {
    my($ctx, $args) = @_;
    my $e = $ctx->stash('entry')
        or return $ctx->_no_entry_error('MTEntryTrackbackData');
    require MT::Trackback;
    my $tb = MT::Trackback->load({ entry_id => $e->id })
        or return '';
    return '' if $tb->is_disabled;
    my $cfg = MT::ConfigMgr->instance;
    my $path = _hdlr_cgi_path($ctx);
    #ここを書き換え
    $path .= $cfg->TrackbackScript . '<DELETE THIS>/' . $tb->id;

 テンプレートの「エントリ・アーカイブ」のトラックバックURLのところを

<p>このエントリーのトラックバックURL: <br />
<$MTCGIPath$><DELETE THIS><$MTTrackbackScript$>/<$MTEntryID$></p>

 みたいな感じに書き換えてください。

 自動処理で数多くのBlogを同時に狙ってくるようなタイプのSPAMerには効果があるはずです。個別で狙われたら意味がほとんどありませんが、狙われたら狙われたで人気がある証拠ですので、喜んでください(えー

  • *1: コメント/トラックバックのCGIは重いから

おすすめ

ニコニコ動画コメント付動画保存
「さきゅばす」

「成分解析」

改造・解析・プログラミング

アニメ

「妖精現実」バックアップ

カレンダー

2008年05月
S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

2008年
2007年
2006年
クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type 3.35