Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2014-02-03 [長年日記]
_ MikuMikuPenguin を Debian GNU/Linux Wheezy で動かす(OpenGL 2.1)
3Dのモデルを動かすことができる。pmx と vmd の形式と呼ばれるファイルを読み込み、PMXViewer として動く。ライセンスは GPLv3 (https://github.com/sn0w75/MikuMikuPenguin) で開発が進んでいる。いまは、PMXViewer だけだが、libmmp を作って、利用されるのが直近の目標のようだ。
開発者は、かなり日本語が上手なアメリカ在住の人みたいで、英語はもちろん、日本語も堪能だ。が、3Dモデルの世界では用語も難しく(日本人でも関心がなければ、そのような語彙は身に付かないだろう)、C++のプログラミングだけでなく、ドキュメンテーションなどでも助力できる人もいるんじゃないかと思う。
以下は、ThinkPad X201s の上で、Debian GNU/Linux Wheezy で、MikuMikuPenguin の PMXViewer をコンパイルして動かすまでの話です。
ビルドどれをビルドするか、github の master は、OpenGL 3.0 以上を想定している。いまの README.md にはチェック方法を書いているので、そっちを参照してもらいたい。
buildをするのに、wheezy の下記のライブラリをインストールする。細かい所だと、抜けがあるかと思う。私は他の関係で automake, autotool など入れているから。
sudo apt-get install build-essential sudo apt-get install libglfw-dev sudo apt-get install libglew-dev sudo apt-get install libglm-dev sudo apt-get install libsoil-devで、libbulletdynamicsは、wheezy にはない。sidからソースパッケージを取ってきて、自分のマシンでrebuildする。buildd-depの解決はそんなに難しくない。下記参照。(ただし、クリーンな環境から試してないから抜けてる依存関係があるかもしれないが)deb-src をsidに向けて、apt-get source で、 bullet のソースコードを落として、再ビルドすればいい。
sudo apt-get install cmake freeglut3-dev libtinyxml-dev zlib1g-dev doxygen rdfind symlinks再ビルドすると、
yabuki@yelona:~/src/deb-package/i386/libbulletdynamics$ ls bullet-2.81-rev2613+dfsg2 bullet_2.81-rev2613+dfsg2-1.debian.tar.xz bullet_2.81-rev2613+dfsg2-1.dsc bullet_2.81-rev2613+dfsg2-1_i386.build bullet_2.81-rev2613+dfsg2-1_i386.changes bullet_2.81-rev2613+dfsg2.orig.tar.xz libbullet-dev_2.81-rev2613+dfsg2-1_i386.deb libbullet-doc_2.81-rev2613+dfsg2-1_all.deb libbullet-extras-dev_2.81-rev2613+dfsg2-1_i386.deb libbullet2.81-dbg_2.81-rev2613+dfsg2-1_i386.deb libbulletcollision2.81_2.81-rev2613+dfsg2-1_i386.deb libbulletdynamics2.81_2.81-rev2613+dfsg2-1_i386.deb libbulletfileloader2.81_2.81-rev2613+dfsg2-1_i386.deb libbulletsoftbody2.81_2.81-rev2613+dfsg2-1_i386.deb libbulletworldimporter2.81_2.81-rev2613+dfsg2-1_i386.deb libbulletxmlworldimporter2.81_2.81-rev2613+dfsg2-1_i386.deb libconvexdecomposition2.81_2.81-rev2613+dfsg2-1_i386.deb libgimpactutils2.81_2.81-rev2613+dfsg2-1_i386.deb libhacd2.81_2.81-rev2613+dfsg2-1_i386.deb liblinearmath2.81_2.81-rev2613+dfsg2-1_i386.debな感じで、パッケージができあがっているので
sudo dpkg -i libbulletdynamics2.81_2.81-rev2613+dfsg2-1_i386.deb libbulletcollision2.81_2.81-rev2613+dfsg2-1_i386.deb liblinearmath2.81_2.81-rev2613+dfsg2-1_i386.deb libbullet-dev_2.81-rev2613+dfsg2-1_i386.deb libbulletsoftbody2.81_2.81-rev2613+dfsg2-1_i386.deb上記のようにインストールする。後は
export CXXFLAGS="-fpermissive" autoreconf -i ./configure makeで、カレントディレクトリに、pmx という実行ファイルができてるはず。このバイナリーにデータを入力するといいのだが、Windowsな世界なので、漢字コードが違うファイル名でzipされているので、Ubuntuの unizp -O オプション(これは、ubuntuだけでなく、arch Linux でも、upstreamに還元せずに自前で保守されているようだ)を使って、圧縮ファイルを伸長するか、samba を使い、windowsでの伸長された内容を取ってくる。smbclientでもいいかと思う。
データ自体は、NicoNico系で取ってこれるとおもう。
$ ls -la 合計 18596 drwxr-xr-x 5 yabuki yabuki 4096 1月 31 03:51 . drwxr-xr-x 18 yabuki yabuki 4096 1月 29 13:19 .. drwxr-xr-x 14 yabuki yabuki 4096 2月 1 04:11 MikuMikuPenguin drwx------ 3 yabuki yabuki 4096 1月 28 22:13 Tda式初音ミク・アペンドVer1.00 -rw-r--r-- 1 yabuki yabuki 18216215 1月 28 22:12 Tda式初音ミク・アペンドVer1.00.zip drwx------ 2 yabuki yabuki 4096 1月 28 22:14 私の時間short -rw-r--r-- 1 yabuki yabuki 766184 1月 28 22:12 私の時間short.zip本当は、Debian GNU/Linux Sid ならもっと簡単
Debianの開発版である、Sidを使った方がもっと簡単なのだ。が、人によっては開発版で生活できない人もいる。ので、安定版のWheezyでやりましたが、自力で調べて問題解決できる人間なら、Debian Sidの方が話が早い。再ビルドもしなくていいし、ライブラリのバージョンも upstream とほぼ同じになる。