zoukankan      html  css  js  c++  java
  • 09 IKFKMatch.txt

    //advanced skeleton 3.5 update.
    //test in maya 2011.
    //this script is free.
    //adding match IK Fk feature for advanced skleton 3.5
    //writen by davood tabatabaei iran-mashhad-parshonar company.
    //email: davood.taba@gmail.com
    //how to use:
    //open scrip in script editor and select all texts and drag into shelf . optional: use match icon if you like.
    // completely create your rig then run script and then click on "adding match feature to rig"(in main rig not referenced rig). now you are able to match ik to fk or reverse on hands and legs.
    //important: do not rename any part of advanced skelete.
    //if you referenced rig into other file it must be after adding match feature this means you must frist add match feature then reference it.
    window -width 150 -t "IK FK Match Tool For Adv Skeleton By Davood Tabatabaei";
    columnLayout -adjustableColumn true;
    textField -tx "Enter Character's NameSpace Else Remove This text" t1;
    button -label "Adding Match feature To Rig" -command "Add" addmatch;
    string $ex = ("*" + ":" + "PoleExtraArm_L1");
    if (`objExists $ex`){
    button -edit -en 0 -l "you have add Match feature already" addmatch;
    };
    string $ex = ("*" + "PoleExtraArm_L1");
    if (`objExists $ex`){
    button -edit -en 0 -l "you have add Match feature already" addmatch;
    };
    button -label "Convert Left Hand to IK" -command "LHtoIK";
    button -label "Convert Left Hand to FK" -command "LHtoFK";
    button -label "Convert Right Hand to IK" -command "RHtoIK";
    button -label "Convert Right Hand to FK" -command "RHtoFK";
    button -label "Convert Left Foot to IK" -command "LFtoIK";
    button -label "Convert Left Foot to FK" -command "LFtoFK";
    button -label "Convert Right Foot to IK" -command "RFtoIK";
    button -label "Convert Right Foot to FK" -command "RFtoFK";
    showWindow;
    proc LFtoIK()
    {
    string $ns = `textField -q -tx t1 `;
    $pos = `xform -q -ws -t ($ns + "IKLeg_L1")`;
    move -rpr -ws $pos[0] $pos[1] $pos[2] ($ns + "IKLeg_L");
    $rot = `xform -q -ws -ro ($ns +"IKLeg_L1")`;
    rotate -a -ws $rot[0] $rot[1] $rot[2] ($ns + "IKLeg_L");
    $posIK = `xform -q -ws -t ($ns + "PoleLeg_L1")`;
    move -rpr -ws $posIK[0] $posIK[1] $posIK[2] ($ns + "PoleLeg_L");
    setAttr ($ns + "FKIKLeg_L.FKIKBlend") 10;
    };
    proc LFtoFK()
    {
    string $ns = `textField -q -tx t1 `;
    select -r ($ns +"IKXHip_L") ;
    select -tgl ($ns +"FKHip_L") ;
    doCreateParentConstraintArgList 1 { "0","0","0","0","0","0","0","1","","1" };
    parentConstraint -weight 1;
    // Result: FKHip_L_parentConstraint1 //
    // Result: FKHip_L_parentConstraint1
    select -r ($ns +"FKHip_L_parentConstraint1") ;
    delete;
    select -r ($ns +"IKXKnee_L") ;
    select -tgl ($ns +"FKKnee_L") ;
    doCreateParentConstraintArgList 1 { "0","1","1","1","1","1","0","1","","1"};
    // Result: FKKnee_L_parentConstraint1 //
    select -r ($ns +"FKKnee_L_parentConstraint1") ;
    delete;
    select -r ($ns +"IKXAnkle_L") ;
    select -tgl ($ns +"FKAnkle_L") ;
    doCreateParentConstraintArgList 1 { "0","0","0","0","0","0","0","1","","1" };
    parentConstraint -weight 1;
    select -r ($ns +"FKAnkle_L_parentConstraint1") ;
    doDelete;
    setAttr ($ns+"FKIKLeg_L.FKIKBlend") 0;
    };
    proc RFtoIK()
    {
    string $ns = `textField -q -tx t1 `;
    $pos = `xform -q -ws -t ($ns + "IKLeg_R1")`;
    move -rpr -ws $pos[0] $pos[1] $pos[2] ($ns + "IKLeg_R");
    $rot = `xform -q -ws -ro ($ns +"IKLeg_R1")`;
    rotate -a -ws $rot[0] $rot[1] $rot[2] ($ns + "IKLeg_R");
    $posIK = `xform -q -ws -t ($ns + "PoleLeg_R1")`;
    move -rpr -ws $posIK[0] $posIK[1] $posIK[2] ($ns + "PoleLeg_R");
    setAttr ($ns + "FKIKLeg_R.FKIKBlend") 10;
    };
    proc RFtoFK()
    {
    string $ns = `textField -q -tx t1 `;
    select -r ($ns +"IKXHip_R") ;
    select -tgl ($ns +"FKHip_R") ;
    doCreateParentConstraintArgList 1 { "0","0","0","0","0","0","0","1","","1" };
    parentConstraint -weight 1;
    // Result: FKHip_R_parentConstraint1 //
    // Result: FKHip_R_parentConstraint1
    select -r ($ns +"FKHip_R_parentConstraint1") ;
    delete;
    select -r ($ns +"IKXKnee_R") ;
    select -tgl ($ns +"FKKnee_R") ;
    doCreateParentConstraintArgList 1 { "0","1","1","1","1","1","0","1","","1"};
    // Result: FKKnee_R_parentConstraint1 //
    select -r ($ns +"FKKnee_R_parentConstraint1") ;
    delete;
    select -r ($ns +"IKXAnkle_R") ;
    select -tgl ($ns +"FKAnkle_R") ;
    doCreateParentConstraintArgList 1 { "0","0","0","0","0","0","0","1","","1" };
    parentConstraint -weight 1;
    select -r ($ns +"FKAnkle_R_parentConstraint1") ;
    doDelete;
    setAttr ($ns+"FKIKLeg_R.FKIKBlend") 0;
    };
    proc LHtoIK()
    {
    string $ns = `textField -q -tx t1 `;
    $pos = `xform -q -ws -t ($ns + "IKArm_L1")`;
    move -rpr -ws $pos[0] $pos[1] $pos[2] ($ns + "IKArm_L");
    $rot = `xform -q -ws -ro ($ns +"IKArm_L1")`;
    rotate -a -ws $rot[0] $rot[1] $rot[2] ($ns + "IKArm_L");
    $posIK = `xform -q -ws -t ($ns + "PoleArm_L1")`;
    move -rpr -ws $posIK[0] $posIK[1] $posIK[2] ($ns + "PoleArm_L");
    setAttr ($ns + "FKIKArm_L.FKIKBlend") 10;
    };
    proc LHtoFK()
    {
    string $ns = `textField -q -tx t1 `;
    select -r ($ns +"IKXShoulder_L") ;
    select -tgl ($ns +"FKShoulder_L") ;
    doCreateParentConstraintArgList 1 { "0","0","0","0","0","0","0","1","","1" };
    parentConstraint -weight 1;
    // Result: FKShoulder_L_parentConstraint1 //
    // Result: FKShoulder_L_parentConstraint1
    select -r ($ns +"FKShoulder_L_parentConstraint1") ;
    delete;
    select -r ($ns +"IKXElbow_L") ;
    select -tgl ($ns +"FKElbow_L") ;
    doCreateParentConstraintArgList 1 { "0","1","1","1","1","0","1","1","","1" };
    // Result: FKElbow_L_parentConstraint1 //
    select -r ($ns +"FKElbow_L_parentConstraint1") ;
    delete;
    select -r ($ns +"IKXWrist_L") ;
    select -tgl ($ns +"FKWrist_L") ;
    doCreateParentConstraintArgList 1 { "0","0","0","0","0","0","0","1","","1" };
    parentConstraint -weight 1;
    select -r ($ns +"FKWrist_L_parentConstraint1") ;
    doDelete;
    setAttr ($ns+"FKIKArm_L.FKIKBlend") 0;
    };
    proc RHtoIK()
    {
    string $ns = `textField -q -tx t1 `;
    $pos = `xform -q -ws -t ($ns + "IKArm_R1")`;
    move -rpr -ws $pos[0] $pos[1] $pos[2] ($ns + "IKArm_R");
    $rot = `xform -q -ws -ro ($ns +"IKArm_R1")`;
    rotate -a -ws $rot[0] $rot[1] $rot[2] ($ns + "IKArm_R");
    $posIK = `xform -q -ws -t ($ns + "PoleArm_R1")`;
    move -rpr -ws $posIK[0] $posIK[1] $posIK[2] ($ns + "PoleArm_R");
    setAttr ($ns + "FKIKArm_R.FKIKBlend") 10;
    };
    proc RHtoFK()
    {
    string $ns = `textField -q -tx t1 `;
    select -r ($ns +"IKXShoulder_R") ;
    select -tgl ($ns +"FKShoulder_R") ;
    doCreateParentConstraintArgList 1 { "0","0","0","0","0","0","0","1","","1" };
    parentConstraint -weight 1;
    // Result: FKShoulder_R_parentConstraint1 //
    // Result: FKShoulder_R_parentConstraint1
    select -r ($ns +"FKShoulder_R_parentConstraint1") ;
    delete;
    select -r ($ns +"IKXElbow_R") ;
    select -tgl ($ns +"FKElbow_R") ;
    doCreateParentConstraintArgList 1 { "0","1","1","1","1","0","1","1","","1" };
    // Result: FKElbow_R_parentConstraint1 //
    select -r ($ns +"FKElbow_R_parentConstraint1") ;
    delete;
    select -r ($ns +"IKXWrist_R") ;
    select -tgl ($ns +"FKWrist_R") ;
    doCreateParentConstraintArgList 1 { "0","0","0","0","0","0","0","1","","1" };
    parentConstraint -weight 1;
    select -r ($ns +"FKWrist_R_parentConstraint1") ;
    doDelete;
    setAttr ($ns+"FKIKArm_R.FKIKBlend") 0;
    };
    proc Add()
    {
    string $ns = `textField -q -tx t1 `;
    select -r PoleExtraArm_L ;
    duplicate -rr;
    // Result: PoleExtraArm_L1 //
    select -r PoleExtraArm_L1|PoleArm_L|PoleAnnotateTargetArm_L ;
    delete;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintArm_L|PoleExtraArm_L1|PoleArm_L.rotateX;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintArm_L|PoleExtraArm_L1|PoleArm_L.rotateY;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintArm_L|PoleExtraArm_L1|PoleArm_L.rotateZ;
    setAttr -lock false "PoleExtraArm_L1|PoleArm_L.rx";
    setAttr -lock false "PoleExtraArm_L1|PoleArm_L.ry";
    setAttr -lock false "PoleExtraArm_L1|PoleArm_L.rz";
    select -r FKXElbow_L ;
    select -r PoleExtraArm_L1|PoleArm_L ;
    rename "PoleExtraArm_L1|PoleArm_L" "PoleArm_L1";
    // Result: PoleArm_L1 //
    select -r FKXElbow_L ;
    select -add PoleArm_L1 ;
    doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" };
    parentConstraint -mo -weight 1;
    // Result: PoleArm_L1_parentConstraint1 //
    select -r IKArm_L ;
    duplicate -rr;
    // Result: IKArm_L1 //
    select -r IKArm_L1|IKXArmHandle_L ;
    delete;
    select -r Wrist_L ;
    select -add IKArm_L1 ;
    doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" };
    parentConstraint -mo -weight 1;
    // Result: IKArm_L1_parentConstraint1 //
    setAttr -lock true "FKElbow_L.rx";
    setAttr -lock true "FKElbow_L.rz";
    select -r PoleExtraArm_R ;
    duplicate -rr;
    // Result: PoleExtraArm_R1 //
    select -r PoleExtraArm_R1|PoleArm_R|PoleAnnotateTargetArm_R ;
    delete;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintArm_R|PoleExtraArm_R1|PoleArm_R.rotateX;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintArm_R|PoleExtraArm_R1|PoleArm_R.rotateY;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintArm_R|PoleExtraArm_R1|PoleArm_R.rotateZ;
    setAttr -lock false "PoleExtraArm_R1|PoleArm_R.rx";
    setAttr -lock false "PoleExtraArm_R1|PoleArm_R.ry";
    setAttr -lock false "PoleExtraArm_R1|PoleArm_R.rz";
    select -r FKXElbow_R ;
    select -r PoleExtraArm_R1|PoleArm_R ;
    rename "PoleExtraArm_R1|PoleArm_R" "PoleArm_R1";
    // Result: PoleArm_R1 //
    select -r FKXElbow_R ;
    select -add PoleArm_R1 ;
    doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" };
    parentConstraint -mo -weight 1;
    // Result: PoleArm_R1_parentConstraint1 //
    select -r IKArm_R ;
    duplicate -rr;
    // Result: IKArm_R1 //
    select -r IKArm_R1|IKXArmHandle_R ;
    delete;
    select -r Wrist_R ;
    select -add IKArm_R1 ;
    doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" };
    parentConstraint -mo -weight 1;
    // Result: IKArm_R1_parentConstraint1 //
    setAttr -lock true "FKElbow_R.rx";
    setAttr -lock true "FKElbow_R.rz";
    select -tgl IKArm_L IKArm_L1 ;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|IKParentConstraintArm_L|IKExtraArm_L|IKArm_L1.visibility;
    setAttr -lock false "IKArm_L1.v";
    setAttr "IKArm_L1.visibility" 0;
    select -tgl IKArm_R IKArm_R1 ;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|IKParentConstraintArm_R|IKExtraArm_R|IKArm_R1.visibility;
    setAttr -lock false "IKArm_R1.v";
    setAttr "IKArm_R1.visibility" 0;
    select -tgl PoleArm_L PoleArm_L1 ;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintArm_L|PoleExtraArm_L1|PoleArm_L1.visibility;
    setAttr -lock false "PoleArm_L1.v";
    setAttr "PoleArm_L1.visibility" 0;
    select -r PoleArm_R ;
    select -tgl PoleArm_R PoleArm_R1 ;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintArm_R|PoleExtraArm_R1|PoleArm_R1.visibility;
    setAttr -lock false "PoleArm_R1.v";
    setAttr "PoleArm_R1.visibility" 0;
    select -r PoleExtraLeg_L ;
    duplicate -rr;
    // Result: PoleExtraLeg_L1 //
    select -r PoleExtraLeg_L1|PoleLeg_L|PoleAnnotateTargetLeg_L ;
    delete;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintLeg_L|PoleExtraLeg_L1|PoleLeg_L.rotateX;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintLeg_L|PoleExtraLeg_L1|PoleLeg_L.rotateY;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintLeg_L|PoleExtraLeg_L1|PoleLeg_L.rotateZ;
    setAttr -lock false "PoleExtraLeg_L1|PoleLeg_L.rx";
    setAttr -lock false "PoleExtraLeg_L1|PoleLeg_L.ry";
    setAttr -lock false "PoleExtraLeg_L1|PoleLeg_L.rz";
    select -r FKXKnee_L ;
    select -r PoleExtraLeg_L1|PoleLeg_L ;
    rename "PoleExtraLeg_L1|PoleLeg_L" "PoleLeg_L1";
    // Result: PoleLeg_L1 //
    select -r FKXKnee_L ;
    select -add PoleLeg_L1 ;
    doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" };
    parentConstraint -mo -weight 1;
    // Result: PoleLeg_L1_parentConstraint1 //
    select -r IKLeg_L ;
    duplicate -rr;
    // Result: IKLeg_L1 //
    if (`objExists IKLeg_L1|IKFootIndexPivotLeg_L`){
    select -r IKLeg_L1|IKFootIndexPivotLeg_L;
    delete;
    };
    select -r Ankle_L ;
    select -add IKLeg_L1 ;
    doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" };
    parentConstraint -mo -weight 1;
    // Result: IKLeg_L1_parentConstraint1 //
    setAttr -lock true "FKKnee_L.rx";
    setAttr -lock true "FKKnee_L.ry";
    select -r PoleExtraLeg_R ;
    duplicate -rr;
    // Result: PoleExtraLeg_R1 //
    select -r PoleExtraLeg_R1|PoleLeg_R|PoleAnnotateTargetLeg_R ;
    delete;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintLeg_R|PoleExtraLeg_R1|PoleLeg_R.rotateX;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintLeg_R|PoleExtraLeg_R1|PoleLeg_R.rotateY;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintLeg_R|PoleExtraLeg_R1|PoleLeg_R.rotateZ;
    setAttr -lock false "PoleExtraLeg_R1|PoleLeg_R.rx";
    setAttr -lock false "PoleExtraLeg_R1|PoleLeg_R.ry";
    setAttr -lock false "PoleExtraLeg_R1|PoleLeg_R.rz";
    select -r FKXKnee_R ;
    select -r PoleExtraLeg_R1|PoleLeg_R ;
    rename "PoleExtraLeg_R1|PoleLeg_R" "PoleLeg_R1";
    // Result: PoleLeg_R1 //
    select -r FKXKnee_R ;
    select -add PoleLeg_R1 ;
    doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" };
    parentConstraint -mo -weight 1;
    // Result: PoleLeg_R1_parentConstraint1 //
    select -r IKLeg_R ;
    duplicate -rr;
    // Result: IKLeg_R1 //
    if (`objExists IKLeg_R1|IKFootIndexPivotLeg_R`){
    select -r IKLeg_R1|IKFootIndexPivotLeg_R;
    delete;
    };
    select -r Ankle_R ;
    select -add IKLeg_R1 ;
    doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" };
    parentConstraint -mo -weight 1;
    // Result: IKLeg_R1_parentConstraint1 //
    setAttr -lock true "FKKnee_R.rx";
    setAttr -lock true "FKKnee_R.ry";
    select -tgl IKLeg_L IKLeg_L1 ;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|IKParentConstraintLeg_L|IKExtraLeg_L|IKLeg_L1.visibility;
    setAttr -lock false "IKLeg_L1.v";
    setAttr "IKLeg_L1.visibility" 0;
    select -tgl IKLeg_R IKLeg_R1 ;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|IKParentConstraintLeg_R|IKExtraLeg_R|IKLeg_R1.visibility;
    setAttr -lock false "IKLeg_R1.v";
    setAttr "IKLeg_R1.visibility" 0;
    select -tgl PoleLeg_L PoleLeg_L1 ;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintLeg_L|PoleExtraLeg_L1|PoleLeg_L1.visibility;
    setAttr -lock false "PoleLeg_L1.v";
    setAttr "PoleLeg_L1.visibility" 0;
    select -r PoleLeg_R ;
    select -tgl PoleLeg_R PoleLeg_R1 ;
    setAttr -k on |Group|Main|MotionSystem|IKSystem|IKHandle|PoleParentConstraintLeg_R|PoleExtraLeg_R1|PoleLeg_R1.visibility;
    setAttr -lock false "PoleLeg_R1.v";
    setAttr "PoleLeg_R1.visibility" 0;
    string $ex = ("*" + "PoleExtraArm_L1");
    if (`objExists $ex`){
    button -edit -en 0 -l "you have add Match feature already" addmatch;
    };
    string $ex = ("*" + ":" + "PoleExtraArm_L1");
    if (`objExists $ex`){
    button -edit -en 0 -l "you have add Match feature already" addmatch;
    };
    select -cl ;
    };




  • 相关阅读:
    java 中静态变量和实例变量之间的区别
    java 中final 引用不可变,但是引用还是可以发生变化的
    java中char和Unicode之间的关系
    java 中终止内层循环的方法
    ssh 公钥免密码登陆
    关于Python 中unicode 转码的问题
    Python中Unicode码和非Unicode码引起的错误与格式转换
    第一次写博客,怎么写?
    zookeeper实现主-从结构的一般原理
    Python中Tuple的词源有趣探索
  • 原文地址:https://www.cnblogs.com/xe2011/p/2535594.html
Copyright © 2011-2022 走看看