私は使ったことがないのでcopilotを使用して解答を作成しました。
間違っている部分やわかりにくい部分もあるかもしれません。
■ 1. 「Peimenu」が入っているファイルの探し方(最も確実)
Blender のアドオンは bpy.types.Menu を継承したクラスで Pie Menu を定義します。 そのため、アドオンフォルダ内で次の文字列を検索すると、該当ファイルがすぐ見つかります。
class ...(bpy.types.Menu):
または
bl_idname = \u0026quot;VIEW3D_MT_...\u0026quot;
さらに Pie Menu は以下の API を使います:
layout.menu_pie()
この3つのキーワードで検索すると、Pie Menu を定義しているファイルがほぼ確実に見つかります。
■ 2. Maya Config Addon For Blender の構造(一般的な構成)
このアドオンは通常、以下のような構造になっています:
コード
maya_config/
├ pie_menus/
│ ├ pie_menu_view.py
│ ├ pie_menu_select.py
│ ├ pie_menu_modeling.py
│ └ __init__.py
├ keymaps/
├ operators/
├ prefs.py
└ __init__.py
※実際のファイル名はバージョンによって多少違いますが、 Pie Menu は pie_menus フォルダにまとまっていることが多いです。
■ 3. 「Peimenu」に必要なファイル
一般的に Pie Menu を抜き出すには、次の3種類のファイルが必要です。
① Pie Menu 本体
例:
pie_menu_view.py
pie_menu_modeling.py
中身はこんな構造になっています:
class VIEW3D_MT_PIE_SOMETHING(bpy.types.Menu):
bl_label = \u0026quot;Pie Menu\u0026quot;
def draw(self, context):
layout = self.layout.menu_pie()
...
② その Pie Menu を呼び出すオペレーター
例:
operators/pie_menu_call.py
中身はこんな感じ:
class WM_OT_call_pie_menu(bpy.types.Operator):
bl_idname = \u0026quot;wm.call_pie_menu\u0026quot;
bl_label = \u0026quot;Call Pie Menu\u0026quot;
def execute(self, context):
bpy.ops.wm.call_menu_pie(name=\u0026quot;VIEW3D_MT_PIE_SOMETHING\u0026quot;)
return {'FINISHED'}
③ キーマップ登録ファイル
例:
keymaps/pie_keymap.py
Pie Menu をショートカットで呼び出すための設定が入っています。
■ 4. Pie Menu を単体で使う方法(最も簡単な手順)
Pie Menu のファイル(pie_menu_xxx.py)をコピー
呼び出しオペレーター(call_pie_menu.py)をコピー
__init__.py を自作して Pie Menu と Operator を登録
最低限必要な __init__.py の例:
bl_info = {
\u0026quot;name\u0026quot;: \u0026quot;My Pie Menu\u0026quot;,
\u0026quot;blender\u0026quot;: (3, 6, 0),
\u0026quot;category\u0026quot;: \u0026quot;3D View\u0026quot;,
}
import bpy
from .pie_menu_view import VIEW3D_MT_PIE_SOMETHING
from .call_pie_menu import WM_OT_call_pie_menu
classes = (
VIEW3D_MT_PIE_SOMETHING,
WM_OT_call_pie_menu,
)
def register():
for c in classes:
bpy.utils.register_class(c)
def unregister():
for c in reversed(classes):
bpy.utils.unregister_class(c)
これで Pie Menu だけを独立したアドオンとして使えます。
■ 5. Pie Menu のカスタマイズ方法(基本)
Pie Menu の中身は draw() メソッドで定義されています。
例:
def draw(self, context):
layout = self.layout.menu_pie()
pie = layout
pie.operator(\u0026quot;mesh.primitive_cube_add\u0026quot;, text=\u0026quot;Cube\u0026quot;)
pie.operator(\u0026quot;mesh.primitive_uv_sphere_add\u0026quot;, text=\u0026quot;Sphere\u0026quot;)
ここを書き換えるだけで、 好きなオペレーターを配置した Pie Menu を作れます。