c4d
中处处都能发现的python
的身影,然鹅从来都没有找到教程,百度了也啥都没找到。结果有一天b站给我推了一个,我才发现从来没有在b站搜过,一搜还真有一些,果然b站资源就是多啊。选了一个叫飞舞的团子的up的看。
那么,c4d
对python
的支持应该还是比较全面的,还有一个C.O.F.F.E.E.
是自研语言吧好像。也支持C++
了。官方有文档,链接在此。个人觉得c4d
的官方MAXON
就非常棒,不管是官方宣传还是中国代理,各种语言支持都非常到位。c4d
和python
,多么美妙的结合啊!
import c4d
,一切就开始了。
基本定义
Vector
三维向量,可以用来定义位置、旋转、缩放、颜色…想咋用咋用。
属性
定义
通过传入三个数字定义。v=c4d.Vector(1,2,3)
访问
两种方式,类似的列表的v[0]
和v.x/y/z
方法
+-
就是向量相加减*/
向量数乘除~
取得方向单位向量v1.Dot(v2)
返回两个向量的点乘v1.Cross(v2)
返回两个向量的叉乘v.GetLength()
获取向量模长v.GetLengthSquared()
获取向量长度平方
Matrix
没学过线代当场去世5555…
3×4
的矩阵(实际存储的貌似是4×4
,补了不影响计算的东西,方的方便计算),可以描述一个物体的状态。
属性
包含四个Vector
,分别为off,v1,v2,v3
。
m=c4d.Matrix(off,v1,v2,v3)
。
大概原理是这样的,位置旋转缩放本来是九个参数,但是并不能完全表示(想起一个叫欧拉死锁的东西),所以用十二个参数就可能表示了,off
描述的就是位置了,剩下三个向量分别是物体在xyz
三个方向上的方向向量,每一个的长度就是方向上的缩放,三个合起来就能描述物体的旋转。
方法
*
可以乘上一个变换向量~
矩阵求逆
从加东西开始
在进行完操作以后需要加入c4d.EventAdd()
更新信息。
Object
obj=c4d.BaseObject(id)
就可以生成物体,其中id可以直接在命令行里输入物体名称回车得到,也可以用类似c4d.Ocube
的方式取得。
doc.InsertObject(Obj)
就可以加入物体,doc
是自动定义好的,直接对其操作即可。
更改属性
直接从普通界面中把属性拖到编辑器里就能出现属性的名称,直接更改之。
改名用Obj.SetName()
Tag
和Object
差不多,但是doc
改为要操作的物体对象即可。
层级操作
Obj.InsertUnder(Son)
放最上面Obj.InsertUnderLast(Son)
放最下面