BlenderでPythonを使ってスクリプトを書いていると結構ハマります。
標準で使えるOpenGLなども若干Blender独自のものとなっているので、戸惑うことも多いですし、標準で使えるライブラリは非常に少ないのでGLFWやNumpyなどの外部のパッケージ(ライブラリ)が呼べた方が便利です。
(v2.78くらいからNumpyは標準で使えるようです)
そこで今回は外部のパッケージをBlenderのPythonのコンソールから使えるようにしていきます。
pipをインストールする
まずpipをダウンロードします。
https://pip.pypa.io/en/stable/installing/
方法は今回はcurlを使おうと思います。
Windowsの検索欄にcmdと打つと、コマンドプロンプトが出で来ると思うので、これを右クリックして管理者として実行します。
コマンドプロンプトに
cd C:\Program Files\Blender Foundation\Blender\2.79\python\bin
と打ち、Blenderのフォルダに移動します。そして、
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
と打つと、「C:\Program Files\Blender Foundation\Blender\2.79\python\bin」に「get-pip.py」がダウンロードされてます。
Blenderにpipを適用
「C:\Program Files\Blender Foundation\Blender\2.79\python\bin」に入った状態で、
python get-pip.py
と打つと準備完了です。
「C:\Program Files\Blender Foundation\Blender\2.79\python\Scripts」にpip関連のファイルが作成されているはずです。
pipでパッケージをインストール
pipを実行するためにパスを通してどこからでも実行できるようにしてもいいのですが、ここではpipのある場所に移動してから実行します。
cd C:\Program Files\Blender Foundation\Blender\2.79\python\Scripts
でその場所に移動します。
僕はpillowやPyOpenGLを入れてみました。
pip install pillow
pip install PyOpenGL
を入力してみると、
C:\Program Files\Blender Foundation\Blender\2.79\python\Scripts>pip install pillow
Collecting pillow
Downloading https://files.pythonhosted.org/packages/2e/5f/2829276d720513a434f5bcbf61316d98369a5707f6128b34c03f2213feb1/Pillow-5.2.0-cp35-cp35m-win_amd64.whl (1.6MB)
100% |################################| 1.6MB 277kB/s
Installing collected packages: pillow
Successfully installed pillow-5.2.0
C:\Program Files\Blender Foundation\Blender\2.79\python\Scripts>pip install PyOpenGL
Collecting PyOpenGL
Installing collected packages: PyOpenGL
Successfully installed PyOpenGL-3.1.0
ときちんと動いてます。
入れたパッケージの確認方法は
pip list
消すときは、例えばPyOpenGLを消したいときは、
pip uninstall PyOpenGL
のように打ちます。
Blenderを起動して下の図のように
モードをScriptに変更してコンソールを表示して、コンソールに
>>> from OpenGL.GL import *
>>> glGetString(GL_VERSION)
b'4.4.0 - Build 21.20.16.4627'
と打ってみてもエラーが出ません。
これでピュアなOpenGLが扱えますし、ほかのパッケージたちも思う存分使えるはずです。
今後、追加でパッケージを入れたいと思うことがあれば、管理者としてコマンドプロンプトを開いて、「pipでパッケージをインストール」の項で説明したことと同様の作業でインストールできます。
※PyOpenGL等、一部パッケージは動かすとフリーズしたりしました。