[maya动画]打开动画文件动画全没了?角色全部Tpose到原点了

今天动画发生了如题所示的诡异问题。其实动画节点是在的,只是连接丢了。出现这种情况的原因是导入了引用的资产造成了namespace混乱,所有的动画曲线全部连接到了placeholder节点上,需要重新连接到控制器上。

鉴于碰到多次这种情况,这里就说两点吧,一是劝戒动画师们规范操作,二是我提供这段代码作为解决方法或者抛砖引玉给TD们填坑指个思路:

用的时候记得替换里面的字符串(如果不知道什么事名称空间的话建议百度一下):

import re
import maya.cmds as cmds

anim_curve_nodes = cmds.ls(type="animCurve")

cnn_list = []
for each in anim_curve_nodes:
    if not ":" in each:
        continue
    try:
        
        attr = each.split(':')[-1]
        attr_name = attr.split('_')[-1]
        num = ''
        if re.findall('\d+', attr_name):
            num = str(re.findall('\d+', attr_name)[0])
            attr_name = attr_name[:-1]
            # 下面字符串是名称空间,把丢动画的角色名称空间名替换到下边
        ctrl_name = '08_018_ly_V20:sds_aaa_RIG:'+attr.replace('_'+attr_name+num, '')+"."+attr_name
          
        cnn_list.append((each, ctrl_name))
    except:
        continue
miss = []
for cnn in cnn_list:
    try:
        cmds.connectAttr(cnn[0]+'.output', cnn[1])
    except:
        miss.append(cnn)  

        

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章