三星s5570怎么样
{三星S5570怎么样?一款性价比卓越的入门级智能手机评测在当今智能手机市场琳琅满目的产品中...
爱国者平板电脑怎么样?深度解析M833性能与体验
在当今这个数字化高速发展的时代,平板电脑作为连接工作与生活的桥梁,其重要性日益凸显。爱国者,一个深耕电子消费领域多年的国产品牌,近年来凭借其创新技术与高性价比的产品赢得了市场的广泛关注。今天,我们就来深入探讨一下爱国者平板电脑中的佼佼者——M833,看看它究竟能否满足现代人对高效生活与娱乐的多元化需求。
一、外观设计:简约而不失时尚
爱国者M833在外观设计上采用了简约而不失时尚的设计理念。轻薄的金属机身,不仅赋予了产品高级的质感,还大大减轻了携带负担,无论是日常通勤还是长途旅行,都能轻松携带。屏幕方面,M833配备了一块高分辨率显示屏,色彩饱满细腻,无论是观看高清视频还是处理图像设计,都能呈现出令人满意的视觉效果。边框设计巧妙收缩,既增加了屏占比,又提升了整体的美观度,让人一眼难忘。
二、性能配置:流畅体验,高效处理
性能方面,爱国者M833搭载了高性能处理器,保证了系统的流畅运行和多任务处理的能力。无论是运行大型游戏、办公软件还是视频编辑软件,都能游刃有余,减少卡顿现象,让用户享受丝滑的操作体验。内存与存储方面,M833提供了多种配置选择,满足不同用户的需求。即使是存储大量文件、安装多款应用,也能保持系统运行的高效稳定。值得一提的是,M833在电池续航上也有着不俗的表现,大容量电池配合智能节电技术,即便是长时间使用也能保持充足的电量,告别频繁充电的烦恼。
三、系统体验:人性化设计,便捷操作
系统层面,爱国者M833运行的是经过深度优化的Android系统,界面简洁直观,操作逻辑清晰,即便是初次使用的用户也能快速上手。系统内置了多项实用功能,如分屏多任务、智能助手等,极大地提升了工作效率和娱乐体验。同时,M833还支持多种手势操作和自定义快捷设置,让用户的个性化需求得到充分满足。安全性能方面,M833提供了指纹识别和面部解锁等多种生物识别技术,有效保护用户隐私和数据安全。
四、多媒体体验:视听盛宴,尽在掌握
在多媒体体验上,爱国者M833同样表现出色。高质量的扬声器搭配杜比音效技术,无论是观看电影、听音乐还是玩游戏,都能带来震撼的听觉享受。摄像头方面,M833配备了高像素前后摄像头,支持多种拍摄模式和美颜功能,无论是日常拍照、视频通话还是直播互动,都能轻松应对,记录下生活中的每一个精彩瞬间。
五、总结:性价比之选,值得推荐
综上所述,爱国者平板电脑M833凭借其时尚的外观设计、强大的性能配置、人性化的系统体验以及卓越的多媒体体验,在众多同类产品中脱颖而出,成为了一款集工作、学习、娱乐于一体的全能型平板。更重要的是,它在保持高品质的同时,还保持了亲民的价格,无疑是追求性价比用户的优选之一。对于正在寻找一款能够满足日常多元化需求的平板电脑的朋友来说,爱国者M833无疑是一个值得考虑的选择。
spine4fkCntGrp=sdd_createAnimDateGrp(spine4fkCnt)
cmds.delete(cmds.parentConstraint(spine4Skin,spine4fkCntGrp[-1]))
cmds.parent(spine4fkCntGrp[-1],spine3fkCntGrp[1])
cmds.parentConstraint(spine4fkCnt,spine4Skin)
sdd_connectAttrAnimDataToGrp(spine4Skin+_AnimData,spine4fkCntGrp[0])
chestfkCnt=sdd_createMocapCurveCnt(chestSkin+_FK,'Circle',_spRad,6)
chestfkCntGrp=sdd_createAnimDateGrp(chestfkCnt)
cmds.delete(cmds.parentConstraint(chestSkin,chestfkCntGrp[-1]))
cmds.parent(chestfkCntGrp[-1],spine4fkCnt)
cmds.parentConstraint(chestfkCntGrp[0],chestSkin)
sdd_connectRotObjToObj(spine4fkCnt,chestfkCntGrp[1])
cmds.delete(chestfkCnt)
sdd_connectAttrAnimDataToGrp(chestSkin+_AnimData,chestfkCntGrp[0])
chestMidfkCnt=sdd_createMocapCurveCnt(chestMidSkin+_FK,'Circle',_spRad,6)
chestMidfkCntGrp=sdd_createAnimDateGrp(chestMidfkCnt)
cmds.delete(cmds.parentConstraint(chestMidSkin,chestMidfkCntGrp[-1]))
cmds.parent(chestMidfkCntGrp[-1],chestfkCntGrp[1])
cmds.parentConstraint(chestMidfkCnt,chestMidSkin)
sdd_connectAttrAnimDataToGrp(chestMidSkin+_AnimData,chestMidfkCntGrp[0])
neck1fkCnt=sdd_createMocapCurveCnt(neck1Skin+_FK,'finger_cv',_rad*3,6)
sdd_rotateCurveCnt(0,90,0,neck1fkCnt)
neck1fkCntGrp=sdd_createAnimDateGrp(neck1fkCnt)
cmds.delete(cmds.parentConstraint(neck1Skin,neck1fkCntGrp[-1]))
cmds.parent(neck1fkCntGrp[-1],chestMidfkCnt)
cmds.parentConstraint(neck1fkCnt,neck1Skin)
sdd_connectAttrAnimDataToGrp(neck1Skin+_AnimData,neck1fkCntGrp[0])
neck2fkCnt=sdd_createMocapCurveCnt('neck2Skin+_FK','finger_cv',_rad*3,6)
sdd_rotateCurveCnt(0,90,0,neck2fkCnt)
neck2fkCntGrp=sdd_createAnimDateGrp(neck2fkCnt)
cmds.delete(cmds.parentConstraint(neck2Skin,neck2fkCntGrp[-1]))
cmds.parent(neck2fkCntGrp[-1],neck1fkCnt)
cmds.parentConstraint(neck2fkCntGrp[0],neck2Skin)
sdd_connectRotObjToObj(neck1fkCnt,neck2fkCntGrp[1])
cmds.delete(neck2fkCnt)
sdd_connectAttrAnimDataToGrp(neck2Skin+_AnimData,neck2fkCntGrp[0])
neck3fkCnt=sdd_createMocapCurveCnt(neck3Skin+_FK,'finger_cv',_rad*3,6)
sdd_rotateCurveCnt(0,90,0,neck3fkCnt)
neck3fkCntGrp=sdd_createAnimDateGrp(neck3fkCnt)
cmds.delete(cmds.parentConstraint(neck3Skin,neck3fkCntGrp[-1]))
cmds.parent(neck3fkCntGrp[-1],neck2fkCntGrp[1])
cmds.parentConstraint(neck3fkCnt,neck3Skin)
sdd_connectAttrAnimDataToGrp(neck3Skin+_AnimData,neck3fkCntGrp[0])
headfkCnt=sdd_createMocapCurveCnt(headSkin+_FK,'Circle',_rad*2,6)
sdd_rotateCurveCnt(90,0,0,headfkCnt)
sdd_moveCurveCnt(0,_rad*2,0,headfkCnt)
headfkCntGrp=sdd_createAnimDateGrp(headfkCnt)
cmds.delete(cmds.parentConstraint(headSkin,headfkCntGrp[-1]))
cmds.parent(headfkCntGrp[-1],neck3fkCnt)
cmds.parentConstraint(headfkCnt,headSkin)
sdd_connectAttrAnimDataToGrp(headSkin+_AnimData,headfkCntGrp[0])
return chestMidfkCnt
def sdd_rotateCurveCnt(x,y,z,cnt):
cmds.rotate(x,y,z,cmds.ls(cnt+'.cv[*]'),r=1,p=[0,0,0],os=1,fo=1)
def sdd_moveCurveCnt(x,y,z,cnt):
cmds.move(x,y,z,cmds.ls(cnt+'.cv[*]'),r=1,os=1,wd=1)
def sdd_legRig(legList,hipFkCnt,direction):
rootSkin,upLegSkin,legSkin,footSkin,toeSkin,toeEndSkin=legList
moveCtrl='move_Ctrl'
for i in legList:
if(cmds.objExists(i)==0):
return
_Grp='_Grp'
_IK='_IK'
_FK='_FK'
_Jnt='_Jnt'
_AnimData='_AnimData'
_rad=cmds.getAttr(moveCtrl+'.gls')
#ikfk joint
upLegLoc=upLegSkin+_AnimData
legLoc=legSkin+_AnimData
footLoc=footSkin+_AnimData
toeLoc=toeSkin+_AnimData
upLegIk=cmds.duplicate(upLegSkin,n=upLegSkin+_IK+_Jnt,po=1)[0]
legIk=cmds.duplicate(legSkin,n=legSkin+_IK+_Jnt,po=1)[0]
footIk=cmds.duplicate(footSkin,n=footSkin+_IK+_Jnt,po=1)[0]
toeIk=cmds.duplicate(toeSkin,n=toeSkin+_IK+_Jnt,po=1)[0]
toeEndIk=cmds.duplicate(toeEndSkin,n=toeEndSkin+_IK+_Jnt,po=1)[0]
cmds.parent(toeEndIk,toeIk)
cmds.parent(toeIk,footIk)
cmds.parent(footIk,legIk)
cmds.parent(legIk,upLegIk)
cmds.parent(upLegIk,w=1)
upLegFk=cmds.duplicate(upLegSkin,n=upLegSkin+_FK+_Jnt,po=1)[0]
legFk=cmds.duplicate(legSkin,n=legSkin+_FK+_Jnt,po=1)[0]
footFk=cmds.duplicate(footSkin,n=footSkin+_FK+_Jnt,po=1)[0]
toeFk=cmds.duplicate(toeSkin,n=toeSkin+_FK+_Jnt,po=1)[0]
toeEndFk=cmds.duplicate(toeEndSkin,n=toeEndSkin+_FK+_Jnt,po=1)[0]
cmds.parent(toeEndFk,toeFk)
cmds.parent(toeFk,footFk)
cmds.parent(footFk,legFk)
cmds.parent(legFk,upLegFk)
cmds.parent(upLegFk,w=1)
upLegCon=cmds.parentConstraint(upLegIk,upLegFk,upLegSkin)
legCon=cmds.parentConstraint(legIk,legFk,legSkin)
footCon=cmds.parentConstraint(footIk,footFk,footSkin)
toeCon=cmds.parentConstraint(toeIk,toeFk,toeSkin)
toeEndCon=cmds.parentConstraint(toeEndIk,toeEndFk,toeEndSkin)
#dis
dis=sdd_getDistanceTwoObject(upLegSkin,legSkin)
#ik control
ikAllGrp=cmds.group(n=legSkin+_IK+'_All'+_Grp,em=1)
cmds.parent(ikAllGrp,moveCtrl)
ikfkCtrlJntGrp=cmds.group(n=legSkin+'_CtrlJnt'+_Grp,em=1)
cmds.parent(ikfkCtrlJntGrp,moveCtrl)
cmds.parent(upLegFk,upLegIk,ikfkCtrlJntGrp)
cmds.setAttr(ikfkCtrlJntGrp+'.v',0)
ikAllOffGrp=sdd_createIkOffAnimDateGrp(ikAllGrp+'_'+rootSkin,ikAllGrp,rootSkin)
sdd_connectAttrAnimDataToGrp(rootSkin+_AnimData,ikAllOffGrp[0])
cmds.parent(ikAllOffGrp[-1],moveCtrl)
#3ik
legIkH=cmds.ikHandle(sj=upLegIk,ee=footIk,sol='ikRPsolver',n=upLegSkin+_IK+'H')[0]
footIkH=cmds.ikHandle(sj=footIk,ee=toeIk,sol='ikSCsolver',n=footSkin+_IK+'H')[0]
toeIkH=cmds.ikHandle(sj=toeIk,ee=toeEndIk,sol='ikSCsolver',n=toeSkin+_IK+'H')[0]
#5Group
footIkHGrp=cmds.group(em=1,n=footIkH+_Grp)
cmds.delete(cmds.parentConstraint(toeIk,footIkHGrp))
cmds.parent(footIkH,legIkH,footIkHGrp)
toeIkHGrp=cmds.group(em=1,n=toeIkH+_Grp)
cmds.delete(cmds.parentConstraint(toeIk,toeIkHGrp))
cmds.parent(toeIkH,toeIkHGrp)
toeEndIkHGrp=cmds.group(em=1,n=toeEndSkin+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(toeEndIk,toeEndIkHGrp))
cmds.parent(toeIkHGrp,footIkHGrp,toeEndIkHGrp)
heelIkHGrp=cmds.group(em=1,n=footSkin+'_heel'+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(toeEndIk,heelIkHGrp))
dis1=sdd_getDistanceTwoObject(footSkin,toeEndSkin)
dis2=sdd_getDistanceTwoObject(toeSkin,toeEndSkin)
cmds.move(0,0,dis1*-1,heelIkHGrp,r=1,os=1,wd=1)
cmds.parent(toeEndIkHGrp,heelIkHGrp)
sideOutIkHGrp=cmds.group(em=1,n=toeSkin+'_SideOut'+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(toeIk,sideOutIkHGrp))
sideInIkHGrp=cmds.group(em=1,n=toeSkin+'_SideIn'+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(toeIk,sideInIkHGrp))
pos1=cmds.xform(toeEndSkin,q=1,ws=1,t=1)
pos2=cmds.xform(toeSkin,q=1,ws=1,t=1)
cmds.move(0,pos1[1]-pos2[1],0,sideOutIkHGrp,r=1,os=1,wd=1)
cmds.move(dis2*0.5,0,0,sideOutIkHGrp,r=1,os=1,wd=1)
cmds.move(0,pos1[1]-pos2[1],0,sideInIkHGrp,r=1,os=1,wd=1)
cmds.move(-dis2*0.5,0,0,sideInIkHGrp,r=1,os=1,wd=1)
cmds.parent(heelIkHGrp,sideInIkHGrp)
cmds.parent(sideInIkHGrp,sideOutIkHGrp)
footRootIkGrp=cmds.group(em=1,n=footSkin+'_Root'+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(footIk,footRootIkGrp))
cmds.parent(sideOutIkHGrp,footRootIkGrp)
cmds.setAttr(footRootIkGrp+'.v',0,l=1)
#ik attr
ikCnt=sdd_createMocapCurveCnt(legSkin+_IK,'legIK_cv',_rad*1,13)
pos1=cmds.xform(footSkin,q=1,ws=1,t=1)
pos2=cmds.xform(toeEndSkin,q=1,ws=1,t=1)
cmds.move(0,pos2[1]-pos1[1],0,cmds.ls(ikCnt+'.cv[*]'),r=1,os=1,wd=1)
if(direction==-1):
cmds.scale(-1,1,1,cmds.ls(ikCnt+'.cv[*]'),r=1,os=1)
cmds.addAttr(ikCnt,ln='Heel',at='double',k=1)
cmds.addAttr(ikCnt,ln='Ball',at='double',k=1)
cmds.addAttr(ikCnt,ln='TipToe',at='double',k=1)
cmds.addAttr(ikCnt,ln='Side',at='double',k=1)
cmds.connectAttr(ikCnt+'.Heel',heelIkHGrp+'.rx')
cmds.connectAttr(ikCnt+'.Ball',footIkHGrp+'.rx')
sideGCdt=cmds.createNode('condition',n=footSkin+'_Side_G_Cdt')
cmds.connectAttr(ikCnt+'.Side',sideGCdt+'.ft')
cmds.connectAttr(ikCnt+'.Side',sideGCdt+'.ctr')
cmds.setAttr(sideGCdt+'.op',2)
cmds.setAttr(sideGCdt+'.cfr',0)
sideLCdt=cmds.createNode('condition',n=footSkin+'_Side_L_Cdt')
cmds.connectAttr(ikCnt+'.Side',sideLCdt+'.ft')
cmds.connectAttr(ikCnt+'.Side',sideLCdt+'.ctr')
cmds.setAttr(sideLCdt+'.op',4)
cmds.setAttr(sideLCdt+'.cfr',0)
cmds.connectAttr(sideGCdt+'.ocr',sideInIkHGrp+'.rz',f=1)
cmds.connectAttr(sideLCdt+'.ocr',sideOutIkHGrp+'.rz',f=1)
cmds.connectAttr(ikCnt+'.TipToe',toeEndIkHGrp+'.rx')
toeEndIkCnt=sdd_createMocapCurveCnt(toeEndSkin+_IK,'Circle',_rad*1,13)
sdd_rotateCurveCnt(90,0,0,toeEndIkCnt)
toeEndIkCntGrp=sdd_createAnimDateGrp(toeEndIkCnt)
cmds.delete(cmds.parentConstraint(toeIk,toeEndIkCntGrp[-1]))
cmds.parentConstraint(footIk,toeEndIkCntGrp[-1],mo=1)
cmds.parentConstraint(toeEndIkCnt,toeIkHGrp,mo=1)
ikCntGrp=sdd_createAnimDateGrp(ikCnt)
cmds.parent(ikCntGrp[-1],moveCtrl)
cmds.delete(cmds.parentConstraint(footIk,ikCntGrp[-1]))
cmds.orientConstraint(ikCnt,footIk)
cmds.parent(footRootIkGrp,ikCnt)
legIkOffGrp=sdd_createIkOffAnimDateGrp(ikCnt+'_'+legSkin,ikCntGrp[-1],legSkin)
upLegIkOffGrp=sdd_createIkOffAnimDateGrp(ikCnt+'_'+upLegSkin,legIkOffGrp[-1],upLegSkin)
cmds.parent(upLegIkOffGrp[-1],moveCtrl)
_Pole='_Pole'
ikPloeCnt=sdd_createMocapCurveCnt(upLegSkin+_Pole,'pole_cv',_rad*1,13)
sdd_rotateCurveCnt(180,0,0,ikPloeCnt)
ikPloeCntGrp=sdd_createAnimDateGrp(ikPloeCnt)
cmds.delete(cmds.parentConstraint(legSkin,ikPloeCntGrp[-1]))
cmds.delete(cmds.orientConstraint(legSkin,ikPloeCntGrp[-1]))
cmds.setAttr(ikPloeCntGrp[-2]+'.tz',dis)
cmds.poleVectorConstraint(ikPloeCnt,legIkH)
upLegPoleOffGrp=sdd_createIkOffAnimDateGrp(ikPloeCnt+'_'+upLegSkin,ikPloeCntGrp[-1],upLegSkin)
cmds.parent(upLegPoleOffGrp[-1],moveCtrl)
sdd_connectAttrAnimDataToGrp(upLegLoc,upLegIkOffGrp[0])
sdd_connectAttrAnimDataToGrp(legLoc,ikPloeCntGrp[0])
sdd_connectAttrAnimDataToGrp(upLegLoc,upLegPoleOffGrp[0])
spine4fkCntGrp=sdd_createAnimDateGrp(spine4fkCnt)
cmds.delete(cmds.parentConstraint(spine4Skin,spine4fkCntGrp[-1]))
cmds.parent(spine4fkCntGrp[-1],spine3fkCntGrp[1])
cmds.parentConstraint(spine4fkCnt,spine4Skin)
sdd_connectAttrAnimDataToGrp(spine4Skin+_AnimData,spine4fkCntGrp[0])
chestfkCnt=sdd_createMocapCurveCnt(chestSkin+_FK,'Circle',_spRad,6)
chestfkCntGrp=sdd_createAnimDateGrp(chestfkCnt)
cmds.delete(cmds.parentConstraint(chestSkin,chestfkCntGrp[-1]))
cmds.parent(chestfkCntGrp[-1],spine4fkCnt)
cmds.parentConstraint(chestfkCntGrp[0],chestSkin)
sdd_connectRotObjToObj(spine4fkCnt,chestfkCntGrp[1])
cmds.delete(chestfkCnt)
sdd_connectAttrAnimDataToGrp(chestSkin+_AnimData,chestfkCntGrp[0])
chestMidfkCnt=sdd_createMocapCurveCnt(chestMidSkin+_FK,'Circle',_spRad,6)
chestMidfkCntGrp=sdd_createAnimDateGrp(chestMidfkCnt)
cmds.delete(cmds.parentConstraint(chestMidSkin,chestMidfkCntGrp[-1]))
cmds.parent(chestMidfkCntGrp[-1],chestfkCntGrp[1])
cmds.parentConstraint(chestMidfkCnt,chestMidSkin)
sdd_connectAttrAnimDataToGrp(chestMidSkin+_AnimData,chestMidfkCntGrp[0])
neck1fkCnt=sdd_createMocapCurveCnt(neck1Skin+_FK,'finger_cv',_rad*3,6)
sdd_rotateCurveCnt(0,90,0,neck1fkCnt)
neck1fkCntGrp=sdd_createAnimDateGrp(neck1fkCnt)
cmds.delete(cmds.parentConstraint(neck1Skin,neck1fkCntGrp[-1]))
cmds.parent(neck1fkCntGrp[-1],chestMidfkCnt)
cmds.parentConstraint(neck1fkCnt,neck1Skin)
sdd_connectAttrAnimDataToGrp(neck1Skin+_AnimData,neck1fkCntGrp[0])
neck2fkCnt=sdd_createMocapCurveCnt('neck2Skin+_FK','finger_cv',_rad*3,6)
sdd_rotateCurveCnt(0,90,0,neck2fkCnt)
neck2fkCntGrp=sdd_createAnimDateGrp(neck2fkCnt)
cmds.delete(cmds.parentConstraint(neck2Skin,neck2fkCntGrp[-1]))
cmds.parent(neck2fkCntGrp[-1],neck1fkCnt)
cmds.parentConstraint(neck2fkCntGrp[0],neck2Skin)
sdd_connectRotObjToObj(neck1fkCnt,neck2fkCntGrp[1])
cmds.delete(neck2fkCnt)
sdd_connectAttrAnimDataToGrp(neck2Skin+_AnimData,neck2fkCntGrp[0])
neck3fkCnt=sdd_createMocapCurveCnt(neck3Skin+_FK,'finger_cv',_rad*3,6)
sdd_rotateCurveCnt(0,90,0,neck3fkCnt)
neck3fkCntGrp=sdd_createAnimDateGrp(neck3fkCnt)
cmds.delete(cmds.parentConstraint(neck3Skin,neck3fkCntGrp[-1]))
cmds.parent(neck3fkCntGrp[-1],neck2fkCntGrp[1])
cmds.parentConstraint(neck3fkCnt,neck3Skin)
sdd_connectAttrAnimDataToGrp(neck3Skin+_AnimData,neck3fkCntGrp[0])
headfkCnt=sdd_createMocapCurveCnt(headSkin+_FK,'Circle',_rad*2,6)
sdd_rotateCurveCnt(90,0,0,headfkCnt)
sdd_moveCurveCnt(0,_rad*2,0,headfkCnt)
headfkCntGrp=sdd_createAnimDateGrp(headfkCnt)
cmds.delete(cmds.parentConstraint(headSkin,headfkCntGrp[-1]))
cmds.parent(headfkCntGrp[-1],neck3fkCnt)
cmds.parentConstraint(headfkCnt,headSkin)
sdd_connectAttrAnimDataToGrp(headSkin+_AnimData,headfkCntGrp[0])
return chestMidfkCnt
def sdd_rotateCurveCnt(x,y,z,cnt):
cmds.rotate(x,y,z,cmds.ls(cnt+'.cv[*]'),r=1,p=[0,0,0],os=1,fo=1)
def sdd_moveCurveCnt(x,y,z,cnt):
cmds.move(x,y,z,cmds.ls(cnt+'.cv[*]'),r=1,os=1,wd=1)
def sdd_legRig(legList,hipFkCnt,direction):
rootSkin,upLegSkin,legSkin,footSkin,toeSkin,toeEndSkin=legList
moveCtrl='move_Ctrl'
for i in legList:
if(cmds.objExists(i)==0):
return
_Grp='_Grp'
_IK='_IK'
_FK='_FK'
_Jnt='_Jnt'
_AnimData='_AnimData'
_rad=cmds.getAttr(moveCtrl+'.gls')
#ikfk joint
upLegLoc=upLegSkin+_AnimData
legLoc=legSkin+_AnimData
footLoc=footSkin+_AnimData
toeLoc=toeSkin+_AnimData
upLegIk=cmds.duplicate(upLegSkin,n=upLegSkin+_IK+_Jnt,po=1)[0]
legIk=cmds.duplicate(legSkin,n=legSkin+_IK+_Jnt,po=1)[0]
footIk=cmds.duplicate(footSkin,n=footSkin+_IK+_Jnt,po=1)[0]
toeIk=cmds.duplicate(toeSkin,n=toeSkin+_IK+_Jnt,po=1)[0]
toeEndIk=cmds.duplicate(toeEndSkin,n=toeEndSkin+_IK+_Jnt,po=1)[0]
cmds.parent(toeEndIk,toeIk)
cmds.parent(toeIk,footIk)
cmds.parent(footIk,legIk)
cmds.parent(legIk,upLegIk)
cmds.parent(upLegIk,w=1)
upLegFk=cmds.duplicate(upLegSkin,n=upLegSkin+_FK+_Jnt,po=1)[0]
legFk=cmds.duplicate(legSkin,n=legSkin+_FK+_Jnt,po=1)[0]
footFk=cmds.duplicate(footSkin,n=footSkin+_FK+_Jnt,po=1)[0]
toeFk=cmds.duplicate(toeSkin,n=toeSkin+_FK+_Jnt,po=1)[0]
toeEndFk=cmds.duplicate(toeEndSkin,n=toeEndSkin+_FK+_Jnt,po=1)[0]
cmds.parent(toeEndFk,toeFk)
cmds.parent(toeFk,footFk)
cmds.parent(footFk,legFk)
cmds.parent(legFk,upLegFk)
cmds.parent(upLegFk,w=1)
upLegCon=cmds.parentConstraint(upLegIk,upLegFk,upLegSkin)
legCon=cmds.parentConstraint(legIk,legFk,legSkin)
footCon=cmds.parentConstraint(footIk,footFk,footSkin)
toeCon=cmds.parentConstraint(toeIk,toeFk,toeSkin)
toeEndCon=cmds.parentConstraint(toeEndIk,toeEndFk,toeEndSkin)
#dis
dis=sdd_getDistanceTwoObject(upLegSkin,legSkin)
#ik control
ikAllGrp=cmds.group(n=legSkin+_IK+'_All'+_Grp,em=1)
cmds.parent(ikAllGrp,moveCtrl)
ikfkCtrlJntGrp=cmds.group(n=legSkin+'_CtrlJnt'+_Grp,em=1)
cmds.parent(ikfkCtrlJntGrp,moveCtrl)
cmds.parent(upLegFk,upLegIk,ikfkCtrlJntGrp)
cmds.setAttr(ikfkCtrlJntGrp+'.v',0)
ikAllOffGrp=sdd_createIkOffAnimDateGrp(ikAllGrp+'_'+rootSkin,ikAllGrp,rootSkin)
sdd_connectAttrAnimDataToGrp(rootSkin+_AnimData,ikAllOffGrp[0])
cmds.parent(ikAllOffGrp[-1],moveCtrl)
#3ik
legIkH=cmds.ikHandle(sj=upLegIk,ee=footIk,sol='ikRPsolver',n=upLegSkin+_IK+'H')[0]
footIkH=cmds.ikHandle(sj=footIk,ee=toeIk,sol='ikSCsolver',n=footSkin+_IK+'H')[0]
toeIkH=cmds.ikHandle(sj=toeIk,ee=toeEndIk,sol='ikSCsolver',n=toeSkin+_IK+'H')[0]
#5Group
footIkHGrp=cmds.group(em=1,n=footIkH+_Grp)
cmds.delete(cmds.parentConstraint(toeIk,footIkHGrp))
cmds.parent(footIkH,legIkH,footIkHGrp)
toeIkHGrp=cmds.group(em=1,n=toeIkH+_Grp)
cmds.delete(cmds.parentConstraint(toeIk,toeIkHGrp))
cmds.parent(toeIkH,toeIkHGrp)
toeEndIkHGrp=cmds.group(em=1,n=toeEndSkin+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(toeEndIk,toeEndIkHGrp))
cmds.parent(toeIkHGrp,footIkHGrp,toeEndIkHGrp)
heelIkHGrp=cmds.group(em=1,n=footSkin+'_heel'+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(toeEndIk,heelIkHGrp))
dis1=sdd_getDistanceTwoObject(footSkin,toeEndSkin)
dis2=sdd_getDistanceTwoObject(toeSkin,toeEndSkin)
cmds.move(0,0,dis1*-1,heelIkHGrp,r=1,os=1,wd=1)
cmds.parent(toeEndIkHGrp,heelIkHGrp)
sideOutIkHGrp=cmds.group(em=1,n=toeSkin+'_SideOut'+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(toeIk,sideOutIkHGrp))
sideInIkHGrp=cmds.group(em=1,n=toeSkin+'_SideIn'+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(toeIk,sideInIkHGrp))
pos1=cmds.xform(toeEndSkin,q=1,ws=1,t=1)
pos2=cmds.xform(toeSkin,q=1,ws=1,t=1)
cmds.move(0,pos1[1]-pos2[1],0,sideOutIkHGrp,r=1,os=1,wd=1)
cmds.move(dis2*0.5,0,0,sideOutIkHGrp,r=1,os=1,wd=1)
cmds.move(0,pos1[1]-pos2[1],0,sideInIkHGrp,r=1,os=1,wd=1)
cmds.move(-dis2*0.5,0,0,sideInIkHGrp,r=1,os=1,wd=1)
cmds.parent(heelIkHGrp,sideInIkHGrp)
cmds.parent(sideInIkHGrp,sideOutIkHGrp)
footRootIkGrp=cmds.group(em=1,n=footSkin+'_Root'+_IK+'H'+_Grp)
cmds.delete(cmds.parentConstraint(footIk,footRootIkGrp))
cmds.parent(sideOutIkHGrp,footRootIkGrp)
cmds.setAttr(footRootIkGrp+'.v',0,l=1)
#ik attr
ikCnt=sdd_createMocapCurveCnt(legSkin+_IK,'legIK_cv',_rad*1,13)
pos1=cmds.xform(footSkin,q=1,ws=1,t=1)
pos2=cmds.xform(toeEndSkin,q=1,ws=1,t=1)
cmds.move(0,pos2[1]-pos1[1],0,cmds.ls(ikCnt+'.cv[*]'),r=1,os=1,wd=1)
if(direction==-1):
cmds.scale(-1,1,1,cmds.ls(ikCnt+'.cv[*]'),r=1,os=1)
cmds.addAttr(ikCnt,ln='Heel',at='double',k=1)
cmds.addAttr(ikCnt,ln='Ball',at='double',k=1)
cmds.addAttr(ikCnt,ln='TipToe',at='double',k=1)
cmds.addAttr(ikCnt,ln='Side',at='double',k=1)
cmds.connectAttr(ikCnt+'.Heel',heelIkHGrp+'.rx')
cmds.connectAttr(ikCnt+'.Ball',footIkHGrp+'.rx')
sideGCdt=cmds.createNode('condition',n=footSkin+'_Side_G_Cdt')
cmds.connectAttr(ikCnt+'.Side',sideGCdt+'.ft')
cmds.connectAttr(ikCnt+'.Side',sideGCdt+'.ctr')
cmds.setAttr(sideGCdt+'.op',2)
cmds.setAttr(sideGCdt+'.cfr',0)
sideLCdt=cmds.createNode('condition',n=footSkin+'_Side_L_Cdt')
cmds.connectAttr(ikCnt+'.Side',sideLCdt+'.ft')
cmds.connectAttr(ikCnt+'.Side',sideLCdt+'.ctr')
cmds.setAttr(sideLCdt+'.op',4)
cmds.setAttr(sideLCdt+'.cfr',0)
cmds.connectAttr(sideGCdt+'.ocr',sideInIkHGrp+'.rz',f=1)
cmds.connectAttr(sideLCdt+'.ocr',sideOutIkHGrp+'.rz',f=1)
cmds.connectAttr(ikCnt+'.TipToe',toeEndIkHGrp+'.rx')
toeEndIkCnt=sdd_createMocapCurveCnt(toeEndSkin+_IK,'Circle',_rad*1,13)
sdd_rotateCurveCnt(90,0,0,toeEndIkCnt)
toeEndIkCntGrp=sdd_createAnimDateGrp(toeEndIkCnt)
cmds.delete(cmds.parentConstraint(toeIk,toeEndIkCntGrp[-1]))
cmds.parentConstraint(footIk,toeEndIkCntGrp[-1],mo=1)
cmds.parentConstraint(toeEndIkCnt,toeIkHGrp,mo=1)
ikCntGrp=sdd_createAnimDateGrp(ikCnt)
cmds.parent(ikCntGrp[-1],moveCtrl)
cmds.delete(cmds.parentConstraint(footIk,ikCntGrp[-1]))
cmds.orientConstraint(ikCnt,footIk)
cmds.parent(footRootIkGrp,ikCnt)
legIkOffGrp=sdd_createIkOffAnimDateGrp(ikCnt+'_'+legSkin,ikCntGrp[-1],legSkin)
upLegIkOffGrp=sdd_createIkOffAnimDateGrp(ikCnt+'_'+upLegSkin,legIkOffGrp[-1],upLegSkin)
cmds.parent(upLegIkOffGrp[-1],moveCtrl)
_Pole='_Pole'
ikPloeCnt=sdd_createMocapCurveCnt(upLegSkin+_Pole,'pole_cv',_rad*1,13)
sdd_rotateCurveCnt(180,0,0,ikPloeCnt)
ikPloeCntGrp=sdd_createAnimDateGrp(ikPloeCnt)
cmds.delete(cmds.parentConstraint(legSkin,ikPloeCntGrp[-1]))
cmds.delete(cmds.orientConstraint(legSkin,ikPloeCntGrp[-1]))
cmds.setAttr(ikPloeCntGrp[-2]+'.tz',dis)
cmds.poleVectorConstraint(ikPloeCnt,legIkH)
upLegPoleOffGrp=sdd_createIkOffAnimDateGrp(ikPloeCnt+'_'+upLegSkin,ikPloeCntGrp[-1],upLegSkin)
cmds.parent(upLegPoleOffGrp[-1],moveCtrl)
sdd_connectAttrAnimDataToGrp(upLegLoc,upLegIkOffGrp[0])
sdd_connectAttrAnimDataToGrp(legLoc,ikPloeCntGrp[0])
sdd_connectAttrAnimDataToGrp(upLegLoc,upLegPoleOffGrp[0])
<上一篇卓普小黑怎么样-卓普小黑2
下一篇>红米手机电池怎么样