モードを取得/変更する

アクティブなエディターの種類を取得する。

area_type = bpy.context.area.typeCode language: Python (python)

現在の編集モードを判定する。

if bpy.context.mode == 'OBJECT':
    print('In Object Mode')Code language: Python (python)

オブジェクトモードに切り替える。

if bpy.context.view_layer.objects.active:
    bpy.ops.object.mode_set(mode='OBJECT')Code language: Python (python)

メッシュ編集モードに切り替える。

if bpy.context.view_layer.objects.active:
    bpy.ops.object.mode_set(mode='EDIT_MESH')Code language: Python (python)

ドキュメント:

bpy.context.area | Blender Python API [Official]

bpy.context.mode | Blender Python API [Official]

bpy.ops.object.mode_set | Blender Python API [Official]

bpy.ops.object.mode_set_with_submode | Blender Python API [Official]

bpy.ops.object.editmode_toggle | Blender Python API [Official]

bpy.ops.mesh.select_mode | Blender Python API [Official]

参考:

bpy.ops.object.mode_set が context is incorrect で失敗する | ゲーム作りが大好きな人のブログ

‘Context is incorrect’ error when using ‘bpy.ops.object.mode_set(mode=’OBJECT’)’ if I’m already in object mode – Blender Stack Exchange

Get current editor toolbar tab via Python? – Blender Stack Exchange

値を操作する

データパスで指定された値を操作する。

こちらのページを参照

ドキュメント:

WM Operators | Blender Python API [Official]

参考:

about wm.context_toggle confused | Blender Artists Community

How to make a shortcut for this button? – Blender Stack Exchange

カメラを操作する

ドキュメント:

Camera | Blender Python API [Official]

参考:

カメラを Python で操作しよう | Rafka の実験室

カメラの位置と角度を設定する | 隅歩つ

現視点をカメラにするボタン追加してみた | Logical Studio Blog

How to Create Camera through the Python API | Interplanety

How to move a camera in Blender 2.61 with Python – Stack Overflow

What is the difference between scene camera and data camera and how to set the FOV? – Blender Stack Exchange

Camera Culling set by Python not triggering – Blender Stack Exchange

How do I get the vector of the direction the camera points – Blender Stack Exchange

視錘台/カメラに映る範囲を描画する (Camera Frustum)

こちらのページを参照

参考:

How do you find the corners of a camera frustum? – Blender Stack Exchange

View camera boundaries in user perspective? – Blender Stack Exchange

レイキャスト/カメラに映っているか判定する

参考:

ray_cast function not able to select all the vertices in camera view – Blender Stack Exchange

How to get the 3D coordinates of the visible vertices in a rendered image in Blender – Blender Stack Exchange

How to find the armatures which are hidden in the camera perspective by other parts? – Blender Stack Exchange

コンストレイントを付与する

参考:

How do I add a constraint to an object with Python? – Blender Stack Exchange

Can’t figure out how to use correct contexts? – Blender Stack Exchange

Set resting length for a generic spring constraint – Blender Stack Exchange

Child Of コンストレイント

参考:

Why can’t I execute clear/set inverse of Child Of constraints with python? – Blender Artists Community

Set inverse Child Of constraints via python – Blender Artists Community

Child Of Constraint Set Inverse with Python – Blender Stack Exchange

Fカーブを扱う

参考:

How to smooth curves in Graph Editor by Script – Blender Stack Exchange

モーションパスを扱う

参考:

モーションパスからカーブをつくる | ようへい

Convert object motion path to curve – Blender Artists Community

剛体を扱う

参考:

Python で剛体をいっぱい作成 | QCGANIME

データ転送

ドキュメント:

bpy.ops.object.data_transfer | Blender Python API [Official]

DataTransferModifier | Blender Python API [Official]

参考:

low level alternative for bpy.ops.object.data_transfer for weight copy – Blender Stack Exchange

copy all data from one object to another + animations – Stack Overflow

カーソル位置を取得/設定する

cursor_location = bpy.context.scene.cursor.locationCode language: Python (python)

ドキュメント:

