Python Console(Pythonコンソール)

Python Console(Pythonコンソール)は、Python API全体、コマンド履歴、オートコンプリートにアクセスして、コマンドをすばやく実行する方法です。コマンドプロンプトはPython3.xで一般的であり、インタープリターが読み込まれ、プロンプト >>> でコマンドを受け入れる準備ができています。

Pythonコンソールは、Blenderの組み込みPythonの可能性を探る良い方法です。Pythonコンソールを使用してPythonコードの小さな断片をテストし、それを大きなスクリプトに貼り付けることができます。

../_images/editors_python-console_default.png

Pythonコンソール。

Interface(インターフェイス)

ヘッダーメニュー

View(ビュー) メニュー

Zoom In(ズームイン) / Zoom Out(ズームアウト)

コンソールテキストのフォントサイズを増減します。

Move to Previous Word(前の単語に移動) Ctrl-Left

前の単語の先頭にカーソルを移動します。カーソルが単語の途中にある場合、カーソルは現在の単語の先頭に移動します。

Move to Next Word(次の単語に移動) Ctrl-Right

次の単語の末尾にカーソルを移動します。カーソルが単語の途中にある場合、カーソルは現在の単語の末尾に移動します。

Move to Line Begin(行頭に移動) Home

現在の行の先頭にカーソルを移動します。

Move to Line End(行末に移動) End

現在の行の末尾にカーソルを移動します。

Console(コンソール) メニュー

Clear All(すべてクリア)

コンソールを更新して、ビューを新たに開始します。コマンド履歴はクリアされないことに注意してください。

Clear Line(行をクリア) Shift-Return

プロンプト行からすべてを削除します。

Delete Previous Word(前の単語を削除) Ctrl-Backspace

カーソルから前の(ピリオドで区切られた)単語の先頭までのすべてを削除します。カーソルが単語の途中にある場合は、現在の単語の先頭までのすべてを削除します。

Delete Next Word(次の単語を削除) Ctrl-Delete

カーソルから次の単語の終わりまでのすべてを削除します。カーソルが単語の途中にある場合は、現在の単語の最後までのすべてを削除します。

Copy as Script(スクリプトとしてコピー) Shift-Ctrl-C

履歴バッファ全体をクリップボードにコピーします。これをテキストファイルに貼り付けて、Pythonスクリプトとして使用できます。

Copy(コピー) Ctrl-C

選択範囲をコピーします。

Paste(貼り付け) Ctrl-V

コマンドラインに貼り付けます。

Indent(インデント) Tab

カーソルの位置にタブ文字を挿入します。

Unindent(インデントを解除) Shift-Tab

選択範囲のインデントを解除します。

Backward in History(履歴の後方) Up

現在のコマンドを、コマンド履歴の前のコマンドに変更します。

Forward in History(履歴の前方) Down

現在のコマンドを、コマンド履歴の次のコマンドに変更します。

Autocomplete(オートコンプリート) Tab

詳細は、 Auto Completion を参照してください。

メインビュー

キーバインディング

  • 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モジュールのトップレベル。

コンソール環境の初見

インタプリタ環境に何がロードされているかを確認するには、プロンプトで dir() と入力して実行します。

../_images/editors_python-console_dir.png

オートコンプリート

試しに、bpy. と入力してから Tab を押すと、コンソールのオートコンプリート機能が動作していることがわかります。

../_images/editors_python-console_completion.png

bpy 内のサブモジュールのリストが表示されるのに気付きます。これらのモジュールは、Blender Python APIで実行できるすべてのことをカプセル化しており、非常に強力なツールです。

bpy.app モジュールのすべての内容を一覧表示しましょう。

オートコンプリートを有効にしたプロンプト上の緑色の出力に注目してください。表示されるのは、オートコンプリートリストの結果です。上記のリストでは、すべてモジュール属性の名前ですが、名前が ( で終わる場合、それは関数です。

これを多用することで、APIの学習に役立ちます。今これを理解したので、 bpy のモジュールの調査に進みましょう。

モジュールを使ってみる前に

デフォルトのBlenderシーンで3D Viewport(3Dビューポート)を見ると、Cube(立方体)、Light(ライト)、Camera(カメラ)の3つのオブジェクトに気付くでしょう。

  • すべてのオブジェクトはコンテキスト内に存在し、それらが操作されるさまざまなモードが存在します。

  • とにかく、アクティブなオブジェクトは1つだけであり、複数のオブジェクトが選択されている可能性があります。

  • すべてのオブジェクトはblendファイル内のデータです。

  • これらのオブジェクトを作成および変更する操作/関数があります。

上記のすべてのシナリオ(すべてがリストされているわけではありませんが、注意してください...)の場合、 bpy モジュールはデータにアクセスして変更する機能を提供します。

bpy.context

注釈

以下のコマンドで適切な出力を表示するには、3Dビューポートでオブジェクトを選択していることを確認してください。

../_images/editors_python-console_bpy-context.png
bpy.context.mode

現在の3Dビューポートのモード(オブジェクト、編集、スカルプトなど)をプリントします。

bpy.context.objectbpy.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]

The complex one... But this prints a list of objects not including the active object:

[obj for obj in bpy.context.selected_objects if obj != bpy.context.object]

bpy.data

bpy.data には、blendファイル内のすべてのデータにアクセスできる関数と属性があります。

現在のblendファイル内の次のデータにアクセスできます: オブジェクト、メッシュ、マテリアル、テクスチャ、シーン、スクリーン、サウンド、スクリプトなど。

それはたくさんのデータです。

../_images/editors_python-console_bpy-data.png

bpy.ops

ツールシステムは、操作の概念に基づいて構築されています。操作は通常、ボタンやメニューから実行されますが、Pythonから直接呼び出すこともできます。

すべての操作のリストについては、 bpy.ops APIドキュメントを参照してください。