2021-08-18

这篇教程介绍了如何使用Python编写一个简单的Blender插件,包括定义插件信息、创建Operator、Menu和Panel。示例代码展示了如何实现一个带有参数的按键操作和下拉菜单,并在3D视图的ToolShelf中显示。通过这个教程,初学者可以了解Blender插件的基本结构和功能实现。
摘要由CSDN通过智能技术生成

编写简单的blender 插件教程

学习 · 刚刚 0阅读 · 0点赞
imdjs神马动画

这是一个简单的用bpy编写blender插件的教程,整个插件代码只有不到100行,但有完整的界面与功能.
以下文本保存为 任何一个名字.py

#====代码开始==============================================

bl_info = {
    "name": "IMDJS_TEST_tool",#这是在插件面板里显示的名称
    "author": "imdjs",#插件作者
    "version": (0, 1,0),#插件版本号
    "blender": (2, 93,1),#支持blender的版本
    "location":"View3D > Tool Shelf > TEST_tool",#介绍插件位置
    "description": "为了测试",
    "wiki_url": "None yet"#可以添加一个网址的链接,(这里是空的)
                "NA",
    "tracker_url": "NA"
                   "",
    "category": "Mesh"}#插件分类
    #category": All     User  Enabled    Disabled  3D View  Add    Add Curve  Add Mesh     Animation    Compositing     Development  Game Engine  Import-Export  Material    Mesh  Node    Nodes  Object  Outliner     Paint    Particle  Render  Rigging  Scene  Sculpting     Sequencer    Surface     System     Text Editor  UI  UV  User Interface  Listener#以上是所列的全部分类,可以根据插件类型填写不同分类名 如:Object 或Mesh
    
import bpy
from bpy.props import IntProperty  #这里是导入props模块的 IntProperty 属性
#按键///
class 卐按键卐Operator(bpy.types.Operator):
    bl_idname = "op.exp_test"#按键id,必须小写而且不能与其它operator的id重复
    bl_label = " "#按键显示名称
    bl_description = "---"#填写按键功能描述
    bl_options = {"REGISTER", "UNDO"};#注册插件参数,就是运行这个operator后会自动弹出参数界面
   
    ip参数:IntProperty(name='参数',description='',default=0,min=0,max=100,step=1);#这是设置本Operator的参数,这里是int类型,可以是其它类型,例如FloatProperty
    #----按下按键执行--------------------------
    def execute(self,context):
        print("EXEC打印脚本==",);
        #这里可以写按下这个键要实际的功能
        return {"FINISHED"};
#====下拉菜单,必须用 MT_MT_ 前缀====================================
class MT_MT_TEST_Menu(bpy.types.Menu):
    bl_label = "TEST_MENU"#下拉菜单的名称
    #这个draw 函数是绘制下拉菜单的界面(这里只有一个operator按键)
    def draw(self, context):
        layout = self.layout;
        layout.operator(卐按键卐Operator.bl_idname,translate=True,icon="BONE_DATA");#把上面的按键放到下拉菜单里
#界面,PT_PT_ 前缀///
class PT_PT_TEST_Panel(bpy.types.Panel):
    bl_label = "TEST tool" #这是在软件里插件显示的名称
    bl_space_type = 'VIEW_3D'
    bl_region_type = "UI"#在右边面板
    bl_category = "自定义标签"#插件分类tab 可以是Tool 或自定义名

    #这个@classmethod函数决定了面板在什么情况下显示,如果不写这个函数,那么插件就会一直显示
    @classmethod
    def poll(self,context):
        oA=context.active_object;#激活的物体
        return (oA and    oA.type in["MESH","CURVE","LATTICE"]);#如果激活的物体是"MESH","CURVE","LATTICE" 其中一种类型就激活界面,否则就不显示这个界面
   
    #这个draw 函数是绘制主插件的界面(这里只有一个operator按键)
    def draw(self, context):        
        layout = self.layout;
        layout.operator(卐按键卐Operator.bl_idname,translate=True, icon = "PMARKER_ACT");#画出按键
        layout.menu("MT_MT_TEST_Menu", icon="OUTLINER_OB_ARMATURE");#画出下拉菜单界面
        
#注册插件
def register():
    bpy.utils.register_class(卐按键卐Operator);
    bpy.utils.register_class(MT_MT_TEST_Menu);
    bpy.utils.register_class(PT_PT_TEST_Panel);
#====注销插件==========================
def unregister():
    bpy.utils.unregister_class(卐按键卐Operator);
    bpy.utils.unregister_class(MT_MT_TEST_Menu);
    bpy.utils.unregister_class(PT_PT_TEST_Panel)
#----------------------------------------------------------
if (__name__ == "__main__"):
    register()
#====代码结束==============================================

把上面的 xxx.py 文件直接在blender插件安装或放到自定义的插件目录.

打开blender 在插件目录 搜索test 会出现这个界面:
在这里插入图片描述

勾选插件 就可以在标签栏增加一个叫 自定义标签,这里有一个按键与一个下拉菜单,点击就可以执行功能,当然这里只是实现了打印功能,你可以在这里写上任何功能.
在这里插入图片描述

打开控制台窗口可以看到打印信息.
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值