背景の透明化ができないがミクがダンスしてくれた。
成果物
手順
OpenGL等インストール
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
sabaビルド
git clone https://github.com/benikabocha/saba/blob/master/README.jp.md cd saba mkdir build cd build cmake .. make -j4 ./saba_viewer
一部エラー
[ 98%] Built target gtests /tmp/work/saba/example/simple_mmd_viewer_glfw.cpp: In function ‘bool SampleMain(std::vector<std::__cxx11::basic_string<char> >&)’: /tmp/work/saba/example/simple_mmd_viewer_glfw.cpp:1245:18: error: ‘GLFW_TRANSPARENT_FRAMEBUFFER’ was not declared in this scope glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GL_TRUE); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /tmp/work/saba/example/simple_mmd_viewer_glfw.cpp:1245:18: note: suggested alternative: ‘GL_READ_FRAMEBUFFER’ glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GL_TRUE); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ GL_READ_FRAMEBUFFER make[2]: *** [example/CMakeFiles/simple_mmd_viewer_glfw.dir/build.make:63: example/CMakeFiles/simple_mmd_viewer_glfw.dir/simple_mmd_viewer_glfw.cpp.o] エラー 1 make[1]: *** [CMakeFiles/Makefile2:469: example/CMakeFiles/simple_mmd_viewer_glfw.dir/all] エラー 2 make: *** [Makefile:95: all] エラー 2
saba実行
./saba_viewer
- 適当にダウンロードした
pmd
(pmx
)やvmd
ファイルをドラッグ&ドロップする
- マウス移動とホイールでカメラを調整する
- 画面左にある
Control
→Animation
→Play
をクリックする - 踊りだす
情報源
cmake $ make -j4 [ 6%] Built target fcpp [ 36%] Built target lua [ 59%] Built target Saba [ 60%] Building CXX object example/CMakeFiles/simple_mmd_viewer_glfw.dir/simple_mmd_viewer_glfw.cpp.o [ 62%] Built target mmd2obj [ 88%] Built target SabaViewer [ 90%] Built target saba_viewer [ 98%] Built target gtests /tmp/work/saba/example/simple_mmd_viewer_glfw.cpp: In function ‘bool SampleMain(std::vector<std::__cxx11::basic_string<char> >&)’: /tmp/work/saba/example/simple_mmd_viewer_glfw.cpp:1245:18: error: ‘GLFW_TRANSPARENT_FRAMEBUFFER’ was not declared in this scope glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GL_TRUE); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /tmp/work/saba/example/simple_mmd_viewer_glfw.cpp:1245:18: note: suggested alternative: ‘GL_READ_FRAMEBUFFER’ glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GL_TRUE); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ GL_READ_FRAMEBUFFER make[2]: *** [example/CMakeFiles/simple_mmd_viewer_glfw.dir/build.make:63: example/CMakeFiles/simple_mmd_viewer_glfw.dir/simple_mmd_viewer_glfw.cpp.o] エラー 1 make[1]: *** [CMakeFiles/Makefile2:469: example/CMakeFiles/simple_mmd_viewer_glfw.dir/all] エラー 2 make: *** [Makefile:95: all] エラー 2
背景が透明にならない
Transparent Window (GLFW 3.3.2 or higher, Windows)
GLFW 3.3.2以上でなければならない。対して私の環境は3.2.1と古い。
apt search glfw
libglfw3/stable,stable,now 3.2.1-1 armhf [インストール済み] portable library for OpenGL, window and input (x11 libraries) libglfw3-dev/stable,stable,now 3.2.1-1 armhf [インストール済み] portable library for OpenGL, window and input (development files)
私の環境ではバージョンが古いため、背景が透明化できないと思われる。
ビルド時にも以下のようなエラーが出た。背景透明用の定義値とおぼしきGLFW_TRANSPARENT_FRAMEBUFFER
が未定義だと怒られる。
[ 98%] Built target gtests /tmp/work/saba/example/simple_mmd_viewer_glfw.cpp: In function ‘bool SampleMain(std::vector<std::__cxx11::basic_string<char> >&)’: /tmp/work/saba/example/simple_mmd_viewer_glfw.cpp:1245:18: error: ‘GLFW_TRANSPARENT_FRAMEBUFFER’ was not declared in this scope glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GL_TRUE); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /tmp/work/saba/example/simple_mmd_viewer_glfw.cpp:1245:18: note: suggested alternative: ‘GL_READ_FRAMEBUFFER’ glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GL_TRUE); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ GL_READ_FRAMEBUFFER make[2]: *** [example/CMakeFiles/simple_mmd_viewer_glfw.dir/build.make:63: example/CMakeFiles/simple_mmd_viewer_glfw.dir/simple_mmd_viewer_glfw.cpp.o] エラー 1 make[1]: *** [CMakeFiles/Makefile2:469: example/CMakeFiles/simple_mmd_viewer_glfw.dir/all] エラー 2 make: *** [Makefile:95: all] エラー 2
でも実行できた。背景が透明にできないだけ。
所感
背景が透明にできたらデスクトップ・マスコットになったのになぁ。
対象環境
- Raspbierry pi 4 Model B
- Raspbian buster 10.0 2019-09-26 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux