ギンの備忘録

デジタルアートやプログラミングやテクノロジー関連のこと。

【Blender Script】BlenderのPythonスクリプトに入門(第一回)

f:id:gin_graphic:20220117150234p:plain:w400

目次


はじめに

3DCG制作のアプリケーションとしてBlenderがあります。 BlenderではPythonスクリプトの実行で処理を自動化することができます。

そのスクリプト処理を応用すると、Blenderでクリエイティブコーディングをすることができます。 クリエイティブコーディングをしていく観点で、BlenderPythonスクリプトの紹介をしていきます。

ただし、高めのPCスペックが求められるので、気軽に始められるかというと、そうではない部分もあります。

今回は第一回ということで、BlenderPythonスクリプトを実行する方法を一連の流れで紹介します。 Pythonスクリプトの中身については次回以降の記事で説明する予定です。

Blenderのインストール

Blenderをインストールしなければ何も始まりませんので、公式サイトからダウンロードしてインストールをしてください。

blender.jp

インストールに関しては、難しい作業はないと思うので公式サイトや各解説記事などを参考にしてください。

Blenderは3DCGの制作ソフトのため、Pythonスクリプトの実行処理も重たくなる傾向にあります。 Blenderの実行に必要なPCスペックは下で確認しておきましょう。

www.blender.org

また、インストール後の初回起動時には初期設定があります。お好みの設定で良いと思います。

Blender起動

Blenderを起動します。 「New file(新規ファイル)」の「General(全般)」から新規にプロジェクトを作成して開始します。

f:id:gin_graphic:20220117210059p:plain:w500

設定

Pythonスクリプトを使いやすくするために追加で設定をしておきましょう。 「Language」の項目を「日本語」した場合はここで必須の設定があります。

画面上部の「Edit(編集)」→「Preferences(プリファレンス)」を選択して設定画面へいきます。

f:id:gin_graphic:20220117210451p:plain:w500

おすすめの設定として「Interface(インターフェイス)」→「Display(表示)」→「Toolotipsツールチップ)」→「Python tooltips(Pythonツールチップを表示)」にチェックを入れます。 これをチェックすると、各GUIの上にマースカーソルを置くと、Pythonスクリプト用のコマンドが表示される様になります。

「日本語」に設定しているのであれば、「Interface(インターフェイス)」→「Translation(翻訳)」→「Affect(影響)」→「New Data(新規データ)」のチェックを外してください。 これのチェックを外すことで、新規オブジェクトを生成した時の名称が英語になります。 Pythonスクリプトで操作オブジェクトを指定する際に英語の方が便利だと思うので設定しておきましょう。 これ以降はこの新規データのチェックが外れているor言語設定が英語である前提で解説していきます。

f:id:gin_graphic:20220117210117p:plain:w400

スクリプト実行画面

上部のメニューの右の方にある「Scripting」クリックしましょう。 これを押すことでPythonスクリプト実行する画面に切り替わります。

画面の大きさ次第では「Scripting」が隠れている場合があります。 その場合、マウスホイールでスクロール(縦スクロール)か、マウスの中ボタンでドラッグ(横スクロール)すると隠れている部分が現れるはずです。環境で操作は違うかもしれませんがスクロール操作をすれば表示されると思います。

f:id:gin_graphic:20220117205841p:plain:w500

Pythonスクリプト実行画面に表示が切り替わります。 中央上部の「New(新規)」を押すとPythonスクリプトを新規ファイルで作成できます。 作成した新規ファイルにPythonでプログラムを書けば実行ファイルとなります。

f:id:gin_graphic:20220117205912p:plain:w500

今回は下のサンプルコードを使ってみましょう。 これを画面中央のスクリプトのエディタ部に貼り付けてみてください。

ここではPythonスクリプトの実行までの流れを理解してもらうことに焦点を当て、 ソースコードの詳細は割愛し次回以降の解説記事で説明します。

#import
import bpy
import math
import os

#reset objects
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(True)

#background
bpy.context.scene.world.node_tree.nodes['Background'].inputs['Color'].default_value = (1, 1, 1, 1)

#camera
bpy.ops.object.camera_add(location=(0.0, 10.0, 0.0))
bpy.data.objects['Camera'].rotation_euler = (math.pi/2.0, 0.0, math.pi)

#material
material = bpy.data.materials.new('material')
material.diffuse_color = (1.0, 0.0, 0.0, 1.0)

#object
bpy.ops.mesh.primitive_cube_add(location=(2, 0, 0), size=1, rotation=(0, 0, 0))
bpy.context.object.data.materials.append( material )

#scene
scene = bpy.context.scene
scene.render.resolution_x = 1920
scene.render.resolution_y = 1080
scene.render.resolution_percentage = 100
scene.render.image_settings.file_format = 'PNG'
bpy.data.scenes["Scene"].camera = bpy.data.objects['Camera']
bpy.data.scenes["Scene"].render.filepath = os.getenv('HOME') + '/hoge.png'
bpy.ops.render.render(write_still=True)

これで準備は整いました。 画面中央の上部右寄りにある「実行ボタン(三角形)」を押して実行してみてください。

f:id:gin_graphic:20220117205927p:plain:w500

実行が完了すると、左上の3D Viewportに赤い立方体が現れるはずです。

f:id:gin_graphic:20220117205938p:plain:w500

「Scripting」画面よりも「Layout」画面で3D Viewportを見た方がわかりやすいです。

f:id:gin_graphic:20220117205949p:plain:w500

生成される画像は下の様になります。

f:id:gin_graphic:20220117205833p:plain:w500

ソースコードbpy.data.scenes["Scene"].render.filepath = os.getenv('HOME') + '/hoge.png' で画像の保存場所を指定しています。 サンプルコードのまま実行するとホームディレクトリに「hoge.png」という名前で保存されるはずです。

画像が保存されていれば、無事にPythonスクリプトが実行されたことになります。

おわりに

3DCG制作のアプリケーションのBlenderPythonスクリプトを実行する手順を紹介しました。 Blenderを起動する所からサンプルコードを実行するまでの一連の手順を理解していただけたのではないでしょうか。

BlenderでのPythonスクリプトを使ってクリエイティブ・コーディングを楽しんでみてはいかがでしょうか。

次回以降でPytonスクリプトの中身を解説していきたいと思います。


関連記事

gin-graphic.hatenablog.com