Open12
Blender関連の、記事にするほどでもない知見のまとめ
ピン留めされたアイテム
概要
「有用だが記事にするほどの分量ではない話」のまとめ
ピン留めされたアイテム
🔝
◇ invoke で出すポップアップパネルの一覧
基本は retrun context.window_manager.invoke_xxx(self, ...)
🔝
◇ Blender の翻訳で、文字列フォーマットを使う方法- f-文字列を含んだ英文を日本語に翻訳できることを確認したので、まとめ
- ぬっち氏のBlenderスクリプトを多言語対応させる方法+α 程度の内容
- 自分の知識では、あまり使いやすい方法にはならなかった
🔝
◇ png 版 Blender の UI アイコン- ざっと調べた感じ、見つからなかったので
- png ファイルに関しては CC BY-SA 4.0
スクショからアイコンを切り抜いて保存する作業で休日を潰す人が、1人でも減ればいいなって...
🔝
◇ Blender 2.8以降での「エディター切り替え」機能について- 「画像/UV」・「ノード関連の3つ」・「グラフ/ドライバー」・「ドープシート/タイムライン」は
Space
の属性の設定が必要 - 通常は
space_data.mode = "xx"
だが、Node Editor だけspace_data.tree_type = "xx"
なので注意
それだけだと内容が寂しすぎるので、駄文を追加した
🔝
◇ メニューの追加登録ができるメニューについて- ぬっち氏の本での記述のように、「右クリック→ソースを編集」を使って class名を調べるのが良い
- 2.91 の
dir(bpy.types)
から作った一覧表のページ
https://nikogoli.github.io/Blender_classname_list_for_menu/
- streamlit で動かす方: python ファイルをダウンロードして実行する or 以下を実行
streamlit run https://gist.githubusercontent.com/nikogoli/d6a06036f24294f426a289650e417c47/raw/2a89bd2b388a31c7f44284071f2137af9fe908ac/show_table.py
github のやつ、実用に足るとは言い難いのでもうちょっとなんとかしたい
Notion でやろうかなと思うが、ページ作成のAPI実装待ちかな・・・
🔝
◇ ポップアップ版テキストエディタBlender の text 入力 (StringProperty) は複数行の入力に向いていない。この点への対応策として、web ブラウザにおけるポップアップ的な挙動を Blender 上で実現する。
具体的な挙動
- ボタンを押すと、テキストエディタが新規ウィンドウで開く
- このウィンドウを閉じると、そこに記述した内容が自動的に StringProperty に反映される
gif
script
仕組みの雑な説明
オペレーターのモーダルモードを利用する
- オペレーターが呼び出されたとき、
invoke()
で新規ウィンドウをテキストエディタとして開き、その状態でのウィンドウの数を記録し、モーダルモードに移行する -
modal()
の中でウィンドウの数を監視し、記録されたウィンドウの数より少ない場合はテキストデータの中身を StringProperty に反映させ、モーダルモードを終了する - マウスがあるとプリファレンスの draw() が勝手に呼ばれるので、変更後の StringProperty の表示に自動的に変わる (本当はモーダル終了時に
tag_redraw()
するべき)