MAXScript Biped Auto Rigger

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

REPLY TO THREAD
 
Thread Tools Search this Thread Display Modes
Old 12 December 2013   #1
MAXScript Biped Auto Rigger

Hello,

I decided to create my first auto rigger script which is based on Biped, I had a look around at other 3ds Max scripts which all seemed to be based on moving Helper objects into position before creating the rig, whereas I wanted to be able to interactively resize the bones of a character using the scale gizmo before creating the rig.

I'm currently not planning on adding features like overall scaling and squash/stretch, the script is meant more for games, but this could change when I develop more of the rigging systems.

Rigging features that I am planning to add include: IK/FK limbs, IK/FK blending, IK/FK snapping, triple-IK foot, Biped-like spine rig and a lot of custom attributes so that, for example, the fingers can be rotated in using spinners/sliders in the modify panel.

Unlike Biped, you can still use all of 3ds Max's native tools like the Curve Editor, Set Key and Auto Key.

I posted the first update video for the rig: https://vimeo.com/82136060

Stay tuned for more!

-Harry
__________________
LinkedIn | Website | Vimeo | YouTube | Twitter | Facebook
 
Old 12 December 2013   #2
Hey Harry , nice to share , i just have some comments , inquiries and suggestions :
1-first : you said name independent rig is a bit slow but did u used weak referencing ? #nodeTab or #MaxobjectTab to store nodes ? for my experience it doesnt do any hit in performance but you may tell yours .
second: you made it work for single mesh character but what if it came as many pieces and that s not so rare indeed
third: as you starting i suggest you make something like figure saving and loading iin case you need to edit rig
it is nice that you paid attention to scaling bones as it may surprise you later
well , i m following and wish you all good luck !
__________________
Rigging reel 2017
Web Page
 
Old 12 December 2013   #3
Hi Ahmed, thanks for your comments.

1. The way I've made rigs name independent in the past is to create a Point Helper, assign a Scale Script controller and add nodes to it and reference them through the controller rather than directly. I've seen that Paul Neale has an article on his website about using #MaxobjectTab, I did a very quick test with it, I think I will end up making my script name independent just to make it nice to work with.

2. I guess with a character that come in several different pieces I could create something that instances the Skin modifier on to all of the character objects - something for me to look in to.

3. Yes, that would be nice to have, do you mean during the setup stage or when the rig is created?

Thanks again!
__________________
LinkedIn | Website | Vimeo | YouTube | Twitter | Facebook

Last edited by hazmondo : 12 December 2013 at 08:01 PM.
 
Old 12 December 2013   #4
hi Harry , thats good to try weak referencing you can do wonders by it !
and for figure mode feature i meant to be after creation , well done i will be following.
__________________
Rigging reel 2017
Web Page
 
Old 12 December 2013   #5
This script could take me a long time to write, lol.
__________________
LinkedIn | Website | Vimeo | YouTube | Twitter | Facebook
 
Old 12 December 2013   #6
yes , thats how it goes , be patient and remember the better you make it the more time you save later for yourself , i expect that it would take no less than a couple of months to make something usable ,good luck
__________________
Rigging reel 2017
Web Page
 
Old 01 January 2014   #7
Hello, I just uploaded my second update video to Vimeo. I've still got a bit of work to do but I've updated a few things, shuffled the UI around and added some new functionality. Hope you like what I've done so far!

https://vimeo.com/84767871

-Harry
__________________
LinkedIn | Website | Vimeo | YouTube | Twitter | Facebook
 
Old 01 January 2014   #8
still following-up , take care about joint orientation so ik can be predictable when creating rig it is the most tricky parts when creating auto rig , keep going !
__________________
Rigging reel 2017
Web Page
 
Old 01 January 2014   #9
Hi,

Thanks for the advice, it's nice that someone with as much experience as you is showing some interest in what I'm doing, I really appreciate it.

-Harry
__________________
LinkedIn | Website | Vimeo | YouTube | Twitter | Facebook
 
Old 01 January 2014   #10
i wish i m as much as you think , i m really eager to see what comes up next , good luck Harry !
__________________
Rigging reel 2017
Web Page
 
Old 03 March 2014   #11
Hello, I just uploaded the third update video to Vimeo. This one includes the ability to load and save rig presets, merge character meshes and twist bone visualisation as well as some other subtle changes.

https://vimeo.com/88209693
__________________
LinkedIn | Website | Vimeo | YouTube | Twitter | Facebook
 
Old 03 March 2014   #12
Heeeeeeyyy, check out that twist bone representation! Coming along really nicely, Harry. Thanks for the update.
 
Old 04 April 2014   #13
No need for the script controller. Just add a CA def with a MaxObjectTab to the root object in the rig and store reference to the whole rig using nodeTransformMonitors that are stored in the MaxObjectTab.
__________________
Paul Neale
http://paulneale.com
 
Old 05 May 2014   #14
Hi Paul,

I've done a test using maxObjectTab but I'm not sure how I would reference a root from another object.

Let's say I have a standard FK arm that I want to snap an IK arm when I press a button which is an FK control object and I create a CA definition on a root object with an maxObjectTab parameter containing the bones. What would I put in the FK button's event handler so that I could reference the node while still making it name independent?

-Harry
__________________
LinkedIn | Website | Vimeo | YouTube | Twitter | Facebook
 
Old 05 May 2014   #15
Hey Harry,

What I normally do is have a CA on each rig ctrl which stores both the root node and it's target when snapping as weak references. When you press the snap button it calls a function which is stored on the root node's CA and supplies itself and the target nodes as arguments. So on an IK hand ctrl you might have:

root =  (nodeTransformMonitor node:$root_ctrl forwardTransformChangeMsgs:false)
snapTarget = (nodeTransformMonitor node:$fk_hand_ctrl forwardTransformChangeMsgs:false)


then, when the 'snap' button is pressed it would call something like

on snapBtn pressed do root.node.customAttributeDef.snap $ snapTarget.node


Hope that helps
 
reply share thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
CGSociety
Society of Digital Artists
www.cgsociety.org

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump
Miscellaneous

All times are GMT. The time now is 03:42 AM.


Powered by vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.