BEPUik Full Body Inverse Kinematics

Wow. I must be really dumb. I finally got a chance to play with this today and I’m totally stumped.

I loaded up the latest example file, grabbed a bone, hit ‘g’ and nothing happened.

So, I then turned on the Translate Manipulator, selected a bone, moved the manipulator, and the bone just pulls off the skeleton.

I know I’m missing something TOTALLY fundamental, but what???

Yep, there was an API change in r53207 causing this.

Here’s a fixed init.py: bepuik_v0.1.1_callback_add_fix_CoDEmanX.zip (8.6 KB)

On windows, go to

%appdata%\Blender Foundation\Blender\2.65\scripts\addons\bepuik\

and replace the .py file and restart blender (or hit F8 to reload addons)

I added a simple check for the new draw handlers, if they are available, they will be used, otherwise it will use the old callback_add/remove. Thus, the addon will work continue to work for 2.65, but also work for recent builds.

Also changed the required blender version number, was (2, 6, 5), to the correct (2, 65, 0)

I figured out what’s going on. I use the Maya Preset and for whatever reason, this confuses BEPUik. May I request a fix for this?

Great! This fix is just what I needed. Thanks CoDEmanX

Yep, it’s a keymap conflict with maya preset. Workin on it! next version should be out soon with codeman’s fix applied too. I should even be able to take a shower!

Hmm. Really stuck on this shower / no shower theme. Maybe it’s time to move on. Not very professional.

