Blender

プリミティブメッシュを操作しよう

BlenderをPythonで操作するシリーズ第6回です。

前回はこちら → Blenderの光源を操作しよう

今回はプリミティブメッシュの紹介をします。光源と同じように幾つかの種類があるので、今回はそれらの紹介に留め、それぞれのプロパティや引数の値でどの様に形状が変化するのかは、個別記事で紹介します。

※ 2019/08/17 追記
記事の内容をBlender 2.80に対応させました。


プリミティブメッシュとは

3Dモデルはポリゴンを組み合わせて形成されますが、ポリゴンの集まりのことをメッシュと呼びます。Blenderでは、例えば球体や円柱など、頻繁に使う形状のメッシュを予めプリミティブメッシュとして用意しています。

プリミティブメッシュを作成する関数は、bpy.ops.meshにまとめられています。プリミティブメッシュは全部で10個あり、それぞれについて生成用の関数があります。

それぞれの関数の引数については、個別記事で紹介します。


移動と回転

上で示した関数を用いて生成したプリミティブメッシュも、生成したメッシュに対応するObjectクラスのインスタンスを通して、locationプロパティとrotation_eulerプロパティで移動と回転を行えます。

取得する方法は、今までのようにbpy.data.objectsから探して取得するのでも良いですし、プリミティブメッシュを生成する関数を実行した直後ならば、bpy.context.selected_objects[0]で取得できます。

bpy.context.selected_objectsには、選択中のオブジェクトのリストがセットされています。リストになっていることから分かる通り、オブジェクトは複数選択することができます。プリミティブメッシュは、選択された状態で生成されるのか、生成直後に選択されるのかは分かりませんが、生成直後は選択された状態にあります。ですので通常は、生成されたメッシュはこのリストの最初の要素となっています。

bpy.data.objectsから探す方法と比べて、生成されたメッシュの名前を知る必要がないので、この方法のほうが手軽で良いと思います。


サンプル画像

紹介したプリミティブメッシュの一部をレンダリングしたので、参考にして下さい。


今回はここまでです。次回からは光源やプリミティブメッシュの各要素の個別記事を書いていきます。

ですので、シリーズとするのもここで一度区切ろうと思います。まだまだBlenderの機能の殆どを説明できていませんが、ここまでで一応、カメラと光源を操作して、模式図を書くのに十分な位にはメッシュを扱えるようになっていると思うので、手元で色々遊んでみて下さい。