我将Cinema4D(使用Awesome Py4D)的动画键帧存储到列表中:

props = [lx,ly,lz,sx,sy,sz,rx,ry,rz]

我在任意动画中打印了每个属性/轨道的关键帧,它们的长度不同:

track Position . X has 24 keys
track Position . Y has 24 keys
track Position . Z has 24 keys
track Scale . X has 1 keys
track Scale . Y has 1 keys
track Scale . Z has 1 keys
track Rotation . H has 23 keys
track Rotation . P has 24 keys
track Rotation . B has 24 keys

现在,如果我想在搅拌机中使用这些键,我需要做类似的事情:

  1. 转到当前框架
  2. 设置该关键框架的属性(可以是位置,旋转,比例),并插入键盘

到目前为止,我的计划是:

  1. 循环从0到所有属性的最大键帧数
  2. 循环穿过每个属性
  3. 检查它是否为当前密钥存储一个值

这是最好的方法吗?

这是问题的背景。

首先,我需要找到道具商店的最大列表。我是Python的新手,想知道是否有一个神奇的功能可以为您做到这一点。类似于max(),但对于列表长度。

目前,我正在考虑这样的编码:

//after props are set
lens = []
for p in props: lens.append(len(p))
maxLen = max(lens)

最好的方法是什么?

谢谢

有帮助吗?

解决方案

max(enumerate(props), key = lambda tup: len(tup[1]))

这给你一个元组包含 (index, list) 道具中最长的列表。

其他提示

您可以使用发电机表达式:

maxLen = max(len(p) for p in props)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top