NyARToolkit+NyMMDのオリジナルソースのままの場合
マーカーを検出するとマーカー画像に垂直な姿勢を維持してモーションします。
インストールはこちら
NyARToolkit + NyMMD(改)
マーカー検出をトリガーにしていますが、ミクさんのモーションはマーカー位置や向きとは無関係にしてみました。
インストールはこちら
NyMMD
NyARToolkitとは無関係にミクさんに歌って踊っていただきました。
ポートレートとランドスケープを切り替られるようにしてみました。
切り替えは画面上のボタンをタップして行います(傾きセンサーはまだ使っていません)。
インストールはこちら
NyARAndMarkerSystemは無効にしていますが、CameraPreviewのコードはそのまま使っています(無地の背景ではチト素っ気無い)。
画面サイズを取得するコードを変更しています。フルスクリーンでカメラを使いたかったし、APIのLevel13以降にも対応したかったもんで...。
拡大・縮小や方向の変更は、glLoadMatrixfに4x4のマトリックスを引数で与えればOK...だと思う。
ソース
NyARToolkit + NyMMD
NyARToolkit project
サウンド(ピアプロ)
サディスティック・ラブ歌ってみました*ちいもた
初音ミクモデル
この方のページからダウンロードしたものに同梱されていたもの。
三次元CG@七葉(http://nanoha.kirara.st/3dcg/index.html)に投稿された初音ミクモデルデータ(nh0163.zip)を、MikuMikuDance用に変換したもの.....だそうです。
モーション(↓ここ...だったような?)
【MikuMikuDance】サディスティック・ラブ
参考までにこの場合のマトリックスはこんな感じ(ポートレートの場合)。
float m[] = new float[16];
m[0] = 0.087351315f;
m[1] = 0.9769368f;
m[2] = 0.194844f;
m[3] = 0.0f;
m[4] = -0.5970408f;
m[5] = 0.2079125f;
m[6] = -0.77479976f;
m[7] = 0.0f;
m[8] = -0.79744095f;
m[9] = -0.048650034f;
m[10] = 0.60143256f;
m[11]= 0.0f;
m[12] = 88.18011f;
m[13] = 61.407455f;
m[14] = -329.6059f;
m[15] = 1.0f;
OpenGLの場合、インデックスが12,13,14のものがそれぞれ、X,Y,Z方向の平行移動量です。
ミクさんを画面中央に置く場合は、m[13] = 0.0f;にする....といった具合です。
オリジナルのコードだと開始後、目を閉じるような(あるいは笑っているような)表情になってます。
この制御は、jp.nyatla.nymmdパッケージのAmdMmdMotionPlayer.java内のupdateFace関数で行っているようです。
管理人はコードの読み込みがまだ不十分なので、とりあえずここのコードをストップすれば目を閉じなくなります。
でも何故なのかはまだ不明。VMDViewで確認してみましたが、普通に目は開いているのですが....?
ガベージコレクション(GC)について
このアプリではミクさんに踊ってもらう以外に歌詞を36枚ほどの画像で表示しています。
その際、outOfMemoryErrorが発生して「予期せず停止」という事態になることがあります。
ヒープが食い尽くされちゃってアプリが落ちるというわけです。そのため使ったメモリは開放してやる必要があります。
特にスマホはヒープ領域が小さいので、どんどん落ちます。
現アプリではonDestroyでGCを行っています(多分もう1箇所必要)。
歌詞はImageViewで表示していますが、GCのコードはこんな感じです。
ImageView imageA;
Drawable toRecycleA = imageA.getDrawable();
if(toRecycleA != null){
((BitmapDrawable)toRecycleA).getBitmap().recycle();
}
imageA.setImageDrawable(null);
でも、API Levelが10より大きい場合、このコードが原因でエラーになりますのでご注意ください。
インストール
Target:Android 2.3.3 or later
動作確認実機:Xperia acro(docomo) Android 2.3.4、dtab01(docomo) Android 4.1.2
注
以下3つのアプリはパッケージ名が同じなので続けてインストールしようとすると上書きされますので、ヨロシク。
NyARToolkit + NyMMD
|
マーカー |
|
NyARToolkit + NyMMD(改)
|
マーカー |
|
NyMMD
アプリをQRコードからインストールする方法はコチラを参照
タブレットの場合
QRコードでダウンロードすると、Downloadフォルダー内でzipファイルになってインストールできない状態の場合があります。
その場合は、拡張子のzipをapkに変更してファイル名をタップすればインストール用のダイアログが出ますので、そこからインストールしてください。
アプリの終了は必ず「戻る」のハードキー(ソフトキー)で行ってください。
このアプリはまだ非公開バージョンですので、インストール・実行などは自己責任で行ってください。
NyMMDの場合、起動後「予期せず停止しました」というエラーが出ることがあります。
これは、歌詞を画像で表示しているのですが、イメージ処理の際のガベージコレクション(GC)の問題だと思います。
Androidのバージョン3.0以降はGCの問題は解消されているようですが...。
対応コードは入れてますが、まだ不十分です。
「予期せず停止」した場合はアプリを再起動してください。
また、初回インストール時に起動した際、ミクさんが現れないことがあります。
その場合も再起動。
よろしくお願いします。