目标

  • [x] 总结Blender插件初始化范例

总结

插件模板

Blender内部插件实现方式模板功能总结如下:

  1. 定义了子模块重加载方式
  2. 定义了批量加载子模块的方式
  3. 插件注册函数
  4. 插件注销函数

模块总体结构如下:

# 支持子模块重加载(support reloading sub-modules)
if "bpy" in locals():from importlib import reload_modules_loaded[:] = [reload(val) for val in _modules_loaded]del reload# 定义要加载的模块
_modules = ["add_mesh_torus",...]import bpy# 模块加载, __import__()相当于 from __name__ import _modules
__import__(name=__name__, fromlist=_modules)
_namespace = globals()
_modules_loaded = [_namespace[name] for name in _modules]
del _namespacedef register():from bpy.utils import register_classfor mod in _modules_loaded:for cls in mod.classes:register_class(cls)def unregister():from bpy.utils import unregister_classfor mod in reversed(_modules_loaded):for cls in reversed(mod.classes):if cls.is_registered:unregister_class(cls)

范例

Blender Foundation\Blender\2.79\scripts\startup\bl_operators\__init__.py


# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK ###### <pep8 compliant># support reloading sub-modules
if "bpy" in locals():from importlib import reload_modules_loaded[:] = [reload(val) for val in _modules_loaded]del reload_modules = ["add_mesh_torus","anim","clip","console","file","image","mask","mesh","node","object_align","object","object_randomize_transform","object_quick_effects","presets","rigidbody","screen_play_rendered_anim","sequencer","uvcalc_follow_active","uvcalc_lightmap","uvcalc_smart_project","vertexpaint_dirt","view3d","wm",]import bpyif bpy.app.build_options.freestyle:_modules.append("freestyle")__import__(name=__name__, fromlist=_modules)
_namespace = globals()
_modules_loaded = [_namespace[name] for name in _modules]
del _namespacedef register():from bpy.utils import register_classfor mod in _modules_loaded:for cls in mod.classes:register_class(cls)def unregister():from bpy.utils import unregister_classfor mod in reversed(_modules_loaded):for cls in reversed(mod.classes):if cls.is_registered:unregister_class(cls)

转载于:https://www.cnblogs.com/yaoyu126/p/9329038.html

Blender插件初始化范例相关推荐

  1. WordPress Tweet Blender插件跨站脚本漏洞

    漏洞名称: WordPress Tweet Blender插件跨站脚本漏洞 CNNVD编号: CNNVD-201310-645 发布时间: 2013-10-30 更新时间: 2013-10-30 危害 ...

  2. 解决谷歌浏览器:Flash插件初始化失败,请更新您的FlashPlayer版本之后重试!

    解决谷歌浏览器:Flash插件初始化失败,请更新您的FlashPlayer版本之后重试! chrome浏览器使用百度编辑器给网站上传图片时,提示"flash插件初始化失败,请更新您的flas ...

  3. Paste Image插件初始化设置:修改图片保存路径、自动插入图片描述信息

    Paste Image插件初始化设置:修改图片保存路径.自动插入图片描述信息 Paste Image插件默认将图片保存于所编辑的Markdown文档的当前目录下,若插入的图片较多,会导致该目录下显得杂 ...

  4. blender 插件使用笔记

    目录 插件安装方法: Quick Easy Animate插件,有下载地址: 插件安装完后,查看已安装的插件: 插件安装方法: Blender-插件安装方法及使用 - 知乎 Quick Easy An ...

  5. [ WebUpload ] WebUpload 插件初始化问题

    WebUpload 插件初始化问题 本文主要针对WebUpload 文件上传插件在初始化多个时,插件自定义按钮显示位置错位导致点击失效的问题提供解决方案.(亦可描述为webupload插件在父容器di ...

  6. Blender插件:Boxcutter v7.1.7_4_Claymore 超强硬表面建模布尔

    Blender插件:Boxcutter v7.1.7_4_Claymore 超强硬表面建模布尔 Boxcutter是一个Blender 3d插件,用于利用屏幕绘图和热键进行概念设计.它已被世界各地的制 ...

  7. blender 插件如何下载

    Blender 插件可以在 Blender 官方网站上下载,也可以从第三方网站上下载.在 Blender 官方网站上,你可以到"插件市场"页面搜索需要的插件,然后点击"下 ...

  8. Blender插件:水滴生成器(Droplet Generator)

    推荐:将 NSDT场景编辑器 加入你的3D开发工具链. 原文地址:https://www.mvrlink.com/droplet-generator/ 1.官方介绍: 适用于Blender 3.1及更 ...

  9. Blender插件天空地形山水自然环境生成器 TerrainScapes V2.0

    在几分钟内创建和渲染令人惊叹的环境,TerrainScapes插件是一个扩展的资产和工具集库,使Blender用户能够创建可爱的风景场景.对这个插件的目标是让它既直观又易于使用,同时也尽可能地具有定性 ...

  10. Blender插件-破碎爆炸火焰烟雾特效 KhaosUltimate Explosion Destruction

    "Khaos"插件是一个强大的工具,允许电影制作人和 3d 艺术家在 Blender 3d 中简化他们的爆炸和刚体破坏创建过程.对于创建爆炸,KHAOS 允许用户通过几次点击添加燃 ...

最新文章

  1. dot3_bump_mapping
  2. c++builder Delphi 直接使用剪贴板 Clipboard
  3. Redis 内存压缩实战,学习了!
  4. 论文盘点:基于图卷积GNN的多目标跟踪算法解析
  5. MySQL之日期时间处理函数_MySQL之日期时间处理函数
  6. 微信开发系列之十 - 在SAP C4C接收微信发送过来的服务请求回应
  7. 小程序triggerevent 传参_微信小程序——无限递归的层次列表
  8. KVM虚拟机设置虚拟机的CPU型号与物理机相同
  9. 基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习
  10. 赤兔安卓版语音图片资料处理
  11. ispostback之坑
  12. CSDI2018广州关于《Nginx》的分享(附文字速录与PPT)
  13. python读取手机通讯录_python爬取通讯录
  14. BUUCTF WEB DROPBOX
  15. 2022内蒙古最新建筑施工塔式起重机(建筑特种作业)模拟考试题库及答案
  16. 微信公众号运营助手,可以在手机上回复粉丝留言
  17. 【思维导图怎么画】万彩脑图大师教程 | 插入动画图标
  18. 网站设计新趋势:沉浸式交互设计
  19. 分布式锁 - Redisson的看门狗(watchdog)机制
  20. 【2012级新生请猛击】NEW COMER FIRST BLOOD 完全题解及代码

热门文章

  1. QT tableWidget的使用及其实例
  2. MySQL主从同步(二)——M-S架构配置实战
  3. NYOJ--218--Dinner(含题目意思)
  4. FB正在大规模重构React Native,预计今年发布
  5. 《Cacti实战》——2.3 Cacti的安装与配置
  6. 树莓派安装系统并设置中文界面
  7. iostat lsof
  8. 覆盖原有div或者Input的鼠标移上去描述
  9. Android使用AsyncTask设置请求超时的注意事项
  10. 天下的母亲都是一样的