スポンサーリンク

Blender 2.8でアドオンを作ってみる

まず以下のスクリプトをおもむろに実行する

import bpy

##############################################

# ボタンを定義
class ConeButton(bpy.types.Operator):
  bl_idname = "szl.button"
  bl_label = "Add a CONE"
  
  def execute(self, context):
    bpy.ops.mesh.primitive_cone_add()
    return{'FINISHED'}


##############################################

# パネルの項目を定義
class ConeUI(bpy.types.Panel):
  bl_label = "panel title"
  bl_space_type = "VIEW_3D"
  bl_region_type = "UI"
  bl_category = "AddConePanel"
  
  def draw(self, context):
    self.layout.operator("szl.button")

##############################################
    
classes = (
  ConeUI,
  ConeButton
)

##############################################

# アドオン有効化時に呼び出される
def register():
  for c in classes:
    bpy.utils.register_class(c)

# アドオン無効化時に呼び出される
def unregister():
  for c in classes:
    bpy.utils.unregister_class(c)

if __name__ == "__main__": register()
 

すると、パネルに新しい項目が追加され、ボタンを押すとConeが生成される。

これは上記スクリプトの最後の register() 関数が実行されたため。

しかしBlenderを再起動すれば消えてしまう。そこでまず以下のように変更を加える。ファイル名は add-cone-addon.py とでもしておく。

下記、bl_infoの部分があるとアドオンとして認識される。

また、registerはBlenderがアドオンを読み込んだときに自動で呼び出されるので、一番下の呼び出し部分を削除する。

import bpy

##############################################
bl_info = { "name" : "sample: add-on-name", "author" : "yodori soratori", "version" : (1, 0), "blender" : (2, 81, 0), "location" : "location", "description": "sample", "warning" : "warning message", # 空だと!アイコンが出ない "support" : "TESTING", # または OFFICIAL または COMMUNITY "wiki_url" : "", "tracker_url": "", "category" : "Object" #アドオンのカテゴリ }
############################################## # ボタンを定義 class ConeButton(bpy.types.Operator): bl_idname = "szl.button" bl_label = "Add a CONE" def execute(self, context): bpy.ops.mesh.primitive_cone_add() return{'FINISHED'} ############################################## # class ConeUI(bpy.types.Panel): bl_label = "panel title" bl_space_type = "VIEW_3D" bl_region_type = "UI" bl_category = "AddConePanel" def draw(self, context): self.layout.operator("szl.button") ############################################## classes = ( ConeUI, ConeButton ) ############################################## # アドオン有効化時に呼び出される def register(): for c in classes: bpy.utils.register_class(c) # アドオン無効化時に呼び出される def unregister(): for c in classes: bpy.utils.unregister_class(c)
#if __name__ == "__main__": # register()

そして、Preference → Add-ons でアドオンとしてインストールする

参考

https://dskjal.com/blender/ui-script.html

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: