MikuMikuDance 遊び

MikuMikuDance のデータについて結構 web に情報があるみたいだったので、適当に parser 書いて 2D canvas とか WebGL で動かして遊んでみて、 SDL off 2010 summer で紹介してみたりしました。

で、動く URL にリンクはろうかと思ったんですが、よく考えるとこのデータのライセンスどこにも書いてないなーと思ったのでやめておくことに。まぁ本当はボーンのあれこれとかやりたかったのにやってないのとかで、激しく作りかけなのでまぁどうでもいいでしょう的な。

http://shinh.skr.jp/dat_dir/mmd.tgz

一応このソースコードをダウンロードして、本家のパッケージから拾ってきた pmd ファイルとかを、例えば miku.pmd という名前で保存して、

% ruby mmd.rb miku.pmd

とかで miku.pmd.js ができるはずです。ていうかミク以外いつのまにか動かなくなってたけどまぁ良いことに。

確認したブラウザは、 canvas の方は IE9, Firefox 3.5, Chrome, Safari あたりで WebGL の方は ChromeFirefox 3.7 です。

わかったことは canvas だとこんだけ頂点あると速度的にキツいなーということと、 WebGL はカジュアルに 3D プログラミングができていいかもしれんねーと。頂点全部 GPU に送ってあるからすごい速いし。

WebGL はどうも「OpenGL ES 2.0 ベースだから当たり前」らしいんですが(私は OpenGL ES とか知らないので当たり前かどうかは知らない)、 shader 書くのが前提になっていて、 glVertex3f とかそのへんが無いんですね。 shader はどうもスクリプトタグの中に置くのが流儀らしく HTML の中に

<script type="x-shader/x-vertex">

とか書くとか結構びっくり。

あと pmd ファイルの format については、最初の方はこちらを

http://www.neo-tech-lab.co.uk/MikuMikuDance/PMD1.htm

最後の方は

http://code.google.com/p/nymmd/

のコードを参考にさせてもらいました。

SDL-off の方は isshiki さんの 3D メガネと、 gony さんがその場で 3D メガネ対応してたのが面白かったです。

あと少しやったアナログゲーが面白かった。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h