日記

5月 20日 (日)

1. オーディンスフィア

ベースは北欧神話だけれども、中世欧風ラブロマンスの王道を行くようなストーリー。ドラマシーンなんかはそのまま戯曲になりそう。

5月 21日 (月)

1. オーディンスフィア メモ

  • ステージ間のロード時間が短めなので快適。章の最初に章データをまとめ読みしたり、ステージ突入後に敵キャラデータをロードするなど、ロードに関しては工夫が見られる。
  • プーカの隠れ地下街〜料理屋&カフェ間はロード時間が長い。
  • 城下町にいるウーズ(緑色の軟体生物)は、物理攻撃、サイクロン、フォゾンバーストによるダメージが1。能登…いやメルセデスなら普通にダメージを与えられる。敵魔法使いの剣を跳ね返して当てれば大ダメージ。K,N,Vの魔法薬なら一撃必殺。Oの魔法薬でこちらもウーズを召喚し、食わせても良い。
  • 城下町のアックスナイト戦で援軍がゴブリンの場合は、ダガーを弾いてアックスナイトに当て、毒状態にして逃げまくるという戦法もある。
  • メルセデスの章で、中盤〜後半戦でナップルの種を大量に集めた後、イルリットの森へ。クイックグロワーを取り、ナップル種を一点に集中して植えてクイックグロワーで促成栽培、ヨーグルト(偶数マテリアル+ミルクで合成)でドーピングしてからナップルの実を食べまくると、HP経験値を稼げる。
  • イルリットの森はタマネギ、溶岩地帯はハバネロ、死の国はトリカブト、魔王の都市は人参、雪山は蕪が出やすい。
  • 魔法薬名のアルファベット頭文字が、きちんとA〜Zに対応している(Xのみ例外)。地味に凄い。
  • 死神若本。渋すぎる。
  • 声優陣がやけに豪華だ。

5月 22日 (火)

1. ADSLは遅すぎる

ようやくADSLが開通した。今更ADSL?という気がしないでもないが。

申し込んでから実に一ヶ月待たされたよ。遅すぎる。基地局内でごちゃごちゃやるだけで、なぜ一ヶ月もかかるのか。開通までにかかる期間が長いのは、数年前と変わっていない。この点、以前社会問題になったことすらあったのだが、今でも改善されていないのではないか。

とにかく、インターネットに繋ぐ用意はできた。以前とは違って、モデム(兼ブロードバンドルータ)に設定が登録されており、PPPoE認証だとか面倒なことはモデムが自動的にやってくれる。楽ちん。内部PCルータのデフォルトルートをモデムに向けて接続完了。あー、やっと「いんたーねっと」できるよー。

電信八号を起動したら、未受信メールが4000通 orz

2. 能登かわいいよ能登

オーディンスフィア。謎の文字列"NotoKawaiiyoNoto"はSLPM_664.74の0x002BDC20に。

5月 24日 (木)

1. 白い悪魔

第一話だけを観て、絶賛放置中の「なのはStrikerS」。リリカルなのは(第八話)が大変なことになっているらしいので、どんなものかとyoutubeで観てみた。

…いや、別に普通では?作画が崩れ気味なのはともかく、なのはさん、優しいじゃないか。全然黒くないよ。それに結構面白いし。継続して観ていれば良かったかなあ。

5月 26日 (土)

1. オーディンスフィア

ガロン王の声、渋くて良いな。

終焉。叙事詩や覚え書きを無視して適当にぶつけていったら、見事にバッドエンドになった。正しくは、コルネリウス、オズワルド、メルセデス、ベルベット、グウェンドリンの順でいいのかな。各キャラともエリクサーは持てるだけ持っていった方がいい。魔法薬PとUも必須。相手によってはA, C, Wもあった方がよい。予備として高レベル(十の位が大きい)のマテリアルを持っていると、戦闘中でも合成してフォゾンを補充できる。注意したいのは、ラスボス戦では落としたアイテムを拾えないということ。合成後の魔法薬は諦めるしかない。

2. ブラックアウト

XRGB-3のファームウェアをアップデートしたが、ブラックアウトする現象は改善されなかった。残念。

5月 27日 (日)

1. オーディンスフィア

クリアした。クリア特典はなし。一番右の星が埋まっていないのが気になる。

今回はプリクラのようなおまけステージはないのかな。

このゲームは難易度NORMALでもそれなりに難しい。こちらの攻撃中に後ろから攻撃を受けたり、目眩〜凍結〜連続ダメージのコンボを食らって即死したりと、敵が複数であるがために難度が上がっている。ただ、プリンセスクラウンのように、敵キャラにだけ理不尽な無敵時間があるとか、戦闘開始直後こちらの硬直が解ける前に敵が攻撃してくる *1 というようなことがないのは救いか。

