Keyframed parameters are not preserved when frame_change_post handler is used
#71908
Open
opened 3 years ago by Prettypicturegirl
·
67 comments
No Branch/Tag Specified
main
temp-sculpt-dyntopo
refactor-mesh-face-generic
blender-v3.3-release
refactor-mesh-corners-generic
refactor-mesh-sharp-face-generic
gpencil-new-data-proposal
overlay-next
temp-sculpt-roll-mapping
sculpt-dev
tmp-volume-matrix-api-update
tmp-eevee-shadow-commit-mp
universal-scene-description
cycles_path_guiding
temp-vulkan-descriptor-sets
tmp-eevee-shadow-commit
temp-angavrilov
asset-shelf
brush-assets-project
tmp-workbench-rewrite2
temp-T101739-fix-seam-bleeding-non-manifold
tmp-mak-012623
temp-bundled-assets
asset-lite-greasepencil
temp-pbvh-split
temp-pbvh-texpaint-automasking
microfacet_hair
tmp-worbench-rewrite2-optimizations
temp-offset-array-ref
blender-v2.93-release
blender-projects-basics
temp-pbvh-seam-texturing-tweaks
temp-nodes-group-declarations
refactor-mesh-sharp-edge-generic
temp-asset-library-all
refactor-mesh-uv-map-generic
refactor-mesh-position-generic
temp-T102440
temp-rbf-pose-blender
geometry-nodes-tetrahedralization
nodes-matrix-types
temp-xr-painting
blender-v3.4-release
geometry-nodes-simulation
bli-matrix-template
temp-linux-35x-libs
refactor-mesh-corner-normals-lazy
temp-py-gpubatch-draw-advanced
xr-dev
temp-vulkan-shader
bevelv2
soc-2022-soft-bodies
arcpatch-D16436
tmp-dynamic-usd
temp-image-engine
tmp-vfx-platform-2023
soc-2022-many-lights-sampling
tracking_tools
nla-scale-fix
principled-v2
temp-ui-cpp
temp-ghost-vulkan
tmp-libs-2.93-lts
temp-T97352-3d-texturing-seam-bleeding-b2
temp-xr-virtual-camera-experiment
temp-vse-retiming-tool
gpencil-next
temp-sculpt-brush-channel
asset-browser-grid-view
temp-asset-representation
temp-gpencil-automask
tmp_libs_34
temp-T101905-gpu-backend-argument
node-add-asset-menu
temp-collection-objects-link-multiple
temp-texture-painting-gpu
tmp-workbench-perf-experiment
tmp_usd_import_unbound_mtls
tmp-drw-split-matrix
temp-sculpt-normals-masking
temp-sculpt-cavity-mask
temp-pbvh-vbos
tmp-usd-alab-v2-T100452
refactor-mesh-selection-generic
temp-T96708-brush-texture-refactoring
temp-chunk-list
feature-imformat
temp-geometry-nodes-evaluator-refactor
refactor-mesh-bevel-weight-generic
temp-chunked-list
temp-outliner-new-element-storage
refactor-mesh-remove-pointers
soc-2022-text-usability
refactor-mesh-material-index-generic
drw-manager-next
refactor-mesh-hide-generic
blender-v3.2-release
sculpt_curve_collisions
temp-anim-editors-redo-panel-D14960-D14977
retopo_transform
temp-libepoxy
temp-T99046-platform-reference-images
geometry-nodes-rigid-body-integration
file-browser-grid-view
temp-legacy-mesh-format-option
arcpatch-D14645
soc-2022-waveform-drawing
temp-T95933-object-mode-curve-selection
temp-deform-curves-on-surface
cycles_oneapi
temp-viewport-compositor-merge
temp-texpaint-automasking
temp-deform-curves-with-surface
asset-greasepencil
temp-T99046-render-test-increase-fail-threshold
temp-T98708-gpu-conservative-depth
lineart-shadow
temp-lineart-contained
cleanup-id-override-const
temp-T98375-share-gpu-textures
wintab
temp-T97352-3d-texturing-seam-bleeding
temp-T97905-compositor-meta-data
lineart-cas-2
temp-T97272
temp-T97907-compositor-meta-data
temp-T96952
tmp-usd-mak-c87f6242
temp-outliner-library-override-hierarchy
lineart-object-load
tmp-eevee-next-merge
draw-deferred-compilation-experiment
soc-2021-porting-modifiers-to-nodes-remesh-voxel
blender-v2.83-release
tmp_lib_update_32
temp-mesh-cpp
temp-viewport-compositor-compiler
temp-T96710-pbvh-pixels
tmp-new-gpu-codegen
devirtualizer
temp-T96709-painting-target
temp-collection-assets
temp-lineart-embree
temp-multi-function-eval-varray
temp-sculpt-colors
soc-2021-curves
blender-v3.1-release
temp-vertex-paint
temp-vse-channels-edge-panning
eevee-rewrite
temp-library-overrides-outliner
cycles_hydra
temp-3d-texturing-brush-b
temp-abc-features
tmp-transform-navigate
temp-image-buffer-rasterizer
soc-2021-porting-modifiers-to-nodes-remesh-blocks
temp-3d-texture-brush-prototype
temp-fix-normals-custom-data
viewport-compositor
bli-math-basic-types
soc-2021-simulation-display
greasepencil-object
temp-license-header-spdx
KTX_support
gsoc-2021-porting-modifiers-to-nodes-solidify
2d
gltf_vtree
soc-2021-porting-modifiers-to-nodes-decimate
temp-T95279-remap-referenced-data
temp-gpu-image-engine
tmp-eevee-rewrite-compilation-error
draw-viewport-data
temp-T94900-b
temp-T94900-gpu-viewport-default-layers
temp-T94185-id-remapper-ui
tmp-workbench-shader-create-infos
blender-v3.0-release
temp-geometry-nodes-extrude-mesh
tmp-T95052
tmp-gpu-polyline-shaders
tmp-gpu-shader-descriptor-2
temp-usd-prev-export2
tmp-core-id-remap-test-cases
temp-vert-normals-cleanup
temp-move-geometry-to-cpp
tmp-vector-template
drw-gpu-wrapper
temp-geometry-nodes-extrude-and-scale
temp-scale-elements-node-test
temp-usd-udim-import
temp-copy-on-write
temp-T94185-id_remapping-experiment-a
temp-llvm-testing
nurbs-opencascade
temp-usd-preview-surf-export
soc-2021-uv-edge-select-support
T93558
temp-gpu-texture-partial-updates
gpu-shader-descriptor
temp-geometry-nodes-text
tmp-vulkan
temp-T90535-usd-alab-material-import
node-tree-update-refactor
temp-sample-sound-node
temp-interface-region-search-cpp
temp-enum-socket
temp-link-portals
temp-unity-build-test
geometry-nodes-level-set-nodes
temp-virtual-array-value-type
soc-2020-io-performance
studio-sprite-fright
temp-cycles-source-reorganize
asset-browser-snap-dragging
temp-python-zstandard
soc-2021-porting-modifiers-to-nodes-merge-by-distance
temp-compositor-cleanups
temp-eevee-gpencil-rewrite
temp-vse-handles
temp-ui-tweaks
xr-controller-support
temp-node-common-cpp
temp-varray-get-set-multiple
soc-2021-uv-editor-improvements
temp-geometry-nodes-output-attributes
soc-2021-knife-tools
temp_test_sc_keymap
cycles-x
temp-field-visualization
soc-2021-curve-fillet
temp_bmesh_multires
temp-cocoa-scroll-acceleration-fix
temp-socket-decl-refactor
fluid-mantaflow-gpu
soc-2021-vse-strip-thumbnails
temp-noise-nodes-cpp
temp-compositor-canvas
T90952
temp-parallel-multi-function
temp-geometry-nodes-fields
grab_walk_fix
soc-2021-adaptive-cloth
temp-geometry-nodes-fields--fields-jacques
temp-cpp-ghc-filesystem
temp-geometry-nodes-fields--fields
temp-geometry-nodes-fields--anonymous-attributes
refactor-idprop-ui-data
compositor-full-frame
temp-runtime-node-def
temp-geometry-nodes-fields-prototype-visualization
temp-geometry-nodes-fields-prototype
temp-multi-function-procedure
soc-2021-porting-modifiers-to-nodes_all
cycles_texture_cache
experimental-build
cycles_procedural_api
soc-2021-porting-modifiers-to-nodes-extrude-and-move
soc-2021-porting-modifiers-to-nodes-extrude
temp-geometry-nodes-expandable-geometry-socket-prototype
fluid-mantaflow-2d
windows_make_docpy
usd-importer-T81257-merge
nodes-update-readonly-tag
geometry-nodes-closest-points
tmp-buildbot-gcc-10
soc-2021-geometry-nodes-regression-test
node-group-single-socket-nodes
curve-nodes-modifier
temp-geometry-nodes-curve-sample
geometry-nodes-unnamed-attributes
temp-nodes-intersect-alt-key
tmp_arcpath-D11868
refactor-vertex-group-names
temp-gpencil-bezier-stroke-type
temp-gpu-uniform-builtin-structs
wintab_fallback_walknav
temp-socket-inspection
temp-long-link-dimming
fixed_width_integers
lineart-bvh
temp-gpencil-camera-reproject
temp-gpu-push-constants
temp-attribute-processor
temp-cpp-type-cleanup
temp-geometry-nodes-curve-deform-node
wintab-logging
fix-tablet-walk
geometry-nodes-raycast
temp-spreadsheet-row-filter
lineart-fn-cached
temp-compact-node-prototype
asset-browser
geometry-nodes-curve-to-points-node
node-editor-edge-pan
eevee-gpencil
asset-system-filelist
temp-geometry-nodes-viewer-node
lineart-fn-thread-loading
tmp-buildbot-cleanup
temp-gpencil-masking
temp-ffmpeg-4.4
temp-attributes-panel
profiler-editor
FixT87160_DSE_Channel_Selection
temp-interface-cpp
geometry-nodes-curve-support
info-editor-cpp
temp-attribute-transfer-node
virtual-array-attributes
temp-pose-slide-D9054
spreadsheet-active-node
ui-asset-view-template
temp-node-tree-pages-prototype
override-outliner-view
temp-geometry-nodes-processor-prototype
temp-any-instead-of-variant
temp-unreachable-abort
temp-spreadsheet-instances
temp-geometry-nodes-instances-api-v2
temp-geometry-nodes-instances-attributes
geometry-nodes-mesh-primitives
temp-asset-tools-prototype
temp-geometry-nodes-mesh-primitive-line
lanpr-under-gp
temp_D10504-2_nla_keyframe_remap_upper_strips
blender-v2.92-release
usd-importer-T81257
temp-spreadsheet-editor-python-prototyping
temp-spreadsheet-editor
override-refactor-tmp-2
temp-derived-node-tree-refactor
T85799
tracking_scopes
temp-icons-fixes
temp_D10504_nla_keyframe_remap_upper_strips
temp-weight_mirror
temp_T76472_graph_editor_fcurve_extrapolation
eevee-closure-lib-cleanup
eevee-dof-refactor
eevee-probe-roughness-fix
eevee-ggx-lut-fix
df0bce3f7d0
temp-geometry-nodes-instances-api
tmp-ocio-v2
temp-nodes-redesign
tracking_proportional_editing_v2
blender-v2.91-release
temp-uv-face-select-no-thresh-when-inside
temp-D10103-nla_support_strip_overlap_during_transform
fracture_modifier
temp-point-distribution-refactor-experiment
temp-experimental-cpp-math-refactor
vfx-clip-ui-update
tmp-T82230-nla_remove_hold_reset_behavior
temp-D8687-directly_select_fcurves
geometry-nodes
soc-2020-testing-frameworks
geometry-nodes-point-separate-node
temp-nla-strip-alignment
temp-atomics-int16
geometry-nodes-deduplicate-float-math
asset-metadata
geometry-nodes-active-modifier-drawing
attribute-accessor
geometry-nodes-attribute-nodes
temp-T82588-box-select-invisible-keys
greasepencil-edit-curve
codesign_error_tracker
outliner-cpp-refactor
temp-fix-headerless-panels-switch-windows
temp-gpencil-fading-modifier
temp-D8915-copy-rotation-remove-sheer
geometry-nodes-boolean-node
temp-T81874-box-select-active-keyframe
geometry-nodes-transform-node
temp-trimesh-sculpt
geometry-tree-evaluation
fcurve-modifier-panels
temp-fcurve-key-insert-follow-curve
temp-fcurve-active-keyframe-D7737
mesh-to-volume-modifier
blender-v2.90-release
soc-2020-fluid-tools
property-search-ui-v2
tmp-T80603
soc-2020-greasepencil-curve
tmp-gldebuglayer
tmp-gltexture
soc-2020-custom-menus
active-fcurve-keyframe
soc-2020-soft-body
newboolean
fail-on-memleak
soc-2020-outliner
soc-2020-production-ready-light-tree-2
soc-2020-info-editor
property-search-ui
temp-ui-button-type-refactor
soc-2020-production-ready-light-tree
particle-solver-dev
tmp-gpu-context-isolation
soc-2020-xr-input
temp-remesh-octree
mac_arm64
tmp-eevee-glsl-cleanup
tmp-pointcloud-render
buildbot-lts
asset-engine--archived
asset-uuid--archived
eevee-motionblur-object
modifier-panels-ui
temp-cycles-tbb
wm-drag-drop-rewrite
temp-lanpr-review
gsoc-2018-many-light-sampling
tmp-eevee-material-refactor
tmp-widget-opti
tmp-texture-sampler
xr-world-navigation
blender-v2.82-release
node-tree-ref
simulation-access-modifier
blenloader-decentralization
temp-test-point-cloud-simulation-depsgraph-integration
functions
builtin-simulation-nodes
performance-test
obj-import-experiments
soc-2019-openxr
vr_scene_inspection
blenloader-api
tmp-workbench-rewrite
id-ensure-unique-memory-address
simulation-tree
greasepencil-refactor
draw-colormanagement
temp-gizmo-decoupled-redraws
fluid-mantaflow
blender-v2.81-release
tmp-overlay-engine
soc-2019-bevel-profiles
temp-npr-gpencil-modifiers
soc-2019-npr
temp-gpencil-drw-engine
soc-2019-embree-gpu
temp-npr-smooth-contour
temp-lanpr-staging
filebrowser_redesign
tmp-eevee-shadowmap-refactor
vamr-openxr-module
sculpt-mode-features
soc-2019-adaptive-cloth
tmp-drw-callbatching
soc-2019-outliner
soc-2019-cycles-procedural
temp-D5423-update
temp-vr-draw-thread
blender-v2.80-release
tmp-batch-cache-cleanup
soc-2019-fast-io
temp-toolsystem-multiwindow
blender2.7
collada
soc-2018-npr
temp-keymap-industry-compat
temp-fracture-modifier-2.8
temp-dna-rename
userpref_redesign
hair_object
motion_curve_fix
collada2.8
cycles_embree
interactive_physics
temp-ui-layout-2.8
cloth-improvements
soc-2018-cycles-volumes
hair_guides_grooming
hair_guides
benchmark
soc-2018-bevel
soc-2018-hair-shader-fixes
temp-udim-images
soc-2018-hair-shader
temp-volume-object
cycles_cryptomatte
temp-eeveelightcache
temp-tab_drag_drop
temp-keymap-save
temp-dynamic-overrides
fracture_modifier-master
ui_layout_gridflow
temp-keymap-changes
tmp-CollectionsAnim
tmp-b28-motionpath-drawing
uv_unwrapping_slim_algorithm
blender-v2.79b-release
tmp-COW_InsertKeyframe_Fix
temp-unified-collections
temp-modifier-rm-cddm
tmp-TimelineHeaderButtonsStretching
blender2.8-workbench
soc-2017-normal-tools
cycles_bvh8
blender-v2.79a-release
temp-scene-obedit-remove
temp-workspace-object-mode-removal
blender-v2.79-release
soc-2017-sculpting_brush
split-kernel-faster-building
id_override_static
openvdb
custom-manipulators
soc-2016-uv_tools
soc-2016-pbvh-painting
soc-2017-vertex_paint
soc-2017-sculpting_improvements
soc-2017-package_manager
strand_editmode
smooth-fcurves
id_copy_refactor
gsoc2016-improved_extrusion
temp-ssr
temp-cycles-opencl-staging
temp-cycles-denoising
ge_2df_textures
HMD_viewport
soc-2016-multiview
transform-manipulators
datablock_idprops
cycles_disney_brdf
temp_cycles_split_kernel
cycles_split_kernel
unlock_task_scheduler
uv_unwrapping_slim_and_ceres
surface-deform-modifier
cycles-tiles-rework
soc-2016-cycles_denoising
temp-layers-ui-table
uiTable
render-layers
clay-engine
multi_previews_id
cycles_disney_bsdf_transmittance
layers
pbr-viewport
temp_display_optimization
viewport_bvh_select
temp-cycles-microdisplacement
soc-2016-cycles_images
strand_nodes
object_nodes
asset-experiments
soc-2016-sculpt_tools
temp_viewport_fx_merge
custom-normals-bmesh
temp-decklink
compositor-2016
decklink
BendyBones
cycles_panorama_experiments
temp_remove_pointcache
temp_remove_particles
temp_depsgraph_split_ubereval
temp_textedit_comment_toggling
GPencil_Editing_Stage3
temp_bge_moto
UI-experiments
UI-graphical-redesign
missing-libs
free-refcount-ids
cycles_camera_nodes
epic-navigation
temp-ui-widget-refactor
gooseberry_farm
gooseberry
temp-ghash-experiments
temp-ghash-setops
temp_motionpaths
fcurves-simplify
soc-2014-fluid
GPU_data_request
depsgraph_refactor
multiview
vertex_paint_pbvh
alembic_pointcache
cycles-ptex-49
viewport_experiments
soc-2014-bge
texture_nodes_refactor
input_method_editor
GPencil_EditStrokes
soc-2014-shapekey
terrible_consequencer
GPencil_FillStrokes
libmv_prediction
blender2.4
dyntopo_holes
soc-2014-viewport_context
gtest-staging
blender-tiles
soc-2014-viewport_fx
soc-2014-remesh
soc-2014-nurbs
pie-menus
soc-2014-cycles
soc-2013-paint
particles_refactor
soc-2013-viewport_fx
tiles-scheduler
bake-cycles
soc-2013-cycles_volume
overscan
soc-2013-depsgraph_mt
soc-2013-dingto
soc-2013-sketch_mesh
soc-2013-rigid_body_sim
soc-2011-tomato
soc-2013-bge
soc-2013-motion_track
soc-2013-ui_replay
soc-2012-sushi
ge_dev
soc-2013-depsgraph_eval
soc-2008-mxcurioni
soc-2012-bratwurst
soc-2012-swiss_cheese
soc-2012-fried_chicken
meshdata_transfer
smoke2
tile
soc-2011-cucumber
bmesh
soc-2011-carrot
cycles
soc-2011-garlic
soc-2011-radish
soc-2010-nicks
vgroup_modifiers
soc-2011-pepper
soc-2010-jwilkins
merwin-spacenav
bge_components
soc-2010-merwin
render25
soc-2010-nicolasbishop
soc-2009-chingachgook
soc-2010-nexyon
soc-2010-aligorith
ge_eigen2
sculpt25
soc-2009-jaguarandi
soc-2009-imbusy
soc-2009-kazanbas
blender2.5
volume25
soundsystem
soc-2009-aligorith
sim_physics
ge_dome
etch-a-ton
soc-2008-nicholasbishop
animsys2
projection-paint
harmonic-skeleton
soc-2008-jaguarandi
fluidcontrol
apricot
soc-2008-quorn
cloth
ndof
orange
v2.93.14
v3.3.3
v2.93.13
v2.93.12
v3.4.1
v3.3.2
v3.4.0
v3.3.1
v2.93.11
v3.3.0
v3.2.2
v2.93.10
v3.2.1
v3.2.0
v2.83.20
v2.93.9
v3.1.2
v3.1.1
v3.1.0
v2.83.19
v2.93.8
v3.0.1
v2.93.7
v3.0.0
v2.93.6
v2.93.5
v2.83.18
v2.93.4
v2.93.3
v2.83.17
v2.93.2
v2.93.1
v2.83.16
v2.93.0
v2.83.15
v2.83.14
v2.83.13
v2.92.0
v2.83.12
v2.91.2
v2.83.10
v2.91.0
v2.83.9
v2.83.8
v2.83.7
v2.90.1
v2.83.6.1
v2.83.6
v2.90.0
v2.83.5
v2.83.4
v2.83.3
v2.83.2
v2.83.1
v2.83
v2.82a
v2.82
v2.81a
v2.81
v2.80
v2.80-rc3
v2.80-rc2
v2.80-rc1
v2.79b
v2.79a
v2.79
v2.79-rc2
v2.79-rc1
v2.78c
v2.78b
v2.78a
v2.78
v2.78-rc2
v2.78-rc1
v2.77a
v2.77
v2.77-rc2
v2.77-rc1
v2.76b
v2.76a
v2.76
v2.76-rc3
v2.76-rc2
v2.76-rc1
v2.75a
v2.75
v2.75-rc2
v2.75-rc1
v2.74
v2.74-rc4
v2.74-rc3
v2.74-rc2
v2.74-rc1
v2.73a
v2.73
v2.73-rc1
v2.72b
2.72b
v2.72a
v2.72
v2.72-rc1
v2.71
v2.71-rc2
v2.71-rc1
v2.70a
v2.70
v2.70-rc2
v2.70-rc
v2.66
v2.63
v2.60
v2.59
v2.58a
v2.58
v2.57b
v2.57a
v2.56a
v2.55
v2.45
softbody-stable-v1
softbody-stable-v2
softbody-stable-v3
v2.25
v2.26
v2.27
v2.28
v2.28a
v2.28c
v2.30
v2.31
v2.31a
v2.32
v2.33
v2.33a
v2.34
v2.35
v2.35a
v2.36
v2.37
v2.37a
v2.40
v2.41
v2.42
v2.42a
v2.43
v2.44
v2.46
v2.47
v2.48
v2.48a
v2.49
v2.49a
v2.49b
v2.50
v2.51
v2.52
v2.53
v2.54
v2.56
v2.57
v2.60a
v2.61
v2.63a
v2.64
v2.64a
v2.65
v2.65a
v2.66a
v2.67
v2.67a
v2.67b
v2.68
v2.68a
v2.69
Labels
Apply labels
Clear labels
Interest/Alembic
Interest/Animation & Rigging
Interest/Asset Browser
Interest/Asset Browser Project Overview
Interest/Audio
Interest/Automated Testing
Interest/Blender Asset Bundle
Interest/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
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/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
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
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
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 & Devices
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 Information 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 Label
Interest/Alembic
Interest/Animation & Rigging
Interest/Asset Browser
Interest/Asset Browser Project Overview
Interest/Audio
Interest/Automated Testing
Interest/Blender Asset Bundle
Interest/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
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/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
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
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
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 & Devices
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 Information 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
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Set Project
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
16 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#71908
Reference in new issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
System Information
Operating system: Win 10 Pro
Graphics card: GTX 1080
Blender Version
Broken: v2.81, master, 2018-11-26
Worked: (optional)
EDIT by @EAW
Short description of error
Exact steps for others to reproduce the error
End Edit
Short description of error
I have created a FlipFluids simulation in Blender 2.81 ( 2019-11-25 21:45) and added an Ocean modifier in displacement mode to the fluid_surface. Then I have baked the complete sim from within FlipFluids.
When I move from keyframe to keyframe in the default timeline everything is moving as desired in the default 3D window:
Ocean modifier waves, FlipFluids waves & wake, flags, radars...
When I render the complete animation everything EXCEPT the ocean modifier waves are moving. The ocean modifier waves remain static but the FLIPFLUIDS waves move on that surface.
ALL modifiers and elements ARE enabled for renderings. D-NOISE: AI Denoiser is on (switching denoiser off did not help).
Computer is a HP Z800 with dual Xeons, 72 GB of vRAM and a GTX 1060.
If I render & save the keyframes manually individually by hand the ocean surface moves! Which means I get the proper result.
As its working when rendering&saving each frame manually as image (Png) and its not giving the same result when saving out the same images (Png) when I hit render animation, I do suppose this might be a bug in 2.81.
Running indiviual frames via Renderpilot did not yield the proper result either. So I do suspect it might be that there is not enough time gap between saving the last frame and rendering the next. Or, something does not get purged properly.
For propriatary reasons I can not share the blend file.
Added subscriber: @Prettypicturegirl
#78866 was marked as duplicate of this issue
#77008 was marked as duplicate of this issue
#73686 was marked as duplicate of this issue
#75626 was marked as duplicate of this issue
Attached two samples showing the different results.
SingleFrames.rar
AnimationFrames.rar
Added subscriber: @rlguy
I am able to reproduce this issue in the FLIP Fluids addon. I have created a minimal script and .blend file that can reproduce the issue. It seems that modifiers with parameters that are keyframed do not update when the modifier is on a mesh that is procedurally generated in the frame_change_post handler.
Here is a script that generates a 2d grid of vertices in the frame_change_post handler:
In the .blend file setup, the 'mesh_cache' object would instance a cube over the vertices for display in rendering. An ocean modifier is added to the object with 'Geometry' set to Displace and the 'time' parameter is keyframed over a frame range.
Playback in the viewport shows the ocean modifier evolving shape during the animation. If the animation is rendered, the ocean modifier does not evolve over time and the render result is static.
Here is the .blend file including the script: keyframed_modifier_bug.blend
How to reproduce:
The result is a static animation.
Added subscriber: @mano-wii
Please follow our submission template and guidelines, also read these tips about bug reports, and make a complete, valid bug report, with required info, precise description of the issue, precise steps to reproduce it, small and simple .blend and/or other files to do so if needed, etc.
Also explained here: https://www.youtube.com/watch?v=JTD0OJq_rF4
Also keep in mind that Flip Fluid Addon is not maintained by blender.
So if the bug is related to it please report the issue to the original author instead.
Added subscriber: @Germano
@Germano
I do not understand what your issue is.
I am not a developer and tried my very best to give all information necessary in the required format.
Further the FlipFluids add-on developer himself RLGuy answered in a reply here and confirmed and even showed how the bug appears. It's clearly a bug in Blender and not in the add-on.
So, why are you downvoting a user reported bug instead of clearly indicating what further info you need?
That's not at all serving the product quality....
Further rlguy gave you a suitable blend file and detailed information of how to reproduce the issue.
Please be so kind and read his reply. It's very detailed.
I am not a Blender specialist and I can not share such a blend file as I have not enough know how of how to create such a small file.
Neither can I provide the huge original blend file as it has copyrighted design geometry within.
In the submission template and guidelines there is a clear distinction between:
Short description of error
and
Exact steps for others to reproduce the error
The steps to reproduce the problem need to be simple, without the need to install external addons.
Added subscribers: @fran-12, @EAW
@fran-12
Update the title of this report to be “Keyframed modifier parameters do not update on a mesh that is procedurally generated in the frame_change_post handler.”
It is a much more accurate description of the issue. I would update it for you but I am not a moderator.
Then copy and paste @rlguy’s comment above you original description to make this a valid bug report.
Under short description of error paste “Playback in the viewport shows the ocean modifier evolving shape during the animation. If the animation is rendered, the ocean modifier does not evolve over time and the render result is static.”
Paste the rest of his comment under “Exact steps for others to reproduce the error”.
This will make the bug report follow the template.
I am unable to test his method myself today as I forgot to pack my laptop cord and the stores are closed due to a national holiday in the USA.
Guess than I am not in the position to help you to fix a clearly existing bug in the current release. Im to much à newbie to describe it in detail.
Rlguy provided exactly what you asked for in his reply, but you seem not content with this either.
I'm fairly new to Blender and was hoping to be able to contribute to getting rid of a bug.
As this seems a complex thing to do, guess I will not endeavor in the future to file bug reports.
Which is ashame because it would have actually improved Blender...
Added subscriber: @lichtwerk
@rlguy: could you check your file again?
For me, the is no script in
ocean_displacement_test.blend, also no "mesh_cache" object...Thanks Evan,
very kind of you. I am traveling right now, and can do this tomorrow.
Should I file a new bug report with the format you described? Or can I shuffle things around in this bug report?
Thanks,
Fran
@Prettypicturegirl : we can do this, but waiting for @rlguy to provide the updated file.
We'll get there :)
[But of course it helps if everything is there from the very start -- going back and forth just takes time, and time is really precious with the ammount of work to be done in the tracker atm...]
Everything good everyone?
Thank you Philipp. Very kind of you. And yes I'm happy now, especially if you can fix it.
I just recently switched from an expensive commercial copy of V-Ray for Rhino to Blender and am really excited what and how much more can be done with it.
My apologies, I had uploaded the incorrect file. I have updated the comment with the correct file: keyframed_modifier_bug.blend
Added subscriber: @Sergey
@rlguy
I am not a programmer, so pardon me if this is naive, but should it be
def frame_change_post_handler(scene, depsgraph):
Instead of
def frame_change_post(scene, depsgraph):
See
https://wiki.blender.org/wiki/Reference/Release_Notes/2.81/Python_API#Handlers
And
Really wish my laptop battery wasn’t right now :)
@
You are most welcome!
@EAW The name/identifier of the handler function can be set to any custom name (under the constraints of what is valid in Python). The handler function just needs to be appended to the bpy.app.handlers.frame_change_post list so that Blender runs the function on a frame change.
For example, this should also be valid API usage:
Inconsistent result saving png by individual keyframe render and animation render png of the same image.to Keyframed modifier parameters do not update on a mesh that is procedurally generated in the frame_change_post handler. 3 years agoThank you for letting me know @rlguy
@Prettypicturegirl I have edited the title and description for you.
Perfect, see I'd never had the chance to rephrase tjis way, as I lack the know how in Blender at the moment. Thank you Evan.
This issue was referenced by
befc082736Changed status from 'Confirmed' to: 'Resolved'
Changed status from 'Resolved' to: 'Confirmed'
Re-opening.
The fix caused #73029. Need to re-iterate over solution.
Added subscriber: @dr.sybren
#75626 (Changing properties of an object from a frame_change_post handler blocks animation) describes the same issue, albeit in a simpler way, with just three animated balls. The blend file & reproduction steps might be nicer to use for debugging purposes.
Keyframed modifier parameters do not update on a mesh that is procedurally generated in the frame_change_post handler.to Keyframed parameters are not preserved when frame_change_post handler is used 3 years agoDeveloper note.
The system, works in the following way: when
frame_change_postmodifies some datablock an extra update of the dependency graph is done, but this update will not do animation update (with an intent to allow to manually apply changes on top of animation).For the viewport the flow in this usecase goes as following:
BKE_scene_graph_update_for_newframeis done for dependency graph + animationframe_change_postmodifies some datablock (NOTE: modification happens on original datablock, with an intent that system will pick changes up and propagate to all related dependency graphs).BKE_scene_graph_update_for_newframeand second round of updates is performed. This time without evaluating manimation.For the non-viewport depsgraph the difference is at step 2: there is no copy of new animated property value from evaluated to original. This makes step 5 to "override" evaluated animated value with the one from the viewport, which is likely to be wrong (since viewport is evaluated at different frame than the non-viewport depsgraph).
Since we don't have any way to know which properties were modified, I am not sure what could be a solution without breaking API, or without breaking existing mindset, or without loosing ability to override animated values from the handler.
P.S. Since I didn't have time to look into for so long, unassigning so then other developers are more encouraged to pick up and help.
Added subscribers: @StephenHamacek, @ZedDB, @StanislavOvcharov, @Alex_Rom, @jpbouza-4, @iss
@Sergey how would you feel about a way to, instead of updating the original datablock from the handler, update the evaluated datablock? To me this feels more in line with "updating after the animation has run". To avoid breaking the existing API, this could be done from a separate callback, like
frame_change_post_animation. The callback could get the evaluated scene, and thus iterate over its evaluated objects.While this sounds like an easy solution in this specific case, it opens up a huge amount of other issues and inconsistencies:
This list can go on, with every item going deeper and deeper in design reconsiderations in all areas. So while this is not an invalid plausible path, it needs careful thoughts and clear design put on paper rather than be accepted on a feelings that it solves this specific case.
Please have a look at the existing handler signature. You can access both original and evaluated datablocks since you do have access to the dependency graph. Accessing evaluated objects is not the problem here from the API point of view. What affects on API is If we say that handlers are to modify evaluated datablocks, we are likely to break all existing handlers. One would argue that existing behavior can be preserved, but it will be same limited, it might very quickly get in a way, and having 2 semi-working ways of doing something just adds even more confusion.
Thanks for the clear explanation @sergey.
I've been thinking about this, and any solution I see keeps boiling down to keeping track of which properties are changed by
frame_change_posthandlers. That way we can avoid doing a full copy (original → evaluated) in step 5 above and only copy those properties that were updated in theframe_change_posthandler. That would keep animated property values intact, and would also allow overriding their values from Python.Alternatively, it could be possible to make the animation system run but disallow overwriting properties that were changed by
frame_change_post. However, this would put a burden on the animation evaluation to check each and every property set, so that'll be bad for performance for sure. And in the end it also boils down to "keep track of which properties were changed".Keeping track of which properties were changed could be automatically done by RNA, but I suspect that adding even a single boolean check on all RNA setters will negatively impact performance outside of the scope of frame change handlers. Alternatively this could be done explicitly, as something special that's required for
frame_change_posthandler functions; something likedatablock.update_tag_attribute('some_attribute'). I'm also aprehensive of this solution, as it's easy to forget that this is a necessary step, and I had rather Blender do this automatically. However, I would prefer explicitly tagging attributes over worse overall performance.This approach will not gracefully handle those cases where a single value in DNA is exposed as multiple values in RNA (for example
Object.hide_viewportandhide_render)Good point. When new datablocks are pulled into the graph, I'm guessing they won't get animated property values now either?
It indeed sounds more like we do need storage of some sort, but it's.. Complicated.
Complication #1: due to the nature of RNA and python scripting you would need to inform all dependency graphs about all property changes. Imagine having importer implemented in Python, ugh :(
Complication #2: Copying becomes more complicated, it needs to know that at some point it need to do one thing, and at another point another thing.
Complication #3: Handlers do not only modify properties via RNA, they might run C function (via bpy utility or via operator) which will perform modification, without using RNA API.
If the handler adds new objects with animation data, yeah, probably it wouldn't. get animation evaluated (since second round of updates only updates tags, without time).
That's only an issue when you want to have existing animation also applied. So the importer would have to be a rather special one, importing some animated data (otherwise it wouldn't have to be run on frame change) but still allowing other animations to be applied as well. I don't know of any importers that do this. Could provide a nice workflow of hand-animating some properties while others are animated by the importer.
That's only if we want to have this system work everywhere, all the time. From what I can see, it's only an issue in the frame-change-post handler, so applying the changed properties onto the already-evaluated copies could be done in a specialised function. That way simple copies remain simple.
Hmmm yes. We could consider this unsupported (as it is unsupported now as well), and only allow direct RNA prop modifications in a frame-change-post handler.
A possible workaround could be to inspect the C code and figure out which RNA properties it changes, and tagging those for update from the handler in Python. I'm not too thrilled about that approach, though, as it's not friendly and would create unclean code where the C and Python code are tightly coupled. I see this break easily.
You don't want to check whether property is animated or not prior to dependency graph tag. While tagging is not fully cheap, it is way cheaper than checking whether property is animated or not.
Nice workflow would be to "integrate" such properties hand-animation as a part of datablock evaluation. I do not see a scene-global handler which traverses objects a nice workflow.
Such things are not importer-specific, so not sure how this is relevant.
It needs to be a generic enough solution, which will live within design of many areas. You can not be limiting considerations to just "properties change of frame-change-post handler".
This isn't how the handler is used.
You can't think in terms of RNA properties.
One of usages is to generated meshes, for example, where handler can remove vertices, add new ones.
Long story short: what do I see here so far is an attempts to address some individual aspects of the problem. What I do not see here is a systematic approach which will analyze how functionality is used, how it is expected to behave, how can solution realistically fit existing design of all related areas.
After discussion with @Sergey we arrived at the following. From what we can see, the following are reasons for having a
frame_change_posthandler:Case 2. is already covered by Blender's current behaviour.
Case 3. could be seen as the frame-change handler being part of the depsgraph evaluation. This could be implemented via customisable Python nodes in the depsgraph. For performance reasons, it's probably a better idea to not do this, and to allow modifying evaluated datablocks from one single function: the frame-change-post handler. However, these changes should not modify (or require modification of) existing relations for sanity's sake. This is likely going to work fine with the current RNA update callbacks. They expect a pointer to original data, and will tag the data for update, but effectively they'll be tagging the evaluated datablock for update. These are not iterated over by the depsgraph, so tagging won't have any impact. For performance & clarity we can explicitly let the tagging functions ignore evaluated datablocks.
Case 4. requires some extra care. We could resolve this by only allowing the creation of new ID datablocks (most importantly Objects) from the frame-change-pre handler. This handler is called after the scene's current frame has been updated, but before the dependency graph evaluation of the new frame.
This issue was referenced by
614d70a87dAdded subscriber: @theres1
If I understand what you are trying to prove in your code, then changing this:
to
will render a static plane of vertices.
I have somewhat similar problem here #77008, though as you can see this line of code does not solve all problems.
Added subscriber: @LeoMoon
Changed status from 'Confirmed' to: 'Resolved'
Changed status from 'Resolved' to: 'Confirmed'
Ooops, got the wrong task number referenced in the commit.
Added subscriber: @OmarEmaraDev
Added subscriber: @brecht
@brecht Do you have any insight in this? Any preference as to one of the alternatives? See #71908#934122 for context.
Regarding #71908#934122:
More explicitly skipping depsgraph tagging of evaluated datablock sounds good to me.
Disallowing adding relations or creating new datablocks in the post handler I'm not sure about. Such changes require a depsgraph rebuild which may be relatively slow, but it's not clear to me why this is more a problem than in the pre handler. Or which specific current bug this helps with.
It's also unclear to me how these things relate to originally reported problem as described in #71908#916261.
If I understand
BKE_scene_graph_update_for_newframe()correctly, this would be the order of things when relations change in the post-handler:When done in the pre handler:
So indeed, it doesn't look like there is much of a difference, apart from the number of operations performed (and thus performance).
It boils down to the question "when do we allow writing to evaluated datablocks?" So far the answer has been "never", which means that frame-change-post handlers were modifying original data bocks. This in turn led to a conflict between modifications made by the animation system and by the handler (as @Sergey explained in #71908#916261) , which caused this bug report.
If writing to evaluated datablocks is allowed, that makes it possible to first have the depsgraph evaluation produce an evaluated copy, and then have some Python code that modifies the same evaluated copy. This makes it possible to layer changes on top of each other. Obviously this only applies to the frame-change-post handler, because in the frame-change-pre handler there is no evaluated datablock to modify.
Added subscriber: @spiegelball
A workaround for some cases is to reassign the animated property from the evaluated datablock to the original one at the end of the script, e.g.:
EDIT:
In this case the following line enables animation of the ocean modifier:
Added subscriber: @astrid13
Could anyone tell me if this issue been fixed in any update? I am experiencing the same problem with 2.83, 2.91, 2.92 alpha. Or if anyone could kindly point me to a workaround I'd really appreciate it. Thanks
The status of this task is "Confirmed, Normal", which means that this is still an open issue.
@spiegelball Please don't repeat your own comments. This is not a support forum, but a task/issue tracker for Blender developers.
Added subscriber: @danieljabailey
I don't have the time to look at this on short notice, so unassigning myself to allow someone else to step in.
Added subscriber: @HoffmanWood
Added subscriber: @JackTheFoxOtter