前回のをPythonで動作させるライブラリ。
成果物
情報源
スクリプト
install_opengl.sh
!#/bin/bash sudo apt-get install -y libx11-dev xorg-dev \ libglu1-mesa libglu1-mesa-dev \ libgl1-mesa-glx libgl1-mesa-dev sudo apt install -y libglfw3 libglfw3-dev sudo apt install -y libglew-dev sudo apt -y install freeglut3 freeglut3-dev sudo apt -y install libglu1-mesa-dev mesa-common-dev sudo apt -y install libgles2-mesa-dev libegl1-mesa-dev xorg-dev sudo apt -y install libglew-dev sudo apt -y install libbullet-dev
build.sh
cd .
build_mmdpi.sh
build_mmdpipy.sh
build_mmdpi.sh
git clone https://github.com/shirobu2400/mmdpi cd mmdpi cmake . -Dpi=on make sudo mkdir -p /usr/local/include/mmdpi sudo cp ./libmmdpi/mmdpi.h /usr/local/include/mmdpi sudo cp -r ./libmmdpi/vmd /usr/local/include/mmdpi sudo cp -r ./libmmdpi/pmx /usr/local/include/mmdpi sudo cp -r ./libmmdpi/pmd /usr/local/include/mmdpi sudo cp -r ./libmmdpi/model /usr/local/include/mmdpi sudo mkdir -p /usr/local/lib/mmdpi sudo cp ./libmmdpi/libmmdpis.so /usr/local/lib/mmdpi/libmmdpis.so cd ..
build_mmdpipy.sh
sudo apt -y install libboost-dev libboost-python-dev python-opengl pip3 install pyopengl git clone https://github.com/shirobu2400/mmdpipy cp ./mmdpi/libmmdpi/libmmdpis.so ./mmdpipy/libmmdpis.so cd mmdpipy make cd ..
run.sh
cd mmdpipy python sample.py -p "pmxファイルパス" -v "vmdファイルパス"
all.sh
install_opengl.sh build.sh run.sh
run.sh
のsample.py
引数にpmx(pmd)ファイルパスを渡すとそのモデルが表示される。また、vmd
も渡せばモデルが動く。pmd,vmdは適当にググってダウンロードすること。
調査
上記スクリプトを作るに当たって、mmdpypiのMakefileを調査した。mmdpiをインストールするパスが書いてあるので、そのとおりにmmdpiの各種ファイルを配置してやる。すると、mmdpypiをビルドする準備が整う。
INCLUDE_PATH = -I/usr/local/include/mmdpi -I/usr/local/include/bullet -I/usr/include/bullet -I/usr/include/python2.7 -I/usr/include/python3.5 LIBRARY_PATH = -L/usr/local/lib -L/usr/lib -L/usr/local/lib/mmdpi
所感
Pythonなら簡単かも。と思ったが、コードの内容をみるとほぼC/C++のAPIをそのまま使うような状況。それでもメモリや文字列の扱いは簡単になるし、Makefileも作らずに済むから楽。
対象環境
- Raspbierry pi 4 Model B
- Raspbian buster 10.0 2019-09-26 ※
- bash 5.0.3(1)-release
- Python 2.7.16
$ uname -a Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux