Website Youtube GitHub

mGear Framework Forum

RBF Solver Mirror Setup?

I’m currently using the method Miquel demonstrated using the RBF solver for deformation joints. Is there a way to mirror that setup over? Currently when I use mirror setup in the RBF solver it doesn’t do anything.

Hello @mberrouet

  • Please make sure that your RBF setup name follows mGears naming convention so that the mirroring is possible.
  • You need to make sure as well that the controls that drive your setup have the mirroring attributes that shifter components have so that mirroring does actually something accurate to your rig.

Please let me know if this helps you. If it isn’t the case maybe providing a scene would help (if you can).
Cheers

2 Likes

Thanks Jerome I’ll give it a try

So, I tried having the names the same and the setup still did not mirror. The deformation setup I am using is the one Miquel recently did, adding a Blended Joint and a Support Joint to get elbow deformations. Seems like the system doesn’t recognize the broken hierarchy when creating blended joints and support joints. How can I send you a scene file? Thanks

@mberrouet I am afraid that the mirror doesn’t work yet on joints.
If you need to use mirror, just use control_01 for your gimmick joints. After you can hide the controls shapes. So the animator don’t animate it.

1 Like

Appreciate the tip thanks, Miquel

Hello everyone
I got this error when using the rbf mirror setup.

// mGear.flex : Adding isCtl attribute on control_R0_driven // 
// mGear.flex : Adding uiHost attribute on control_R0_driven // 
// Error: root : Uncaught exception
Traceback (most recent call last):
  File "C:\Users\Administrator\Documents\maya\scripts\mgear_3.4.0\scripts\mgear\rigbits\rbf_manager_ui.py", line 1513, in mirrorSetup
    dstValues[0]))
  File "C:\Users\Administrator\Documents\maya\scripts\mgear_3.4.0\scripts\mgear\core\anim_utils.py", line 1085, in calculateMirrorData
    "val": srcNode.attr(attrName).get() * inv})
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int' // 

Check the driven controls after an error occurs and find that the “.RBF_Multiplier” property value is 0, and setting the “.RBF_Multiplier” property to 1 will work fine

I tested the biped guide provided by mgear and the guide defined by myself, both have this error.

Tested on mGear 3.4.0, Maya 2018.4.

I did not find related problems and solutions after searching the relevant rbf feedback on the forum.

2 Likes

@fury_Night Thanks for the feedback. I have found the same issue this week. I have logged it here https://github.com/mgear-dev/rigbits/issues/48 and will fix it ASAP

And as you have found the mirror is set correctly but only the RBF_multiplier property is left to 0

1 Like

hello @Miquel
I seem to have resolved the error, I queried the ‘isCtl’ and ‘uiHost’ attributes in the return value of the res in the listAttrForMirror function in anim_utils.py.
I simply added two lines of code, saved and tested the rig asset with errors before, and it successfully mirrored.
image
image

2 Likes

Thanks @fury_Night I will check your solution ASAP :slight_smile:

hi! following this issue symmetry related…

I can’t figure out how to get a perfect symmetry from L to R side.

As you can see in the image, the initial bone position changes when importing the RBF, just after building rig. The behaviour is the one expected, but can’t keep the original position. .

Setting mirror to any of those setups gets the influence value to 0 as described…but when setting the attribute to 1 the control/bone is pushed to the non default position.

Is it something im doing wrong? i have the Mirror behaviour set in control01 setting.

Any help is really appreciated, this is stopping me using the stunning help of RBF for solving all this extra deformation controls.

Cheers.

Hi @Milio

The mirror mechanics works like in synoptic mirror. It is using the mirror configuration in the controls


Sometimes depending of your setting, you have to adjust this options. Remember to do it in both sides. To check that if is working use the synoptic, anim_picker or the new right click context menu, l before doing the RBF

I hope this helps.

Cheers,
Miquel

Hi Miquel! Gracias!

But mirroring works perfectly fine in synoptic, all axis are getting mirrored fine but still losing the position when creating the mirror setup. 8-(

In the dropbox link, I’ve included a brand new built rig, rbf imported (left side only)…all working fine.

If you don’t mind, can you try it out, setting the mirror of any of the three setups for the skirt?

This is happening in every single setup I’m doing, not only in this particular rig.

Cheers.

just ran in the same problem. @fury_Night 's fix worked for me, thanks!

1 Like

Hola @Milio

I have tried to download the file but dropbox said that file s uploading

image

oh no!! The link is alive and working fine though!

Cool, but did fix the influence set to 1 issue or the position of the bones changing when mirroring?

@Miquel https://drive.google.com/open?id=1-kM8rqD_1vnxmB4B9TouRg0xrVn5o1BG

google drive link

Cheers!!

1 Like

the set to 1 issue, havent had problems with mirroring so far.

Hi there!

I’m facing the same issues - could you please help me how to setup RBF so that’s mirroring correctly?

In the main rig, I’ve started using blended joints as a base - I know that’s not mirroring by default - so my first question is If there is any easy way that I could force RBF Manager to mirror those?

  • I’ve tried to add mirror attributes, but that’s not solving the issue

for obj in objs:

attribute.add_mirror_config_channels(obj, conf=[1, 1, 1, 0, 0, 0, 0, 0, 0])
attribute.addAttribute(ctl, “isCtl”, “bool”, keyable=False)

Error:

# Traceback (most recent call last):
#   File "D:\Dropbox (Siekiera)\maya_scripts\mgear\latest\scripts\mgear\rigbits\rbf_manager_ui.py", line 1497, in mirrorSetup
#     mirrorWeightInfo = self.gatherMirroredInfo(self.currentRBFSetupNodes)
#   File "D:\Dropbox (Siekiera)\maya_scripts\mgear\latest\scripts\mgear\rigbits\rbf_manager_ui.py", line 1431, in gatherMirroredInfo
#     mrDrvnCtl = mString.convertRLName(weightInfo["drivenControlName"])
#   File "D:\Dropbox (Siekiera)\maya_scripts\mgear\latest\scripts\mgear\core\string.py", line 74, in convertRLName
#     reMatch = re.search(rePattern, name)
#   File "C:\Program Files\Autodesk\Maya2018\bin\python27.zip\re.py", line 146, in search
# TypeError: expected string or buffer

If anyone knows how to makes this works I’d appreciate any help!

Secondly, I’ve switched to control01 - just to test if that’s working better, and indeed - mirroring works but not as it should. I’ve checked and my controls are mirroring correctly using right-click menu - but RBF can’t handle that somehow. What I’m doing wrong here?

Scene: https://we.tl/t-k0vFmRBWHP

I’m trying to understand it, so sorry if I’m doing some simple mistakes that I can’t see.

Thanks in advance!
K