2009年07月21日

縦画面化ツールを東方星蓮船に対応させました。

東方星蓮船の体験版が出ていたので、縦画面化ツールを更新しました。

真・東方縦画面化ツール

th12pivot

風神録や地霊殿よりも増えている表示項目ですが、スペルカードのゲージは左下に表示させました。最大得点、グレイズは非表示です。UFO出現中に右側に出る表示も非表示です。

2009年07月21日 【雑記】 | コメント(0) |
2009年07月20日

HTMLのブロックレベルでrobots.txtに相当する機能が欲しい

私がウェブサイトをデザインする際のポリシーは、ランキングを上げる目的でのSEOよりも、検索の質を上げることを重視しています。

検索の質を上げるというのは、一言で言うと「がっかりリンクを無くす」ことになります。すなわち、見たいと思っているページと関係ないページが検索結果に表れないようにすることです。(infoseekの検索精度が低かった頃に、調べていることと関係ないが興味深いページが見つかるのが面白くて使っていた時期はありましたがw)

検索の質を上げるために私がしていることは、主に次の2つです。

  • タイトルだけで内容が分かるようにする
  • 関連性のない複数の記事が表示されるページは検索にひっかからないようにする

タイトルに関しては、できるだけ説明的な文章でGoogleの検索結果に表示される長さに収めるようにしています。(Google以外の検索サイトからのアクセスは4%未満なので他は気にしない)

複数の記事が表示されるページというのは、アーカイブ系のページです。複数キーワードによる絞り込み検索を行った際に、各キーワードが異なる記事に点在していると、期待した検索結果が得られません。そこで当ブログでは、アーカイブ系のページにはnoindexを指定しています。

しかし、noindexやnofollowはページ単位での制御しかできません。ブログ系のウェブページでは、記事とは別にツールバー的なエリアがあるのが一般的で、最近更新された記事やコメント、タグクラウド等の情報が表示されます。これらの情報は特定の記事とは無関係ですが、全てのページで表示されるのが普通です。そのため、記事とは関係のないキーワードが同じページに表示されることになります。

当ブログにもタグクラウドがありますが、タグの中に「Silverlight」と「Python」があるために、「Silverlight Python」で検索すると、ほぼ全てのページがヒットしてしまいます。実際にSilverlightとPythonについて書いたのはIronPythonの紹介で一言触れた程度で、SilverlightでPythonを扱う記事は1つもありません。

ページ単位よりも細かく、HTMLのブロックごとに検索エンジンの制御ができる機能があれば、利便性を損なわずにこの問題も解決できます。例えばHTMLのブロック要素にnoindexクラスを指定するという方法ならば、現在のHTMLやCSSの規格内でも実現できると思います。あるいは、robots.txtのような形でクラス単位で指定できるようにするという方法も有ると思います。

検索サイトだけでなくアンテナ系にも使えると思うので、その手のものを作っている人/企業で、そんな仕組みを検討して欲しいです。(アンテナ系は更新チェックをRSSで行えば済む話だが)

2009年07月20日 【雑記】 | コメント(0) |
2009年07月12日

縦画面化ツールの各種拡大フィルタについて

真・東方縦画面化ツールに搭載した拡大フィルタについて補足しておきます。

以前のアス比固定拡大ツール等ではバイキュービック等の高度なフィルタは後から追加するプラグイン式でしたが、今回は最初から組み込まれていて簡単に切り替えができるようになっています。ゲーム中に切り替えも可能なので、画質や負荷の比較も容易になっています。

今回搭載したフィルタは次の5つです。

  • バイリニア
  • Bスプライン
  • バイキュービック(簡易版)
  • バイキュービック(修正版)
  • Lanczos2

バイリニアのみピクセルシェーダを使用していません。Bスプラインとバイキュービック(簡易版)はピクセルシェーダ2.0以上で、バイキュービック(修正版)とLanczos2はピクセルシェーダ3.0以上で動きます。基本的に上記リストで下にいくほど重いフィルタになります。

