Doc:JA/2.6/Manual/Extensions/Python/Text editor
Text Editor
Text Editor は Blender のウィンドウの種類の一つで、 Window type メニューの Text Editor ボタン ()、もしくは ⇧ ShiftF11 でアクセスできます。
新たに開いた Text window は灰色で空っぽで、とてもシンプルなツールバー (Text Toolbar) がついています。
左から右に向かって、標準の Window type 選択ボタンとウィンドウメニューがあります。そして Text ID Block 一覧のボタン、その隣に新規テキストファイルを作るための New(新規)ボタンが続きます。一旦クリックするとツールバーが変わり、変わったままになります。
これで、テキストファイルの名前変更のためのテキストボックスと、その隣に新規ファイルを作るための + ボタンができます。text block を取り除くには X ボタンをクリックしてください。
続く3つのボタンはそれぞれ、行番号、テキストの折り返し、構文ハイライトのオン・オフを切り替えます。
キーボードで文字を打つと、テキストバッファにテキストが現れます。いつものように LMB を押したりドラッグしたり離したりしてテキストを選択できます。
次のキーボードコマンドを使えます:
- CtrlC - 選択テキストをコピーしてテキストのクリップボードに入れます。
- CtrlX - 選択テキストをカットしてテキストのクリップボードに入れます。
- CtrlV - テキストウィンドウのカーソル位置に、クリップボードからテキストを貼り付けます。
- ⇧ ShiftCtrlAltS - 未保存ファイルをテキストファイルとして保存します。File Browser ウィンドウが表示されます。
- AltS - すでに開いているファイルを保存します。
- AltO - テキストを開きます。File Browser ウィンドウが表示されます。
- AltP - テキストを Python スクリプトとして実行します。
- CtrlZ - 元に戻します。
- Ctrl⇧ ShiftZ - やり直します。
- AltR - 現在のバッファを開き直し(再読み込み)します (未保存の編集内容は失われます)。
- AltM - テキストウィンドウの内容を 3D text に変換します(最大 100文字)。
テキストバッファを削除するには、マテリアルなどの操作と同じで、単にバッファ名の隣にある X ボタンを押してください。
もっとも注目に値するキーは AltP で、バッファの内容を Blender 内蔵の Python インタプリタに実行させます。次のページで、Python スクリプティングの例をお見せします。先に進む前に知っておくに値するのは、Blender が組み込みの完全版 Python インタプリタや、API リファレンス に記載のあるような多くの Blender 独自のモジュールを備えていることです。
Text Editor は Python スクリプト専用の機能も持っていて、クラス/関数/変数ブラウザ、補完…など、記述に役立つツールを追加します。これらの機能には Toolshelf(ツールシェルフ)(CtrlT)からアクセスできます。
テキストウィンドウの他の用途
テキストウィンドウは、.blend ファイルをコミュニティや友人と共有したいときにも役に立ちます。blender ファイルの内容を説明した README テキストの記述に使えます。別々のアプリケーションで作って保存するよりずっと便利です。テキストウィンドウが見えている状態で保存することを忘れずに! ファイルをあるライセンスのもと、コミュニティで共有するときは、テキストウィンドウにそのライセンスを記述できます。
デモンストレーション
エクササイズ
次のテキストをテキストウィンドウにコピーしてください。
import bpy
from math import radians, cos, sin
# オブジェクトは 20 までのレイヤーに存在できます。
# 次のコードはどのレイヤーに配置したいのかを決定します
# カーソル位置を取得します
cursor = bpy.context.scene.cursor_location
# 円の半径
radius = 5
# 間隔を置いて立方体を円周上に配置します。デフォルトは36度間隔です。
# 角度をラジアンに変換したリストを取得します
anglesInRadians = [radians(degree) for degree in range(0, 360, 36)]
# 角度リストをループし、極座標を使って x,y を求め、
# オブジェクトを作ります
for theta in anglesInRadians:
x = cursor.x + radius * cos(theta)
y = cursor.y + radius * sin(theta)
z = cursor.z
bpy.ops.mesh.primitive_cube_add(location=(x, y, z))
スクリプトを AltP で実行してください。
上のスクリプトの実行結果を次の動画で見られます。