]
トップ «前の日記(2013-12-12) 最新 次の日記(2014-02-10)» 編集

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 とほぼ同じになる。