【Blender Script】BlenderのPythonスクリプトに入門(第一回)
目次
はじめに
3DCG制作のアプリケーションとしてBlenderがあります。 BlenderではPythonスクリプトの実行で処理を自動化することができます。
そのスクリプト処理を応用すると、Blenderでクリエイティブコーディングをすることができます。 クリエイティブコーディングをしていく観点で、BlenderのPythonスクリプトの紹介をしていきます。
ただし、高めのPCスペックが求められるので、気軽に始められるかというと、そうではない部分もあります。
今回は第一回ということで、BlenderでPythonスクリプトを実行する方法を一連の流れで紹介します。 Pythonスクリプトの中身については次回以降の記事で説明する予定です。
Blenderのインストール
Blenderをインストールしなければ何も始まりませんので、公式サイトからダウンロードしてインストールをしてください。
インストールに関しては、難しい作業はないと思うので公式サイトや各解説記事などを参考にしてください。
Blenderは3DCGの制作ソフトのため、Pythonスクリプトの実行処理も重たくなる傾向にあります。 Blenderの実行に必要なPCスペックは下で確認しておきましょう。
また、インストール後の初回起動時には初期設定があります。お好みの設定で良いと思います。
Blender起動
Blenderを起動します。 「New file(新規ファイル)」の「General(全般)」から新規にプロジェクトを作成して開始します。
設定
Pythonスクリプトを使いやすくするために追加で設定をしておきましょう。 「Language」の項目を「日本語」した場合はここで必須の設定があります。
画面上部の「Edit(編集)」→「Preferences(プリファレンス)」を選択して設定画面へいきます。
おすすめの設定として「Interface(インターフェイス)」→「Display(表示)」→「Toolotipsツールチップ)」→「Python tooltips(Pythonツールチップを表示)」にチェックを入れます。 これをチェックすると、各GUIの上にマースカーソルを置くと、Pythonスクリプト用のコマンドが表示される様になります。
「日本語」に設定しているのであれば、「Interface(インターフェイス)」→「Translation(翻訳)」→「Affect(影響)」→「New Data(新規データ)」のチェックを外してください。 これのチェックを外すことで、新規オブジェクトを生成した時の名称が英語になります。 Pythonスクリプトで操作オブジェクトを指定する際に英語の方が便利だと思うので設定しておきましょう。 これ以降はこの新規データのチェックが外れているor言語設定が英語である前提で解説していきます。
スクリプト実行画面
上部のメニューの右の方にある「Scripting」クリックしましょう。 これを押すことでPythonスクリプト実行する画面に切り替わります。
画面の大きさ次第では「Scripting」が隠れている場合があります。 その場合、マウスホイールでスクロール(縦スクロール)か、マウスの中ボタンでドラッグ(横スクロール)すると隠れている部分が現れるはずです。環境で操作は違うかもしれませんがスクロール操作をすれば表示されると思います。
Pythonスクリプト実行画面に表示が切り替わります。 中央上部の「New(新規)」を押すとPythonスクリプトを新規ファイルで作成できます。 作成した新規ファイルにPythonでプログラムを書けば実行ファイルとなります。
今回は下のサンプルコードを使ってみましょう。 これを画面中央のスクリプトのエディタ部に貼り付けてみてください。
ここでは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)
これで準備は整いました。 画面中央の上部右寄りにある「実行ボタン(三角形)」を押して実行してみてください。
実行が完了すると、左上の3D Viewportに赤い立方体が現れるはずです。
「Scripting」画面よりも「Layout」画面で3D Viewportを見た方がわかりやすいです。
生成される画像は下の様になります。
ソースコードの
bpy.data.scenes["Scene"].render.filepath = os.getenv('HOME') + '/hoge.png'
で画像の保存場所を指定しています。
サンプルコードのまま実行するとホームディレクトリに「hoge.png」という名前で保存されるはずです。
画像が保存されていれば、無事にPythonスクリプトが実行されたことになります。
おわりに
3DCG制作のアプリケーションのBlenderでPythonスクリプトを実行する手順を紹介しました。 Blenderを起動する所からサンプルコードを実行するまでの一連の手順を理解していただけたのではないでしょうか。
BlenderでのPythonスクリプトを使ってクリエイティブ・コーディングを楽しんでみてはいかがでしょうか。
次回以降でPytonスクリプトの中身を解説していきたいと思います。
関連記事