Python Console(Pythonコンソール)¶
Python Console(Pythonコンソール)は、Python API全体、コマンド履歴、オートコンプリートにアクセスして、コマンドをすばやく実行する方法です。コマンドプロンプトはPython3.xで一般的であり、インタープリターが読み込まれ、プロンプト >>>
でコマンドを受け入れる準備ができています。
Pythonコンソールは、Blenderの組み込みPythonの可能性を探る良い方法です。Pythonコンソールを使用してPythonコードの小さな断片をテストし、それを大きなスクリプトに貼り付けることができます。
Interface(インターフェイス)¶
メインビュー¶
キーバインディング
Left / Right -- カーソルを移動。
Ctrl-Left / Ctrl-Right -- カーソルを単語単位に移動。
Backspace / Delete -- 文字を消去。
Ctrl-Backspace / Ctrl-Delete -- 単語を消去。
Return -- コマンドを実行。
Shift-Return -- 実行せずにコマンド履歴に追加。
使用方法¶
エイリアス¶
便宜上、いくつかの変数とモジュールを使用できます:
C
:bpy.context
へのクイックアクセス。D
:bpy.data
へのクイックアクセス。bpy
: Blender Python APIモジュールのトップレベル。
オートコンプリート¶
試しに、bpy.
と入力してから Tab を押すと、コンソールのオートコンプリート機能が動作していることがわかります。
bpy
内のサブモジュールのリストが表示されるのに気付きます。これらのモジュールは、Blender Python APIで実行できるすべてのことをカプセル化しており、非常に強力なツールです。
bpy.app
モジュールのすべての内容を一覧表示しましょう。
オートコンプリートを有効にしたプロンプト上の緑色の出力に注目してください。表示されるのは、オートコンプリートリストの結果です。上記のリストでは、すべてモジュール属性の名前ですが、名前が (
で終わる場合、それは関数です。
これを多用することで、APIの学習に役立ちます。今これを理解したので、 bpy
のモジュールの調査に進みましょう。
モジュールを使ってみる前に¶
デフォルトのBlenderシーンで3D Viewport(3Dビューポート)を見ると、Cube(立方体)、Light(ライト)、Camera(カメラ)の3つのオブジェクトに気付くでしょう。
すべてのオブジェクトはコンテキスト内に存在し、それらが操作されるさまざまなモードが存在します。
とにかく、アクティブなオブジェクトは1つだけであり、複数のオブジェクトが選択されている可能性があります。
すべてのオブジェクトはblendファイル内のデータです。
これらのオブジェクトを作成および変更する操作/関数があります。
上記のすべてのシナリオ(すべてがリストされているわけではありませんが、注意してください...)の場合、 bpy
モジュールはデータにアクセスして変更する機能を提供します。
例¶
bpy.context¶
注釈
以下のコマンドで適切な出力を表示するには、3Dビューポートでオブジェクトを選択していることを確認してください。
bpy.context.mode
現在の3Dビューポートのモード(オブジェクト、編集、スカルプトなど)をプリントします。
bpy.context.object
やbpy.context.active_object
3Dビューポートのアクティブオブジェクトにアクセスできます。
Xの位置を1に変更します:
bpy.context.object.location.x = 1
オブジェクトを前のX位置から0.5移動します:
bpy.context.object.location.x += 0.5
位置 X、Y、Zを変更します:
bpy.context.object.location = (1, 2, 3)
X、Yコンポーネントのみを変更します:
bpy.context.object.location.xy = (1, 2)
オブジェクトの位置のデータ型:
type(bpy.context.object.location)
アクセスできるデータがたくさんあります:
dir(bpy.context.object.location)
bpy.context.selected_objects
選択したすべてのオブジェクトのリストにアクセスできます。
これを入力してから Tab を押します:
bpy.context.selected_objects
リストの最初のオブジェクトの名前をプリントするには:
bpy.context.selected_objects[0]
複雑なもの...しかし、これはアクティブオブジェクトを含まないオブジェクトのリストをプリントします:
[obj for obj in bpy.context.selected_objects if obj != bpy.context.object]
bpy.data¶
bpy.data
には、blendファイル内のすべてのデータにアクセスできる関数と属性があります。
現在のblendファイル内の次のデータにアクセスできます: オブジェクト、メッシュ、マテリアル、テクスチャ、シーン、スクリーン、サウンド、スクリプトなど。
それはたくさんのデータです。