前回、BlenderPythonでの3Dオブジェクトを作成してみました。
前回参考にしたサイトはこちらです。
前回まで、3Dの画面描画についてやっていましたが、はっきり言ってムズイので
2D描画の方から着手しようと思います。(2D描画を基本にして3D描画の仕組みが出来上がっているらしいです。)
今回の参考にするサイトは以下になります。
最近気がついたのですが、翻訳機能もレベルがどんどん上がっている様ですね。
とりあえず英語サイトでも翻訳すれば問題なく読めそうです。
参考サイトのチュートリアルを進めていくことにします。
主に書いてあるコードの自分流解釈と実践になります。
上記のサイトに記載されているコードをコピペで実行した結果が下のイメージです。

結局は上記の様な「面」が写経するコードにより作成されます。
作成したものの情報を一覧してみました。以下の様なコードです。
>> list(bpy.data.objects)
>> bpy.data.objects['Gridtastic']

作成したコンポーネントは「Gridtastic」という名前がついている様です。
それでは、コードの解析に入ろうと思います。
(1.最初の黒塗り部分のコード) 変数宣言から入る様です。
#まずは使用する変数の宣言
---------------------------------------------------------
import bpy #ライブラリのインポートを行う
#設定
name = 'Gridtastic' # mesh(メッシュ)とobject(オブジェクト)の名前
row = 5 # 行(row)とカラム(column)は表示するgrid(グリッド)が
columns = 10 # 何個頂点を持っているのかを判定するのに使用します。
---------------------------------------------------------
(2.次の黒塗り部分のコード)
上のコードに引き続きmesh(メッシュ)とオブジェクト(object)の設定を行います。
---------------------------------------------------------
vertices = # vertices(vertexの複数形=>頂点の意味
face = # フェイス=>面の意味
# Create Mesh Datablock => メッシュのデータを作成する部分
mesh = bpy.data.meshes.new(name) #メッシュ(mesh)をGridtasticの名前で作成
mesh.from_pydata(vertices, , face)
# APIレファレンス参照
#@docs: from_pydata(vertices, edges, faces)
## vertices = 頂点のリスト=>X軸、Y軸、Z軸の座標を示す。(0,1,2)
## edges = 辺のリスト(2点を示す座標を表示) => (0, 1)
## faces = 面のリスト(0,1,2,3)
# Create Object and link to scene => オブジェクトを作成、シーンにリンクさせる
obectj = bpy.data.objects.new(name, mesh)
bpy.context.scene.objects.link(object)
# Select the object => オブジェクトを選択
bpy.context.scene.objects.active = object # 作成したオブジェクトをアクティブに
object.select = True # オブジェクトをクリックして選択するのと同じ
ちなみに、上記の頂点、辺、面の値について検証してみました。
新たに下記の様なスクリプトを作成して実行します。下のキャプチャは実行結果です。

実行するスクリプトは下のものです。
---------------------------------------------------------
# Looping to create the grid
verts = [(-1,-1,0), (1,-1,0), (1,1,0), (-1,1,0)]
faces = [(0,1,2,3)]
# Create Mesh Datablock
mesh = bpy.data.meshes.new(name)
mesh.from_pydata(verts, , faces)
# Create Object and link to scene
obj = bpy.data.objects.new(name, mesh)
bpy.context.scene.objects.link(obj)
# Select the object
bpy.context.scene.objects.active = obj
obj.select = True
---------------------------------------------------------
vertsはvertex(頂点)のことです。Z軸の値は全て0ですので平面の点を示しています。
facesは4点を面にしますよという意味 ※後ほど細かい説明をいたします。
ちょっと長くなってしまったので今回はここまでにします。
次回は参考サイトの「A grid of vertices」の部分を記載いたします。