大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
插件放在用户目录下的plugins目录。插件后缀该为.pyd, .pypv(加密文件)。 C4D 启动后,寻找并执行此目录下所有以.pyp 或 .pypv结尾的插件。一个简单的插件如下:
成都创新互联网络公司拥有十载的成都网站开发建设经验,近千家客户的共同信赖。提供成都网站建设、成都网站设计、网站开发、网站定制、买链接、建网站、网站搭建、响应式网站、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务
这个插件不好玩,就能输出个hello world! 但是,我们可以在程序的各个部分注册插件钩子。
所有插件的钩子都从 BaseData 继承而来, 这些类包含能被C4D调用的方法。 MessageData 的例子:
向C4D注册插件需使用 Register () 。 注册函数可接收实例也能接收类,在内部自己创建对象:
plugins.RegisterCommandPlugin(id=PLUGIN_ID, str="TestBase-Plugin", info=0, dat=SampleData())
NodeData的注册方法需要一个类名:
数据类的声明周期还有点说道,上面的例子中将新的实例传给了注册函数,在C4D的session周期内此实例都存在。其构造和析构函数正常调用,不用多想多做。需要将名字传给注册函数的数据类在C4D的节点上游对应的 1:1 标志,其生命周期和node一样,分配和删除都由C4D控制。其构造和析构也如常调用,但C4D会额外调用 NodeData.Init() 。
.pyp 或.pypv 可以放在插件目录,将其组织成层次会更好。 插件的标准层次结构如下:
主文件myPlugin.pyp 注册了钩子。 res目录包含插件资源,现指dialogs,description, strings。
每个description都会有一个.h文件,枚举了description用到的常量。 查看Descriptions in cinema4D。 每个dialog包含自己的 .res文件。 c4d_symbols.h包含了.res使用的常量。
可能会有个string_xx的目录来做国际化,xx是两个目录,代表一种语言,依据是iso 639,iso3361-1. 当前C4D有一下编码:
每种语言的目录应该包含dialog的.str文件。 c4d_string.str是给其他资源用的。 推荐的做法是先做一种语言,翻译前拷贝一份。最后你可以有很多文件,例如插件的icon和logo,这些可以方便地通过 file 访问
PluginMessage(id, data)
定义此函数可以接收插件信息。 可以从C4D或者从其他插件调用GetPluginMessage()
随时接收C4D的命令行参数,实现PluginMessage() 填入 C4DPL_COMMANDLINEARGS 信息:
C4D的函数重载,重编译.pyp文件。 被pyp文件import的库不会reload. python首先检查模块是否导入, 已导入就跳过,并建立引用.
当PluginMessage()接收到 C4DPL_RELOADPYTHONPLUGINS , 可以用reload()来强制重载python模块. 此处可以关闭以前打开的资源(socket,file等)
添加自己的菜单, 在PluginMessage()中拦截 C4DPL_BUILDMENU, 并调用GetMenuResource()来接收主菜单容器,下面是一个完整的例子。
要以Python生成器为媒介。
用以下代码可以简单行程一个三维图,在这个基础上根据您的需要改写代码就可以了。
在生成器内的python代码会生成一个object。默认下,生成了一个立方体,并返回:
import c4d
def main():
return c4d.BaseObject(c4d.Ocube)
UserData输入
当然也可以返回别的物体,或者用userdata调整物体参数。注意op可以快速引用生成器对象。
importc4d
defmain():
cone =c4d.BaseObject(c4d.Ocone)
cone[c4d.PRIM_CONE_TRAD] = op[c4d.ID_USERDATA,1]
return cone
具体创建三维图步骤如下
1首先要【创建】-【造型】-【python生成器】,默认生成一个立方体即python编辑器
2-选中对象,右下角【打开python编辑器】
3-代码表示定义一个函数并返回C4D基本物体
4-这里简单改一下,把原代码中的Ocube改成Osphere,点一下执行,会生成一个三维球体。对于基本造型对象,这里的对象名称通用语法为大写字母O加对象的英文。
5-这里还可以用定义变量返回值的表达方法,比如这里定义变量cone(圆锥),c4d的属性就是大写字母O加上圆锥的英文即Ocone,返回这个变量值,执行就得到了一个圆锥。
6-除了生成基本三维图形,python编辑器可以做很多事情,这里如果有一定的python编码基础,会更容易一些。可以在网上找几个实例试一下,比如这种,生成数字的。可以在搜索引擎输入关键字Cinema 4D - Python scripts来检索别人写好的脚本。
python生成器有什么作用
1、主要是开发快,语言简洁,没那么多技巧,所以读起来很清楚容易。
2、C/C++可以写python的module,标准库里就有用C/C++写的东西,这个跟java的JNI类似。
3、python的gui一般是用tkinter,就是tk的python的wrapper。python没有像xna那么方便的工具。
4、python不是为了网络设计的。python是1991年有的,WWW是1993年才被CERN开放的。网络编程用python主要是为了开发快。
5、像VS那样功能强的IDE,有要钱的PyCharm和不要钱的PyDev。PyDev有Eclipse的插件版本或者是Aptana Studio版本。