なお、最強キャラは高火力+紙装甲のメルセデスと思われる。ストーリーでも好きなのは「終焉」を含めてメルセデス篇だな。

  • *1: 酷い戦闘システムだよな。

2. オーディンスフィア 終焉

ネタバレメモ。難易度はNORMAL。

2.1. 一戦目

解毒のペンダントがあると楽。回転斬りは使わず、三首の中央付近で通常の空中コンボを極めた方が効率はよい。相手がジャンプしたら、せり上がる岩の上に乗り、敵の着地に合わせてジャンプすれば大ダメージを回避できる。

2.2. 二戦目

このステージはやたらと蝶が出現するような気がする。

最もうざったい敵。首を三つ撃破〜心臓攻撃を最低でも三セットこなす必要がある。脅威なのは首伸ばし攻撃。これは残っている首の数によってパターンが変わる。残り三つの時は、本体が右向きなら、本体の左側の首出現位置すれすれの場所(地面が紫に変色している部分)が安全地帯。ここに留まっていれば首に当たらず、レイスも出現しない。残り二つの時は安全地帯なし?残り一つの時は、一方向に走り続けていれば大丈夫?

2.3. 三戦目

開幕早々ありったけのナパームとラウンドショットをぶち込むとよい。数にも依るが、三分の一くらい減らせると幸せになれる。プロミネンス〜ロケットパンチ攻撃の時は、本体の近くでパンチを破壊していた方が安全か。特攻は三回で一セット。一旦速度を落としたときはジャンプ、落とさなかったときはスライディング。ジャンプの場合は下を潜って回避する。時々動きが止まる(ダメージ量に依存か?)ので、そのときに連射攻撃しておく。

2.4. 四戦目

パイプはある程度ダメージを与えると温和しくなるで、初めのうちに数箇所のパイプを黙らせておくのも良いか。蒸気吹出口は無敵っぽいが、攻撃を食らわせれば一時的に噴出が止まる。

ターゲットである目玉の耐久力は凄まじいので、長期戦は必至か。目玉の周囲四本のパーツは何度でも復活する。目玉はある程度ダメージを与えると気絶する。気絶中は無敵(ずるいよね)。

目玉がフォゾン吸収を始めたら危険信号。周囲四本のパーツがなければこちらも対抗してフォゾンを吸収。「危険!」のメッセージが出たら、即刻離れること。本体近くにいると大ダメージを食らって大抵即死。

2.5. 五戦目

一旦背中に落としたアイテムはすぐに転げ落ちてしまうので、回収は困難。

上へ上へと登っていき、角を攻撃して叩き折るのが目的。垂直雷撃を食らうと中ダメージ&下まで落とされるので注意…といってもアレは見てから躱すのは不可能(一方向に動き続けていれば当たらない?)。小雷撃は運が良ければ当たらない。電撃球はプレイヤーを追ってくる上に撃破されると小さく炸裂する。登っていく途中で首に出会ってしまったら、右の退路は断たれている状態なので、ある程度ダメージを与えてから左側に落ちた方が無難か。つまり、無傷で登るのは不可能に近いので、アンシーアブルを使った方が安全。

最上部に着いたらナパームとアンリミテッドパワーでがしがし削る。炸裂攻撃ではじき飛ばされたら登り直し。

5月 28日 (月)

1. 迷惑中国

サイトのアクセスログを見ると、やけに503 Service Unavailableが多い。それも特定の日、特定のURIに集中している。成功しているステータスを見ると、どうも分割ダウンロードっぽい(206 Partial Content)。503を食らっても、間隔を空けずに何度も何度もリトライしており、それが更なる503を生んでいると思われる。迷惑だ。アクセス元のIPアドレスで集約してみると、十個程度に絞られる。このIPアドレスをAPNICのレジストリデータで調べてみると、全て中国だった。酷いのはこの辺。

  • 59.34.5.237
  • 59.56.218.181
  • 124.72.204.158
  • 124.72.192.236
  • 125.64.206.180
  • 125.95.176.145
  • 125.95.177.151
  • 218.14.59.18
  • 218.14.62.167

NICからの割り当てIPアドレスごとごっそりアクセス拒否にしてみた。これで暫く様子を見よう。

しかし、こんな時に以前作ったIPv4データベースが役に立つとは…

2. sprintf

2月13日の日記を読み直していてふと気づいたのでメモ。

