nekosystemさんがM5StackでARライクな動作をする素晴らしいアプリを作ってくれました。
M5Stackで姿勢に応じた3D表示をする
用意するもの
・M5Stack Fire : Fireを使用するのは加速度センサーとPSRAMが搭載されているためです。
・SDカード: MMDモデルのデータを入れます。
プログラム
プログラムはM5Stack_MMDのM5StackFIRE_MMDになります
使い方
- M5Stack_MMDにあるModelフォルダ内の各pmdファイルとbmpファイルを全てSDカードのルートフォルダに置く。
- Arduino IDEでM5StackにM5StackFIRE_MMD.inoを書き込む。
- MMDモデルが表示される。M5Stackを動かすとARライクな動作をする。
- ボタンを押すことで拡大・縮小とモデルの変更ができる。
好きなMMDモデルを使う
M5StackFIRE_MMDで使えるMMDモデルは本アプリの専用データではなく、本家MikuMikuDanceやPmxeditorでも使えるものですが、以下の制限があります。
- PMDファイル名、テクスチャファイル名はASCIIコードでなければならない
- テクスチャファイルは128×128ピクセルの16bit ARGB(1-5-5-5)ビットマップ形式ファイルでなければならない。
- PMX形式は非対応。PMD形式でなければならない。
テクスチャファイルはGimpを使ってサイズの変更、ファイル形式の変更をすることが出来ます。
MMDモデルはPmxEditorを使ってテクスチャファイル名の変更、PMX形式からPMD形式への変更が出来ます。
MMDモデルはフリーのものがWeb上に大量にあります。しかしモデルによって改造許可や再配布許可の規約が異なります。readme.txtを良く見てご利用ください。
描画速度は秒間約27000ポリゴンです。ポリゴン数が多いモデルは描画が遅くなります。
理論
M5Stackではありませんが、マイコンによる3Dレンダリングを以下の動画で解説しています。
【ゆっくり解説】 PICマイコンでMMD 【電子工作】