2026-02-16
This commit is contained in:
@@ -4,6 +4,11 @@
|
||||
## [Unreleased]
|
||||
|
||||
|
||||
## [0.5.1] - 2026-02-07
|
||||
|
||||
- Fix bug caused by a change in Blender 5.0's Python API for creating drivers. It caused the location component of the shake to not animate.
|
||||
|
||||
|
||||
## [0.5.0] - 2025-02-10
|
||||
|
||||
- Update code to work properly with the new slotted/layered Action APIs in Blender 4.4. Otherwise functionally identical to v0.4.0.
|
||||
@@ -31,7 +36,8 @@ To be filled out.
|
||||
To be filled out.
|
||||
|
||||
|
||||
[Unreleased]: https://github.com/cessen/colorbox/compare/v0.5.0...HEAD
|
||||
[Unreleased]: https://github.com/cessen/colorbox/compare/v0.5.1...HEAD
|
||||
[0.5.1]: https://github.com/cessen/colorbox/compare/v0.5.0...v0.5.1
|
||||
[0.5.0]: https://github.com/cessen/colorbox/compare/v0.4.0...v0.5.0
|
||||
[0.4.0]: https://github.com/cessen/colorbox/compare/v0.3.0...v0.4.0
|
||||
[0.3.0]: https://github.com/cessen/colorbox/compare/v0.2.0...v0.3.0
|
||||
|
||||
@@ -284,9 +284,16 @@ def build_single_shake(camera, shake_item_index, collection, context):
|
||||
rot_constraint.mix_mode = 'AFTER'
|
||||
|
||||
# Set up the location constraint driver.
|
||||
driver = loc_constraint.driver_add("influence").driver
|
||||
#
|
||||
# Note: we clear the keyframes from the driver's fcurve to dodge some
|
||||
# small-value rounding that Blender does internally when evaluating fcurves.
|
||||
# This way the driver expression evaluation gets used directly, without any
|
||||
# intermediate steps that might interfere.
|
||||
fcurve = loc_constraint.driver_add("influence")
|
||||
fcurve.keyframe_points.clear()
|
||||
driver = fcurve.driver
|
||||
driver.type = 'SCRIPTED'
|
||||
driver.expression = "{} * influence * location_scale / unit_scale".format(1.0 / (UNIT_SCALE_MAX * INFLUENCE_MAX * SCALE_MAX))
|
||||
driver.expression = "{} * influence * location_scale / unit_scale * int(\"1\")".format(1.0 / (UNIT_SCALE_MAX * INFLUENCE_MAX * SCALE_MAX))
|
||||
if "influence" not in driver.variables:
|
||||
var = driver.variables.new()
|
||||
var.name = "influence"
|
||||
@@ -310,7 +317,11 @@ def build_single_shake(camera, shake_item_index, collection, context):
|
||||
var.targets[0].data_path ='unit_settings.scale_length'
|
||||
|
||||
# Set up the rotation constraint driver.
|
||||
driver = rot_constraint.driver_add("influence").driver
|
||||
#
|
||||
# Note: see further-above note for why we clear the keyframes here.
|
||||
fcurve = rot_constraint.driver_add("influence")
|
||||
fcurve.keyframe_points.clear()
|
||||
driver = fcurve.driver
|
||||
driver.type = 'SCRIPTED'
|
||||
driver.expression = "influence * {}".format(1.0 / INFLUENCE_MAX)
|
||||
if "influence" not in driver.variables:
|
||||
@@ -633,7 +644,7 @@ def register():
|
||||
|
||||
# The list of camera shakes active on an camera, along with each shake's parameters.
|
||||
bpy.types.Object.camera_shakes = bpy.props.CollectionProperty(type=CameraShakeInstance)
|
||||
bpy.types.Object.camera_shakes_active_index = bpy.props.IntProperty(name="Camera Shake List Active Item Index")
|
||||
bpy.types.Object.camera_shakes_active_index = bpy.props.IntProperty(name="Camera Shake List Active Item Index", options = set())
|
||||
|
||||
bpy.types.WindowManager.camera_shake_show_utils = bpy.props.BoolProperty(name="Show Camera Shake Utils UI", default=False)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
schema_version = "1.0.0"
|
||||
|
||||
id = "camera_shakify"
|
||||
version = "0.5.0"
|
||||
version = "0.5.1"
|
||||
name = "Camera Shakify"
|
||||
tagline = "Add captured camera shake/wobble to your cameras"
|
||||
maintainer = "Nathan Vegadahl <cessen@cessen.com>"
|
||||
|
||||
Reference in New Issue
Block a user