Unable to change any Collision input value after it has been keyframed #68396

Closed
opened 2019-08-08 04:15:18 +02:00 by Phil · 14 comments

System Information
Operating system: Linux Mint 19.2 XFCE
Graphics card: Nvidia GTX-970

Blender Version
Broken: 2.80 + 2.81 alpha (blender-2.81-5e77fb24822b-linux-glibc217-x86_64)
Worked: 2.79

Short description of error
After a keyframe is inserted for any of the input fields in the Collision panel, that field's value can not be changed. Attempting to do so results in the value immediately reverting to the keyframed value.

Exact steps for others to reproduce the error
Select default cube. Add Collision physics. In Collision Physics - Particle section, insert a keyframe for any of the input fields, for example the Permeability value. Try to change the permeability value. It will immediately revert to the keyframed value.

This bug applies to every input field in the Collision panel. After any of the Collision inputs is keyframed it can not be changed. This means that it is impossible to animate the Collision properties via the Collision panel directly.

As a workaround, it is possible to add keyframes (using the same input value) at the required points on the timeline, and then edit each keyframe's value in the graph editor.

system-info.txt

Permeability-2019-08-08_11.46.36.mp4

**System Information** Operating system: Linux Mint 19.2 XFCE Graphics card: Nvidia GTX-970 **Blender Version** Broken: 2.80 + 2.81 alpha (blender-2.81-5e77fb24822b-linux-glibc217-x86_64) Worked: 2.79 **Short description of error** After a keyframe is inserted for any of the input fields in the Collision panel, that field's value can not be changed. Attempting to do so results in the value immediately reverting to the keyframed value. **Exact steps for others to reproduce the error** Select default cube. Add Collision physics. In Collision Physics - Particle section, insert a keyframe for any of the input fields, for example the Permeability value. Try to change the permeability value. It will immediately revert to the keyframed value. This bug applies to **every** input field in the Collision panel. After any of the Collision inputs is keyframed it can not be changed. This means that it is impossible to animate the Collision properties via the Collision panel directly. As a workaround, it is possible to add keyframes (using the same input value) at the required points on the timeline, and then edit each keyframe's value in the graph editor. [system-info.txt](https://archive.blender.org/developer/F7653846/system-info.txt) [Permeability-2019-08-08_11.46.36.mp4](https://archive.blender.org/developer/F7653851/Permeability-2019-08-08_11.46.36.mp4)
Author

Added subscriber: @Philstix

Added subscriber: @Philstix
Phil changed title from Unable to change Collision object Particle Permeability after keyframe inserted to Unable to change any Collision input value after it has been keyframed 2019-08-08 08:24:33 +02:00
Member

Added subscriber: @Mets

Added subscriber: @Mets
Member

I encountered a similar problem today, but with bones. However, when I save and reload the file it seems to go away for a while. I don't know if it's the same issue, and I don't know what triggers it.

Are you able to attach a .blend file where the issue is present when opening it? Or are you in the same situation, where it fixes itself on reload?

I encountered a similar problem today, but with bones. However, when I save and reload the file it seems to go away for a while. I don't know if it's the same issue, and I don't know what triggers it. Are you able to attach a .blend file where the issue is present when opening it? Or are you in the same situation, where it fixes itself on reload?
Author

@ Demeter Dzadik (Mets)

In my case the problem persists when the file is saved and reloaded in Blender 2.80..

I have attached a .blend file as requested.

2019-08-09_07-07-15.blend

@ Demeter Dzadik (Mets) In my case the problem persists when the file is saved and reloaded in Blender 2.80.. I have attached a .blend file as requested. [2019-08-09_07-07-15.blend](https://archive.blender.org/developer/F7655053/2019-08-09_07-07-15.blend)
Member

Yep, can reproduce.

Yep, can reproduce.
Member

I was wrong earlier when I thought I couldn't reproduce this with bones. I was just an idiot and I was in object mode instead of pose mode.

In the attached blend file, the bone cannot be moved. I think it's the same bug, but maybe not.

why_wont_this_move.blend

I was wrong earlier when I thought I couldn't reproduce this with bones. I was just an idiot and I was in object mode instead of pose mode. In the attached blend file, the bone cannot be moved. I think it's the same bug, but maybe not. [why_wont_this_move.blend](https://archive.blender.org/developer/F7657580/why_wont_this_move.blend)

This issue was referenced by bb69e62710

This issue was referenced by bb69e627106a6e7aa65c3534983aefbf1ac9605c
Member

Added subscribers: @Sergey, @lichtwerk

Added subscribers: @Sergey, @lichtwerk
Member

Stumbled over this one again, dare setting this to High prio [since it really breaks animating here? -- correct me if I am wrong and set this back to low prio if this is particle EOL thingie...]

@Sergey: is ID_RECALC_ANIMATION really needed in rna_CollisionSettings_update?

P1144: #68396 snippet



diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c
index 87b14b56504..16d70e21ec2 100644
--- a/source/blender/makesrna/intern/rna_object_force.c
+++ b/source/blender/makesrna/intern/rna_object_force.c
@@ -798,7 +798,7 @@ static void rna_CollisionSettings_update(Main *UNUSED(bmain),
 {
   Object *ob = (Object *)ptr->owner_id;
 
-  DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY | ID_RECALC_ANIMATION);
+  DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY);
   WM_main_add_notifier(NC_OBJECT | ND_DRAW, ob);
 }
 
Stumbled over this one again, dare setting this to High prio [since it really breaks animating here? -- correct me if I am wrong and set this back to low prio if this is particle EOL thingie...] @Sergey: is `ID_RECALC_ANIMATION` really needed in `rna_CollisionSettings_update`? [P1144: #68396 snippet](https://archive.blender.org/developer/P1144.txt) ``` diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index 87b14b56504..16d70e21ec2 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -798,7 +798,7 @@ static void rna_CollisionSettings_update(Main *UNUSED(bmain), { Object *ob = (Object *)ptr->owner_id; - DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY | ID_RECALC_ANIMATION); + DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY); WM_main_add_notifier(NC_OBJECT | ND_DRAW, ob); } ```

Don't think it's needed. Sounds strange to me.
Tried looking up history of that line?

Don't think it's needed. Sounds strange to me. Tried looking up history of that line?
Member

79312c1912 ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY | ID_RECALC_ANIMATION
f90a2123ee OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME
faf1c9a4bb OB_RECALC_ALL
7df35db1b1 OB_RECALC

(most suspicious was from OB_RECALC --> OB_RECALC_ALL, but that commit was very selective when choosing to not do OB_RECALC_ALL, doing less was only done a couple of occasions...)

79312c1912 `ID_RECALC_TRANSFORM` | `ID_RECALC_GEOMETRY` | `ID_RECALC_ANIMATION` f90a2123ee `OB_RECALC_OB` | `OB_RECALC_DATA` | `OB_RECALC_TIME` faf1c9a4bb `OB_RECALC_ALL` 7df35db1b1 `OB_RECALC` (most suspicious was from `OB_RECALC` --> `OB_RECALC_ALL`, but that commit was very selective when choosing to **not** do `OB_RECALC_ALL`, doing less was only done a couple of occasions...)

Rename from OB_RECALC to OB_RECALC_ALLactually seems fine to me. Is more specious to have OB_RECALC_TIME added explicitly.

Thing here is that OB_RECALC_TIME was more like "please update my animation if the animation datablock is tagged for update". Now it's more like "update animation of this datablock".

So from this point of view

DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY);

seems correct to me.

Even if there is some missing update it's definitely not a part of ID_RECALC_GEOMETRY.

Rename from `OB_RECALC` to `OB_RECALC_ALL`actually seems fine to me. Is more specious to have `OB_RECALC_TIME` added explicitly. Thing here is that `OB_RECALC_TIME` was more like "please update my animation if the animation datablock is tagged for update". Now it's more like "update animation of this datablock". So from this point of view ``` DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY); ``` seems correct to me. Even if there is some missing update it's definitely not a part of `ID_RECALC_GEOMETRY`.
Member

Made this a real Diff (for bureaucratic reasons), see D6113

Made this a real Diff (for bureaucratic reasons), see [D6113](https://archive.blender.org/developer/D6113)
Philipp Oeser self-assigned this 2019-10-24 07:26:23 +02:00
Member

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
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
EEVEE & Viewport
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
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
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
EEVEE & Viewport
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
Platform
FreeBSD
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
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#68396
No description provided.