今回は Raspberry Pi で Perfume のモーションデータを動かしてみました。
PerfumeのモーションデータやBGM、ソースコードは以下のサイトからダウンロード出来ます。
http://www.perfume-global.com/
このサンプルプログラムは openFrameworks を使用しているので、
まずはコレを使えるようにします。
https://github.com/openFrameworks-RaspberryPi/openFrameworks/wiki/RaspberryPi
を参考にコンパイル。
openFrameworks の RaspberryPi 用ソースコードも上記サイトにあります。
make時は
make Debug
がいいかも知れません。
リリース版だとサンプルプログラムが動かなかったのよねぇ~(;´д`)
GPUは256MBに~と書いてある?ので
sudo raspi-config
で256MBに設定します。
openFrameworks をコンパイルしたら Perfume のサンプルプログラムを
コンパイルするのですが、これはOpenGL用に書かれてる?ようなので、
ほとんどコンパイルできません。
RaspberryPi は組み込み向け用?の OpenGL ES をサポートしているみたいです。
今回はとりあえず、動いて音が鳴ればいいなってことで、
example-sync-sound をコンパイルし、実行してみます。
Perfumeサンプル/example-sync-sound ディレクトリを最初にコンパイルした
openFrameworks のディレクトリ openFrameworks/apps/devApps/
にコピーします。
openFrameworks/apps/devApps/raspberrypi_hello_world/ から makefile、config.make を
openFrameworks/apps/devApps/example-sync-sound/ へコピー。
Perfumeサンプル/ofxBvh/src/ から ofxBvh.cpp、ofxBvh.h を
openFrameworks/apps/devApps/example-sync-sound/src/ へコピー。
openFrameworks/libs/openFrameworks/sound/ から
ofOpenALSoundPlayer.cpp、ofSoundPlayer.cpp を
openFrameworks/apps/devApps/example-sync-sound/src/ へコピー。
makefile に以下の行を追加
OF_PROJECT_LDFLAGS = -lopenal -lsndfile
私は一番下の include の前に追加しました。
openFrameworks/apps/devApps/example-sync-sound/src/testApp.cpp を編集
32行目の glBegin(GL_LINE_STRIP); から46行目の glEnd(); をコメントアウトします。
openFrameworks/apps/devApps/example-sync-sound/src/main.cpp を編集
openFrameworks/apps/devApps/raspberrypi_hello_world/src/main.cpp
と全く同じ内容にする。
ので、上書きコピーでいいですね。
ここまでの準備ができたらコンパイル
cd openFrameworks/apps/devApps/example-sync-sound/
make Debug
openFrameworks を make Debug でコンパイルした場合はここも同じで。
うまくコンパイルできれば
openFrameworks/apps/devApps/example-sync-sound/bin
に example-sync-sound_debug が出来上がっていると思います。
Perfumeグローバルサイトからダウンロードしたwavファイル Perfume_globalsite_sound.wav を
openFrameworks/apps/devApps/example-sync-sound/bin/data/
にコピー。
モーションデータ(aachan.bvh、kashiyuka.bvh、nocchi.bvh)を
openFrameworks/apps/devApps/example-sync-sound/bin/data/bvhfiles/
にコピー。
で実行~(ノ゜o゜)ノ
すると以下の動画ような感じになります。
XWindowなしで動作して、動きは普通にスムーズですね~。