Scene.cursor | Blender Python API [Official]

View3DCursor | Blender Python API [Official]

参考:

3D Cursor Location in Python API | Interplanety

How to set cursor location, pivot_point in script? – Blender Stack Exchange

オーバーレイ (Overlays)

ドキュメント:

View3DOverlay.show_overlays | Blender Python API [Official]

参考:

Operator for Toggling Checkboxes | Interplanety

can’t find a way to toggle overlay options in 3D View – Blender Artists Community

geometry wireframe shortcut 2.8 – Blender Artists Community

toggle overlays shortcut? – Blender Stack Exchange

grid_scale? – Blender Stack Exchange

Change edge information display in Blender 2.80 with Python – Blender Stack Exchange

access viewport overlay options using Python API – Blender Stack Exchange

How to add buttons from “Overlay” section in custom panel? – Blender Stack Exchange

Customize bpy.context.space_data.overlay.show_stats – Blender Stack Exchange

シェーディング (Shading)

参考:

updating code sample from v2.63 (image rendering and saving) – Blender Stack Exchange

Where is shadeless material option? – Blender Stack Exchange

Python code to switch shading mode between wireframe and solid mode – Blender Stack Exchange

バックグラウンドでの実行を判別する

ドキュメント:

bpy.app.background | Blender Python API [Official]

参考:

Test if .blend is running in background – Blender Stack Exchange

アニメーションをレンダリングする

参考:

How can I make an object use it’s animation action at a specific frame in Python script? – Blender Stack Exchange

3D ビューポートを扱う

参考:

How to access properties of the 3D Viewport? – Blender Stack Exchange

3D ビューポートに描画する

ドキュメント:

bpy.types.SpaceView3D.draw_handler_add | Blender Python API [Official]

bpy_extras.view3d_utils | Blender Python API [Official]

コード:

3D View上 の頂点位置を OpenGL で表示する (12funkeys) – GitHub Gist

openGL_test.py の更新版/ポーズモードに対応 (12funkeys) – GitHub Gist

参考:

スクリプトの内部から OpenGL を利用する – Qiita

gpu モジュールを使って図形描画する | はじめての Blender アドオン開発

How do I get a reference to the viewport camera? – Blender Stack Exchange

draw_handler_add() and draw_handler_remove() – Blender Stack Exchange

How to draw geometry in 3D View window with bgl – Blender Stack Exchange

How can I add a text help window and a help button into the 3D View? – Blender Stack Exchange

Is automatic “Reload from disk” confirmation in Text Editor possible? – Blender Stack Exchange

ツールを選択する

ドキュメント:

bpy.ops.wm.tool_set_by_id | Blender Python API [Official]

ウィンドウを扱う

ドキュメント:

Screen Operators | Blender Python API [Official]

参考:

Python API による UI レイアウト、Workspace の制御方法の調査 – Qiita

エリアを再描画する

ドキュメント:

Area.tag_redraw | Blender Python API [Official]

参考:

イベントタイマーを設定して1秒間に60回画面を更新する – Qiita

How to force View3D update in the middle of script – Blender.org

performance with operators – Blender Stack Exchange

エリアを分割する

ドキュメント:

bpy.ops.screen.area_split | Blender Python API [Official]

参考:

How to split and join interface windows thruough Python API | Interplanety

フルスクリーンで表示する

参考:

script to view animation preview panel in full screen – Blender Stack Exchange

script to toggle full screen area – Blender Stack Exchange

マテリアルを割り当てる/変更する

参考:

隣り合う面に異なる色を割当 – Qiita

changing viewport color to surface color in Cycles – Blender Artists Community

rendered object color different from viewport color – Blender Stack Exchange

コレクションを扱う

ドキュメント:

Collection | Blender Python API [Official]

bpy.types.Collection.children | Blender Python API [Official]

CollectionChildren | Blender Python API [Official]

bpy.types.CollectionChildren.link | Blender Python API [Official]

bpy.types.CollectionChildren.unlink | Blender Python API [Official]

参考:

Python API ドキュメントを少しずつ読み解く クイックスタート #2 | MR が楽しい

