User:Sybren/Reports/2019

Dec 30 - Dec 31

Dec 23 - 29

  • Christmas celebration :)
  • Maintenance of store.blender.org
  • Added USD library to install_deps.sh (D6478)
  • Small improvements to install_deps.sh, so that building Alembic doesn't always nuke & re-download the Alembic sources, and made it so that the "wrong argument" error message now contains the actual the CLI argument that's considered wrong.
  • Reviews:
    • D6457: Update USD Error Handling
  • Investigations:
    • T43430: Action editor - saving (animation) actions is error prone and counter intuitive (closed as Invalid)
    • T71727: Keying 'How to sync Playback' does not work (is a UI code issue)
    • T72391: When using bound bones with automatic weights, weight assignments can be confusing (asked for more info)
    • T54459: Animation Jitter: Rigged Character with FBX Export (asked for minimal example blend file)
  • Fixed & Closed:
    • T71650: Bezier curve show as Constant

Dec 16 - 22

  • Added the USD exporter to the User Manual.
  • Added more developer-oriented information to the USD wiki page, for example a description of the AbstractHierarchyIterator class.
  • Created and committed: D6443: Animation: Added option to playblast only keyframes of selected objects (release notes)
  • Reviews:
    • D6297: Action Constraint: introduce a mix mode setting.
  • Investigations:
    • T54459: Animation Jitter: Rigged Character with FBX Export
    • T70273: Keyframes not applied when using Auto Keying with certain Gizmos (looks like gizmo design issue and not so much animation issue)
    • T72477: Maintenance old Alembic format (HDF5)
    • T68313: Dopesheet Display Hidden doesn't work property combined with Only Selected. (marked as design task)
  • Fixes/closed:
    • Closed T50011: Exponential easing/interpolation might be incorrect (was already resolved / not reproducable)
    • Fix T68665: FCurve group disappear on Curve/Surface object data
    • Fix T70269: ChildOf constraint 'Set Inverse' not working when targeting vertex group (it's fixed, but Alexander Gavrilov has a better fix)
    • Closed T71923: snap in timeline/dopesheet is merging keyframes
    • Closed T72230: Copy rotation is not done if rotation type of both bones is different (Euler - Quaternions)
    • Fixed crash when opening a fullscreen file browser while the mouse was outside the Blender window. (unreported)
    • Fixed issue where the USD Exporter is enable'able in the Experimental Features preferences tab on builds with WITH_USD=OFF. (reported via Twitter)

Dec 9 - 15

  • Renamed the Animation module to Animation & Rigging. (mail to bf-committers)
  • Invited Juan Pablo Bouza to become user member of the Animation & Rigging module, and he accepted!
  • Worked on feedback from Sergey on the USD exporter (D6287) and committed to master!
  • Added a section about patch descriptions to the wiki.
  • Reviews:
    • D6297: Action Constraint: introduce a mix mode setting.
    • D6404 UI: Remove User Preference "Enable All Experimental Features"
    • Wiki page Experimental Features
  • Fixes/closed bugs:
    • T59313: Rig disapears
    • T68712: particle rotation phase breaks after keyframing. (archived)
    • T70447: 'WholeCharacter' Keying set breaks on None properties
    • T71609: Resizing bone length to 0 gets it stuck to that size
  • Investigations:
    • T48975: Custom Properties within PropertyGroups cannot be animated when attached to a PoseBone (changed from Bug to To Do)
    • T63675: Placing keyframe outside of NLA Strip frame range while in Tweak Mode no longer possible (changed from Bug to To Do)
    • T66392: Keyframes and animations on custom nodes properties seem not working (changed from Bug to To Do)
    • T67291: Incorrect Areas affected by Timeline Playback settings (changed from Bug to To Do)
    • T71539: With Playback 'All 3D viewport' disabled, playback still happens due to Eevee temporal AA (removed Animation & Rigging project)

Dec 2 - 8

  • Written a proposal for a required, more formal structure of patches on devtalk.
  • Added "T71238: Stacked mode for F-curves in Graph editor" to the Animation Module task list.
  • Created T72204: Universal Scene Description, a project description for future USD work.
  • Created D6352: UI: Add tooltips for modifiers
  • Created T72229: Playblast: only render on keyed frames
  • Filled out 2019 hour sheet for WBSO.
  • Worked through a bunch of old tasks (T37512 T43430 T43933 T47035 T50433) in the Animation workboards that were marked as 'in progress/scheduled' when they actually were idle for years.
  • Review:
    • D6286: Make curve decimation only take into account the selected curve points.
    • D6297: Action Constraint: introduce a mix mode setting.
  • Triage / investigation:
    • T68992: Animation not working using a file from version 2.79b to version 2.8 (needs simpler blend file)
    • T71995: Texture Paint workspace crash with new (empty) scene
    • T71002: Bendy Bone Parameters excluded from "In-Betweens" and "Action Constraints" (marked as To Do)
    • T71981: Alembic override frame causes fluid sim mesh to have artifacts (provided workaround for the issue & marked as To Do)
    • T68422: "Exploding" mesh deformation by Bendy Bones when Preserve Volume is on
    • T68313: Dopesheet Display Hidden doesn't work property combined with Only Selected. (suggested possible fix)
    • T71961: Soft body behavior is incorrect when CTRL + F12 animation is rendered. (confirmed, looking for a root cause)
  • Fixed / closed:
    • T71722: Alembic speed decrease for deforming geometry
    • T70551: Drivers are lost upon converting a collection instance to a local set of objects

Nov 25 - Dec 1

  • Handling review comments on D6287: Introducing USD support.
  • Ensuring USD builds and unittests run on CentOS7 + buildbot.
  • Worked on statically linking USD with Blender.
  • Asked the USD Interest forum why Python is still required when building USD without Python support. The answer: to generate some code.
  • Created a pull request to build USD without the commandline tools.
  • Reviewed D6286: Make curve decimation only take into account the selected curve points.
  • Committed D6246: Blendfile-loading test class to master, which I need for unit testing the USD exporter. As a result, D6287 is now based on the master branch.
  • Fixes:
    • Fixed packaging issue on CentOS7.
    • T71986: Alembic: object constraints animation no longer exported

Nov 18 - 24

  • Upgraded Alembic to 1.7.12 in order to write the new 'DCC FPS' hint. This Alembic improvement was actually initiated by myself, after I found out that the Alembic plugin for USD reads Alembic files with hard-coded 24 FPS frame rate. After a small discussion on the Alembic forum it was quickly implemented in Alembic itself.
  • Created an evacuation map for the Blender Institute.
  • Improved D6246 (blendfile-loading base test) by solving the memory leak.
  • Continued review of D6099 Bones: implement a new Aligned Inherit Scale mode
  • USD: More efficient mesh exporting by providing an explicit default value from mesh properties. This makes USD write only those values that actually change over time (instead of writing everything for every frame). When exporting animated meshes, that is.
  • Sent in D6287: Introducing USD support for review.
  • Tracker activity / investigations
    • T68973: Graph Editor: General channel list UI improvements and poked animators in the module to reply to the suggested improvements.
    • T71002: Bendy Bone Parameters excluded from "In-Betweens" and "Action Constraints"
    • T67243: frequently stops working on rendering
    • Gave feedback on T71238: Stacked mode for F-curves in Graph editor
  • Fixes
    • Fixed crash that happens when freeing Blender from a unit test.
    • Fix T71621: VSE crashes when playing last frame of audio
    • Committed Philipp Oeser's fix for T71412: Add transform component to deforming modifier

Nov 11 - 17

  • Fixed a few bugs in Flamenco Manager and released Flamenco Manager 2.7.
  • Worked on cleaning up the USD exporter code and adding automated tests. This includes a superclass that can hopefully be used more widely in Blender to help loading blendfiles from C++ and performing more automated tests in general.
  • Created D6246: Blendfile-loading test class, which I need for unit testing the USD exporter.
  • Blender Manual:
    • Clarified FCurve Handle types, and added some links between relevant sections.
    • Extended the sections on Alembic, and added links between relevant sections.
  • Reviews:
    • D6216: Initial implementation of code signing routines
    • D6235: UI: Changes to graph editor selection and transform
    • D6237: Graph Editor: Fix selection and View > Selected with 'View Only Selected Curve Keyframes' option enabled
  • Fixes:
    • D6255 Fix T71322: Crash in Audaspace with video file containing 16-channel audio

Nov 4 - 10

  • Implemented changes discussed in T71246: Mesh Normals handling in Alembic, which streamlines mesh normal handling so that it's more in line with other applications and more efficient when using simple smooth-shaded geometry.
  • Added a unit test to the USD exporter, to check the AbstractHierarchyIterator class. I intend to use that class as a basis for the Alembic exporter as well.
  • Cleaned up some USD Exporter code to prepare it for merging to master for 2.82.
  • Reviews:
    • D6134: Stretch To: implement a mode similar to Damped Track for rotation.
    • D6099: Bones: implement a new Aligned Inherit Scale mode
  • Fixes:
    • T71130: Alembic split normal export issue
    • Fixed a crash when adding a Scene driver with a still-empty RNA path (e3f1f5bd006a206f81aa9bb20e833e8fc0d9728a)
    • T71401: WEBM/VP9 Render Performance Issues (I think it's actually working as designed, so not really a fix, but closed issue nonetheless).

Okt 28 - Nov 3

  • Created design task: T71246: Mesh Normals handling in Alembic
  • Investigated T71130: Alembic split normal export issue
  • Reopened T68000: Load 2.79 settings error
  • Added the fact that the Alembic exporter also supports writing custom normals to the Blender manual.
  • Reported T71193: Save after Render: 'nested' full screen windows don't close properly
  • Blender Store: added some protection against brute force attacks.
  • Reviews:
    • D2388: Cycles: add support for rendering deformation motion blur from Alembic caches.
    • D4841: Add curve decimate in the graph editor.
    • D6009: Fix T66751: Symmetrizing armature does not symmetrize constraints.
    • D6015: Blender ID Oauth2 login extension for Phabricator.
    • D6061: Export particle rotations to Alembic.

Okt 21 - 27

  • Blender Conference
  • Made Flamenco compatible with a workflow where artists directly work on shared storage.


Okt 14 - 20

  • Investigated T70450: newly added ffmpeg webm vp9 rgba support just hangs
  • Created D6085: Clarify auto-smooth angle and custom normals
  • Reviews:
    • D5999: ctest: basic ffmpeg sanity check.
    • D6015: Blender ID Oauth2 login extension for Phabricator
  • Fixes:
    • T69182 & T70710: Auto-Smooth does not work on Alembic meshes without normals
    • Closed T47828 as duplicate of already-fixed T66641

Okt 7 - 13

  • Given a workshop at Ubisoft Animation Studio

Sept 30 - Okt 6

  • Discussed graph editor & dope sheet design with Hjalti and Nacho
  • Investigated T66641: Certain drivers fail to copy when copying a full scene.
  • Add Opus audio library and configure FFmpeg to use it
  • Fixes:
    • Closed T69962: 500 error when using ?access_token (Blender ID)
    • Closed T68303: Particle system baking not working in Python API
    • Closed T70408: Alembic import - Incorrect object pivots
    • Fix T70409: Propagate Pose not updating correctly
    • Fix T70514: VP9 not working

Sept 23 - 29

  • Added missing documentation for options parameter in keyframe_insert()
  • Pose paste: avoid auto-keying on unselected bones when 'selection only' is enabled
  • Reviews
    • D5875: Implement a user preference for the default Auto Handle Smoothing mode.
    • D5894: Latest changes to the Blender Conference website
    • D5694: Fix T69542: Corrective Smooth modifier breaks when drivers are involved.
  • Fixes:
    • Fix T66555: Handler render init ignores output placeholders
    • Fix T67732: metadata "Include Labels" checkbox doesn't work when "Use Strip Metadata" is checked
    • Fix T69573: Driver Value does not slide along the actual value in the Driver Editor
    • Fix T69976: Blender asset tracer (v1.1.1) does not work with FluidSimModifier in Blender 2.81
    • Fix T70281: Changing Default interpolation also changes curve of new drivers

Sept 16 - 22

  • Fixes:
    • Alembic: fix updating of GUI when export progress is made
    • Fix segfault when polling OBJECT_OT_voxel_remesh without active object
    • Fix T55403: Alembic: export of animated child hairs
    • Fix T65816 Exporting procedural mesh animation with Alembic results in a static mesh and can cause crashes
    • Fix T68091: Adding a corrupt video crashes/confuses Blender
    • Fix T70021: Alembic incomplete crease import
    • Fix T70070: Path always absolute when importing Alembic

Aug 19 - 25

  • Added graph editor improvements as design tasks to Phabricator, linked to the Animation Module task.
  • Created Alembic improvements umbrella task T69058
  • Started design task for loading USD/Alembic via the animation system rather than via modifier+constraint T69046

Aug 12 - 18

  • D5472 Text space type: enable syntax highlighting and line numbers by default, and have automatic disable of syntax highlighting for non-highlit extensions.
  • D4886 Add-on preferences: by default show enabled add-ons only
  • Fixes:
    • Fix T67516 VSE: Animation evaluated incorrectly when scene strip present
    • Investigated T55288 (Alembic export do scale when rotating more than 360°) and it turns out it's a problem with many readers assuming the Alembic file is 24 FPS and subsequently applying linear component-wise interpolation of transformation matrices. For USD I filed a [bug report](https://github.com/PixarAnimationStudios/USD/issues/940) with them about this.
    • Fix T67999 calling obj.data.materials.clear() on an object with 2+ materials in lookdev or rendered(eevee) shading crashes Blender
    • Fix T56408 + T63534: Hair interpolated children recalculation on every frame when attached onto an alembic imported mesh

Aug 5 - 11

  • Investigated T68290: Baked particles dont render in final frame.
  • Partial Animation Module team (animators here in the studio + Sebastian Parborg) meeting.
  • Discussed the recent removal of useful buttons with the UI team.
  • Fixes:
    • Fix T68227: Pinning the particles system data-block causes error.
    • Fix T68322: Shear in Dopesheet causes crash.

July 29 - Aug 4

  • Merged D5156 to master (WebM container + VP9 alpha channel + Opus audio support).
  • Created D5373: Added BKE_mesh_clear_geometry() function.
  • Reviewed D5359: USD Fixes for building on windows
  • Upgraded Python from 3.7.0 → 3.7.4 (454daf9b6b87d008e66650927109511f1c1befd2)
  • FFmpeg pixel format conversion improvements D5174
  • Fixes:
    • make deps: avoid running pdflatex as part of building Theora (53ae209d25a5741fe32fc403a4428966e8fca4dd)
    • Fix T65717: Alembic (camera - also mesh) import scale issue
    • Closed T56792, T65959, T61375 by committing fix for saving & loading face normals in Alembic (D5191).
    • Fix T61935: load camera transforms from Alembic files written by Meshroom
    • Fix T67999: calling obj.data.materials.clear() crashes Blender

July 22-28

  • More USD support:
    • Various cleanups to prepare the code for merging into master (this is not any promise as to when that happens).
    • Remove the "uv_" prefix from the primvar name of UV maps, so that names can be used as-is (f.e. "st" is expected by Maya).
    • Added exporting mesh normals (custom normals, as well as flat-shaded or smooth-shaded polygons).
    • Added exporting of vertex velocities of fluid simulations.
    • Updated blog post about USD in Blender to include this week's progress + links to example USD files exported by Blender.
    • Added export options to make exporting UV Maps, Mesh Normals, and Materials optional.
  • Supported Hugo Sales' GSoC

July 15-21

  • More USD support:
  • Worked on fix for T66667 in D5228: Adding empty mesh cache modifier to a mesh degrades playback performance significantly even if modifier display disabled.
  • Supported Hugo Sales' GSoC
  • Investigated T67003
  • Fixed T66881 Blender-ID: Blender Hangs on login or logout
  • Triaged T66924 bpy.ops.preferences.addon_enable() only checks for changes in __init__.py; Problem for multi-file add-ons
  • Triaged T56792 Alembic doesn't export custom normals correctly
  • Wrote D5290 fix for T65717 Alembic (camera - also mesh) import scale issue
  • Triaged T67087 Alembic Modifier Keys not visible in graph editor

July 8-14

  • Fix T64483: Blender crash when we close the render window if we have selected Blener File in Outliner.
  • Fix Alembic exporter crashes when exporting fluid sims: T52814 and T58686 fixed in D5191.
  • Fix Alembic crash when loading invalid meshes.
  • Fix crash when clicking in window while Blender starts.
  • Fix T66631: Crash when converting objects from Curve to Mesh.
  • Fix AttributeError in mesh properties panel when mesh is pinned.
  • Fixed crash when adding/removing custom normals from pinned mesh D5223.
  • Worked on fix for T66667 in D5228: Adding empty mesh cache modifier to a mesh degrades playback performance significantly even if modifier display disabled.
  • Worked on USD support:
    • Export all UV maps.
    • Export mesh edge creases.
    • Allow export with either render or viewport settings.
    • Don't export hidden particle emitter meshes.
  • Supported Hugo Sales' GSoC

July 1-7

  • FFmpeg fix: T53058 Crash when rendering to Quicktime RLE codec. I also took a bit of a dive into our FFmpeg-handling code, fixed in the below patch:
  • D5156: FFmpeg: added WebM container + alpha support, and added Opus support
  • D5191: Alembic import: load face-varying normals
  • USD export support for perspective cameras.
  • Exporting meters-per-unit metadata to USD stage.
  • Supported Hugo Sales' GSoC

June 24-30

  • USD: Added exporting of time-sampled (that is, animated) transforms and meshes.
  • USD: Added exporting of preview materials (based on the viewport display settings).
  • USD: Fixed an issue with the transform of duplicated objects.
  • USD: Added exporting of hair curves (just the parent hairs, and just a single colour per strand).
  • Supported Hugo Sales' GSoC

June 17-23

  • More work on USD exporter, mostly focusing on producing the proper object hierarchy in USD. It's my intent to share code between USD and Alembic exporters for this, as the new code works better with the 2.80 depsgraph code.
  • Supported Hugo Sales' GSoC
  • Bugfixes:
    • Fix T65901: Alembic crash on out-of-bounds UV indices
    • Fix: Alembic import segfault when importing mesh with null UVs

June 10-16

  • Started working on exporting Universal Scene Description (USD) files.
  • Supported Hugo Sales' GSoC
  • Bugfixes:
    • FFmpeg: Fix integer overflow when writing custom FPS with high denominator
    • Fix T65803: MPEG4 unsupported timebase denominator