nomurabbitのブログ

nomurabbitのブログはITを中心にした技術ブログです。

nomurabbitのブログ

【Blender】Scripting for Artists を勉強してみた Part10【3DCG】

この記事はBlender2.92で、公式チュートリアルScripting for Artistsについて勉強した内容をまとめたものです。


こんにちは!らびです。今回はBlenderScripting for Artistsというチュートリアルを実施していきます。

BlenderPythonを扱う方法です。頑張って勉強していきましょう!


ワークスペースの準備


Scripting for Artists Part10ではPythonスクリプトを使ってオブジェクトsubdivideしてみます。


まずはLayoutワークスペースを用意して、一番下のエディタをPython Consoleに変更します。コレクションやオブジェクトは全て削除しておきます。


f:id:nomurabbit:20220305055505p:plain

オブジェクトの追加


まずはオブジェクトの追加です。今回はCubeを追加してみます。

bpy.ops.mesh.primitive_cube_add()


f:id:nomurabbit:20220305061936p:plain


引数なしだと原点デフォルトのスケールで追加されるジョ。

オブジェクトのメッシュ情報を取得する


次にオブジェクトのメッシュ情報を取得します。下記のスクリプトでは頂点、辺、面の数をそれぞれ取得しています。

len(D.objects[0].data.vertices)

len(D.objects[0].data.edges)

len(D.objects[0].data.polygons)


実行すると、このようになります。


f:id:nomurabbit:20220305062018p:plain

メッシュをsubdivideする


追加したCubeオブジェクトメッシュをsubdivideしてみます。下記のスクリプトを実行します。

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、Objectモードに戻すといった手順を実行しています。


subdivideした結果を見てみましょう。もう一度下記のスクリプトを実行してメッシュの情報を取得してみます。

len(D.objects[0].data.vertices)

len(D.objects[0].data.edges)

len(D.objects[0].data.polygons)


f:id:nomurabbit:20220305062504p:plain


スクリプトによってメッシュが細分化されたのがわかります。

まとめ


以上、BlenderScripting for Artistsについて勉強した内容のまとめPart10でした。


PythonスクリプトからBlenderを眺めることで、よりソフトウェアに対する理解が深まりますね。


次回もぜひご覧ください。では!