3.3. Scripting Workspace

Blender には、Text Editor (中央領域)、Info Editor (左下)、Python Console (左中央)、および 3D Viewport (左上) の 7 つのウィンドウ (領域) を備えた専用のワークスペース [Scripting] があります。右側には、[Properties] ウィンドウ (下) と 2 つのバージョンの[Outliner] (上) があります。図1 を参照してください。

The scripting workspace as defined in the call for workspaces in 2018

図1 スクリプト ワークスペース (2021 年 2.92)

組み込みのテキスト エディタを使用してコードを作成し、テストできます。しかし、もちろん、Microsoft Visual Studio Code (VS Code)、Atom、Sublime など、他にも多数のコード エディターが市場に出回っています。また、Microsoft Visual Studio (VS Code と混同しないでください) などの完全な統合コード環境 (IDE) も存在します。 )、Eclipse、Pycharm、…

スクリプト エディター用のアドオンも多数あります。

  • TintwoTin は、いくつかの無料アドオンをスクリプト エディター テンプレートに統合しました。

  • Blender Sensei は、スクリプト エディターの非常に高度ではあるが有料の改良版を開発しました。

3.3.1. スクリプトエディタを効率的に使用するにはどうすればよいですか?

注釈

Blender では、キーストロークはマウスが置かれているウィンドウに送信されます。これは、たとえば 3D ビューでは非常にうまく機能しますが、スクリプト ワークスペースでは逆効果になります。Python コンソールに何かを入力するたびに、マウスはそのウィンドウの上に移動する必要があります。標準の GUI プログラムのように、クリックするだけでは十分ではありません。

3.3.1.1. ワークスペースをレイアウトする

上記の煩わしさを最小限に抑えるには、スクリプト ワークスペースを 2 つのメイン ウィンドウに再配置する必要があります (図 1 を参照)。左側には、コードを作成しているエディター (シーケンス エディターなど) があります。右側にはテキストエディタがあります。それでも十分なスペースがない場合は、Ctrl-Tab または Alt-Shift-Tab を使用していつでも全画面表示にすることができます。

一見すると、手の届く範囲にいくつかの便利なエディター、特に Python コンソールがなくなってしまいます。しかし、私の好みでは、デフォルトのワークスペースではその領域が小さすぎます。さらに、大きなウィンドウの 1 つを別のエディタに置き換えることも非常に簡単です。ショートカット Shift-F4 を使用すると、ウィンドウが Python コンソールに置き換えられます。コードエディタに戻るには、Shift-F11 を使用します。こうすることで、ほとんどの時間、マウス カーソルをテキスト エディター (キーストロークを受け取る人) の上に置くことができます。コーディングを高速化するには、できるだけ手をキーボードの上に置いたままにするのが最善です。

3.3.1.2. Python コンソールを使用する

なぜ Python コンソールが必要なのでしょうか? とりわけ (たとえば、計算機として使用できます)、何かを試すのに非常に便利なツールです。ビデオ シーケンス エディター (VSE) の特定のフレームにPlayheadを配置するという指示は何だったのでしょうか? Python (Shift-F4) を使用してテキスト エディタを一時的に変更し、 "bpy.context" と入力し始めます。... 疑わしい場合は、Tab キーを押して、使用可能なコマンドのリスト (コード補完) を表示します。これも、大きな窓が必要な理由の 1 つです。コード補完リストは非常に長くなる場合があります。いずれかのオプションを選択することはできませんが、実際のキーワードが得られるまで、さらに入力して Tab キーを押してリストを絞り込むことができます。

注釈

残念ながら、Python コンソールのコピー/ペーストおよび選択機能はかなり制限されています。選択はマウスでのみ行うことができます (ただし、上記を参照)。ショートカット Ctrl-Shift-C を押すと、Python コンソール バッファ全体 (画面に表示されるいくつかのコマンドではなく、完全な履歴) がコピーされます。Windows の場合はコマンド import os および os.system('cls') または os.system('clear') を使用して画面をクリアできます。 > Linuxの場合。

完全なコード ブロック (for next ループなど) をコピーして Python コンソールに貼り付けて、実行およびテストすることができます (たとえば、いくつかの変数の値を検査するなど)。ただし、白線の使用は避けてください。次のコマンドを使用して、完全なオープン テキスト エディター コードを実行することもできます。

exec(compile(bpy.data.texts['Text'].as_string(), 'textblock', 'exec'))