バイリニアは、シャープネス0のときにバイリニアフィルタ、シャープネス1のときにポイントフィルタ(いわゆるフィルタ無し)、中間ではその両者を混合した画像になります。シャープネスが0または1のときは混合処理をスキップするので、少しでも軽くしたい場合は0か1にすると良いと思います。

Bスプラインは16点から補間する手法ですが、フィルタの性質上少しボケた画像になります。バイキュービックよりも軽いフィルタが作れそうなので作ってみたのですが、バイキュービック(簡易版)との差はあまり無いようです。なお、このフィルタでは、シャープネスの調整はできません。

バイキュービック(簡易版)は、本来は16点補間のバイキュービックから、影響が少ない四隅の4点を省略して12点補間にしています。バイリニアよりもくっきりした画像になりますが、シャープネスを上げるとリンギング(色が急激に変化する部分の周りにできるノイズ)が発生します。

バイキュービック(修正版)は、16点補間の真のバイキュービックフィルタに、リンギングの発生を抑える処理を加えています。この処理を加えたことで、次のLanczos2との差はあまり無くなったと思います。バイキュービック(簡易版)とはシャープネスが1に近づくほど差が出てきます。

Lanczos2は、バイキュービックよりも画質が良いと言われるフィルタで、ボケが少ないわりにリンギングが控え目の傾向になります。ただし、バイキュービック(修正版)の3倍以上の命令数と、かなり重いフィルタになっています。また、シャープネスの調整ができません。

ピクセルシェーダ2.0で使えるフィルタでも、3.0が使用可能な環境では自動的に3.0バージョンを使用するようになっています。

各シェーダの重さの目安となる命令数は次のようになっています。

  PS2.0版 PS3.0版
バイリニア - -
Bスプライン 52 41
バイキュービック(簡易版) 58 52
バイキュービック(修正版) - 73
Lanczos2 - 233

Lanczos2の命令数がかなり多いですが、GeForce9600GTで東方ならばこの程度は屁でもないです。

ちなみにGeForce9600GTで各フィルタの負荷を比べてみたところ、Bスプライン≦バイリニア≒バイキュービック(簡易版)<バイキュービック(修正版)≒Lanczos2、という傾向でした。

最近のGPUでは昔ながらの固定機能は実装していなくて、内部的にはシェーダを使用したエミュレーションになっているので、固定機能を使ったバイリニアが意外と遅いみたいです。バイリニアフィルタ自体はテクスチャユニットが標準的に装備しているフィルタで、このツールで使用している処理をピクセルシェーダで実装すると4命令程度で済むので、これもシェーダにした方が軽いかもしれませんね。

バイキュービック(修正版)とLanczos2は、どちらもテクスチャ参照回数が16回になっています。命令数が3倍も違うのに負荷が大して変わらないのは、テクスチャアクセスがボトルネックになっているようです。

2009年07月12日 【雑記】 | コメント(0) |
2009年06月08日

落書き感覚で遊べる物理シミュレータ Phun

Phunは落書きのように作図して遊べる、2次元の物理シミュレータです。

解析等に使うような真面目なシミュレータというよりも、玩具として遊ぶために作られていて、楽しみながら物理を学ぶのに適しています。

image

ピタゴラそうちのようなものを作って遊ぶこともできます。実物だと一度作動させてしまうと元に戻すのが大変ですが、Phun上なら何度でも楽しめます。

玩具といってもそれなりにちゃんと動くので、静止図だけでは分かりづらい複雑なリンク機構を実際に動かして確認するのにも便利です。

試しに練習で、2つほどサンプルを作ってみました。

・ホーキンスリンク機構

初めてこれを見たときは衝撃を受けました。シンプルな構造で、回転運動が歩行ロボットの足運びに最適な動きに変化します。

