Please not auto-align " legs roll" when generate meta-rig (related with #199)

Issue #252 closed
engetudouiti created an issue

I change title.. and I send report for blender , but do not know if it will be improved. (actually it seems blender rigi-fy limit for me)

but anyway what I hope is, I do not hope plug in “ auto-align roll” only for the pole target option. it means

Because if I keep to use “rotation mode”, it can keep default legs roll, it work better for most of case.

But if you remove current “auto roll”, I know it may cause problem or new report , then I hope option. (not auto align roll) please ^^;

I may recommend most of user, use “Rotation” , not toggle for rigi-fy, without you can manually edit rigi-fy bone, then adjust IK target position. (then if user can manuall edit,, you need not to force roll and legs as straight for zero pose) though it depend each user.

It is somehow serious for me. or every time, I manually copy roll from original to meta-rig again.. then I can not save current meta-rig scene. I need al least 10 minutes to set-up all rigi-fy bone options,, and add new bone layer etc,, to get good rigi-fy actor,, then do not hope to add new step in my current work-flow (to convert rigi-fy actor with meta-rig setting)

=======================

This issue is related with #199

And it is not importer bug , but it is current limit when try to auto-convert + mix face rig as automate process.The problem only happen about pole toggle system which added for new human meta-rig (blender 2.8 later I suppose)

To change IK pole target mode perfectly, actually we need to make figure legs almost perfect stragith line (side side pose) first, then only apply bend (x rotation) slightly. with check the bone roll direction toward blender z axis. and may be same things will happen for forarm limb

blender rigi-fy bone postioning manuall

so rigi-fy can generate pole target without change location or flip target left to right, etc with zero pose.

At current I hope most of users may not see flipped issue when you toggle as pole target. but you may see when you toggle pole switch (rotation mode <> IK target mode), everytime target or twist controll bone will add small transform value or small rotation value with keep rest pose. So if we use zero pose, zero pose may change with current ik target mode. I try to apply cuarrent location or rotation as rest pose, but after all it add delta when exchange mode again.(for rotation, or transform which decide current IK pose)

To perfectly remove problem, actually we need to align actor foot limp to straight (with check bone roll), from front view. then bend slightly. after that apply as rest pose. untill generate meta-rig.

Current way (which I suggested), try to force bone roll to z axis so it can reduce problem. (not flip or cross) but not auto set foot as straight (so your figure leg may slightly pose out or in , it still cause issue)

I do not think, it can auto-mate. most of daz actor legs not come as straight line with Front view. (I suppsoe G8 rest pose will show clear this issue) but you may see same issue, untill you manually customze and set zero pose .

So if you think toggle pole is important, I recommend carefully pose your actor then check meta-rig which generated.

But for me, I may prefer not use toggle pole. that means, as default it come without pole target but use rotation of limb with IK, then it have no issue (need not to auto-align pole target bone etc, then it can keep same zero pose when we use reset bone transform.

That means I need not force to adjust bone roll but keep thing roll as same as daz mesh flow = align mesh flow more better. then it effect when we pose rigs as FK .

So for generate meta-rig user (they like to customize and try to adjust), I recommend not try to auto

bpy.ops.armature.calculate_roll(type='GLOBAL_POS_Y') (or I do not know if you use other function then do same thing)

but generate as same as default rig. Current plug in anyway use the function then generate meta-rig, it is good for most of user I know, but I hope to remain option, which generate meta-rig (most of base limb) with keep current roll.

If I really need to use pole target toggle function precisely, we may need more complex steps I suppose. (it is not matter you like pole target or use limb rotation, because once you toggle , then keep to use it, you can easy apply zero pose for the controller or bone. problem only happen when you mix use 2 mode. (so rigi-fy need auto set )

Comments (16)

  1. engetudouiti reporter

    I think, if you can offer option as same as “Auto align” (most of case it not work well I suppose), “Auto set roll”, I can choose it.

    (for me,, for fiinal rig, I generate meta-rig and customize, options layers etc,, so I hope option, you remain default roll for limbs. without foce adjust roll, even though if it cause issue when toggle pole. after all, if they find problem, user may know we need to adjust rest pose to rigi-fy auto generate, I suppose. then if we only use rotation option, we need not adjust roll etc,, (only for IK target)

  2. engetudouiti reporter

    Then when I test with G8men, (it come with A pose, so legs open out-side, I assume it may cause issue), it clear show wrong pole position.

    when I toggle pole. they are located not as mirror but set knee pole in back of actor include transform values. and if I set zero pose, pole target cross in back of actor.

    Though plug in try to perfectly set bone roll dereiction, allign to world axis (Y) = default human meta-rig.

    I assume it is caused the G8 A pose legs. We need to force Actor pose to leg straight first, bend a little. then apply pose. after that generate meta-rig. it can not controll by plug in, untill all morphed figure have same rig position. (at first daz rig not generate leg as straight,, they follow the mesh )

    As I said there are many rigi-fy options, so I do not know if mix use some of them may ease issue,, but basically I feel we need to adjust zero pose untill generate meta-rig.

    or we may need to edit rigi-fy bones to ease issue. (I tried it, but when toggle pole<>rotation, it added un-expectable rotation value or transform value, so I do not think it work correctly. (and I do not think, it is usuall manner, it means even though we do not move bone, rigi-fy change leg pose gradually, with toggle 2 options)

    then I prefer keep the bone roll, and zero pose as same as default rig, so jcm may work better. then not use IK pole, (keep default rotation mode), or toggle once, then edit pole manually. (it need user work) but never return as rotation mode. so I can keep rest pose with IK, I suppose.

  3. engetudouiti reporter

    I test more, I know Thomas already offer adjust rig for IK untill convert. yes it can ease issue at first time, it can lcoate IK target front of actor with out opositte. but if you check transform, it include value already. = zero pose change your knee angle drastically.

    then I toggle again, now it add new rotation =0.2 etc.. though it is small value.

    So if I keep to use default option (rotation ), it need not to change zero pose. (and not use auto align mode., it only work well with stragith leg pose in front view (no side side. real straight bone) then can keep bone roll , rest pose as almost same as default rig = work better for posing and jcms.

    Then my request is get option“ it not auto align roll for convert (because after all it not solve issue as true meaning, though it can ease and for basic user, it may work better with use target pole mode))

  4. engetudouiti reporter

    After test more I can say, as default option, it shold not change roll. because actually keep roll of default work better not only for FK local, but IK too. because when bend with hip (rigi-fy torso) with foot IK, it try to bend along with current thigh bone local direction X axis

    if plug in auto change roll along world axis for meta-rig , it not fit geometry flow anymore. then bend leg with modified roll direction.

    (eg your leg slightly open 8 or 6 degree for rest pose, or you can set -7 etc, then bend with IK foot .

    So if user hope to see best pose with rigi-fy cahracter, you may better not change bone roll. (because daz rig roll along with current geometry)

    the only problem is blender meta-rig and rigi-fy can not set ik target well (so only for the issue, lost well tuned rig roll not worth I feel)

  5. Thomas Larsson repo owner

    I’m not quite sure what you want me to do. One could display more options for the Rigify super_limbs, but that may be confusing if you work with other versions of Rigify that don’t have the same options. Also, can’t you do a two-step conversion: create a metarig, change any metarig options that you like, and rigify it afterwards.

    The Optimize Pose For IK tool tends to make IK more stable. That drawback is that leg poses will not be imported correctly since the rest pose has changed.

  6. engetudouiti reporter

    I just hope you return meta-rig without you add roll (align with gloval axis) for #199

    You change way when generate meta-rig, with the related commit right?

  7. engetudouiti reporter

    The problem is before, you did not change roll then generate meta-rig from default import rig.

    so it can keep same roll for thing bone. but it cause issue for the IK target (but not cause issue when we use rotation mode) then you seems follow my way. because I could see, roll changed with your commit about meta-rig.

    At that time I do not think it seriously, but it effect default pole option of current rig-fy.(rotation mode) So I asked you offer option

    1. adjust auto-roll (current plug in do for meta-rig when generate meta-rig)

    2. not adjust auto-roll. just generate meta-rig as same as before.

    https://bitbucket.org/Diffeomorphic/import_daz/commits/0f9a3e850e97297a5b60affc7a4e0c1ea3b912e7

    this commit actually change roll as same as I recommend way. (that time)

    At that time I do not think you make it as default.

  8. engetudouiti reporter

    And I know then I always use your add on to convert rigi-fy

    1. generate meta-rig then tweak meta-rig
    2. generate rigi-fy from meta-rig.

    So if you think auto-align roll with gloval is good for user. I hope you keep current way as default.

    at same time, I hope you offer way, for user who use “generate meta-rig” button, not touch roll.

    I do not hope you change way for 1 step option. but I only hope to say, 2 step options.

    (I must generate meta-rig, then tweak it, so I do not hope you auto- align roll , because I need to copy and paste again with select 2 rig bones. it is best for rotaiton mode, so I like it, I can not see any merit to mix use 2 rotaiton mode . then I do not worry about old rig. because they do not have rotation mode. so pole target must need )

  9. engetudouiti reporter

    def recalcRoll(self, meta):

    • # <https://bitbucket.org/Diffeomorphic/import_daz/issues/199/rigi-fy-thigh_ik_targetl-and>
    • for eb in meta.data.edit_bones:
    • eb.select = False
    • for rname in ["thigh.L", "thigh.R", "shin.L", "shin.R"]:
    • eb = meta.data.edit_bones[rname]
    • eb.select = True
    • bpy.ops.armature.calculate_roll(type='GLOBAL_POS_Y')

    sorry dirty copy, but actually it change roll. If you often use rigi-fy and test, I could recommend another way.

    (just change for IK target default position as rest pose. after generate rigi-fy so it work wtihout tweak roll.

    though when toggle, it change a little for rotation value . but it is blender side problem even though use perfect straight bone, (default human metarig ) when toggle, it add small delta rotation. And with zero pose, it cause issue. (because pole target already include location value , rigi-fy author seems do not care about it, then I reported)

    so basically we need not change roll at all… the reported problem seems happen when they apply zero pose for target pole, or they may check bone in edit mode..

    Pole target user (or mix user) >> after generate rigi-fy, with pose mode, it locate target correctly, the problem is only happen when you use auto algin foot etc.. current add on not use it as default. (but try to adjust roll )

    by blender side problem, target pole remain location value. so we need to set current target location as rest pose. (select those bones >> apply as rest pose)

    Rotation mode user >> there is nothing to do. we can use best roll as same as before. so IK pose work better.

    Though I can not confrim, it work for all, but at least I have no exceptional case.. current plug in way is try to tweak meta-rig roll. (but can not solve perfectly)

    t best way, is set rest pose for pole target, after generate rig-fy rig and toggle as pole target

  10. engetudouiti reporter

    And after all, if your figure pose as A pose like genesis 8, how you adjust roll, it never work for pole target.

    (so I remember, untill you added ” convert pose for IK rigs” , most of generate rig-fy rig usually cross target pole. (though I did not think it seriously,, because I could edit, if I need to locate clean, for rig-fy rig)

    About those case, you need to use plug in option “Change rest pose for IK rig”

    But G3 or G2 figure may need not use it.. I have never seen issue, if we set meta-rig option correctly.

    (so I reported not use “auto align “ but use “manuall X” etc.

  11. engetudouiti reporter

    Current my work flow (for G3)

    1. “Create meta rig” (not use Optimize pose for IK)
    2. “ copy and paste “Thigh twist” “Thigh bend” and “Shin” bone roll values to generate metarig bones.
    3. adjust option as you like, or add face bone layer etc, then adjust foot bone location, but never use “auto algin” so default setting is OK
    4. “Generate rig-fy”
    5. if you never toggle Pole it is all, it perfectly work
    6. if you hope to use pole target, toggle once. then check pole location basically it no problem
    7. Then select pole target apply rest pose only for those 2 target bone (select pole targets)
    8. maybe same thing need for arms (I still not test)
    9. when you need to return zero pose, I may recommend , everytime use “rotation mode” so you can keep same rest pose. without any delta .. (about rotation only user, there is no need to worry about)

    then I say, the step 2 is no need , if plug in return old meta-rig.. (or offer option, not auto adjust roll with gloval)

    though it is simple, but everytime select copy and paste roll is un-necessary step for me.

    then if plug in offer auto-mate way, I recommend include step 6 and step 7. then return rotation mode.

    so user do not know what happend, but when toggle as pole target, they see it work without problem.

    (you may only see a little small delta adde for target location, when toggle pole but it is blender side problem )

  12. engetudouiti reporter

    Ok I regret, I offered the way to temporally fix (change roll align gloval axis). I understand,, it was my reqeust, , then now I request you to return it. it is my fault.

    So at current I edit code (just comment out the function) then close this request.

    But when you can take time to check each rigi-fy options with change roll and test, I hope you will re consider this request.

    because current way change better bend .

    how it effect depend each character rig, about my character case roll chang roll 12 to 3 for thing bones.. it is not small with IK posing. ( I clear see, without roll change it offer more clean bend. and it can keep FK roll as same as before (with local rotation mode) .

  13. Log in to comment