見出し画像

『Blender Python完全ガイド』より 第2回 ~1-1 BlenderとPython~

Blender内でPythonを活用し、3Dモデリングやアニメーション制作などの3DCGプロジェクトを効率化するための環境設定や、Pythonの基礎知識、アドオン開発、公開・ライセンス管理などの応用的なトピックについて詳しく解説する『Blender Python完全ガイド』から書籍内容を抜粋してご紹介。第2回は「Chapter1 BlenderではじめるPython」より「1-1 BlenderとPython」です。


1-1 BlenderとPython

BlenderはPythonのスクリプトエンジンを内蔵しており、Blender上でPythonプログラムを実行して制御できます。これにより、Blenderで繰り返し行う操作を自動化したり、新たな機能を追加したりできます。ここでは、BlenderとPythonの関係を説明し、BlenderにおけるPythonの活用例を紹介します。

■Blender

 Blenderは3DCG制作向けの総合環境です。オランダで開発されたレンダリングソフトウェアをオープンソース化したもので、誰でも無料で入手して3DCG制作をはじめることができます。3Dモデリングからマテリアル設定、アニメーション制作など、3DCG制作に必要な一連の作業をBlenderだけで完結して行えます。

図1.1 Blender

 現在、Blender は多くのユーザに利用されていますが、以前は使いこなすのが難しいことで有名なソフトウェアでした。特にBlender 2.8より前のバージョンでは、独特なUI がユーザにとって障壁となり、Blenderの操作に慣れるまでに挫折する人が多かったです。しかし、Blender 2.8 以降はUI が洗練され、かつ数多くの強力な機能が追加されたため、多くの企業や個人の3DCG 制作者がBlenderを利用するようになりました*1。Blenderの開発は現在も活発であり、今後の発展が楽しみなソフトウェアです。
 Blenderはマルチプラットフォームで動作するように設計されているため、Windows、macOS、Linux上で利用できます。したがって、OS をWindowsからmacOS やLinuxに変更しても、Blenderの使い方を再学習する必要はありません。

図1.2 マルチプラットフォーム

■Python

Pythonは、1991年に初版がリリースされたプログラミング言語です。近年、機械学習への関心が高まったことでPythonは注目を集めており、人気プログラミング言語のランキングでも上位にランクインしています。ここでは、Pythonが注目をされる理由とそのメリットについて紹介します。

図1.3 Python

対話形式によるプログラム実行

 C 言語を含むコンパイラ型のプログラミング言語とは異なり、インタプリタ型言語のPythonはコンパイルすることなくプログラムを実行できます。対話形式でプログラムを実行できるため、作成したプログラムの結果を即座に確認できます。これは、試行錯誤しながらプログラムを作成する場合やプログラミング教育において有用です。

図1.4 対話形式によるプログラム実行

 本書の前半では、Blender内で使用できるPythonインタプリタを活用し、対話形式でプログラムを実行します。この方法を採用することで、プログラムの実行結果がBlenderの画面へ即座に反映され、対話的なプログラム実行の利点を実感できるでしょう。

= COLUMN =
インタプリタ型言語は、実行結果を即座に確認できるため便利です。
しかし、コンパイラ型言語と比較して実行速度が遅いというデメリットも存在します。
速度が要求される場面では、一般的にコンパイラ型言語が好まれます。

成熟したエコシステム

 機械学習によって注目を集めたPythonは、科学技術計算や機械学習に役立つ充実したライブラリやフレームワークが提供されています。また、機械学習以外の用途にも対応したライブラリやフレームワークが充実しており、Python単体で多くのタスクを実現できます。豊富なライブラリとフレームワークが提供されていることは、Pythonが人気となった理由の1つと言えます。

表1-1 代表的なPythonライブラリ

 Python は、ほかのプログラミング言語で作成されたアプリケーションとの統合性が高いことでも有名です。たとえば、3DCG 制作ソフトウェアの中ではBlenderとMaya がPythonを採用しており、さらに主要なゲームエンジンのUnreal EngineやUnityでもPythonが利用可能です。

BlenderとPythonの関係

 BlenderはPython インタプリタを内蔵しており、PythonプログラムをBlender上で直接実行できます。また、BlenderはPythonプログラムからBlenderを操作するためのAPI*2をユーザに提供するため、Pythonプログラムを用いてBlenderの制御が可能です。
 APIを活用することで、PythonプログラムからBlender上でメッシュオブジェクトの編集やマテリアルの適用など、Blender上の操作が行えます。PythonプログラムによるBlenderの制御によって、繰り返し行う処理を自動化でき、3DCG 制作を効率的に行えます。

図1.5 PythonプログラムからBlender制御

BlenderはPythonプログラムの実行環境を提供するだけでなく、Blender自体もPythonを積極的に活用しています。たとえば、BlenderのUI は大部分がPythonプログラムによって作成されています。したがって、Pythonプログラムを編集することで、独自のUIをカスタマイズ可能です。

図1.6 UIとPythonの関係

 Blenderをある程度使用し続けると、アドオンを導入するのが一般的です。アドオンもPythonを用いて作成できます。アドオン(Add-on)は、Python APIを利用して開発されたBlenderの拡張機能です。

図1.7 アドオン

 BlenderとPythonは密接に関係しています。Blenderをより深く理解するためにはPythonの学習が重要ですが、逆にBlenderを用いてPythonを学ぶこともできます。本書を通じて、BlenderのPythonについて学んでいきましょう。

まとめ

 これまで、BlenderとPythonについて説明してきました。本節を通じて、BlenderとPythonが密接に関係していることを理解できたのではないでしょうか。
 次節からは、Blender上でPythonプログラムを実行する方法について解説します。

ポイント

  • Blenderオープンソースの3DCG制作ソフトウェアで、誰でも無料で入手して3DCG制作をはじめることができる。

  • Pythonインタプリタ型のプログラミング言語で、対話形式での実行と成熟したエコシステムを特徴とする。

  • Blenderが提供するPython APIを活用することで、Blenderで繰り返し行う処理を自動化できる。さらに、アドオンも開発できる。

*1 Blender 2.8 より前のバージョンでサポートされていたゲームエンジンは、Blender 2.8 以降では公式サポートが終了しました。現在、バージョン2.8 以降のBlenderをベースにしたゲームエンジンは、UPBGEプロジェクト(https://upbge.org/)によってサポートされています。

*2 API はApplication Programming Inter faceの略で、ソフトウェアやプログラム間をつなぐインタフェースです。Blenderが提供するPython API 、BlenderとPythonプログラムの連携を可能にするインタフェースです。


この記事が気に入ったらサポートをしてみませんか?