如何通过python将皮肤权重从一个骨骼转移到另一个骨骼

彼得曼

我想将皮肤权重从一个骨骼转移到另一个骨骼。谁能告诉我我怎么会这样做?

此代码假设您一次只选择两个骨骼

import pymel.core as pm

oldjnt = pm.ls("*_oldJnt", sl=True, type='joint')[0]
newjnt = pm.ls("*_newJnt", sl=True, type='joint')[0]

pm.skinCluster( "skinCluster1", e=True, selectInfluenceVerts=oldjnt,)
pm.skinPercent(tmw=oldjnt, tmw=newjnt, "skinCluster1")

我不确定如何让 transformMoveWeights (tmw) 像在 Mel 中那样从一个骨骼应用到另一个骨骼。

这是梅尔代码:

skinCluster -e -selectInfluenceVerts Jnt_oldJnt skinCluster1;
skinPercent -tmw Jnt_oldJnt -tmw Jnt_newJnt skinCluster1;
绿色细胞

看起来您几乎拥有它,但该命令只是一些语法错误。我知道你的代码只是试图从一个关节转移,但这个例子将遍历所有匹配正确命名的关节。只要 oldJnt 名称与 newJnt 正确匹配,它就应该从正确的名称转移权重:

import maya.cmds as cmds

# Select all vertexes from your mesh.
cmds.select("pSphere1.vtx[*]")

# We use sorted so that if the objects are names properly, the order of the objects should match indexes.
old_objs = sorted(cmds.ls("*_oldJnt")) # Get a list of all of your old joints.
new_objs = sorted(cmds.ls("*_newJnt")) # Get a list of all of your new joints.

# Use zip to loop through both old and new joints.
for old_jnt, new_jnt in zip(old_objs, new_objs):
    cmds.skinPercent("skinCluster1", tmw=[old_jnt, new_jnt]) # Transfer weights from the old joint to the new one.

# Clear vertex selection.
cmds.select(clear=True)

我在cmds这里使用,但pymel如果您愿意,您也可以将其切换到

文档提到它只会从选定的顶点传输权重,所以在这个例子中我只是选择所有的顶点。

这已经用一个球体和 2 个旧关节到 2 个新关节进行了测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将溢出的内容从一个div转移到另一个

将帖子从一个博客转移到另一个博客?

将收集对象从一个jsp转移到另一个

将数据从一个$ state转移到另一个

将变量从一个功能转移到另一个功能

如何将结构从一个克隆转移到另一个

如何将记录从一个表转移到另一个表?

使用Bitbucket,如何将提交从一个分支转移到另一个分支?

如何将滚轮或滚动事件从一个元素转移到另一个元素?

Selenium Python将Webelement从一个列表转移到另一个列表

如何通过CRM 2011内部部署中的工作流将记录从一个视图转移到另一个视图

如何将值从一个python脚本类转移到另一个python脚本

将1个随机记录从一个表转移到另一个表

通过命令行从一个 git repo 转移到另一个

Android从一个应用转移到另一个

从一个捕获转移到另一个try catch块

将回购从一个 bitbucket 帐户转移到另一个

将变量的值从一个不相关的类转移到另一个

将文本从一个活动转移到android studio中的另一个活动

将应用程序从一个Admob帐户转移到另一个帐户

是否可以将 kafka 用户从一个 Zookeeper 转移到另一个 Zookeeper?

将Anaconda安装从一个用户帐户转移到另一个用户帐户

将变量从一个工作簿转移到另一个工作簿vba

将域从一个办公室门户转移到另一个

使用SQLite将数据从一个活动转移到另一个活动:Android Studio

Angular 2 将变量从一个模板转移到另一个模板

将多个列从一个工作簿转移到另一个工作簿

将控制权从一个按钮转移到另一个

将构建和发布管道从一个组织转移到另一个组织