次の項目は別ページに分割しました。
関連ページ:
Blender におけるスクリプトの使い方一般については次のページにまとめています。
モードを取得/変更する
アクティブなエディターの種類を取得する。
area_type = bpy.context.area.type
Code 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 で失敗する | ゲーム作りが大好きな人のブログ
Get current editor toolbar tab via Python? – Blender Stack Exchange
値を操作する
データパスで指定された値を操作する。
- context_collection_boolean_set
- context_cycle_array
- context_cycle_enum
- context_cycle_int
- context_menu_enum
- context_modal_mouse
- context_pie_enum
- context_scale_float
- context_scale_int
- context_set_boolean
- context_set_enum
- context_set_float
- context_set_id
- context_set_int
- context_set_string
- context_set_value
- context_toggle
- context_toggle_enum
ドキュメント:
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
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 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 コンストレイント
参考:
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
剛体を扱う
参考:
データ転送
ドキュメント:
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.location
Code 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
アニメーションをレンダリングする
参考:
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
マテリアルを割り当てる/変更する
参考:
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
アーマチュア/ボーンを扱う
参考:
スクリプトからボーンにキーフレームを打つ – 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
頂点カラーを扱う
- bpy.ops.paint.vert_select_all
- bpy.ops.paint.vertex_color_dirt
- bpy.ops.paint.vertex_color_hsv
- bpy.ops.paint.vertex_color_set
- bpy.ops.paint.vertex_color_smooth
ドキュメント:
Paint Operators | Blender Python API [Official]
参考:
特定の 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
キーフレームを挿入する
参考:
音に合わせてキーフレームを打つ | 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.scene
Code 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]
参考:
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
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_directory
Code 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]
参考:
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
参考: