BlenderをPythonで操作するシリーズ第6回です。
前回はこちら → Blenderの光源を操作しよう
今回はプリミティブメッシュの紹介をします。光源と同じように幾つかの種類があるので、今回はそれらの紹介に留め、それぞれのプロパティや引数の値でどの様に形状が変化するのかは、個別記事で紹介します。
※ 2019/08/17 追記
記事の内容をBlender 2.80に対応させました。
プリミティブメッシュとは
3Dモデルはポリゴンを組み合わせて形成されますが、ポリゴンの集まりのことをメッシュと呼びます。Blenderでは、例えば球体や円柱など、頻繁に使う形状のメッシュを予めプリミティブメッシュとして用意しています。
プリミティブメッシュを作成する関数は、bpy.ops.mesh
にまとめられています。プリミティブメッシュは全部で10個あり、それぞれについて生成用の関数があります。
primitive_circle_add
:円。引数を指定せずに使用すると辺のみが生成されます。primitive_cone_add
:コーン。primitive_cube_add
:立方体。primitive_cylinder_add
: 円柱。primitive_grid_add
: グリッドメッシュの平面。primitive_ico_sphere_add
:三角面の球体。primitive_monkey_add
:良く見る猿。Suzanneって名前があるそうです。primitive_plane_add
:四角面単体での平面。primitive_torus_add
:リング。primitive_uv_sphere_add
: 四角面の球体。
それぞれの関数の引数については、個別記事で紹介します。
移動と回転
上で示した関数を用いて生成したプリミティブメッシュも、生成したメッシュに対応するObject
クラスのインスタンスを通して、location
プロパティとrotation_euler
プロパティで移動と回転を行えます。
取得する方法は、今までのようにbpy.data.objects
から探して取得するのでも良いですし、プリミティブメッシュを生成する関数を実行した直後ならば、bpy.context.selected_objects[0]
で取得できます。
bpy.context.selected_objects
には、選択中のオブジェクトのリストがセットされています。リストになっていることから分かる通り、オブジェクトは複数選択することができます。プリミティブメッシュは、選択された状態で生成されるのか、生成直後に選択されるのかは分かりませんが、生成直後は選択された状態にあります。ですので通常は、生成されたメッシュはこのリストの最初の要素となっています。
bpy.data.objects
から探す方法と比べて、生成されたメッシュの名前を知る必要がないので、この方法のほうが手軽で良いと思います。
サンプル画像
紹介したプリミティブメッシュの一部をレンダリングしたので、参考にして下さい。
Cone Cylinder ICO Sphere UV Sphere Torus Plane
今回はここまでです。次回からは光源やプリミティブメッシュの各要素の個別記事を書いていきます。
ですので、シリーズとするのもここで一度区切ろうと思います。まだまだBlenderの機能の殆どを説明できていませんが、ここまでで一応、カメラと光源を操作して、模式図を書くのに十分な位にはメッシュを扱えるようになっていると思うので、手元で色々遊んでみて下さい。