c4d X python


c4d中处处都能发现的python的身影,然鹅从来都没有找到教程,百度了也啥都没找到。结果有一天b站给我推了一个,我才发现从来没有在b站搜过,一搜还真有一些,果然b站资源就是多啊。选了一个叫飞舞的团子的up的看。

那么,c4dpython的支持应该还是比较全面的,还有一个C.O.F.F.E.E.是自研语言吧好像。也支持C++了。官方有文档,链接在此。个人觉得c4d的官方MAXON就非常棒,不管是官方宣传还是中国代理,各种语言支持都非常到位。c4dpython,多么美妙的结合啊!

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)放最下面


文章作者: 卯婴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 卯婴 !
评论
  目录