BBones Ease in/out don´t update the mesh deformation at current frame #48988
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
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
8 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#48988
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
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?
Blender Version
build
01d5d28
Short description of error
BBones Ease in/out don´t update the mesh deformation at current frame
Exact steps for others to reproduce the error
1 -open "3 Bones Arm.blend"
2 -Select up arm bone and change Ease in/out values
Result: the bone Ease in/out values dont´t afect to the mesh deformation at current frame,
Daniel
3 Bones Arm.blend
Changed status to: 'Open'
Added subscriber: @pepe-school-land
Added subscriber: @ideasman42
Tested, dragging ease in/out values on the arm updates the mesh as expected. (both frame 4 and 5)
Hmm... it took a second look to confirm that this is in fact happening (
bd11d91
)And checking with the original patch also shows that it wasn't working originally either :(
Added subscriber: @ThomasSeidelmann
Ease In and Ease Out values seem to be unusable for animation, because they only affect the resting pose of the Bendy Bone. This can be shown by binding an object to the bone and changing the Ease In / Out parameters in pose mode. The object does not transform because it only changes the binding to the bone. Another indicator for this is that the Ease In and Ease Out parameters are shared between edit and pose mode, in contrast to the other Bendy Bone parameters, which doesn't seem to make sense if they were intended for animation.
Note that easing may appear to be working correctly when the bone has no initial curvature given and the binded mesh is straight aswell. It still only changes how the binding is done, but in that case the binding directly translates to animation. After changing the easing here a dependency update must be forced, e.g. pulling on a handle afterwards. Unless using the new depsgraph.
BendyBoneProblem.blend
Hi Thomas!
Ease in /out is soooo usefull for animation, using all the time.
Daniel
So please don't unable it! :)
Daniel
I looked into this a few weeks back, but only figured out what was going wrong when I saw one of the forums posts somewhere about this.
What's happening here is that since there's actually just a single set of the Ease In/Out properties (on the Bone, not PoseBone), the easing will be applied when calculating the restpose of the BBone. The armature modifier figures out how much to deform the geometry by looking at the "restpose" and "final pose" of the bone to figure out how much deformation needs to occur. But, since the easing has already been performed in the restpose, the armature modifier ends up not seeing any effects from the ease in/out settings, resulting in no changes.
Here's a quick hack to work around this issue:
bbone_easing_01.patch
Have a play with this to see if it causes any problems. For example, there are two tweaks that I think we might need to make before applying any fixes:
Added subscriber: @AnnaCelarek
Added subscriber: @norv
I was wanted to pipe in... and say this seems to be all working properly using Blender 2.78c running on Linux Mint 18.1...
thus it might be isolated to Windows or other operating systems...
anyway please test to make sure I'm understanding the problem...
ThnX
Sorry that I didn't reply earlier, something came up that required my full attention. And since I am new to working with the Source Code I also had some setup work to do.
Anyway I finally managed to try the patch you provided Joshua and I can say it has certainly fixed the issues with easing in pose mode, which now behaves as I would expect. This comes at the cost of shifting the bug over to edit mode however. So the roles are pretty much reversed now. When using anything other than the default 1.0f in edit mode the model will snap when attaching it to the armature. I think this is because now the easing value only applies to pose mode and "reverts" to the default 1.0f on binding. Since the pose mode value is != 1.0f however, it will immediately apply a transform after binding, which shouldn't be there. I have extended the file to illustrate this (which of course only happens with the patch applied), just attach the upper model to its armature with automatic weights.
Regarding the tweaks you mentioned:
Regarding Linux: I gave Blender 2.78c a quick run on Ubuntu 16.04.2 LTS. Based on that I cannot confirm that this issue is operating system related. I was able to reproduce the bug as classified initially. After a first very quick look into the code and the changes of Joshuas patch I would have actually been very surprised if this were indeed an operating system specific issue.
BendyBoneProblem_Patch.blend
Added subscriber: @sozap
I've got the same issue with a recent 2.78.5 build on linux .
![Capture du 2017-06-15 13-39-39.jpg](https://archive.blender.org/developer/F631739/Capture_du_2017-06-15_13-39-39.jpg)
I've made a screenshot of my scene :
I think this would be great ! To me using Ease in/out looks like an alternative to Curve Offset, that is (at least to me) easier to rig. It would also be more consistent to have edit and pose values , as it's hard to guess it's not the same behaviour as CurveOffset. It can be great to have an initial curvature in edit mode as well.
Good to see the problem confirmed by an actual linux user, thanks for reporting the issue paul.
Unfortunately it seems Joshua is otherwise occupied for the time being and I can not spare enough time at the moment to work through blenders code base and this issue in specific.
If this is not fixed in a few months I will probably come back to this and see if I can manage to fix it. It would help a lot in rigging the character I am working on atm, making the rig less complicated and faster to set up while providing the control needed. Being able to utilize the easing in pose mode is a key feature to achieve this in my opinion.
Added subscriber: @LucianoMunoz
any chance this bug gets squashed for 2.79?
I created a fix for this issue. However I could use some help to take this further, since I believe two problems remain.
What I did:
Remaining problems:
The pose mode values simply override the rest pose ones. Imho this is desired, but it comes with a problem. When resetting the scale of the bendy bone the ease values are reset to a fixed value of 1.0f, but in reality it should reset to whatever the user set as rest value. The corresponding method, pchan_clear_scale(bPoseChannel *pchan), would need access to this value in one way or another. Any ideas on how to do this best?
The edit mode prieview of bendy bones does currently ignore the previous and next bones (the handles). This results in a false and misleading preview when using handles which are not aligned straight with the bendy bone. It seems this was done with the assumption in mind, that handles should be aligned straight with the bendy bones in rest mode anyway. However this assumption does not correspond to the programs behavior and imho is unneccessarily restrictive. Why should the user not take advantage of the inherent easing properties? The handles are being factored in and the preview should reflect that. Thoughts, agree, disagree?
Fix for basic problem (created for the current Blender 2.79):
BendyBones_PosemodeEaseInOut.patch
Thomas, I use the custom handles a lot in my rigs, and I agree with your point 2.
Currently it's quite tedious to have to align the handles while not seeing in edit mode what's happening to the rest pose.
Moreover, it's tedious to have to align them at all, especially when the bendy bone is askew and initial Curve XY offset, Roll or Easing is set (the tangent bone has to be aligned to an imaginary straight bone, not to the bent bone visible in viewport).
I think it would be much user-friendlier, if only pose mode manipulations of the handle bones were considered in pose mode. So the rigger would align the handle bones in edit mode however is convenient for the animator (the bendy bone should not react to that neither in edit nor in pose mode). The initial (rest pose) bending/twisting would come only from the edit mode Curve XY Offset, Roll, Scale and Easing. Then when in pose mode the animator manipulates the handle bones, the Bendy bones reacts to that (to the offset, basically), and also to pose mode changes of Curve XY Offset/Roll/Scale/Easing.
Hey, I like your suggestion to have the handles as offsets only. Should this affect both, 'Custom Handles' and inherent 'Parent / Child Handles'? I'd say yes for consistency and think it would be a good addition. Unfortunately I also see some problems:
It breaks backwards compatibility badly. All rigs which use bendy-bones without straight handle bones will break. This will even affect older rigs from before the big bendy-bone overhaul. This would be very problematic. Solution: Have a switch on the bendy-bone (probably in edit mode) to choose between the behaviors; something like "Use Handle Bones As Offsets Only".
Assuming the solution above: It does not help to solve the other two problems. And I would therefore put this on hold until they are fixed.
Someone needs to implement it. Well I am someone :) but I am also completely new to blender coding and not yet really comfortable with it and this seems somewhat complicated. I will look into it if the other two problems don't give me too much trouble, but I won't promise anything.
About your point 2/ it looks like old BBone behaviour when the bbone's curving was poping when switching bettwen edit and posemode. Now that we have also curving in pose mode what you're suggesting seems logicial and aligned with current design. Maybe having one bone influence the propertie (curvature) of another look more something beyond the scope of edit mode... Anyway this also put less try and error when settings theses bones. I think this change is for the best.
Thanks a lot for the patch and let see what Aligorith think about it ...
A quick update on the prevous fix which solves problem 1 and corrects a typo. Before tackling the edit mode preview issue I'll see if I can gather some information on the reasoning of the current approach. After a quick look my current solution would be to enable the "Custom Handle" options in edit mode as well (not only in pose mode as it is currently) to get access to them for drawing the preview. As far as I see this should be functionally unproblematic, but there may be a reason it was not done so in the first place.
The only problem I see is backwards compatibility as the place where these get saved in the file would probably change and the settings would then be reset in older files. I already ran into this issue with the fix I did so far, which also breaks the connection to previously saved easing parameters...
BendyBones_PosemodeEaseInOut_2.patch
Changed status from 'Open' to: 'Resolved'
Fixed in
a819ef65c0
.