【Blender】Scripting for Artists を勉強してみた Part11【3DCG】
この記事はBlender2.92で、公式チュートリアルのScripting for Artistsについて勉強した内容をまとめたものです。
こんにちは!らびです。今回はBlenderのScripting for Artistsというチュートリアルを実施していきます。
BlenderでPythonを扱う方法です。頑張って勉強していきましょう!
ワークスペースの準備
Scripting for Artists Part11ではPythonスクリプトを使ってオブジェクトを指定した値までsubdivideしてみます。
まずはLayoutワークスペースを用意して、一番下のエディタをPython Consoleに変更します。コレクションやオブジェクトは全て削除しておきます。
オブジェクトの追加
まずはオブジェクトの追加です。今回はCubeを追加してみます。
bpy.ops.mesh.primitive_cube_add()
引数なしだと原点にデフォルトのスケールで追加されるジョ。
オブジェクトのメッシュ情報を取得する
次にオブジェクトのメッシュ情報を取得します。下記のスクリプトでは頂点、辺、面の数をそれぞれ取得しています。
len(D.objects[0].data.vertices) len(D.objects[0].data.edges) len(D.objects[0].data.polygons)
実行すると、このようになります。
指定した値までメッシュをsubdivideする
今回はText Editorを使ってsubdivideのスクリプトを記述していきます。ワークスペースにText Editorを追加しておきましょう。
ループを使ってCubeオブジェクトのメッシュをsubdivideしてみます。Text Editor下記のスクリプトを追加して実行します。
import bpy mesh = bpy.context.active_object.data while len(mesh.vertices) < 1000: bpy.ops.object.mode_set(mode='EDIT') bpy.ops.mesh.select_all(action='SELECT') bpy.ops.mesh.subdivide() bpy.ops.object.mode_set(mode='OBJECT')
Editモードにして見てみると…。
スクリプトによってメッシュが細分化されたのがわかります。
スクリプトでsubdivideした結果を見てみましょう。もう一度下記のスクリプトを実行してメッシュの情報を取得してみます。
bpy.ops.object.mode_set(mode='OBJECT') len(D.objects[0].data.vertices) len(D.objects[0].data.edges) len(D.objects[0].data.polygons)
頂点数1538までsubdivideできたジョ。