2013-09-28 (土)
*[Android] Nexus7でOculus Riftもどきを作る(ソフトウェア) とりあえず初音ミクを動かす
Oculusといえば,とりあえずMMDかなとおもったので,いろいろ.
最初,昔書いたmqo読む奴をベースに手をつけてみたけど,どう考えても面倒なので,MMDのモーション読める何かを探す.
MikuMikuDroidが良さそう.ソース公開されているし,物理演算も実装されてるっぽい.
http://sourceforge.jp/projects/mikumikudroid/
ソースをダウンロードしてきて適当に書き換える.
...
できた.
vertexシェーダを書き換えるか,一旦テクスチャにレンダリングしてからfragmentシェーダで加工するか悩んだけど,フラグメントシェーダでやったほうが楽だし汎用的になるのでフラグメントシェーダでやることにした.MikuMikuDroidにFBO扱うクラスが入ってたのでそのまま使えたのと,フラグメントシェーダは前に書いた奴があったので,流用.
シェーダ追加して,MikuRendererGLES20とCoreLogic周りを少しいじっただけでいけた.
100円ショップのルーペのレンズに合わせてシェーダのパラメータをいじるのに苦戦.そもそも,ちゃんと球面なのかなこのレンズ.そして色収差ひどい.これはソフトウェアで吸収するの辛いし一旦諦めよう.
MikuMikuDroid のソースに加速度センサー扱えそうなコードが入ってたけど,たぶん未完成でよくわからない動作するので,やっつけで実装しなおして埋め込む.
解像度が高いのと,スタンドアロンで動くのは本物のOculusより良いですね.
mmd.gl.enchant.jsも使ってみるかなあ.Androidでまともに動くようにするの大変そうなイメージだけど.