これにより、開いているテキスト エディタ ウィンドウからコードが実行されます。 snippet addon を使用して、これらのスニペットを保存できます。

3.3.1.3. オートコンプリート/インテリセンスを使用する

テキスト エディタ自体にはオートコンプリートが組み込まれていますが、それはファイル自体のコード オブジェクトに限定されています。Mackraken と Tintwotin による Intellisense for Blender Text Editor アドオンをインストールできます。これは、呼び出すために奇妙なキーの組み合わせを使用する必要があるにもかかわらず、うまく機能します。もう 1 つの方法は、 Nutti の`fake bpy modules` を利用することです。これは GDQuest で紹介されている。

テキスト エディターからコード (複数行) をコピーし、Python コンソールに貼り付けて実行し、いくつかの変数を検査することもできます。場合によっては、これがあまりうまく機能しないことがあります (空行など)。別の方法としては、コンソールで次のコマンドを実行します。これにより、開いているテキスト ファイルがエディタで実行されます。

Blender sensei バージョンのテキスト エディター (上記を参照) にも、非常に優れたオートコンプリート機能があります。

`` exec(compile(bpy.data.texts['Text'].as_string(), 'textblock', 'exec'))``

3.3.2. VS Code を効率的に使用するにはどうすればよいですか?

もちろん、市場にはプロフェッショナルなコードエディタがいくつかあります。ほとんどの場合、それらはより適切に、より流暢に動作し、より優れたサポートと、最も多様なものに対する無限の拡張機能を備えています。Blender テキスト エディターの唯一の利点は、他の Blender モジュールとスムーズに統合され、コードの実行が非常に簡単であることです。ただし、VS Code と Blender の統合はそれに非常に近いものになります。ただし、セットアップはもう少し複雑です。 Michael Bridges は、 Windows、Linux、Mac 上で VS Code と Blender をセットアップするための 3 つの広範なチュートリアルを作成しました。

このチュートリアルを完了すると、Python 拡張機能と fake-module のオートコンプリート リストを備えた VS Code がインストールされます。その後、VS Code を次の 2 つの方法で使用できます。

3.3.2.1. VS Code をスタンドアロン エディターとして使用する

VS Code でコードを記述し、.py ファイルとして保存し、そのファイルを Blender テキスト エディターで開き、実行して編集し、再度保存します (注意: ショートカット キーは Alt-S です)。VS Code で続行し (コードはリアルタイムで更新されます)、保存して、Blender テキスト エディターに切り替え、更新ボタンを押して続行します。もちろん、VS Code エディターを使用してコードを入力する場合を除いて、これには大きな利点はありません。

3.3.2.2. VS Code を統合エディタとして使用する

まず、Jaques Luke による素晴らしい Blender 拡張機能をインストールする必要があります。Blender 開発用の拡張ライブラリを検索します。

Blender extension for VSCode

図2 VCode の Blender 拡張機能

コマンド (ショートカット = Alt-Shift-P) を使用して VS Code 内から Blender のインスタンスを起動し、"Blender: Start"を選択します。これにより、Blender が起動し、Blender のシステム コンソールが VS Code のターミナル ウィンドウに移動します。これで、[Terminal] タブからシステム コンソールにアクセスできるようになります。Python コンソールは、[Debug Console] タブで利用できます。Blender の他のインスタンスを手動で作成することもできますが、Blender のこの特定のインスタンスは VS Code 内からのみ管理できる (たとえば閉じられる) ことに注意してください。

[Blender: New Script] コマンドを使用して新しい空のスクリプトを作成するか、既存のスクリプトを開くことができます。このスクリプトを VS Code 内で編集します。スクリプトの先頭で [Blender: Set Script Context] コマンドを使用して、正しいコンテキスト (例: VIDEO SEQUENCER、VIEW_3D など) を設定します。 [Blender: Run Script] コマンドを使用して、VS Code 内からスクリプトを実行できます。すべてがうまくいけば、スクリプトは Blender 環境内で実行されます。エラーがある場合は、システム コンソール (ターミナル) または Python コンソール (デバッグ コンソール) に出力されます。

terminal window of Blender extension

図3 terminal window of Blender extension

デバッグのために、1 つ以上のブレークポイントを設定してスクリプトを開始できます。スクリプトはブレークポイントで停止します。そこで変数を検査し、コードをステップ実行できます。別のデバッガは Alan によって作成されました。