Blender插件初始化范例
目标
- [x] 总结Blender插件初始化范例
总结
插件模板
Blender内部插件实现方式模板功能总结如下:
- 定义了子模块重加载方式
- 定义了批量加载子模块的方式
- 插件注册函数
- 插件注销函数
模块总体结构如下:
# 支持子模块重加载(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插件初始化范例相关推荐
- WordPress Tweet Blender插件跨站脚本漏洞
漏洞名称: WordPress Tweet Blender插件跨站脚本漏洞 CNNVD编号: CNNVD-201310-645 发布时间: 2013-10-30 更新时间: 2013-10-30 危害 ...
- 解决谷歌浏览器:Flash插件初始化失败,请更新您的FlashPlayer版本之后重试!
解决谷歌浏览器:Flash插件初始化失败,请更新您的FlashPlayer版本之后重试! chrome浏览器使用百度编辑器给网站上传图片时,提示"flash插件初始化失败,请更新您的flas ...
- Paste Image插件初始化设置:修改图片保存路径、自动插入图片描述信息
Paste Image插件初始化设置:修改图片保存路径.自动插入图片描述信息 Paste Image插件默认将图片保存于所编辑的Markdown文档的当前目录下,若插入的图片较多,会导致该目录下显得杂 ...
- blender 插件使用笔记
目录 插件安装方法: Quick Easy Animate插件,有下载地址: 插件安装完后,查看已安装的插件: 插件安装方法: Blender-插件安装方法及使用 - 知乎 Quick Easy An ...
- [ WebUpload ] WebUpload 插件初始化问题
WebUpload 插件初始化问题 本文主要针对WebUpload 文件上传插件在初始化多个时,插件自定义按钮显示位置错位导致点击失效的问题提供解决方案.(亦可描述为webupload插件在父容器di ...
- Blender插件:Boxcutter v7.1.7_4_Claymore 超强硬表面建模布尔
Blender插件:Boxcutter v7.1.7_4_Claymore 超强硬表面建模布尔 Boxcutter是一个Blender 3d插件,用于利用屏幕绘图和热键进行概念设计.它已被世界各地的制 ...
- blender 插件如何下载
Blender 插件可以在 Blender 官方网站上下载,也可以从第三方网站上下载.在 Blender 官方网站上,你可以到"插件市场"页面搜索需要的插件,然后点击"下 ...
- Blender插件:水滴生成器(Droplet Generator)
推荐:将 NSDT场景编辑器 加入你的3D开发工具链. 原文地址:https://www.mvrlink.com/droplet-generator/ 1.官方介绍: 适用于Blender 3.1及更 ...
- Blender插件天空地形山水自然环境生成器 TerrainScapes V2.0
在几分钟内创建和渲染令人惊叹的环境,TerrainScapes插件是一个扩展的资产和工具集库,使Blender用户能够创建可爱的风景场景.对这个插件的目标是让它既直观又易于使用,同时也尽可能地具有定性 ...
- Blender插件-破碎爆炸火焰烟雾特效 KhaosUltimate Explosion Destruction
"Khaos"插件是一个强大的工具,允许电影制作人和 3d 艺术家在 Blender 3d 中简化他们的爆炸和刚体破坏创建过程.对于创建爆炸,KHAOS 允许用户通过几次点击添加燃 ...
最新文章
- dot3_bump_mapping
- c++builder Delphi 直接使用剪贴板 Clipboard
- Redis 内存压缩实战,学习了!
- 论文盘点:基于图卷积GNN的多目标跟踪算法解析
- MySQL之日期时间处理函数_MySQL之日期时间处理函数
- 微信开发系列之十 - 在SAP C4C接收微信发送过来的服务请求回应
- 小程序triggerevent 传参_微信小程序——无限递归的层次列表
- KVM虚拟机设置虚拟机的CPU型号与物理机相同
- 基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习
- 赤兔安卓版语音图片资料处理
- ispostback之坑
- CSDI2018广州关于《Nginx》的分享(附文字速录与PPT)
- python读取手机通讯录_python爬取通讯录
- BUUCTF WEB DROPBOX
- 2022内蒙古最新建筑施工塔式起重机(建筑特种作业)模拟考试题库及答案
- 微信公众号运营助手,可以在手机上回复粉丝留言
- 【思维导图怎么画】万彩脑图大师教程 | 插入动画图标
- 网站设计新趋势:沉浸式交互设计
- 分布式锁 - Redisson的看门狗(watchdog)机制
- 【2012级新生请猛击】NEW COMER FIRST BLOOD 完全题解及代码