つまり、書式'%s=(%d,%d)'に対して[ 'Pos', 7, -5 ]という配列を食わせると'Pos=(7,-5)' が出力されるということ。

Pythonでは、%演算子の左辺値に書式文字列を、右辺値にシーケンス型を持ってくることで、Cのsprintf()のような動きをする。

'%s=(%d,%d)' % [ 'Pos', 7, -5 ]  # リストを指定
'%s=(%d,%d)' % ( 'Pos', 7, -5 )  # タプルを指定

面白いのは右辺値に辞書を指定した場合。書式文字列中の%の直後に辞書のキーを書くことができるので、その場所に何が展開されるのかが一目でわかるという利点がある。また、右辺値にだらだらとリスト展開しなくてよいのですっきりする。

position = { 'name': 'Pos', 'x': 7, 'y': -5 }  # 辞書を作成
'%(name)s=(%(x)d,%(y)d)' % position  # 辞書を指定

この機能、辞書配列を多用するような言語においては、sprintf(3)にあるようなパラメータ番号指定子(%1$s %2$d)よりも有用に思える。

5月 29日 (火)

1. オーディンスフィア

  • トロルの奥歯は、雪山のトロル(大サスカッチ)が稀に落とす。
  • 各キャラ章の終章では、コールフォゾンで放出したフォゾンの経験値が70と高い。また、サイファーゲージは低いほどゲージアップしやすい。この事実を利用し、ゲージが0になるまで放出〜1になるまで吸収を何度か繰り返すだけで、それなりに経験値を稼げる。

2. もってけ!

話題のらき☆すたOPをyoutubeで何度か観たのだが、何を言っているのか、歌詞がほとんどわからない。コードギアスの二期OPほどではないかもしれないが。唯一、最初の「怪物くんパート」だけははっきりわかる。

それにしても、よく動くなあ。製作、京アニだっけ。

5月 31日 (木)

1. トランジション

メモ。古村聡氏が、Oh!X復刊1998(P.57)でこう書いている。

そんななかで、私がほしいと思うのは「オーバーラップ」。これは、テレビアニメなどでは頻繁に使われている技法の一つで、その名の通り、以前のシーンをフェードアウト、これから現れるシーンをフェードインさせながら画面を重ね合わせて表示して自然にシーン転換などを行う方法です。

(略)256色モードではまず無理、フルカラーでも色を何度も計算しなければならないのでまっとうにやるとCPUパワーを必要とするなど、ちょっとプログラム的に面倒だというのはわからないでもないんですが、(略)これからのゲームには使って欲しいなぁ、と思う今日この頃なのであります。

これが書かれたのは八年以上前。Windows 98発売の頃か。標準的なマシンスペックはどの程度だったかな。確かに解像度や画面切替え速度(粒度、精度…)によっては演算量が跳ね上がるから、結構きつい処理ではある。今のマシンだって、640×480ピクセル60FPSでやろうと思ったら、結構パワーを食うんじゃないかな。計測はしてないけど。

ここで言う「オーバーラップ」というのは、吉里吉里で言うクロスフェードトランジションのこと。吉里吉里のクロスフェードトランジションでは、初めにトランジション前後両方の画像ありきで考える。「以前のシーン」をトランジション前の画像に、「これから現れるシーン」として真っ黒な画像を後の画像に指定すると、フェードアウトとなる。逆ならフェードインになる。だから吉里吉里には単純なフェードイン/アウトというものがない。フェードイン/アウトはクロスフェードの一形態である。

フェードインとフェードアウトの組み合わせがオーバーラップだと見るか、クロスフェードの一形態としてフェードイン/アウトがあると見るか。結果はどちらも同じだが、考え方というかアプローチが逆だね。

2. JavaScriptで書かれたvi

以前、ビジュアル系Webブラウザ+JavaScriptでテキストエディタ作れるんじゃね?と思って、いろいろ脳内で設計を進めたことはあった。Framesetを使って画面を左フレームと右フレームに分け、左フレームはMS Wordの見出しリストのように文書構造をツリー表示、右はHTMLのTEXTAREA要素を使った入力用。これなら視覚系ブラウザさえあれば他のソフトをインストールせずに済む。HTMLエディタくらいなら作れそうだ。なんだ、結構いけるんじゃないか…

そこまではよかったが、通常ブラウザのJavaScriptの実装にはクライアントマシンに対するファイルI/Oがないことに気づいて愕然とした。CGIやServletを使ってサーバサイドにファイルを保存するという手も考えたが、それはそれでファイル自体の扱いが面倒臭くなりそうだ。サーバも立てないといけないし。というわけで断念した。