New Python snippets in Blender 2.8x (alchem0x2A) – GitHub Gist

Help adding new scene, collection, objects – Blender Artists Community

Batch exporting scene collections or selected objects using glTF-Blender-IO – Blender Stack Exchange

How to move collection into another collection? – Blender Stack Exchange

What is the Python API for moving a collection? – Blender Stack Exchange

Delete collection or clear the intial scene – Blender Stack Exchange

How to obtain the parent of a collection – Blender Stack Exchange

How to get all collections of the current scene? – Blender Stack Exchange

disable render of all collections with Python – Blender Stack Exchange

Sorting Collections Alphabetically in the Outliner – Blender Stack Exchange

アーマチュア/ボーンを扱う

こちらのページを参照

参考:

ボーンアクセスチートシート | dskjal

Bone の姿勢計算が合わないときの金の針 – Qiita

スクリプトからボーンにキーフレームを打つ – GitHub Gist

Converting armatures to mesh objects – Blender Artists Community

How to copy position, size from one armature to another? – Blender Stack Exchange

Convert bones to meshes – Blender Stack Exchange

How to get an armature by name and get access to its bones? – Blender Stack Exchange

Select pose bone in pose mode – Blender Artists Community

How to make a bone active? – Blender Stack Exchange

Set active bone in pose mode – Blender Stack Exchange

頂点グループを扱う

こちらのページを参照

参考:

特定の Vertex Group に対して Python で色を塗る- Qiita

how to rename vertex group? – Blender Artists Community

How to batch rename bones and their corresponding vertex groups? – Blender Stack Exchange

How to modify vertex groups through script – Blender Stack Exchange

Applying per-vertex colors to new BMesh – Blender Stack Exchange

Finding vertices in a vertex group using Python API – Blender Stack Exchange

頂点カラーを扱う

こちらのページを参照

ドキュメント:

Paint Operators | Blender Python API [Official]

参考:

頂点カラーを調べる | Hajime Saito

特定の Vertex Group に対して、Python で色を塗る。 – Qiita

How to paint vertices in different object using scripts? – Blender Stack Exchange

When I paint in vertex paint mode, can I paint per vertex? – Blender Stack Exchange

Changing vertex colors through Python – Blender Stack Exchange

set a specified vertex color to black via Python – Blender Stack Exchange

Applying per-vertex colors to new BMesh – Blender Stack Exchange

キーフレームを挿入する

こちらのページを参照

参考:

Script で keyframe をいじる | 黒狐

音に合わせてキーフレームを打つ | Toshusai blog

Set keyframes using Python script – Blender Artists Community

set keyframe by active object only? – Blender Stack Exchange

modal operator cannot insert keyframe and move object – Stack Overflow

アクションを扱う

こちらのページを参照

参考:

Get bones associated with specific action in python – Blender Stack Exchange

ドライバーを操作する

参考:

スクリプトからドライバーをつける & IK / FK 切り替えスイッチの自動セットアップ | dskjal

change the target object of a variable Driver – Blender Artists Community

How Can I modify drivers properties via Python? – Blender Stack Exchange

How to put together a driver with Python – Blender Stack Exchange

How to access driver f-curve data with Python? – Blender Stack Exchange

カスタムプロファイルを操作する

参考:

T72422 Bevel Custom Profile: no way to Copy To Selected | Blender Developer [Official]

How do you add custom profile prop to operator (like in bevel operator) – Blender Developer Talk

custom curve – Blender Stack Exchange

カーブマップを操作する

ドキュメント:

bpy.types.CurveMap | Blender Python API [Official]

bpy.types.CurveMapPoint | Blender Python API [Official]

bpy.types.CurveMapPoints | Blender Python API [Official]

bpy.types.CurveMapping | Blender Python API [Official]

参考:

Add a custom curve mapping property for an add-on? – Blender Stack Exchange

フレーム/フレームレート (Frame / FPS)

コンテキストのシーンを取得する。

scene = bpy.context.sceneCode language: Python (python)

