Feathered Wing Rig and Wing Creator Auto Rig Program
Please note: Wing Creator is a Proof of Concept. It is not a production level tool and was created back in 2011 and therefore still has bugs and some legacy (possibly poorly written) code. I’ve released version 2, so if you’re familiar with the old one, please look over the new one as a couple things have changed. For current bugs and updates see the Progress page. This program doesn’t get much love because it’s mostly a pet project I work on in my limited free time. Feel free to email me at hhoward@FalconsongStudios.com with bugs, thoughts, ideas and advice!
Wing Creator Script Version 2.0.3– Download at Creative Crash: Creative Crash – Wing Creator.
Wing Creator Script Version 1.0 – If you’d like the older version you can download it HERE.
Full thesis paper: Download at the Texas A&M Thesis and Dissertations Repositories: http://hdl.handle.net/1969.1/ETD-TAMU-2011-12-10635
This paper has all the details of how I created Wing Creator as well as why. Please read through this if you want information on the program construction.
Rigged wing with rough temp geometry– Feel free to play with it. Download HERE.
Files in WingCreator_v02_3.zip
WingCreator_V02.py: Wing generation script
WingBase_V04.ma: Rough modeled feathers to use a base or to play with the program
How to use
Place wingCreator.py in the ../maya VERSION/scripts directory (VERSION= maya version you have. ex: mine is /maya2010-x64/)
To run the program type:
import WingCreator as Wing
You can save this to a shelf button to make life easier.
Make sure you have what the program needs: Locators for the wing joints at the shoulder(Wing_1), elbow (Wing_2), wrist (Wing_3) and “fingertips” (Wing_4), and feathers for each feather group, see example maya file for help if needed and also a wing diagram is provided as well. See next section for naming scheme. In the GUI input how many feathers for each feather group you want (must be 3 or more) and chose a side (right or left). Choose which direction your character is facing, positive Z or Negative Z. Click the Wing Types tab to change the wingtype (hawk or Falcon currently. Hawk is the default if none is chosen.)
Click Generate Feathers to generate the feathers.
Adjust or remove feathers if needed. Scaling and deleting feathers won’t break the rig.
Click Generate Motion System to generate the motion system. Motion system cannot be generated before feathers.
Repeat steps 2-6 for the opposite side.
Feather geometry: L_PrimaryBase, L_SecondaryBase, L_PrimaryCovertsBase, L_SecondaryCovertsBase, L_MedianCovertsBase, L_AlulaBase, R_PrimaryBase, R_SecondaryBase, R_PrimaryCovertsBase, R_SecondaryCovertsBase, R_MedianCovertsBase, R_AlulaBase.
These are a right and left of all feathers for each group, centered with the tip of the quill at the origin and pointing down the positive Z axis.
Locators: L_Wing_1, L_Wing_2, L_Wing_3, L_Wing_4, R_Wing_1, R_Wing_2, R_Wing_3, R_Wing_4.
These correspond to the shoulder joint, elbow joint, wrist joint, and the tip of the hand (not tip of the feathers) respectively.
Blendshapes (Optional): L_Primary_BLND, L_Secondary_BLND, R_Primary_BLND, R_Secondary_BLND.
Blendshapes must be derived from the feather geometry (for example L_Primary_BLND must be derived from L_PrimaryBase) and must NOT have transforms frozen. Freezing transforms breaks the blendshape, causing it to shift position origin when the blendshape is keyed in.
If the program has a problem, check the script editor for errors; if any of the needed parts are missing (locators or geometry) or already created, the program should give feedback in the script editor stating what is wrong.
If you use your own geometry for the feathers, please note that they should be proportional to each other and the wing. Giving the program a primary that is much smaller than a secondary will result in primaries that are small in the wing. However, feathers can be adjusted at any time without breaking the rig.
Names are specific, typos or mis-capitalizations will cause problems.
Blendshapes are optional. If no blendshapes are given, then the program will simply not add flexing to the feathers.
For binding skin: The SIDE_Wing_#_JNT_IK and SIDE_Wing_#_FK are the IK and FK control skeletons, with the _JNT skeleton acting as a transitional skeleton. Bind to the SIDE_Wing_#_JNT skeleton, not the IK or FK. (SIDE is either L or R)
Rig Controls Notes
Feathers in the rig can be scaled or deleted as needed without damaging the rig.
Has two layers that can be toggled on and off, one for the stand-in Poly shapes, another for the feathers.
Sub controls are hidden under main controls: Middle, Tip and End Feathers controls have variables called Group Controls and Flex Controls. Turn these on to show the sub controls for that group. Group controls control individual feather groups, Flex controls control flex of the Remiges.
Shoulder control has a control for IK/FK switching. (This is a switch, not an IK FK Blend)
Wingfold control will ONLY work in FK mode. If the wingfold looks funny, check and make sure the IK/FK switch is ALL the way to FK (10). Being in the middle (7.5 for example) will cause funny looking wingfolds since it’s blending with IK.
Wingfold only works well on the hawk currently, the falcon is iffy. Please see my website for any other bugs and program progress: Progress page for more information.
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.Wing Creator is copyright Heather Falconsong Howard and Texas A&M University. The source code is free for anyone to download, use and edit. All I ask is that you retain the copyright information on it and if you use it please give me credit and if applicable a link back to this page. Emailing me to let me know where it’s been used would be awesome, too- I would really love to see what others do with Wing Creator! The program itself is non-commercial and is not to be sold in any form, however you are welcome to use the resulting wing rig in any work, including commercial work, as long as I am credited. If you have any questions feel free to shoot me an email (email@example.com)!