Maya: 第五周 作业

lesson13_Maya 中的事件触发

image.png
属性影响练习.gif
import maya.cmds as cmds

def transfer_attr_val(source_obj, target_obj, attr_name):
    
    source_obj_attr_val = cmds.getAttr('{}.{}'.format(source_obj, attr_name))
    
    cmds.setAttr('{}.{}'.format(target_obj, attr_name), source_obj_attr_val)
  
# create ball and box mesh
ball_mesh = cmds.polySphere(n='ball', ch=False)[0]
cmds.setAttr('{}.tx'.format(ball_mesh), -3)

box_mesh = cmds.polyCube(n='box', ch=False)[0]
cmds.setAttr('{}.tx'.format(box_mesh), 3)

cmds.makeIdentity(ball_mesh, box_mesh, a=True, t=True)

attrs_list = ['{}{}'.format(attr, axial) for attr in 'trs' for axial in 'xyz']

jobs_id_list = []

for attr in attrs_list:
    
    job_id = cmds.scriptJob(attributeChange=('{}.{}'.format(ball_mesh, attr), 
                                             'transfer_attr_val("{}","{}","{}")'.format(ball_mesh,box_mesh,attr)))
    jobs_id_list.append(job_id)

# delete job id

cmds.scriptJob(kill= jobs_id_list)

扩展效果:

双向约束?.gif

不存在的!目前不支持K帧!就是走个逻辑玩玩,想玩的拿去玩~

import pymel.core as pm

# setup
source_objs = pm.selected()
mutual_constrain_grp_list = []
for obj in source_objs:
    obj_parent = obj.getParent()
    if not obj_parent or not obj_parent.name().endswith('_mutual_constrain_Grp'):
        mutual_constrain_grp = pm.group(em=True, n='{}_mutual_constrain_Grp'.format(obj.name()))
        pm.delete(pm.parentConstraint(obj, mutual_constrain_grp))
        pm.parent(obj, mutual_constrain_grp)
        if obj_parent:
            pm.parent(mutual_constrain_grp, obj_parent)
    mutual_constrain_grp_list.append(mutual_constrain_grp)
        

def p_constrain(source_objs):
    
    source_objs = [pm.PyNode(obj) for obj in source_objs]
    current_sel_obj = pm.selected()
    
    if not current_sel_obj or current_sel_obj[0] not in source_objs or len(current_sel_obj)>1:
        return False
    
    for item in source_objs:
        if not item.getParent().name().endswith('_mutual_constrain_Grp'):
            return False
    
    pm.delete([item.getParent().inputs(t='parentConstraint') for item in source_objs])

    copy_list = source_objs[::]
    copy_list.remove(current_sel_obj[0])

    for item in copy_list:
        pm.parentConstraint(current_sel_obj[0], item.getParent(), mo=True,weight=1)


job_id = pm.scriptJob(event= ("SelectionChanged", 'p_constrain({})'.format([obj.name() for obj in source_objs])))

# delete job

pm.scriptJob(kill= job_id)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,490评论 1 11
  • 一、前言 Swift版本 4.0 Xcode版本 9.2 以前接触到的项目需求中,几乎都是全竖屏展现界面,所以我也...
    软件iOS开发阅读 1,907评论 0 0
  • 人们生活水平提高了,需求自然也就不断加码了,对于旅游的需求更是越来越重视自身的私密性。动不动就要包机了,如今,却又...
    燕娜说阅读 1,467评论 0 0
  • 最近遇到的问题:糖糖宝贝属于2周岁的叛逆期,会打人,会抢别人的东西,自己的东西不肯分享给其他的小朋友,同时动不动就...
    糖妈燕子阅读 162评论 0 0
  • 图文/桃子夭夭之 满山的绿,山上长满了果树,我从没有见过大片大片的果树,这个季节,结满了果实。 我才知道现在已是秋...
    桃子夭夭之阅读 354评论 2 1