シーンの変数を参照する。

  • 現在フレーム scene.frame_current
  • 開始フレーム scene.frame_start
  • 終了フレーム scene.frame_end
  • フレームレート scene.render.fps

現在フレームを設定するには、frame_set メソッドを使う。

scene.frame_set(1001)Code language: Python (python)

ドキュメント:

bpy.types.Scene.frame_set | Blender Python API [Official]

参考:

コマ数を画面に表示する | MITSUDA Tetsuo

Get / Set frames per second – Blender Artists Community

Set the first and end frame by script – Blender Artists Community

What is the Python script to set the current frame – Blender Stack Exchange

How to stop Action Constraint giving different results when code is run in text editor vs Python console? – Blender Stack Exchange

Change start and end frame of rigid physics simulation with Python – Blender Stack Exchange

物理シミュレーションを実行する

参考:

物理シミュレーションを Python から操作する | Takashi Q. Hanamura Photography

フォントを扱う

フォントディレクトリを取得する。

font_dir = bpy.context.preferences.filepaths.font_directoryCode language: Python (python)

ドキュメント:

bpy.types.PreferencesFilePaths.font_directory | Blender Python API [Official]

参考:

How to open all fonts at once? – Blender Stack Exchange

How to change font for text objects? – Blender Stack Exchange

別のスクリプトを呼び出す

参考:

スクリプト実行で別ファイルの関数を利用する | MR が楽しい

How to programmatically load a Python script in Text Editor and launch it – Blender Stack Exchange

実行中のスクリプト名を取得する

参考:

How to get the active script name? – Blender Artists Community

ファイルのパスを取得する

参考:

How to get the directory of open blend file? – Blender Stack Exchange

ショートカットキーをカスタマイズする (Keymap)

ドキュメント:

Keymap Customization | Blender Manual [Official]

コード:

custom_key_config.py – delorenj/Blender-Stuff – GitHub

参考:

スクリプト内部で自作の機能にショートカットキーを割り当てる – Qiita

ショートカット/ホットキーの割り当て方 | Blender.jp フォーラム

How to make a shortcut for this button? – Blender Stack Exchange

How do you make a shortcut for the Unwrap popup menu? – Blender Stack Exchange

Is it possible to create a modal operator with a modal keymap? – Blender Stack Exchange

Add toggle hotkey to custom checkbox – Blender Stack Exchange

How to register keymaps for all editor types? – Blender Stack Exchange

How can I call a specific keymap to draw within my Addon Preferences? – Blender Stack Exchange

Shortcut to execute a Macro or Script – Blender Stack Exchange

How can I look up or create a shortcut? – Blender Stack Exchange

テーマ/配色を変更する

参考:

How to change a ui color from within the console? – Blender Stack Exchange

初期設定を読み込む

ドキュメント:

bpy.ops.wm.read_factory_settings | Blender Python API [Official]

参考:

How to completely remove all loaded data from Blender? – Blender Stack Exchange

アドオン一覧を取得する

print(bpy.context.preferences.addons.keys())Code language: Python (python)

ドキュメント:

bpy.types.Preferences.addons | Blender Python API [Official]

アドオンの有効/無効を切り替える

ドキュメント:

Preferences Operators | Blender Python API [Official]

参考:

特定アドオンの有効/無効化 | MR が楽しい

How can I permanently enable an addon in the userpref through Python? – Blender Stack Exchange

Reset all add-ons – Blender Stack Exchange

Cancel addon registering – Blender Stack Exchange

アセットを操作する

参考:

Get Asset Browser catalogs in case of unsaved changes – Blender Stack Exchange

太陽系/惑星を動かす

動画:

3D Objects and Animations with Python API

コード:

ProceduralPlanets.py (MinaPecheux) – GitHub Gist

参考:

Create 3D Objects and Animations with Python API | Demando

Generating a Procedural Solar System with Python API (Mina Pêcheux) | Geek Culture

bps.ops.transform

参考:

bpy.ops.transform による変換 | 環耀の備忘録

operator_menu_enum

参考:

calling “Add Modifier” popup – Blender Artists Community

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA