Blender

Pythonで始めるBlender

こんにちは、Rafkaです。

このブログの更新頻度的に非常に不安ではありますが、この記事のシリーズは必要とする人のために続けたいと思っています。

と、言うことで、今回から“Pythonで始めるBlender”と題して、3Dモデル開発環境であるBlenderをPythonを用いて制御する際のTips集的なシリーズ記事を書いていきます。

このシリーズの目標は、Pythonを用いてBlenderを操作し、3Dモデルを使用した表現ができるようになることで、研究成果のビジュアライズのレパートリーを増やすことです。

今回はBlenderの環境構築まで書きます。


Blender 2.80 について

この記事を執筆中である現在(2019/06/03)の時点でのBlenderの最新バージョンは2.79bになります。

しかし、次期バージョンであるBlender 2.80のリリースが7月に予定されています。https://code.blender.org/2019/04/2-80-release-plan/

2.80は破壊的変更を含む大規模アップデートが予告されているので、この記事シリーズのコードの多くは期待した動作をしなくなることが予想されます。

ベータ版を試すことは可能ですが、どうせなら安定版の内容に基づいた記事にしていきたいと考えているので、2.80対応の記事は安定版のリリースまでお待ち下さい。2.80リリース後にそれぞれの記事の内容を2.80に対応したものにアップデートする予定はあります。アップデートしたらこの記事にも追記します。

※ 2019/08/05追記
ついにBlender 2.80がリリースされました。既に投稿済みの内容についてこれから再確認を行い、動作確認が取れたものや2.80向けに記事をアップデートしたものについて、その旨を記事のトップに記していきます。全ての記事が2.80に対応するまで、今しばらくお待ち下さい。


Blenderのセットアップ

今回は、Blenderのセットアップについて書きます。

公式からインストーラを取得してきて、それを使えば殆ど問題は起きないと思いますが、パッケージ管理ソフトを使った導入方法もあるので、その方法について説明します。

また、Blenderが起動するPythonは、計算機にインストールされているPythonとは別のPythonを使用するので、それについても説明します。

筆者の環境

私の環境に基づいて記事を書いていくので、参考にして下さい。特に他のOSを使用している方は、適宜自分で調べるなどして差分を吸収して下さい。

  • OS:Windows 10 64bit
  • Shell:Power Shell Core 6.2.0
  • Editor:Visual Studio Code 1.37.1

Blenderのインストール

それぞれのOSの主流のパッケージ管理ソフトを使ってインストールすることができます。Windowsユーザの方もパッケージ管理ソフトの使用がオススメです。

私がオススメするWindows向けのパッケージ管理ソフトは“Scoop”です。

Scoopのセットアップについては以下の記事がとても参考になるでしょう。
ScoopをつかったWindows環境構築のススメ – Super!!

無事にScoopが使用できるようになったら、以下のコマンドでextras BucketからBlenderをインストールできます。

> scoop bucket add extras
> scoop install blender

macOSの方はHomebrewが主流だと思いますので、brewを使ってインストールして下さい。ScoopとHomebrewでは最新版がインストールされると思いますが、以前Linux Mint 18.1でapt-getを使用した際にインストールされたのは最新版ではなかったので、Linuxの各ディストリビューションのパッケージマネジャーを使用する場合はバージョンに注意して下さい。

BlenderのVersionとPythonのVersion

BlenderでPythonを実行する際、使用されるPythonは計算機にインストールされているものとは異なるPythonが使用されると上で書きました。

Blenderをインストールすると、Pythonの環境も一緒にインストールされ、それが使用されるので、Pythonを態々自分でインストールしなくてもBlenderでPythonが使用できます。

簡単に試すことができるので良さそうに見えますが、既にPythonを普段から使用する人にとっては混乱の元になりそうです。

私の環境では、以下のパスにPythonのバイナリが用意されました。
%Blenderのディレクトリ%/2.80/2.80/python/bin/python.exe

実は、使用するBlenderのバージョンによって、対応するPythonのバージョンは異なります。興味がある方は調べてみて下さい。

BlenderのPythonにpipをインストールする

さて、PythonのバイナリがBlender側で独自に用意されるということは、numpyなどの外部のライブラリを使おうと考えたときに、独自に対応する必要が出てくるということです。

numpyに限らず、Pythonのライブラリを用意しようと思ったらpipを使う人が多いと思いますので、Blenderに紐付いているPythonにpipをインストールしてしまいましょう。

まず、以下のコマンドで get-pip.py を取得します。

> curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

取得できたら、BlenderのPythonを用いて取得してきた get-pip.pyを実行します。

> {Blenderのpythonへのパス}/python get-pip.py

無事に完了したらpipをアップグレードしましょう。
(これ以降、pythonと書いたら特に断らない限りBlenderのPythonを表します)

> python -m pip install -U pip

これでpipの準備は完了です。以下のようにすればnumpyもインストールできるでしょう。

※ 2019/08/17追記
scoopでインストールされるものに限るかどうかは分かりませんが、2.80ではインストール時に幾つかの外部ライブラリが使用可能な状態でインストールされるようです。どのライブラリが使用できるかは、python/lib/site-packagesを確認してください。numpyもあります。従ってnumpyを使用したいだけならばこの節の作業は必要なくなりましたが、それ以外のライブラリを使用する際には必要となるので残しておきます。

> python -m pip install numpy

まとめ

無事にBlenderの環境は整いましたか?

今回は省略しましたが、開発するにあたって使用しているエディタの補完機能をBlender関係の関数に対しても有効にしたい人もいると思いましたので、Visual Studio Codeユーザ向けにはなりますが、以下のサイトを紹介します。
Blender 2.8 Visual Studio CodeでPythonスクリプトをコーディングする設定

※ 2019/08/17追記
エディタの補完機能にBlenderの関数をサジェストさせるためのライブラリfake-bpy-moduleのインストールが簡単になりました。以下のコマンドで一発です。使用するpipはエディタが参照しているpythonバイナリのpipを使用してください。

> pip install fake-bpy-module-2.80

次回はBlenderの機能を使うときに使用するbpyモジュールの初歩的な部分の解説を行う予定です。