直線的な動きで地面を蹴り、足を持ち上げたら素早く前に戻します。まさに歩行モーションそのものでしょう。黄色のパーツは一定速度で回転していますが、直線的な動きの部分の方が時間が長く、持ち上げて前に戻す部分が短いので、これで足を動かせば直線的な動きの部分で両足が接地している時間もできます。

ただし、この機構をロボットの足運びに使うには致命的な欠点があって、動画を見ても分かるとおり、足の動きと足の向きが逆です。歩行ロボットに使うにはこれを上下反転させないといけないのですが、そのための機構というのは結構大変で、実際にこの機構をロボットに応用している人の多くが逆向きのまま弧の部分で地面を蹴るように使っています。

ちなみに、私がこれを初めて知ったときは、チェビシェフリンクと紹介されていました。しかし、正確にはホーキンスリンクと言うようです。チェビシェフリンクは等速回転部分が、ホーキンスリンクの足先の軌跡を描きます。動きが同じなので、ホーキンスリンクはチェビシェフリンクの亜種として扱われているのかもしれません。

・楕円コンパス

楕円コンパスというのはいくつか方法があるのですが、その中でも構造が分かりやすいものを作ってみました。

こんなので奇麗な楕円が描けています。最後はご愛嬌w

実はPhunだけでこのような機構を作るのは難しいです。ホーキンスリンクは各リンクの長さが厳密に決まっているのですが、Phunは落書きのようにデザインすることを想定しているので、位置や大きさを厳密に調節する機能がありません。最初は、定規のようなものを作って目測でリンクを組んでみたのですが、ほんの僅かなズレでも直線的な動きにならずに駄目でした。

今回はSVG2Phun2という、SVG画像から変換するソフトを利用しました。元となるSVG画像はInkscapeで作成しました。

ニコニコ動画にもPhunの動画が沢山あるので、私が見た中で面白かったものをいくつか挙げておきます。

Phunでトイレが作りたくなった

Phunでデッドコースターを再うpしてみた

Phunで海賊船を営業再開してみた

動画で楽しむ!!うんたん機構学 【けいおん!】

トイレのやつは作図段階から映っているので、どんな感じか分かりやすいと思います。うんたん機構学は、背景に注目です。チェビシェフリンクも出てきます。

こんなのが手軽に家のPCで遊べるってのは良い時代になったものです。

タグ:Phun
2009年06月08日 【雑記】 | コメント(1) |
2009年04月19日

オンライン英和辞典

英文を読む際、デスクトップPCではGoogleツールバーのマウスオーバー辞書と紙の英和辞典で間に合っていたのですが、ネットブックでは移動して使うので紙の辞書は使いづらく、オンラインの英和辞典を利用することにしました。

オンラインで利用できる英和辞典は沢山ありますが、今回はgoogleで「英和辞典」で検索して出てきた上位4つを比べてみました。

私は数学やプログラミング関係の用語なら比較的よく知っているのに対して、日常会話で使うくだけた表現が苦手なので、その方面が強い辞書の方が助かります。

今回はrockの「格好いい」という意味と、ownの「勝つ」という意味が載っているか調べてみました。この2つの言葉はいわゆる若者言葉で、学校で習うような綺麗な英語ではありませんが、掲示板やチャットでは頻繁に使われます。

goo エキサイト アルク Yahoo!
rock × ×
own × ×

どちらの単語も、この意味が載っていたのはgooとアルクだけでした。gooもアルクも辞書データとして「英辞郎」を使用しています(gooはEXCEEDからも検索可能)。生きた英語という点では、英辞郎が一番良さそうです。

また、残念ながらYahoo!辞書にはこれらの意味は載っていませんでしたが、例文等が多めに載っていて紙の辞書に近い感じです。私が今まで見てきた電子辞書は、例文や細かいニュアンスの説明等が省かれているものばかりだったので、Yahoo!辞書の情報量は好印象です。

というわけで、訳の品質の良さそうなgoo辞書と、付加情報の多そうなYahoo!辞書を使っていこうと思います。

2009年04月19日 【雑記】 | コメント(1) |
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。