~~ MAYBE SHOWER BOY          ~~
~~~~~~~~~~~~~~~~~`

ok I'll stop

Same thing happened to me once on a coding sprint: only difference, I was coding for php and xml.

$it=was($pretty->wierd($y-know));$anyways?$lol:$thanks_for_BePUik->forwin32;// :smiley:

/*
Why hasn’t blendernation gotten wind of this?
*/

Thanks, dude! I really appreciate it.

I did find that if I switch to Blender keymapping and just turn on Select With: Left (mouse button, that is) it does fix the problem. To be honest, I’m not sure why I’m using the Maya keymap anyway since it doesn’t seem to really change anything.

How about:

  • maybe I’ll get a chance to take a breath, or
  • stop for food, or
  • get off my bike, or
  • grab a mai tai, or
  • land before this decaying orbit grounds me for good.

:slight_smile:

Experimenting with the realtime record function, this is a great feature.

I was wondering if it were possible to “layer” recordings on to each other, adding to the bone positions instead of replacing bone positions?
Like record translation of “right fist”, then go back and record the translation of “left fist” during playback of “right fist”
This would be great for complex dance movements too.

this is just perfect :smiley:
-the only thing I would think it needs is allowing or factoring in rotation constraints so say, knees don’t bend the wrong way.
shift_D pins are sort of like it but more restrictive, but I guess if it had a rotation limit range taken from the blender rotation locks it would be perfect. Like posing an action figure XD. now if you’ll excuse me, I’ve got some IK-ing to do :]

edit: keep shift_d, add factoring of bone rotation limits and give it a toggle to ignore or factor 8)

Hi Ron, looking into the issue further, I remembered that maya mainly makes use of the transform widget. Unfortunately, there is no support for widget-based movement in bepuik. However, in version 0.1.2, I fixed the key conflict with the maya keymap, so you can still use the standard widget for forward kinematics, in addition to the BEPUik hotkeys.

To turn on “maya” mode, you have to change one line of code in the addon.

If you’re on windows 7, open the file located at:

C:/Users/YourUsername/AppData/Roaming/Blender Foundation/Blender/2.65/scripts/addons/bepuik/pybepu/hotkeys.py

and change the line that says:

use_maya_keymap = False

to…

use_maya_keymap = True

Restart blender, and the controls will have changed slightly.

S will “drag” the bone.
G will translate the bone, same as blender’s keymap.
V will twist the bone.

These are the only keys I couldn’t find that wouldn’t immediately conflict with something else in the maya keymap… unfortunately it also appears that the maya keymap is somewhat buggy by default. For example, instead of showing the transform widget when pressing W it shows the “Specials” menu. Not much I can do about that, but perhaps this control change will help some.

There isn’t really a good way to do this with the interface… yet. You should be able to do this with controls, but there’s a frame change glitch that makes it unusable.

You can actually do this right now by combining a couple constraints together. In fact, most of the human body can be replicated with “realistic” joints. You can even animate their enabled/disabled state. For example, you could have someone’s elbow working correctly before a fight and then have it hang broken after. (or just fall off) Of course, right now, I don’t have any good tutorials explaining how to do this. Haven’t had the time to make one. But it’s definitely possible.

The lag that occurs when pressing tab and the brief wait for the pie menu to popup, will this be a snappier action in the near future?

Is it possible for the pie menu in sculpt mode to switch between red, tan, grey (1,2,3) while the pie menu remains on screen for each corresponding brush set, without having to wait for the menu to disappear or for the user to right click the screen to exit the pie menu? This is more of a feature for those of us not 100% familiar with which brushes reside in each color scheme. I find myself hitting 1, then 2, finally 3 before I find the aha moment and “Oh, that’s where the Snake Hook is.” The wait for the pie menu to disappear or the right click on the screen is a frustrating waste of time, as where allowing me to quickly toggle between 1, 2, 3 while the pie menu remains on screen would be a great time saver - until I learn the multitude of shortcuts I’m still hard at work on learning.

Hmm…you’re planning something with the interface aren’t you? You can tell us, let us in on it…we won’t tell anyone :wink:

Until then, looks like I’ll be doing more experiments with constraints. :slight_smile:

Would it be possible to get a more advanced example rig instead of a docu then? Would make it easier to test stuff by trial and error.

Actually, I’m working on a full bepuik rig for a human right now. I’ll be uploading it to the google page as soon as its done.

Ah-ha! So there is more to it.

I was playing with the skeleton you provided, but each time I grabbed (for instance) an arm and moved it around, the rest of the body would collapse more and more each time I moved the arm back toward its original position. I was going to ask about full-on bepuik rigging and what was involved.

Funny, I’ve always set the Maya keymap, but that whole QWERTY thing has never worked. It’s always been the usual Blender keys (GSR which always makes me think of CSI and their Gun Shot Residue thing, an easy way to remember the mapping).

Now, when I say I’ve always set Maya keymapping, I don’t (upon reflection) have any direct evidence that it’s ever been actually set. Every time I go to User Preferences, that drop-down always says, “Presets,” so it may be that nothing ever really happened except changing the Select With to LMB.

No matter. All this is to say thanks for going to the trouble.

PS: I guess I’d better go back and re-read that first post again. :frowning:

EDIT: Just did and I have a question…

What does it mean “tweak selecting with the mouse?” I know how to select (at least, I think I do :slight_smile: ) but I’m not sure what this means. Does it involve a qualifier key?

In Blender’s case, tweaking is just a slightly esoteric way of saying changing a value by “holding down a mouse button while moving the mouse.”

For example, the default Blender control scheme allows you to drag an object using only the right mouse button, which also happens to be the select button. So, move + select happen with the same button press, thus tweak selecting.

BEPUik also supports using left click as select. Assuming an otherwise default Blender control scheme, if you change the “Select With” option under input preferences to “Left,” everything should still work properly. It’s what I use, as it’s a bit less weird for my brain, without losing the workflow benefits of blender’s control scheme.

The maya keymap doesn’t have this. You have to select first, then initiate a movement.

Thanks for clearing that up, Squashwell.

I agree with you on the Select With thing. Selecting vertices, etc. with the RMB just seems weird when everything else is select with the LMB. Just saying.

Hello, just checking in to see how documentation or tutorial progress goes (assuming that’s what you guys are working on) :slight_smile: