Rigify 2.8 - general improvements. #63485
Labels
No Label
Interest
Animation & Rigging
Interest
Blender Cloud
Interest
Collada
Interest
Core
Interest
Documentation
Interest
Eevee & Viewport
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
Import and Export
Interest
Modeling
Interest
Modifiers
Interest
Nodes & Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds, Tests & Devices
Interest
Python API
Interest
Rendering & Cycles
Interest
Sculpt, Paint & Texture
Interest
Translations
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Meta
Good First Issue
Meta
Papercut
Module
Add-ons (BF-Blender)
Module
Add-ons (Community)
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
14 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender-addons#63485
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
disclaimer, this will change and evolve based on the feedback received by the maintainers and animators, for now it's a quick draft to get the conversation going
Makes total sense and definitelly improving the current stuff is the way to go.
great to hear this!
shouldnt but it's necessary in this particular case, anatomy isnt about how you animate, anatomy is right or wrong.
I've talked to several animators like beorn, and sarah so on and i have yet to find an animator that doesn't believe that the foot controller should pivot at the ankle, I've worked in shows with hyper real characters where the main concern is making it realistic or for the lack of a better word accurate, guess where the foot control pivots from.
Also lets remember it's 2.80 we can and should definitelly break backwards compatibility if it's needed to right some wrongs.
Either way, asimple check box in the creation rig that makes it be in the heel or at the ankle (hopefully by default), would solve this issue.
Foot done Wrong
Foot done Right
that could help, also, what I like about the one in the legacy rigify is that it's simple, what i dont like is that the default value seems very arbitrary though it's in the "right" default place, it's really hard to tell what was the original place it would sit for starters.
The idea of this is that you can move the character in different ways , in the case of a human, think of a character leading with the chest, is much easier pushing that controller to the chest area, and then moving it from there,, I think maybe the one like in the agent rig would help but I find that one a bit cofusing, though it seems that it could be more flexible.
yes super finger is what i've been using, why is this not default?
coz this is unacceptable:
sounds fair, it's not a big issue, Im just stating it could be improved.
that sounds like it could work.
Usually for space switching the best way not to have blending but a snap tool similar to the one for ik and fk, but it's much simpler to do, an other is a "space switching" tool that enables animators to do it with ease, with no such thing existing in blender i usually constrain the controllers to be switched to empties, switch spaces in the frames needed or across the entire animation (what i usually preffer), and then bake back to the controllers so that allows me to keep the animation while having that space changed.
yes ! <3
makes sense, it isnt a biggie, but the bone widget thing i talked about would just ease on this pain.
totally
as you say you cant tell why it is like that, i'll tell you
In a rig an animator needs to differentiate things, coloring is used to separate 3 big areas: left, right, and center,
the way rigify is now, if i have two feet on top or close to each other, both have the same shape and the same color, i cant tell wich is wich, why add a layer of color with no meaning?,
- >
Can you tell from this picture which controller is left and which one is right?
The idea is that colors will separate big areas, like side, tweaks, facial etc, and then the shape of the control will tell you or try to tell you what it does or how it works.
So a bare main rig can be:
and with the tweaks:
<3 <3 <3 <3 <3 <3
if you need testers, i'm always up for it!.
again thank you for your patience,
I wish all these thing plus whatever the guys are talking in the blender animation studio will make for a great animation year in blender.
all this I say and push because I think blender is getting to a great state and we just need to polish it a bit more!
best,
Added subscribers: @LucioRossi, @JulienDuroure, @pepe-school-land, @LucianoMunoz, @icappiello
Added subscriber: @AnsettAnimation
Should this be separated in a bunch of different tasks?, if so let me know how and ill do it :)
I have the original 2.79 file with my created rigs. Would you like to test it out?
Added subscriber: @TakeshiFunahashi
Can I add request here, as really non- pro fessional but hobby user for rig-fy rig?
What I often hoped is, adjust "heel positon" without change "zero pose mesh", about rigi-fy rig. (when remove armature, it should show same mesh, not change base shape which only fit current shoes zero pose)
Maybe it is not problem for pro (yours easy rig and generate as you like) to adjust meta-rig, and generate again. or make many character too.
but as basic hobby user, hope to re-use same "character mesh and rig" without many trouble, but easy add some variation (use shape key etc,,)
If there is stable "adjust heel pos-system" ,after generate rig-fy rig, we can easy exchange shoes without change mesh (so all "morph shape" which fit zero posed base shape, can be re-use.with shoes variation. Sorry if it not much as this topic. (I hoped to request it to rig-fy developers long time)
Added subscriber: @angavrilov
About this space switching thing, the main objective of my #63138 Rigify API redesign proposal is to allow meaningful interaction between rigs. Thus, it should be able to support flexible generation of follow spaces.
The main question is how these spaces should be defined. Rigify is designed as a decentralized system based on individual rigs, so there cannot be a central hard-coded fixed list of locations, except 'rig root' and 'world'. The rest should come from rigs themselves, or maybe specified by the user somehow. These are some possible ways I can think about:
I'm currently working on a Spline IK tentacle demo rig based on my API, and it's time to add parent switching to its controls, so I'm starting to actively think about this problem right now.
Hey @angavrilov yes, I know and i agree, I think any of ones you mentioned should work, I dont think post rigging operations are idea given that means that if you say save said setup to apply to different characters then you need to do 2 steps
I do like the centralized list one, seems that it could be a way that is clear and organized mostly taking in account that you can clearly and quickly see what will happen where.
As a quick test I went and implemented a class for managing parents based on my API, following the first 'rigs register' approach, and used it in my demo rig.
Here is the generated blender file (requires the very latest build of 2.8), although it only has one rig, so it basically just registers its master control as a parent for its own sub-controls, which isn't much of a demo. However if there were other rigs that used this manager class, they should pick up each other's parent options.
Of course, this all hinges on my API redesign, and at least the spine and head rigs will have to be replaced with versions that work with the new interfaces to provide the choices in your video.
@LucianoMunoz
I think this thread is confusional. I suggest to split the single tasks in separate threads.
before doing it let's try to summarize and file this list:
• spine FK controls and Pivot Slider (file under feature request)
• super finger as default in metarigs (design)
• ik foot pivot (design)
• snapping operators buttons (feature request)
• space switching (feature request)
• custom widget (feature request)
• add a new standard (left/right) color layout (design)
• modular face rig (feature request)
the main difference between feature request and design is the change you are proposing is conceptual (and requires devs to find a code/design solution fo it) or do you attach a proof of concept on how it is going to work in real case scenario (can be a diff patch if you code or a blend file if you are restructuring the armature).
To be clear the space switch problem is filed under feature request cause there is no given solution about how that should work in terms of armature/bone/constraints and moreover as cleared in previous posts too make this potentially happen you have first to face the rigify dictionary build to identify space owners. So this technically requires both an armature solution and a code improvement (as suggested by @angavrilov ).
I'll try to answer each thread separately once they are splitted.
Cheers,
Ivan
@TakeshiFunahashi i am not sure to understand either the problem and the suggested fix you are proposing.
Added subscriber: @ivan-14
This comment was removed by @TakeshiFunahashi
Yeah ivan sorry for tha mess, that sounds like a proper structure, I totally get what you're going for.
Should this be the main task and have the others as a subtasks?
@LucianoMunoz: I implemented a dropdown-like button in Rig Main Properties panel to switch spaces without changing the control position in my system, and added more tentacles to the file so there is a rig hierarchy.
I wonder what do you think about the interface? All spherical bones can switch parents: http://pasteall.org/blend/index.php?id=51720
How can i see the changes?
let me know i'm happy to help with feedback :)
doh its the blend file, hey that seems to work alright!
Hey there Luciano, is this add-on pay-ware or will be included in Blender 2.81 on June? I'm more than happy to pay the rig or test the rigs? Thanks mate. ?
Rigify?, its free and has and always be includad in blender:)
Oh okay... Because I don't see sphere rigs when I have rigify active.
@LucianoMunoz As a test suggested by @icappiello, I hacked the use of the new parenting utility into the old spine and arm/leg rigs, and here is the result of generating the 'Basic Human' metarig: http://pasteall.org/blend/index.php?id=51732
I also added a second button to the right of the parent switch field that lets you update keyframes in the action with the parent switch (this may be buggy - not tested much). This is basically similar to the IK/FK switch action buttons in the rigify panel, but generated in the rig script itself. I feel this approach is more modular, as the panel in the rigify addon has to be hard-coded to support specific rig types, while the rig ui script is generated specifically for each rig.
Added subscriber: @ChristopheSwolfs
@LucianoMunoz I wonder if you have any ideas about what changes in blender itself would remove the need for that 'space switching' feature? Space switching as described is obviously a workaround, as it is limited to a fixed lists of potential parents, and incurs a constant performance cost even when not used. The root issue here is that it's difficult for animators themselves to add a switch between parents in blender as need arises, so how do you think it should ideally work?
For instance, one issue I imagine with how things currently are is that switching parents requires adding e.g. Child Of constraints, which are not attached to actions containing the animation. Do you think that is important?
Edit: If, for example, you could design a totally new constraint for switching parents (possibly with additional UI for convenience), how should it work? This constraint can allow multiple targets if needed, like Armature.
nice!
I have to say it is a complex question, and a long one, so to answer:
one the guys with the clear ideas, raf anzovin that detected the issue you described way longer than i did, and explains it extensively here: https://www.justtodosomethingbad.com/
to be more specific check out this particular post which is a little bit more "down to earth":
https://www.justtodosomethingbad.com/blog/2018/10/25/clip-show
and on the other hand someone started experimenting something very similar in blender based on his own research he came down to a really similar setup
https://blenderartists.org/t/freeik/1157419
Added subscriber: @RomboutVersluijs
I just bumped into this thread looking at some updates done on addons. Last year i made an addon which allows for much easier custom MetaRig save. This option is already in the addon, but it only saves a py file and thus not handy for reuse. Therefor i made the addon which easily saves your custom MetaRig so you can load when Blender is reloaded, it will show in the add menu. The addon can also save rig settings.
Perhaps something like this could be implemented, i think its a missing feature.
You can find it here on my GitHub
{F7732869, size=full, alt=preview of interface}
Added subscriber: @Mets
Added subscriber: @Giro
Hi everybody,
I am Andrea Giro rom Italy, I am a professional animator and blender user since the very beginning of this open software.
I am approaching animation in blender this very last month and I wanted to try to have an easy rigging tool to do my personal project so I approached Rigify as it seems very nice and easy to me.
If I can I would like to give my contribute as a tester if it can help and on this I would spend my first word about the foot pivot :)
definitely it shoulden't be at the base of the toe but on the ankle. In 12 years of carrear as animator I never saw it like the rigify default is now.
And about this can I change the pivot to bring it back where it should be?
Another thing is about the spine: normally I always animate with 3 controls 1 the hip 1 the torso and 1 more or less in the place of the shoulder to give some more mobility to the chest and shoulder.
Another is the IK arm follow, they should follow the hip (if you need to constrain them to the hip), but mostly I should parent them to the torso as I want them to follow the body part they are attached to. I f I rotate the torso now they stay parented to the hip, so is useless in my opinion.
this are some of my opinion based on my experience, but I wanted to thanks everybody involved in the development of this great tool anyway.
thanks
Andrea
Did you test Rigify in the latest development builds? I recently committed a big refactor that significantly improves performance, and also adds new features like more complicated parent switching for IK.
I am using the 0.5.1 version
didn't test the dev builds. I'll do, promise!
I think this is useful but a more robust and general solution has to be found to make rigify handle custom widget/metarigs/colorschemes. A giant step forward was done implementing the import of custom rigs from rigify preferences.
I think is nice to hace this addon out there while we figure out what can be done to make this options available in rigify itself.
Cheers,
Ivan
@Giro,
Thanks for joining the discussion.
As i already answered in previous posts, regarding the spine i totally agree, this is a todo. Was put on hold since @angavrilov made a giant upgrade to rigify api and blender bone/constraint system itself.
Think is time to come back to this.
About the limb parent and domain switching, @angavrilov has already done a great job in his branch. This was impossible to do before his api rewrite. Have a look at it.
For the foot pivot i’d still like to keep the discussion about benefits/issues rather than “standards”, “anatomy” and “usual”. I am not saying anyone is right or wrong about it, i’d just like to know what’s the issue of having a different pivot point and what’s the benefit of having it elsewere.
I see @LucianoMunoz quoting raf anzovin. Well setup machine for maya (made by anzovin studio) has the foot pivot out of the ankle. So again i don’t think anyone can be so absolutely sure on what has to be done.
Given that, i think that this can now be easily solved since rigify can import custom feature sets so we can create a “pro” custom feature set where we take care of all this requests without changing default behavior or forcing people to agree on a standard.
Ivan
Thanks Ivan,
and thanks for your great work on this tool. I agree that for some reason some animator would prefere to have the pivot on the tip of the foot. As for my experience I never saw a setup like this one, so I thought it was strange, is just this :)
Anyway I still think that if you are standing and want to do a small weight shift and opening the feet or one foot it is usually done starting from the place where the weight is (the heel under the ankle).
The rotation of the foot is used also in the walk cycles,, and you shouldn't use the rool because you would have to counter animate the toes - so if you want to drag your foot during the up position of the foot is much easier to do that from the ankle because if you do from toes you will need to add rotation and also translation, complicating the animation curves (I hope I explained myself well).
Also please think that most of animators (as far as I know :) ) usally are not very good in technicall matters (there are exception to this :)) so normally they try to considerr the rig as a real puppet (like stop motion puppet), so it is more natural to have the rotation from the ankle (you don't even have the roll in a real puppet).
So this is my little explanation for my preference of pivot, but I have also to admit that in complex rig you have both the option, for example if you need to push and jump with your character keeping a foot on tjhe ground and for some reason the effort of the movement want you to rotate the foot pivoting on the toes(rotating in another axes then the one of the rool) , would be nice to have this option on top of the other, but in my experience this kind of action in term of probability is less easy to have.
I hope I explained myself well.
thanks guys
About pivoting on the toes, I once did an experiment with adding a 'toe roll' option, which would basically switch between the foot roll control bending at the toe joint like now (keeping the toes on the ground while the foot bends up), and on the tip of the toes (the whole foot rigidly rotates, keeping the tip of the toes on the ground.
I totally agree on that.
I was wondering if having it on aligned on the ankle on Y and X axia but shifted on the ground on Z like anzovin does in setup machine would be of any use for animators.
Still, to be clear, no problem in fixing it (foot ik pivot in ankle) in a custom feature set.
I’d just like to keep the discussion goin on this ground for understanding if there could be some more useful think we can do and no one ever thought about before.
Once in old blender HQ there was a quote in a frame on a wall “if everyone else is making it, it must be stupid” (ton).
Think it was from the right click select era.
But nowadays we are back to left click, and there are good reasons for it (touch input devices). Time may change our opinions about things.
And, ironically, last time i saw it the frame was moved on the man’s toilet wall at sometime.
Let’s keep discussing for a better design.
Will look into spine fix first and then foot pivot as soon as the face modules are complete. Can’t tell exactly when but i hope will not take too long.
Ivan
thanks guys,
I keep testing stuff, when I can :)
cheers,
Andrea
More robust, in what method? The current method is sort of hidden and to tedious. The only thing my addon does is save your adjust Meta Rig using the operator which is already in Rigify, but sort if hidden, than its saves it to a preset folder. Because i prefer more customized saving method, it looks perhaps to complicated. You can use Blender standard method for saving presets, but than means one big messy folder. Mine looks a bit messy cause of the naming i guess. Its quite simple what it actually does, nothing fancy
Also currently you cant not save Rigify Rig settings, mine does that. So it will save custom coloring naming etc etc, Not sure if you guys are making this better, why such features are not added?
But on the other hand, i can keep it apart. It will be useful for people who dont want that manual hustle it currently has. I bet99% of its users dont even know that you can make custom Meta Rigs.
PS you mean you can now import rigs which arent setup like a Metarig and they will be transformed so you can still make use of Rigify?
PS
What my addon does is this button "Encode metarig to Python" but automates all the other parts. It adds it to your custom folder and can be loaded on either Blender restart or F8.
Did you actually test the difference between current method and my addon. Mine is so much faster and will benefit users. Current method is tons of clicking, just like many new and added options etc in bl 2.80 currently. Seems to be a new thing, lets make things easier by let the user click more
@RomboutVersluijs
I think i already wrote that is nice to have an addon for that.
In my opinion there is an easier (probably the easiest and safer) way to store metarigs. Save a blend file. Append the metarig in new one. Everything will be set. No need for addon or everything else. This is the “current method”
The operators you are referring in the pictures are just tools laying there for pro riggers and were never documented or fully implemented.
Storing rigify preferences is a delicate matter. Where on the disk should this preferences be stored is just a little part in a more general design.
Just few question from the bunch this feature would rise:
• will those metarig file be reachable by users?
• if a metarig contains errors or require upgrades to work with new rigify versions should stay there and add a crashing metarig to the scene? If so how the user can easily understand if it’s rigify fault or just the custom metarig?
Designing and mantaining a feature in an open source project is a complex thing.
With the custom feature set import we designed a way to easily add or remove the whole imported feature set, and we do this using blender’s designed folder relative to the user’s OS. We also (sort of) check the feature set structure before import to significantly reduce import errors. Then there is a clear way in the ui to classify and order the different features.
Just to make an example of what i call a more robust and general way to do things.
Btw you have a working addon to do this job and, as i already wrote, is nice to have it. Why are you complaining?
Make a video and post it so people can reach it!
Still i think appending a metarig from a saved file will do this easier and faster.
Cheers,
Ivan
Removed subscriber: @Mets
It does sound like I'm complaining didn't I.
Does meta rigs and rigify only works when it's build like a meta rig or doesnt it do anything otherwise?
My presets are saved according to the old rigify, the pitchypoy version that is I believe. All settings are saved aside in the regular preset folder unless a user wants a different location..
Your right about that metarig to python operator. I bumped into it and could believe this was more extended and user-friendly, that's why my add-on exists actually.
Perhaps other do find it useful to add to rigify. I'm not sure who decides here actually
Added subscriber: @JohanTriHandoyo
Added subscriber: @rwman
Added subscriber: @FinbarrORiordan
Added subscriber: @Frizzil
Are we still taking requests? If so...
Feature request 1: Support for limbs of length > 4. The documentation says it's supported, but "Generate Rig" fails if attempted (in 2.81). After generating a normal rig, however, you can inspect the generated code, such as the IK>FK operator, and see hard-coded array indices into FK bone lists that would be incompatible with limbs of greater length. Smells like a doc issue to me, not a code issue, but would still be great to have.
Feature request 2: Spline IK generation. Useful for tails and hose arms, necessary instead of BBones since BBones currently can't be exported to game engines (making this a regular stumbling block for game devs.) Not sure what the "correct" solution is, but in my current rig, I have spline IK and regular IK on the same bone on the same chain, for hose-like arms, and drivers and sliders for both. The IK > FK might be a challenge though (perhaps it could be omitted.)
Thanks for your hard work!
@Frizzil
we are always listening to user requests
this is not supported at all. Limbs.super_arm supports only a chain of exactly 3 bones (upper_arm, foreArm, hand). What is supported instead is the split of this bone in a more detailed chain. This can be done per limb in the upper_arm bone Rigify Type panel. Here you can set the number of additional control will be generated for upper_arm and foreArm and it's probably what you are looking for.
There's an error in documentation as it states that:
and should probably state:
If i remember correctly @angavrilov is working in its own additional featureset on a spline ik tentacle rig. You can check his repository for the featureset, install it and give it a try
This assumption is not true.
The issue with exporting to game engines in not that much related to b-bones in rigify. Rigify in fact doesn't rely on b-bones per bone's additional attributes, uses b-bones to interpolate the bend, so technically exporting to a game engine would result in a slight change in deformations in most of the cases. Setting the b-bone split length to 1 in each metarig sample will just disable b-bones in the final rig and will make the deformation act as in the target engine.
The real problem with exporting to game engines is related to parent-child relationships on stretching bones that results in skewed bones in game engine.
We are investigating a solution to this. At this moment there's a nice addon by @angavrilov that can create a slave-deformonly-armature that (combined to the split length = 1 setting) can make the rig exportable to game engines.
Even if with 2.8 new depsgraph this setup could be supported i'd not suggest to implement spline ik for limbs as for now. This could heavily affect performance and could conflict with usability of FK controls most animators rely on (without considering space switching and fk/ik matching and all fancy features added in 2.82)
Changed status from 'Needs Triage' to: 'Resolved'
since almost every request has been addressed in 2.82 i am closing it as resolved
Hi everyone. I'm so happy to see a great improvement in rigify. Especially the super finger become default now, a time saver indeed. I don't need to change one finger at a time anymore LOL. Thank you a bunch!
So, i just recently follow Iker J. De Los Mozos on twitter (rigger on Frozen 2 and many of Disney's features) and he posted some interesting rig he made, and one particular video shows the facial rig which has 12 controllers on the lips. Now, i'm trying to figure out how Disney characters has that cute appealing "pinched" lips effect, and that's probably it. I think currently we only have 8 controlers, right? and it's really nice if rigify has 4 additional controllers to the edge lips like that. What do you guys think?
Added subscriber: @TodorNikolov