Node Wrangler: Improved accuracy on Align Nodes operator #104551
@ -1,10 +1,12 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
"name": "Add Camera Rigs",
|
"name": "Add Camera Rigs",
|
||||||
"author": "Wayne Dixon, Brian Raschko, Kris Wittig, Damien Picard, Flavio Perez",
|
"author": "Wayne Dixon, Brian Raschko, Kris Wittig, Damien Picard, Flavio Perez",
|
||||||
"version": (1, 5, 1),
|
"version": (1, 6, 0),
|
||||||
"blender": (3, 3, 0),
|
"blender": (4, 0, 0),
|
||||||
"location": "View3D > Add > Camera > Dolly or Crane Rig",
|
"location": "View3D > Add > Camera > Dolly or Crane Rig",
|
||||||
"description": "Adds a Camera Rig with UI",
|
"description": "Adds a Camera Rig with UI",
|
||||||
"doc_url": "{BLENDER_MANUAL_URL}/addons/camera/camera_rigs.html",
|
"doc_url": "{BLENDER_MANUAL_URL}/addons/camera/camera_rigs.html",
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
@ -34,26 +36,35 @@ def create_dolly_bones(rig):
|
|||||||
root = bones.new("Root")
|
root = bones.new("Root")
|
||||||
root.tail = (0.0, 1.0, 0.0)
|
root.tail = (0.0, 1.0, 0.0)
|
||||||
root.show_wire = True
|
root.show_wire = True
|
||||||
|
rig.data.collections.new(name="Controls")
|
||||||
|
rig.data.collections['Controls'].assign(root)
|
||||||
|
|
||||||
ctrl_aim_child = bones.new("Aim_shape_rotation-MCH")
|
ctrl_aim_child = bones.new("MCH-Aim_shape_rotation")
|
||||||
ctrl_aim_child.head = (0.0, 10.0, 1.7)
|
ctrl_aim_child.head = (0.0, 10.0, 1.7)
|
||||||
ctrl_aim_child.tail = (0.0, 11.0, 1.7)
|
ctrl_aim_child.tail = (0.0, 11.0, 1.7)
|
||||||
ctrl_aim_child.layers = tuple(i == 1 for i in range(32))
|
# Create bone collection and assign bone
|
||||||
|
rig.data.collections.new(name="MCH")
|
||||||
|
rig.data.collections['MCH'].assign(ctrl_aim_child)
|
||||||
|
rig.data.collections['MCH'].is_visible = False
|
||||||
|
|
||||||
ctrl_aim = bones.new("Aim")
|
ctrl_aim = bones.new("Aim")
|
||||||
ctrl_aim.head = (0.0, 10.0, 1.7)
|
ctrl_aim.head = (0.0, 10.0, 1.7)
|
||||||
ctrl_aim.tail = (0.0, 11.0, 1.7)
|
ctrl_aim.tail = (0.0, 11.0, 1.7)
|
||||||
ctrl_aim.show_wire = True
|
ctrl_aim.show_wire = True
|
||||||
|
rig.data.collections['Controls'].assign(ctrl_aim)
|
||||||
|
|
||||||
ctrl = bones.new("Camera")
|
ctrl = bones.new("Camera")
|
||||||
ctrl.head = (0.0, 0.0, 1.7)
|
ctrl.head = (0.0, 0.0, 1.7)
|
||||||
ctrl.tail = (0.0, 1.0, 1.7)
|
ctrl.tail = (0.0, 1.0, 1.7)
|
||||||
ctrl.show_wire = True
|
ctrl.show_wire = True
|
||||||
|
rig.data.collections['Controls'].assign(ctrl)
|
||||||
|
|
||||||
ctrl_offset = bones.new("Camera_offset")
|
ctrl_offset = bones.new("Camera_Offset")
|
||||||
ctrl_offset.head = (0.0, 0.0, 1.7)
|
ctrl_offset.head = (0.0, 0.0, 1.7)
|
||||||
ctrl_offset.tail = (0.0, 1.0, 1.7)
|
ctrl_offset.tail = (0.0, 1.0, 1.7)
|
||||||
ctrl_offset.show_wire = True
|
ctrl_offset.show_wire = True
|
||||||
|
rig.data.collections['Controls'].assign(ctrl_offset)
|
||||||
|
|
||||||
|
|
||||||
# Setup hierarchy
|
# Setup hierarchy
|
||||||
ctrl.parent = root
|
ctrl.parent = root
|
||||||
@ -65,7 +76,7 @@ def create_dolly_bones(rig):
|
|||||||
bpy.ops.object.mode_set(mode='OBJECT')
|
bpy.ops.object.mode_set(mode='OBJECT')
|
||||||
pose_bones = rig.pose.bones
|
pose_bones = rig.pose.bones
|
||||||
# Lock the relevant scale channels of the Camera_offset bone
|
# Lock the relevant scale channels of the Camera_offset bone
|
||||||
pose_bones["Camera_offset"].lock_scale = (True,) * 3
|
pose_bones["Camera_Offset"].lock_scale = (True,) * 3
|
||||||
|
|
||||||
|
|
||||||
def create_crane_bones(rig):
|
def create_crane_bones(rig):
|
||||||
@ -76,42 +87,51 @@ def create_crane_bones(rig):
|
|||||||
root = bones.new("Root")
|
root = bones.new("Root")
|
||||||
root.tail = (0.0, 1.0, 0.0)
|
root.tail = (0.0, 1.0, 0.0)
|
||||||
root.show_wire = True
|
root.show_wire = True
|
||||||
|
rig.data.collections.new(name="Controls")
|
||||||
|
rig.data.collections['Controls'].assign(root)
|
||||||
|
|
||||||
ctrl_aim_child = bones.new("Aim_shape_rotation-MCH")
|
ctrl_aim_child = bones.new("MCH-Aim_shape_rotation")
|
||||||
ctrl_aim_child.head = (0.0, 10.0, 1.7)
|
ctrl_aim_child.head = (0.0, 10.0, 1.7)
|
||||||
ctrl_aim_child.tail = (0.0, 11.0, 1.7)
|
ctrl_aim_child.tail = (0.0, 11.0, 1.7)
|
||||||
ctrl_aim_child.layers = tuple(i == 1 for i in range(32))
|
rig.data.collections.new(name="MCH")
|
||||||
|
rig.data.collections['MCH'].assign(ctrl_aim_child)
|
||||||
|
rig.data.collections['MCH'].is_visible = False
|
||||||
|
|
||||||
ctrl_aim = bones.new("Aim")
|
ctrl_aim = bones.new("Aim")
|
||||||
ctrl_aim.head = (0.0, 10.0, 1.7)
|
ctrl_aim.head = (0.0, 10.0, 1.7)
|
||||||
ctrl_aim.tail = (0.0, 11.0, 1.7)
|
ctrl_aim.tail = (0.0, 11.0, 1.7)
|
||||||
ctrl_aim.show_wire = True
|
ctrl_aim.show_wire = True
|
||||||
|
rig.data.collections['Controls'].assign(ctrl_aim)
|
||||||
|
|
||||||
ctrl = bones.new("Camera")
|
ctrl = bones.new("Camera")
|
||||||
ctrl.head = (0.0, 1.0, 1.7)
|
ctrl.head = (0.0, 1.0, 1.7)
|
||||||
ctrl.tail = (0.0, 2.0, 1.7)
|
ctrl.tail = (0.0, 2.0, 1.7)
|
||||||
|
rig.data.collections['Controls'].assign(ctrl)
|
||||||
|
|
||||||
ctrl_offset = bones.new("Camera_offset")
|
ctrl_offset = bones.new("Camera_Offset")
|
||||||
ctrl_offset.head = (0.0, 1.0, 1.7)
|
ctrl_offset.head = (0.0, 1.0, 1.7)
|
||||||
ctrl_offset.tail = (0.0, 2.0, 1.7)
|
ctrl_offset.tail = (0.0, 2.0, 1.7)
|
||||||
|
rig.data.collections['Controls'].assign(ctrl_offset)
|
||||||
|
|
||||||
arm = bones.new("Crane_arm")
|
arm = bones.new("Crane_Arm")
|
||||||
arm.head = (0.0, 0.0, 1.7)
|
arm.head = (0.0, 0.0, 1.7)
|
||||||
arm.tail = (0.0, 1.0, 1.7)
|
arm.tail = (0.0, 1.0, 1.7)
|
||||||
|
rig.data.collections['Controls'].assign(arm)
|
||||||
|
|
||||||
height = bones.new("Crane_height")
|
height = bones.new("Crane_Height")
|
||||||
height.head = (0.0, 0.0, 0.0)
|
height.head = (0.0, 0.0, 0.0)
|
||||||
height.tail = (0.0, 0.0, 1.7)
|
height.tail = (0.0, 0.0, 1.7)
|
||||||
|
rig.data.collections['Controls'].assign(height)
|
||||||
|
|
||||||
# Setup hierarchy
|
# Setup hierarchy
|
||||||
ctrl.parent = arm
|
ctrl.parent = arm
|
||||||
ctrl_offset.parent = ctrl
|
ctrl_offset.parent = ctrl
|
||||||
ctrl.use_inherit_rotation = False
|
ctrl.use_inherit_rotation = False
|
||||||
ctrl.use_inherit_scale = False
|
ctrl.inherit_scale = "NONE"
|
||||||
ctrl.show_wire = True
|
ctrl.show_wire = True
|
||||||
|
|
||||||
arm.parent = height
|
arm.parent = height
|
||||||
arm.use_inherit_scale = False
|
arm.inherit_scale = "NONE"
|
||||||
|
|
||||||
height.parent = root
|
height.parent = root
|
||||||
ctrl_aim.parent = root
|
ctrl_aim.parent = root
|
||||||
@ -122,12 +142,12 @@ def create_crane_bones(rig):
|
|||||||
pose_bones = rig.pose.bones
|
pose_bones = rig.pose.bones
|
||||||
|
|
||||||
# Lock the relevant loc, rot and scale
|
# Lock the relevant loc, rot and scale
|
||||||
pose_bones["Crane_arm"].lock_rotation = (False, True, False)
|
pose_bones["Crane_Arm"].lock_rotation = (False, True, False)
|
||||||
pose_bones["Crane_arm"].lock_scale = (True, False, True)
|
pose_bones["Crane_Arm"].lock_scale = (True, False, True)
|
||||||
pose_bones["Crane_height"].lock_location = (True,) * 3
|
pose_bones["Crane_Height"].lock_location = (True,) * 3
|
||||||
pose_bones["Crane_height"].lock_rotation = (True,) * 3
|
pose_bones["Crane_Height"].lock_rotation = (True,) * 3
|
||||||
pose_bones["Crane_height"].lock_scale = (True, False, True)
|
pose_bones["Crane_Height"].lock_scale = (True, False, True)
|
||||||
pose_bones["Camera_offset"].lock_scale = (True,) * 3
|
pose_bones["Camera_Offset"].lock_scale = (True,) * 3
|
||||||
|
|
||||||
|
|
||||||
def setup_3d_rig(rig, cam):
|
def setup_3d_rig(rig, cam):
|
||||||
@ -147,20 +167,20 @@ def setup_3d_rig(rig, cam):
|
|||||||
# Build the widgets
|
# Build the widgets
|
||||||
root_widget = create_root_widget("Camera_Root")
|
root_widget = create_root_widget("Camera_Root")
|
||||||
camera_widget = create_camera_widget("Camera")
|
camera_widget = create_camera_widget("Camera")
|
||||||
camera_offset_widget = create_camera_offset_widget("Camera_offset")
|
camera_offset_widget = create_camera_offset_widget("Camera_Offset")
|
||||||
aim_widget = create_aim_widget("Aim")
|
aim_widget = create_aim_widget("Aim")
|
||||||
|
|
||||||
# Add the custom bone shapes
|
# Add the custom bone shapes
|
||||||
pose_bones["Root"].custom_shape = root_widget
|
pose_bones["Root"].custom_shape = root_widget
|
||||||
pose_bones["Aim"].custom_shape = aim_widget
|
pose_bones["Aim"].custom_shape = aim_widget
|
||||||
pose_bones["Camera"].custom_shape = camera_widget
|
pose_bones["Camera"].custom_shape = camera_widget
|
||||||
pose_bones["Camera_offset"].custom_shape = camera_offset_widget
|
pose_bones["Camera_Offset"].custom_shape = camera_offset_widget
|
||||||
|
|
||||||
# Set the "Override Transform" field to the mechanism position
|
# Set the "Override Transform" field to the mechanism position
|
||||||
pose_bones["Aim"].custom_shape_transform = pose_bones["Aim_shape_rotation-MCH"]
|
pose_bones["Aim"].custom_shape_transform = pose_bones["MCH-Aim_shape_rotation"]
|
||||||
|
|
||||||
# Add constraints to bones
|
# Add constraints to bones
|
||||||
con = pose_bones['Aim_shape_rotation-MCH'].constraints.new('COPY_ROTATION')
|
con = pose_bones['MCH-Aim_shape_rotation'].constraints.new('COPY_ROTATION')
|
||||||
con.target = rig
|
con.target = rig
|
||||||
con.subtarget = "Camera"
|
con.subtarget = "Camera"
|
||||||
|
|
||||||
@ -187,29 +207,38 @@ def create_2d_bones(context, rig, cam):
|
|||||||
root = bones.new("Root")
|
root = bones.new("Root")
|
||||||
root.tail = Vector((0.0, 0.0, 1.0))
|
root.tail = Vector((0.0, 0.0, 1.0))
|
||||||
root.show_wire = True
|
root.show_wire = True
|
||||||
|
rig.data.collections.new(name="Controls")
|
||||||
|
rig.data.collections['Controls'].assign(root)
|
||||||
|
|
||||||
ctrl = bones.new('Camera')
|
ctrl = bones.new('Camera')
|
||||||
ctrl.tail = Vector((0.0, 0.0, 1.0))
|
ctrl.tail = Vector((0.0, 0.0, 1.0))
|
||||||
ctrl.show_wire = True
|
ctrl.show_wire = True
|
||||||
|
rig.data.collections['Controls'].assign(ctrl)
|
||||||
|
|
||||||
left_corner = bones.new("Left_corner")
|
left_corner = bones.new("Left_Corner")
|
||||||
left_corner.head = (-3, 10, -2)
|
left_corner.head = (-3, 10, -2)
|
||||||
left_corner.tail = left_corner.head + Vector((0.0, 0.0, 1.0))
|
left_corner.tail = left_corner.head + Vector((0.0, 0.0, 1.0))
|
||||||
left_corner.show_wire = True
|
left_corner.show_wire = True
|
||||||
|
rig.data.collections['Controls'].assign(left_corner)
|
||||||
|
|
||||||
right_corner = bones.new("Right_corner")
|
right_corner = bones.new("Right_Corner")
|
||||||
right_corner.head = (3, 10, -2)
|
right_corner.head = (3, 10, -2)
|
||||||
right_corner.tail = right_corner.head + Vector((0.0, 0.0, 1.0))
|
right_corner.tail = right_corner.head + Vector((0.0, 0.0, 1.0))
|
||||||
right_corner.show_wire = True
|
right_corner.show_wire = True
|
||||||
|
rig.data.collections['Controls'].assign(right_corner)
|
||||||
|
|
||||||
corner_distance_x = (left_corner.head - right_corner.head).length
|
corner_distance_x = (left_corner.head - right_corner.head).length
|
||||||
corner_distance_y = -left_corner.head.z
|
corner_distance_y = -left_corner.head.z
|
||||||
corner_distance_z = left_corner.head.y
|
corner_distance_z = left_corner.head.y
|
||||||
|
rig.data.collections['Controls'].assign(root)
|
||||||
|
|
||||||
center = bones.new("Center-MCH")
|
center = bones.new("MCH-Center")
|
||||||
center.head = ((right_corner.head + left_corner.head) / 2.0)
|
center.head = ((right_corner.head + left_corner.head) / 2.0)
|
||||||
center.tail = center.head + Vector((0.0, 0.0, 1.0))
|
center.tail = center.head + Vector((0.0, 0.0, 1.0))
|
||||||
center.layers = tuple(i == 1 for i in range(32))
|
center.show_wire = True
|
||||||
|
rig.data.collections.new(name="MCH")
|
||||||
|
rig.data.collections['MCH'].assign(center)
|
||||||
|
rig.data.collections['MCH'].is_visible = False
|
||||||
center.show_wire = True
|
center.show_wire = True
|
||||||
|
|
||||||
# Setup hierarchy
|
# Setup hierarchy
|
||||||
@ -225,7 +254,7 @@ def create_2d_bones(context, rig, cam):
|
|||||||
bone.rotation_mode = 'XYZ'
|
bone.rotation_mode = 'XYZ'
|
||||||
|
|
||||||
# Bone drivers
|
# Bone drivers
|
||||||
center_drivers = pose_bones["Center-MCH"].driver_add("location")
|
center_drivers = pose_bones["MCH-Center"].driver_add("location")
|
||||||
|
|
||||||
# Center X driver
|
# Center X driver
|
||||||
driver = center_drivers[0].driver
|
driver = center_drivers[0].driver
|
||||||
@ -236,7 +265,7 @@ def create_2d_bones(context, rig, cam):
|
|||||||
var.name = corner
|
var.name = corner
|
||||||
var.type = 'TRANSFORMS'
|
var.type = 'TRANSFORMS'
|
||||||
var.targets[0].id = rig
|
var.targets[0].id = rig
|
||||||
var.targets[0].bone_target = corner.capitalize() + '_corner'
|
var.targets[0].bone_target = corner.capitalize() + '_Corner'
|
||||||
var.targets[0].transform_type = 'LOC_X'
|
var.targets[0].transform_type = 'LOC_X'
|
||||||
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
||||||
|
|
||||||
@ -253,7 +282,7 @@ def create_2d_bones(context, rig, cam):
|
|||||||
var.name = '%s_%s' % (corner, direction)
|
var.name = '%s_%s' % (corner, direction)
|
||||||
var.type = 'TRANSFORMS'
|
var.type = 'TRANSFORMS'
|
||||||
var.targets[0].id = rig
|
var.targets[0].id = rig
|
||||||
var.targets[0].bone_target = corner.capitalize() + '_corner'
|
var.targets[0].bone_target = corner.capitalize() + '_Corner'
|
||||||
var.targets[0].transform_type = 'LOC_' + direction.upper()
|
var.targets[0].transform_type = 'LOC_' + direction.upper()
|
||||||
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
||||||
|
|
||||||
@ -273,31 +302,31 @@ def create_2d_bones(context, rig, cam):
|
|||||||
var.name = corner
|
var.name = corner
|
||||||
var.type = 'TRANSFORMS'
|
var.type = 'TRANSFORMS'
|
||||||
var.targets[0].id = rig
|
var.targets[0].id = rig
|
||||||
var.targets[0].bone_target = corner.capitalize() + '_corner'
|
var.targets[0].bone_target = corner.capitalize() + '_Corner'
|
||||||
var.targets[0].transform_type = 'LOC_Z'
|
var.targets[0].transform_type = 'LOC_Z'
|
||||||
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
||||||
|
|
||||||
# Bone constraints
|
# Bone constraints
|
||||||
con = pose_bones["Camera"].constraints.new('DAMPED_TRACK')
|
con = pose_bones["Camera"].constraints.new('DAMPED_TRACK')
|
||||||
con.target = rig
|
con.target = rig
|
||||||
con.subtarget = "Center-MCH"
|
con.subtarget = "MCH-Center"
|
||||||
con.track_axis = 'TRACK_NEGATIVE_Z'
|
con.track_axis = 'TRACK_NEGATIVE_Z'
|
||||||
|
|
||||||
# Build the widgets
|
# Build the widgets
|
||||||
left_widget = create_corner_widget("Left_corner", reverse=True)
|
left_widget = create_corner_widget("Left_Corner", reverse=True)
|
||||||
right_widget = create_corner_widget("Right_corner")
|
right_widget = create_corner_widget("Right_Corner")
|
||||||
parent_widget = create_circle_widget("Root", radius=0.5)
|
parent_widget = create_circle_widget("Root", radius=0.5)
|
||||||
camera_widget = create_circle_widget("Camera_2D", radius=0.3)
|
camera_widget = create_circle_widget("Camera_2D", radius=0.3)
|
||||||
|
|
||||||
# Add the custom bone shapes
|
# Add the custom bone shapes
|
||||||
pose_bones["Left_corner"].custom_shape = left_widget
|
pose_bones["Left_Corner"].custom_shape = left_widget
|
||||||
pose_bones["Right_corner"].custom_shape = right_widget
|
pose_bones["Right_Corner"].custom_shape = right_widget
|
||||||
pose_bones["Root"].custom_shape = parent_widget
|
pose_bones["Root"].custom_shape = parent_widget
|
||||||
pose_bones["Camera"].custom_shape = camera_widget
|
pose_bones["Camera"].custom_shape = camera_widget
|
||||||
|
|
||||||
# Lock the relevant loc, rot and scale
|
# Lock the relevant loc, rot and scale
|
||||||
pose_bones["Left_corner"].lock_rotation = (True,) * 3
|
pose_bones["Left_Corner"].lock_rotation = (True,) * 3
|
||||||
pose_bones["Right_corner"].lock_rotation = (True,) * 3
|
pose_bones["Right_Corner"].lock_rotation = (True,) * 3
|
||||||
pose_bones["Camera"].lock_rotation = (True,) * 3
|
pose_bones["Camera"].lock_rotation = (True,) * 3
|
||||||
pose_bones["Camera"].lock_scale = (True,) * 3
|
pose_bones["Camera"].lock_scale = (True,) * 3
|
||||||
|
|
||||||
@ -329,10 +358,10 @@ def create_2d_bones(context, rig, cam):
|
|||||||
var.name = 'frame_width'
|
var.name = 'frame_width'
|
||||||
var.type = 'LOC_DIFF'
|
var.type = 'LOC_DIFF'
|
||||||
var.targets[0].id = rig
|
var.targets[0].id = rig
|
||||||
var.targets[0].bone_target = "Left_corner"
|
var.targets[0].bone_target = "Left_Corner"
|
||||||
var.targets[0].transform_space = 'WORLD_SPACE'
|
var.targets[0].transform_space = 'WORLD_SPACE'
|
||||||
var.targets[1].id = rig
|
var.targets[1].id = rig
|
||||||
var.targets[1].bone_target = "Right_corner"
|
var.targets[1].bone_target = "Right_Corner"
|
||||||
var.targets[1].transform_space = 'WORLD_SPACE'
|
var.targets[1].transform_space = 'WORLD_SPACE'
|
||||||
|
|
||||||
for corner in ('left', 'right'):
|
for corner in ('left', 'right'):
|
||||||
@ -340,7 +369,7 @@ def create_2d_bones(context, rig, cam):
|
|||||||
var.name = corner + '_z'
|
var.name = corner + '_z'
|
||||||
var.type = 'TRANSFORMS'
|
var.type = 'TRANSFORMS'
|
||||||
var.targets[0].id = rig
|
var.targets[0].id = rig
|
||||||
var.targets[0].bone_target = corner.capitalize() + '_corner'
|
var.targets[0].bone_target = corner.capitalize() + '_Corner'
|
||||||
var.targets[0].transform_type = 'LOC_Z'
|
var.targets[0].transform_type = 'LOC_Z'
|
||||||
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
||||||
|
|
||||||
@ -361,7 +390,7 @@ def create_2d_bones(context, rig, cam):
|
|||||||
var.name = corner + '_x'
|
var.name = corner + '_x'
|
||||||
var.type = 'TRANSFORMS'
|
var.type = 'TRANSFORMS'
|
||||||
var.targets[0].id = rig
|
var.targets[0].id = rig
|
||||||
var.targets[0].bone_target = corner.capitalize() + '_corner'
|
var.targets[0].bone_target = corner.capitalize() + '_Corner'
|
||||||
var.targets[0].transform_type = 'LOC_X'
|
var.targets[0].transform_type = 'LOC_X'
|
||||||
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
||||||
|
|
||||||
@ -383,7 +412,7 @@ def create_2d_bones(context, rig, cam):
|
|||||||
var.name = '%s_%s' % (corner, direction)
|
var.name = '%s_%s' % (corner, direction)
|
||||||
var.type = 'TRANSFORMS'
|
var.type = 'TRANSFORMS'
|
||||||
var.targets[0].id = rig
|
var.targets[0].id = rig
|
||||||
var.targets[0].bone_target = corner.capitalize() + '_corner'
|
var.targets[0].bone_target = corner.capitalize() + '_Corner'
|
||||||
var.targets[0].transform_type = 'LOC_' + direction.upper()
|
var.targets[0].transform_type = 'LOC_' + direction.upper()
|
||||||
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
||||||
|
|
||||||
@ -420,7 +449,7 @@ def create_2d_bones(context, rig, cam):
|
|||||||
var.name = '%s_%s' % (corner, direction)
|
var.name = '%s_%s' % (corner, direction)
|
||||||
var.type = 'TRANSFORMS'
|
var.type = 'TRANSFORMS'
|
||||||
var.targets[0].id = rig
|
var.targets[0].id = rig
|
||||||
var.targets[0].bone_target = corner.capitalize() + '_corner'
|
var.targets[0].bone_target = corner.capitalize() + '_Corner'
|
||||||
var.targets[0].transform_type = 'LOC_' + direction.upper()
|
var.targets[0].transform_type = 'LOC_' + direction.upper()
|
||||||
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
var.targets[0].transform_space = 'TRANSFORM_SPACE'
|
||||||
|
|
||||||
@ -482,7 +511,7 @@ def build_camera_rig(context, mode):
|
|||||||
if mode == "2D":
|
if mode == "2D":
|
||||||
cam.parent_bone = "Camera"
|
cam.parent_bone = "Camera"
|
||||||
else:
|
else:
|
||||||
cam.parent_bone = "Camera_offset"
|
cam.parent_bone = "Camera_Offset"
|
||||||
|
|
||||||
# Change display to BBone: it just looks nicer
|
# Change display to BBone: it just looks nicer
|
||||||
rig.data.display_type = 'BBONE'
|
rig.data.display_type = 'BBONE'
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
from bpy.types import AddonPreferences
|
from bpy.types import AddonPreferences
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-FileCopyrightText: 2012-2022 Blender Foundation
|
||||||
#
|
#
|
||||||
# Contributed to by:
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
# testscreenings, Alejandro Omar Chocano Vasquez, Jimmy Hazevoet, meta-androcto
|
|
||||||
# Cmomoney, Jared Forsyth, Adam Newgas, Spivak Vladimir, Jared Forsyth, Atom
|
|
||||||
# Antonio Osprite, Marius Giurgi (DolphinDream)
|
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
"name": "Extra Objects",
|
"name": "Extra Objects",
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2013 Adam Newgas
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
# Copyright 2013 Adam Newgas
|
|
||||||
|
|
||||||
# Blender plugin for generating celtic knot curves from 3d meshes
|
# Blender plugin for generating celtic knot curves from 3d meshes
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# DevBo Task https://developer.blender.org/T37299
|
# DevBo Task https://developer.blender.org/T37299
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2012-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -698,7 +700,7 @@ class torus_knot_plus(Operator, AddObjectHelper):
|
|||||||
print("Approximate average TK length = %.2f" % avgTKLen)
|
print("Approximate average TK length = %.2f" % avgTKLen)
|
||||||
|
|
||||||
# x N factor = control points per unit length
|
# x N factor = control points per unit length
|
||||||
self.torus_res = max(3, avgTKLen / links * 8)
|
self.torus_res = max(3, int(avgTKLen / links) * 8)
|
||||||
|
|
||||||
# update align matrix
|
# update align matrix
|
||||||
self.align_matrix = align_matrix(self, context)
|
self.align_matrix = align_matrix(self, context)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# DevBo Task: https://developer.blender.org/T37377
|
# DevBo Task: https://developer.blender.org/T37377
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
"name": "Sapling Tree Gen",
|
"name": "Sapling Tree Gen",
|
||||||
"author": "Andrew Hale (TrumanBlending), Aaron Buchler, CansecoGPC",
|
"author": "Andrew Hale (TrumanBlending), Aaron Buchler, CansecoGPC",
|
||||||
"version": (0, 3, 4),
|
"version": (0, 3, 5),
|
||||||
"blender": (2, 80, 0),
|
"blender": (2, 80, 0),
|
||||||
"location": "View3D > Add > Curve",
|
"location": "View3D > Add > Curve",
|
||||||
"description": ("Adds a parametric tree. The method is presented by "
|
"description": ("Adds a parametric tree. The method is presented by "
|
||||||
@ -184,7 +186,7 @@ class ImportData(Operator):
|
|||||||
f = open(os.path.join(getPresetpaths()[1], self.filename), 'r')
|
f = open(os.path.join(getPresetpaths()[1], self.filename), 'r')
|
||||||
# Find the first non-comment, non-blank line, this must contain preset text (all on one line).
|
# Find the first non-comment, non-blank line, this must contain preset text (all on one line).
|
||||||
for settings in f:
|
for settings in f:
|
||||||
if settings and (not settings.startswith("#")):
|
if settings and (not settings.isspace()) and (not settings.startswith("#")):
|
||||||
break
|
break
|
||||||
f.close()
|
f.close()
|
||||||
# print(settings)
|
# print(settings)
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{'handleType': '0', 'rotate': (99.5, 137.5, 137.5, 137.5), 'baseSize_s': 0.1600000560283661, 'af2': 1.0, 'pruneRatio': 0.75, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.5, 'boneStep': (1, 1, 1, 1), 'nrings': 0, 'leafScale': 0.4000000059604645, 'makeMesh': False, 'baseSize': 0.30000001192092896, 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'shapeS': '10', 'pruneBase': 0.11999999731779099, 'af3': 4.0, 'loopFrames': 0, 'horzLeaves': True, 'curveRes': (8, 5, 3, 1), 'minRadius': 0.001500000013038516, 'leafDist': '6', 'rotateV': (15.0, 0.0, 0.0, 0.0), 'bevel': True, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleV': 0.15000000596046448, 'prunePowerHigh': 0.5, 'rootFlare': 1.0, 'prune': False, 'branches': (0, 55, 10, 1), 'taperCrown': 0.5, 'useArm': False, 'splitBias': 0.5499999523162842, 'segSplits': (0.10000000149011612, 0.5, 0.20000000298023224, 0.0), 'resU': 4, 'useParentAngle': True, 'ratio': 0.014999999664723873, 'taper': (1.0, 1.0, 1.0, 1.0), 'length': (0.800000011920929, 0.6000000238418579, 0.5, 0.10000000149011612), 'scale0': 1.0, 'scaleV': 2.0, 'leafRotate': 137.5, 'shape': '7', 'scaleV0': 0.10000000149011612, 'leaves': 150, 'scale': 5.0, 'leafShape': 'hex', 'prunePowerLow': 0.0010000000474974513, 'splitAngle': (18.0, 18.0, 22.0, 0.0), 'seed': 0, 'showLeaves': True, 'downAngle': (0.0, 26.209999084472656, 52.55999755859375, 30.0), 'leafDownAngle': 30.0, 'autoTaper': True, 'rMode': 'rotate', 'leafScaleX': 0.20000000298023224, 'leafScaleT': 0.10000000149011612, 'gust': 1.0, 'armAnim': False, 'wind': 1.0, 'leafRotateV': 15.0, 'baseSplits': 3, 'attractOut': (0.0, 0.800000011920929, 0.0, 0.0), 'armLevels': 2, 'leafAnim': False, 'ratioPower': 1.2000000476837158, 'splitHeight': 0.20000000298023224, 'splitByLen': True, 'af1': 1.0, 'branchDist': 1.5, 'closeTip': False, 'previewArm': False, 'attractUp': (3.5, -1.899843692779541, 0.0, 0.0), 'bevelRes': 1, 'pruneWidth': 0.3400000035762787, 'gustF': 0.07500000298023224, 'leafangle': -12.0, 'curveV': (20.0, 50.0, 75.0, 0.0), 'useOldDownAngle': True, 'leafDownAngleV': -10.0, 'frameRate': 1.0, 'splitAngleV': (5.0, 5.0, 5.0, 0.0), 'levels': 2, 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'curve': (0.0, -15.0, 0.0, 0.0)}
|
{'handleType': '0', 'rotate': (99.5, 137.5, 137.5, 137.5), 'baseSize_s': 0.1600000560283661, 'af2': 1.0, 'pruneRatio': 0.75, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.5, 'boneStep': (1, 1, 1, 1), 'nrings': 0, 'leafScale': 0.4000000059604645, 'makeMesh': False, 'baseSize': 0.30000001192092896, 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'shapeS': '10', 'pruneBase': 0.11999999731779099, 'af3': 4.0, 'loopFrames': 0, 'horzLeaves': True, 'curveRes': (8, 5, 3, 1), 'minRadius': 0.001500000013038516, 'leafDist': '6', 'rotateV': (15.0, 0.0, 0.0, 0.0), 'bevel': True, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleV': 0.15000000596046448, 'prunePowerHigh': 0.5, 'rootFlare': 1.0, 'prune': False, 'branches': (0, 55, 10, 1), 'taperCrown': 0.5, 'useArm': False, 'splitBias': 0.5499999523162842, 'segSplits': (0.10000000149011612, 0.5, 0.20000000298023224, 0.0), 'resU': 4, 'useParentAngle': True, 'ratio': 0.014999999664723873, 'taper': (1.0, 1.0, 1.0, 1.0), 'length': (0.800000011920929, 0.6000000238418579, 0.5, 0.10000000149011612), 'scale0': 1.0, 'scaleV': 2.0, 'leafRotate': 137.5, 'shape': '7', 'scaleV0': 0.10000000149011612, 'leaves': 150, 'scale': 5.0, 'leafShape': 'hex', 'prunePowerLow': 0.0010000000474974513, 'splitAngle': (18.0, 18.0, 22.0, 0.0), 'seed': 0, 'showLeaves': True, 'downAngle': (0.0, 26.209999084472656, 52.55999755859375, 30.0), 'leafDownAngle': 30.0, 'autoTaper': True, 'rMode': 'rotate', 'leafScaleX': 0.20000000298023224, 'leafScaleT': 0.10000000149011612, 'gust': 1.0, 'armAnim': False, 'wind': 1.0, 'leafRotateV': 15.0, 'baseSplits': 3, 'attractOut': (0.0, 0.800000011920929, 0.0, 0.0), 'armLevels': 2, 'leafAnim': False, 'ratioPower': 1.2000000476837158, 'splitHeight': 0.20000000298023224, 'splitByLen': True, 'af1': 1.0, 'branchDist': 1.5, 'closeTip': False, 'previewArm': False, 'attractUp': (3.5, -1.899843692779541, 0.0, 0.0), 'bevelRes': 1, 'pruneWidth': 0.3400000035762787, 'gustF': 0.07500000298023224, 'leafangle': -12.0, 'curveV': (20.0, 50.0, 75.0, 0.0), 'useOldDownAngle': True, 'leafDownAngleV': -10.0, 'frameRate': 1.0, 'splitAngleV': (5.0, 5.0, 5.0, 0.0), 'levels': 2, 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'curve': (0.0, -15.0, 0.0, 0.0)}
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{'pruneRatio': 1.0, 'wind': 1.0, 'prune': False, 'splitByLen': True, 'attractUp': (0.0, 0.3499999940395355, 0.25, 0.15000000596046448), 'segSplits': (0.0, 0.3499999940395355, 0.6000000238418579, 0.0), 'rMode': 'rotate', 'rotate': (99.5, 137.5, -45.0, -60.0), 'curve': (0.0, 20.0, -10.0, 0.0), 'af2': 1.0, 'seed': 0, 'length': (1.0, 0.20000000298023224, 0.550000011920929, 0.44999998807907104), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafScaleT': 0.0, 'scaleV': 15.0, 'splitHeight': 0.20000000298023224, 'minRadius': 0.0020000000949949026, 'leafRotate': 137.5, 'curveRes': (12, 4, 3, 2), 'curveV': (40.0, 30.0, 15.0, 10.0), 'nrings': 0, 'levels': 4, 'frameRate': 1.0, 'ratioPower': 1.2000000476837158, 'leafDownAngle': 45.0, 'armLevels': 2, 'branches': (0, 75, 16, 10), 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'shape': '8', 'rotateV': (15.0, 0.0, 15.0, 45.0), 'loopFrames': 0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'taperCrown': 0.0, 'prunePowerLow': 0.0010000000474974513, 'handleType': '0', 'af3': 4.0, 'useParentAngle': True, 'customShape': (0.5, 1.0, 0.3499999940395355, 0.10000000149011612), 'scale0': 1.0, 'rootFlare': 1.2999999523162842, 'leafScaleV': 0.0, 'leafScale': 0.17000000178813934, 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'downAngleV': (0.0, 30.0, 10.0, 10.0), 'af1': 1.0, 'autoTaper': True, 'scale': 35.0, 'gustF': 0.07500000298023224, 'ratio': 0.014999999664723873, 'leafScaleX': 1.0, 'shapeS': '7', 'bevelRes': 1, 'bevel': True, 'leaves': 25, 'splitAngle': (0.0, 12.0, 18.0, 0.0), 'downAngle': (90.0, 130.0, 45.0, 45.0), 'previewArm': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'showLeaves': False, 'leafAnim': False, 'baseSize': 0.33000001311302185, 'gust': 1.0, 'horzLeaves': True, 'baseSize_s': 0.5, 'leafDownAngleV': 10.0, 'makeMesh': False, 'leafDist': '6', 'armAnim': False, 'baseSplits': 0, 'lengthV': (0.0, 0.10000000149011612, 0.25, 0.25), 'branchDist': 1.850000023841858, 'useArm': False, 'useOldDownAngle': False, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneBase': 0.30000001192092896, 'splitBias': 0.0, 'boneStep': (1, 1, 1, 1), 'leafShape': 'hex', 'resU': 4, 'prunePowerHigh': 0.5, 'closeTip': True, 'pruneWidth': 0.4000000059604645, 'leafRotateV': 0.0, 'pruneWidthPeak': 0.6000000238418579}
|
{'pruneRatio': 1.0, 'wind': 1.0, 'prune': False, 'splitByLen': True, 'attractUp': (0.0, 0.3499999940395355, 0.25, 0.15000000596046448), 'segSplits': (0.0, 0.3499999940395355, 0.6000000238418579, 0.0), 'rMode': 'rotate', 'rotate': (99.5, 137.5, -45.0, -60.0), 'curve': (0.0, 20.0, -10.0, 0.0), 'af2': 1.0, 'seed': 0, 'length': (1.0, 0.20000000298023224, 0.550000011920929, 0.44999998807907104), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafScaleT': 0.0, 'scaleV': 15.0, 'splitHeight': 0.20000000298023224, 'minRadius': 0.0020000000949949026, 'leafRotate': 137.5, 'curveRes': (12, 4, 3, 2), 'curveV': (40.0, 30.0, 15.0, 10.0), 'nrings': 0, 'levels': 4, 'frameRate': 1.0, 'ratioPower': 1.2000000476837158, 'leafDownAngle': 45.0, 'armLevels': 2, 'branches': (0, 75, 16, 10), 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'shape': '8', 'rotateV': (15.0, 0.0, 15.0, 45.0), 'loopFrames': 0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'taperCrown': 0.0, 'prunePowerLow': 0.0010000000474974513, 'handleType': '0', 'af3': 4.0, 'useParentAngle': True, 'customShape': (0.5, 1.0, 0.3499999940395355, 0.10000000149011612), 'scale0': 1.0, 'rootFlare': 1.2999999523162842, 'leafScaleV': 0.0, 'leafScale': 0.17000000178813934, 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'downAngleV': (0.0, 30.0, 10.0, 10.0), 'af1': 1.0, 'autoTaper': True, 'scale': 35.0, 'gustF': 0.07500000298023224, 'ratio': 0.014999999664723873, 'leafScaleX': 1.0, 'shapeS': '7', 'bevelRes': 1, 'bevel': True, 'leaves': 25, 'splitAngle': (0.0, 12.0, 18.0, 0.0), 'downAngle': (90.0, 130.0, 45.0, 45.0), 'previewArm': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'showLeaves': False, 'leafAnim': False, 'baseSize': 0.33000001311302185, 'gust': 1.0, 'horzLeaves': True, 'baseSize_s': 0.5, 'leafDownAngleV': 10.0, 'makeMesh': False, 'leafDist': '6', 'armAnim': False, 'baseSplits': 0, 'lengthV': (0.0, 0.10000000149011612, 0.25, 0.25), 'branchDist': 1.850000023841858, 'useArm': False, 'useOldDownAngle': False, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneBase': 0.30000001192092896, 'splitBias': 0.0, 'boneStep': (1, 1, 1, 1), 'leafShape': 'hex', 'resU': 4, 'prunePowerHigh': 0.5, 'closeTip': True, 'pruneWidth': 0.4000000059604645, 'leafRotateV': 0.0, 'pruneWidthPeak': 0.6000000238418579}
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{'leafScaleT': -0.5, 'shapeS': '10', 'scaleV': 2.0, 'resU': 4, 'boneStep': (1, 1, 1, 1), 'af3': 4.0, 'baseSize': 0.4000000059604645, 'prunePowerLow': 0.0010000000474974513, 'leafRotateV': 0.0, 'rootFlare': 1.0, 'customShape': (0.699999988079071, 1.0, 0.20000000298023224, 0.800000011920929), 'attractOut': (0.0, 0.75, 0.25, 0.0), 'useArm': False, 'branches': (0, 50, 10, 16), 'leafDownAngle': 45.0, 'length': (1.0, 0.30000001192092896, 0.5, 0.20000000298023224), 'segSplits': (0.25, 0.4000000059604645, 0.5, 0.0), 'makeMesh': False, 'curveV': (400.0, 150.0, 100.0, 0.0), 'curveBack': (0.0, 0.0, 0.0, 0.0), 'af1': 1.0, 'closeTip': False, 'frameRate': 1.0, 'leafangle': -10.0, 'af2': 1.0, 'rMode': 'rotate', 'leafScaleV': 0.0, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'useParentAngle': False, 'taperCrown': 0.0, 'minRadius': 0.001500000013038516, 'splitAngleV': (5.0, 5.0, 0.0, 0.0), 'scaleV0': 0.10000000149011612, 'bevel': True, 'leafDownAngleV': 10.0, 'previewArm': False, 'showLeaves': True, 'ratioPower': 1.25, 'handleType': '0', 'branchDist': 1.0, 'leafScaleX': 0.20000000298023224, 'prune': False, 'splitHeight': 0.30000001192092896, 'baseSplits': 2, 'baseSize_s': 0.25, 'downAngle': (90.0, 90.0, 30.0, 30.0), 'bevelRes': 1, 'leafAnim': False, 'loopFrames': 0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'downAngleV': (0.0, 90.0, 15.0, 10.0), 'leafRotate': 137.5, 'wind': 1.0, 'leaves': -5, 'curve': (0.0, -20.0, -20.0, 0.0), 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneRatio': 1.0, 'pruneBase': 0.30000001192092896, 'armAnim': False, 'splitBias': 0.0, 'rotate': (99.5, 137.5, 137.5, 137.5), 'armLevels': 2, 'scale': 6.0, 'prunePowerHigh': 0.5, 'nrings': 0, 'splitByLen': True, 'leafShape': 'hex', 'splitAngle': (15.0, 20.0, 25.0, 0.0), 'ratio': 0.019999999552965164, 'scale0': 1.0, 'autoTaper': True, 'pruneWidth': 0.4000000059604645, 'leafScale': 0.17000000178813934, 'seed': 0, 'curveRes': (16, 5, 3, 1), 'horzLeaves': True, 'useOldDownAngle': False, 'levels': 4, 'pruneWidthPeak': 0.6000000238418579, 'attractUp': (0.0, -0.3499999940395355, -0.20000000298023224, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'leafDist': '6', 'gustF': 0.07500000298023224, 'shape': '8'}
|
{'leafScaleT': -0.5, 'shapeS': '10', 'scaleV': 2.0, 'resU': 4, 'boneStep': (1, 1, 1, 1), 'af3': 4.0, 'baseSize': 0.4000000059604645, 'prunePowerLow': 0.0010000000474974513, 'leafRotateV': 0.0, 'rootFlare': 1.0, 'customShape': (0.699999988079071, 1.0, 0.20000000298023224, 0.800000011920929), 'attractOut': (0.0, 0.75, 0.25, 0.0), 'useArm': False, 'branches': (0, 50, 10, 16), 'leafDownAngle': 45.0, 'length': (1.0, 0.30000001192092896, 0.5, 0.20000000298023224), 'segSplits': (0.25, 0.4000000059604645, 0.5, 0.0), 'makeMesh': False, 'curveV': (400.0, 150.0, 100.0, 0.0), 'curveBack': (0.0, 0.0, 0.0, 0.0), 'af1': 1.0, 'closeTip': False, 'frameRate': 1.0, 'leafangle': -10.0, 'af2': 1.0, 'rMode': 'rotate', 'leafScaleV': 0.0, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'useParentAngle': False, 'taperCrown': 0.0, 'minRadius': 0.001500000013038516, 'splitAngleV': (5.0, 5.0, 0.0, 0.0), 'scaleV0': 0.10000000149011612, 'bevel': True, 'leafDownAngleV': 10.0, 'previewArm': False, 'showLeaves': True, 'ratioPower': 1.25, 'handleType': '0', 'branchDist': 1.0, 'leafScaleX': 0.20000000298023224, 'prune': False, 'splitHeight': 0.30000001192092896, 'baseSplits': 2, 'baseSize_s': 0.25, 'downAngle': (90.0, 90.0, 30.0, 30.0), 'bevelRes': 1, 'leafAnim': False, 'loopFrames': 0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'downAngleV': (0.0, 90.0, 15.0, 10.0), 'leafRotate': 137.5, 'wind': 1.0, 'leaves': -5, 'curve': (0.0, -20.0, -20.0, 0.0), 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneRatio': 1.0, 'pruneBase': 0.30000001192092896, 'armAnim': False, 'splitBias': 0.0, 'rotate': (99.5, 137.5, 137.5, 137.5), 'armLevels': 2, 'scale': 6.0, 'prunePowerHigh': 0.5, 'nrings': 0, 'splitByLen': True, 'leafShape': 'hex', 'splitAngle': (15.0, 20.0, 25.0, 0.0), 'ratio': 0.019999999552965164, 'scale0': 1.0, 'autoTaper': True, 'pruneWidth': 0.4000000059604645, 'leafScale': 0.17000000178813934, 'seed': 0, 'curveRes': (16, 5, 3, 1), 'horzLeaves': True, 'useOldDownAngle': False, 'levels': 4, 'pruneWidthPeak': 0.6000000238418579, 'attractUp': (0.0, -0.3499999940395355, -0.20000000298023224, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'leafDist': '6', 'gustF': 0.07500000298023224, 'shape': '8'}
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2011-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{'leafScale': 0.17000000178813934, 'autoTaper': True, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'curve': (0.0, -40.0, -40.0, 0.0), 'ratio': 0.014999999664723873, 'splitBias': 0.0, 'pruneWidth': 0.4000000059604645, 'downAngleV': (0.0, 80.0, 10.0, 10.0), 'rotate': (99.5, 137.5, 137.5, 137.5), 'pruneRatio': 1.0, 'leafDownAngle': 45.0, 'makeMesh': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'rMode': 'rotate', 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'branchDist': 1.0, 'bevel': True, 'minRadius': 0.001500000013038516, 'prune': False, 'leafRotateV': 0.0, 'splitAngle': (0.0, 0.0, 0.0, 0.0), 'armAnim': False, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'taperCrown': 0.0, 'baseSplits': 0, 'baseSize_s': 0.25, 'handleType': '0', 'baseSize': 0.4000000059604645, 'af1': 1.0, 'levels': 2, 'leafScaleV': 0.0, 'resU': 4, 'seed': 0, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'prunePowerHigh': 0.5, 'splitByLen': True, 'wind': 1.0, 'shape': '7', 'prunePowerLow': 0.0010000000474974513, 'scale': 13.0, 'leafAnim': False, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleX': 1.0, 'horzLeaves': True, 'splitHeight': 0.20000000298023224, 'leafScaleT': 0.0, 'scaleV': 3.0, 'leafDist': '6', 'nrings': 0, 'curveRes': (8, 5, 3, 1), 'shapeS': '4', 'bevelRes': 0, 'useOldDownAngle': False, 'useParentAngle': True, 'armLevels': 2, 'scale0': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.6000000238418579, 'previewArm': False, 'leaves': 25, 'ratioPower': 1.100000023841858, 'gustF': 0.07500000298023224, 'curveV': (20.0, 50.0, 75.0, 0.0), 'showLeaves': False, 'frameRate': 1.0, 'length': (1.0, 0.30000001192092896, 0.6000000238418579, 0.44999998807907104), 'branches': (0, 50, 30, 10), 'useArm': False, 'loopFrames': 0, 'gust': 1.0, 'af3': 4.0, 'closeTip': False, 'leafRotate': 137.5, 'attractUp': (0.0, 0.0, 0.5, 0.5), 'leafDownAngleV': 10.0, 'rootFlare': 1.0, 'af2': 1.0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'rotateV': (15.0, 0.0, 0.0, 0.0), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'segSplits': (0.0, 0.0, 0.0, 0.0)}
|
{'leafScale': 0.17000000178813934, 'autoTaper': True, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'curve': (0.0, -40.0, -40.0, 0.0), 'ratio': 0.014999999664723873, 'splitBias': 0.0, 'pruneWidth': 0.4000000059604645, 'downAngleV': (0.0, 80.0, 10.0, 10.0), 'rotate': (99.5, 137.5, 137.5, 137.5), 'pruneRatio': 1.0, 'leafDownAngle': 45.0, 'makeMesh': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'rMode': 'rotate', 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'branchDist': 1.0, 'bevel': True, 'minRadius': 0.001500000013038516, 'prune': False, 'leafRotateV': 0.0, 'splitAngle': (0.0, 0.0, 0.0, 0.0), 'armAnim': False, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'taperCrown': 0.0, 'baseSplits': 0, 'baseSize_s': 0.25, 'handleType': '0', 'baseSize': 0.4000000059604645, 'af1': 1.0, 'levels': 2, 'leafScaleV': 0.0, 'resU': 4, 'seed': 0, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'prunePowerHigh': 0.5, 'splitByLen': True, 'wind': 1.0, 'shape': '7', 'prunePowerLow': 0.0010000000474974513, 'scale': 13.0, 'leafAnim': False, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleX': 1.0, 'horzLeaves': True, 'splitHeight': 0.20000000298023224, 'leafScaleT': 0.0, 'scaleV': 3.0, 'leafDist': '6', 'nrings': 0, 'curveRes': (8, 5, 3, 1), 'shapeS': '4', 'bevelRes': 0, 'useOldDownAngle': False, 'useParentAngle': True, 'armLevels': 2, 'scale0': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.6000000238418579, 'previewArm': False, 'leaves': 25, 'ratioPower': 1.100000023841858, 'gustF': 0.07500000298023224, 'curveV': (20.0, 50.0, 75.0, 0.0), 'showLeaves': False, 'frameRate': 1.0, 'length': (1.0, 0.30000001192092896, 0.6000000238418579, 0.44999998807907104), 'branches': (0, 50, 30, 10), 'useArm': False, 'loopFrames': 0, 'gust': 1.0, 'af3': 4.0, 'closeTip': False, 'leafRotate': 137.5, 'attractUp': (0.0, 0.0, 0.5, 0.5), 'leafDownAngleV': 10.0, 'rootFlare': 1.0, 'af2': 1.0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'rotateV': (15.0, 0.0, 0.0, 0.0), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'segSplits': (0.0, 0.0, 0.0, 0.0)}
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{'leafDownAngle': 45.0, 'handleType': '0', 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'useArm': False, 'rootFlare': 1.0, 'segSplits': (0.44999998807907104, 0.5, 0.800000011920929, 0.0), 'leafRotateV': 0.0, 'leaves': 32, 'baseSplits': 1, 'rotate': (99.5, 137.5, 137.5, 137.5), 'scale': 8.0, 'makeMesh': False, 'leafDownAngleV': 10.0, 'curve': (0.0, 30.0, 0.0, 0.0), 'splitBias': 0.0, 'leafScale': 0.18000000715255737, 'levels': 3, 'leafScaleT': 0.3499999940395355, 'seed': 0, 'autoTaper': True, 'pruneWidthPeak': 0.6000000238418579, 'branchDist': 1.25, 'prune': False, 'splitAngle': (8.0, 18.0, 18.0, 0.0), 'shapeS': '7', 'useParentAngle': True, 'af1': 1.0, 'armAnim': False, 'resU': 4, 'ratioPower': 1.2000000476837158, 'scaleV': 2.0, 'splitHeight': 0.20000000298023224, 'leafRotate': 137.5, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'shape': '7', 'ratio': 0.019999999552965164, 'rMode': 'rotate', 'downAngle': (90.0, 48.0, 45.0, 45.0), 'bevelRes': 2, 'showLeaves': True, 'wind': 1.0, 'loopFrames': 0, 'splitByLen': True, 'lengthV': (0.0, 0.029999999329447746, 0.15000000596046448, 0.0), 'leafShape': 'hex', 'downAngleV': (0.0, 48.0, 10.0, 10.0), 'leafangle': -35.0, 'bevel': True, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'previewArm': False, 'frameRate': 1.0, 'curveBack': (0.0, -30.0, -20.0, 0.0), 'taperCrown': 0.20000000298023224, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'scaleV0': 0.20000000298023224, 'gust': 1.0, 'horzLeaves': True, 'attractUp': (-0.5, -0.699999988079071, 0.0, 0.0), 'splitAngleV': (2.0, 5.0, 5.0, 0.0), 'pruneRatio': 1.0, 'curveV': (10.0, 35.0, 35.0, 0.0), 'prunePowerHigh': 0.5, 'closeTip': False, 'leafScaleV': 0.20000000298023224, 'leafAnim': False, 'minRadius': 0.0020000000949949026, 'af3': 4.0, 'attractOut': (0.0, 0.4000000059604645, 0.5, 0.0), 'branches': (0, 110, 18, 10), 'leafScaleX': 0.6499999761581421, 'length': (1.0, 0.46000000834465027, 0.44999998807907104, 0.44999998807907104), 'useOldDownAngle': False, 'armLevels': 2, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'curveRes': (8, 5, 3, 1), 'prunePowerLow': 0.0010000000474974513, 'af2': 1.0, 'pruneWidth': 0.4000000059604645, 'nrings': 0, 'baseSize_s': 0.25, 'baseSize': 0.2800000011920929, 'leafDist': '6', 'scale0': 1.0}
|
{'leafDownAngle': 45.0, 'handleType': '0', 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'useArm': False, 'rootFlare': 1.0, 'segSplits': (0.44999998807907104, 0.5, 0.800000011920929, 0.0), 'leafRotateV': 0.0, 'leaves': 32, 'baseSplits': 1, 'rotate': (99.5, 137.5, 137.5, 137.5), 'scale': 8.0, 'makeMesh': False, 'leafDownAngleV': 10.0, 'curve': (0.0, 30.0, 0.0, 0.0), 'splitBias': 0.0, 'leafScale': 0.18000000715255737, 'levels': 3, 'leafScaleT': 0.3499999940395355, 'seed': 0, 'autoTaper': True, 'pruneWidthPeak': 0.6000000238418579, 'branchDist': 1.25, 'prune': False, 'splitAngle': (8.0, 18.0, 18.0, 0.0), 'shapeS': '7', 'useParentAngle': True, 'af1': 1.0, 'armAnim': False, 'resU': 4, 'ratioPower': 1.2000000476837158, 'scaleV': 2.0, 'splitHeight': 0.20000000298023224, 'leafRotate': 137.5, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'shape': '7', 'ratio': 0.019999999552965164, 'rMode': 'rotate', 'downAngle': (90.0, 48.0, 45.0, 45.0), 'bevelRes': 2, 'showLeaves': True, 'wind': 1.0, 'loopFrames': 0, 'splitByLen': True, 'lengthV': (0.0, 0.029999999329447746, 0.15000000596046448, 0.0), 'leafShape': 'hex', 'downAngleV': (0.0, 48.0, 10.0, 10.0), 'leafangle': -35.0, 'bevel': True, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'previewArm': False, 'frameRate': 1.0, 'curveBack': (0.0, -30.0, -20.0, 0.0), 'taperCrown': 0.20000000298023224, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'scaleV0': 0.20000000298023224, 'gust': 1.0, 'horzLeaves': True, 'attractUp': (-0.5, -0.699999988079071, 0.0, 0.0), 'splitAngleV': (2.0, 5.0, 5.0, 0.0), 'pruneRatio': 1.0, 'curveV': (10.0, 35.0, 35.0, 0.0), 'prunePowerHigh': 0.5, 'closeTip': False, 'leafScaleV': 0.20000000298023224, 'leafAnim': False, 'minRadius': 0.0020000000949949026, 'af3': 4.0, 'attractOut': (0.0, 0.4000000059604645, 0.5, 0.0), 'branches': (0, 110, 18, 10), 'leafScaleX': 0.6499999761581421, 'length': (1.0, 0.46000000834465027, 0.44999998807907104, 0.44999998807907104), 'useOldDownAngle': False, 'armLevels': 2, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'curveRes': (8, 5, 3, 1), 'prunePowerLow': 0.0010000000474974513, 'af2': 1.0, 'pruneWidth': 0.4000000059604645, 'nrings': 0, 'baseSize_s': 0.25, 'baseSize': 0.2800000011920929, 'leafDist': '6', 'scale0': 1.0}
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{'downAngleV': (0.0, 42.0, 10.0, 10.0), 'useOldDownAngle': False, 'splitBias': 0.0, 'branchDist': 1.600000023841858, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafScale': 0.20000000298023224, 'baseSize': 0.06799984723329544, 'shapeS': '4', 'leafScaleX': 0.019999999552965164, 'nrings': 7, 'gustF': 0.07500000298023224, 'showLeaves': True, 'taperCrown': 0.0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafShape': 'rect', 'makeMesh': False, 'scale0': 1.0, 'length': (1.0, 0.3199999928474426, 0.75, 0.44999998807907104), 'ratioPower': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'baseSize_s': 0.25, 'splitHeight': 0.20000000298023224, 'handleType': '0', 'pruneBase': 0.30000001192092896, 'attractUp': (2.0, 0.0, 0.5, 0.5), 'boneStep': (1, 1, 1, 1), 'seed': 0, 'leafDownAngle': 65.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafAnim': False, 'gust': 1.0, 'curveV': (100.0, 100.0, 100.0, 0.0), 'splitAngle': (0.0, 22.0, 25.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafangle': -10.0, 'frameRate': 1.0, 'pruneRatio': 1.0, 'rMode': 'rotate', 'shape': '8', 'segSplits': (0.0, 0.30000001192092896, 0.4000000059604645, 0.0), 'branches': (0, 36, 7, 10), 'prunePowerHigh': 0.5, 'af1': 1.0, 'closeTip': False, 'splitAngleV': (0.0, 5.0, 0.0, 0.0), 'ratio': 0.019999999552965164, 'minRadius': 0.001500000013038516, 'levels': 3, 'leafRotate': 137.5, 'armLevels': 2, 'horzLeaves': False, 'pruneWidth': 0.4000000059604645, 'baseSplits': 0, 'scale': 4.0, 'leafScaleV': 0.10000000149011612, 'splitByLen': True, 'useParentAngle': True, 'previewArm': False, 'wind': 1.0, 'leafDist': '3', 'leafScaleT': 0.25, 'bevel': True, 'resU': 4, 'leafDownAngleV': 55.0, 'pruneWidthPeak': 0.6000000238418579, 'af3': 4.0, 'scaleV': 1.0, 'rootFlare': 1.0, 'loopFrames': 0, 'curve': (0.0, -40.0, -30.0, 0.0), 'leaves': 500, 'scaleV0': 0.10000000149011612, 'rotate': (99.5, 137.5, -90.0, 137.5), 'curveRes': (8, 5, 3, 1), 'useArm': False, 'af2': 1.0, 'bevelRes': 2, 'autoTaper': True, 'lengthV': (0.0, 0.15000000596046448, 0.25, 0.0), 'armAnim': False, 'prune': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafRotateV': 30.0, 'customShape': (0.8999999761581421, 1.0, 0.20000000298023224, 0.20000000298023224), 'rotateV': (15.0, 0.0, 0.0, 0.0)}
|
{'downAngleV': (0.0, 42.0, 10.0, 10.0), 'useOldDownAngle': False, 'splitBias': 0.0, 'branchDist': 1.600000023841858, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafScale': 0.20000000298023224, 'baseSize': 0.06799984723329544, 'shapeS': '4', 'leafScaleX': 0.019999999552965164, 'nrings': 7, 'gustF': 0.07500000298023224, 'showLeaves': True, 'taperCrown': 0.0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafShape': 'rect', 'makeMesh': False, 'scale0': 1.0, 'length': (1.0, 0.3199999928474426, 0.75, 0.44999998807907104), 'ratioPower': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'baseSize_s': 0.25, 'splitHeight': 0.20000000298023224, 'handleType': '0', 'pruneBase': 0.30000001192092896, 'attractUp': (2.0, 0.0, 0.5, 0.5), 'boneStep': (1, 1, 1, 1), 'seed': 0, 'leafDownAngle': 65.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafAnim': False, 'gust': 1.0, 'curveV': (100.0, 100.0, 100.0, 0.0), 'splitAngle': (0.0, 22.0, 25.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafangle': -10.0, 'frameRate': 1.0, 'pruneRatio': 1.0, 'rMode': 'rotate', 'shape': '8', 'segSplits': (0.0, 0.30000001192092896, 0.4000000059604645, 0.0), 'branches': (0, 36, 7, 10), 'prunePowerHigh': 0.5, 'af1': 1.0, 'closeTip': False, 'splitAngleV': (0.0, 5.0, 0.0, 0.0), 'ratio': 0.019999999552965164, 'minRadius': 0.001500000013038516, 'levels': 3, 'leafRotate': 137.5, 'armLevels': 2, 'horzLeaves': False, 'pruneWidth': 0.4000000059604645, 'baseSplits': 0, 'scale': 4.0, 'leafScaleV': 0.10000000149011612, 'splitByLen': True, 'useParentAngle': True, 'previewArm': False, 'wind': 1.0, 'leafDist': '3', 'leafScaleT': 0.25, 'bevel': True, 'resU': 4, 'leafDownAngleV': 55.0, 'pruneWidthPeak': 0.6000000238418579, 'af3': 4.0, 'scaleV': 1.0, 'rootFlare': 1.0, 'loopFrames': 0, 'curve': (0.0, -40.0, -30.0, 0.0), 'leaves': 500, 'scaleV0': 0.10000000149011612, 'rotate': (99.5, 137.5, -90.0, 137.5), 'curveRes': (8, 5, 3, 1), 'useArm': False, 'af2': 1.0, 'bevelRes': 2, 'autoTaper': True, 'lengthV': (0.0, 0.15000000596046448, 0.25, 0.0), 'armAnim': False, 'prune': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafRotateV': 30.0, 'customShape': (0.8999999761581421, 1.0, 0.20000000298023224, 0.20000000298023224), 'rotateV': (15.0, 0.0, 0.0, 0.0)}
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{'showLeaves': False, 'leafScaleX': 0.20000000298023224, 'horzLeaves': False, 'useArm': False, 'rMode': 'rotate', 'branchDist': 1.5, 'scale': 15.0, 'armLevels': 2, 'gustF': 0.07500000298023224, 'closeTip': False, 'shape': '4', 'minRadius': 0.001500000013038516, 'leafScaleT': 0.0, 'leafDownAngle': 30.0, 'splitByLen': True, 'prunePowerLow': 0.0010000000474974513, 'splitBias': 0.0, 'autoTaper': True, 'leafRotateV': 30.0, 'scale0': 1.0, 'length': (0.75, 0.5, 1.5, 0.10000000149011612), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'bevel': True, 'baseSize': 0.20000000298023224, 'handleType': '1', 'ratioPower': 1.75, 'leafScaleV': 0.0, 'ratio': 0.02500000037252903, 'scaleV': 5.0, 'gust': 1.0, 'baseSplits': 2, 'loopFrames': 0, 'curve': (0.0, 20.0, -40.0, 0.0), 'pruneWidth': 0.5, 'shapeS': '4', 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'branches': (0, 35, 15, 1), 'frameRate': 1.0, 'splitAngle': (12.0, 30.0, 16.0, 0.0), 'seed': 2789, 'nrings': 0, 'previewArm': False, 'pruneWidthPeak': 0.6000000238418579, 'af1': 1.0, 'splitHeight': 0.20000000298023224, 'rotateV': (15.0, 15.0, 45.0, 0.0), 'attractUp': (0.0, 0.0, -2.75, -3.0), 'curveV': (150.0, 120.0, 0.0, 0.0), 'makeMesh': False, 'leaves': 150, 'curveBack': (0.0, 20.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'resU': 4, 'useOldDownAngle': False, 'pruneRatio': 0.800000011920929, 'levels': 3, 'taperCrown': 0.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafRotate': 137.5, 'prunePowerHigh': 0.20000000298023224, 'prune': False, 'leafangle': 0.0, 'bevelRes': 1, 'curveRes': (8, 16, 8, 1), 'rotate': (99.5, 137.5, -60.0, 140.0), 'pruneBase': 0.07000000029802322, 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'scaleV0': 0.0, 'boneStep': (1, 1, 1, 1), 'useParentAngle': True, 'armAnim': False, 'wind': 1.0, 'leafDist': '10', 'leafScale': 0.25, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafDownAngleV': 10.0, 'leafAnim': False, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'af2': 1.0, 'af3': 4.0, 'downAngleV': (0.0, 20.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'rootFlare': 1.0, 'baseSize_s': 0.25}
|
{'showLeaves': False, 'leafScaleX': 0.20000000298023224, 'horzLeaves': False, 'useArm': False, 'rMode': 'rotate', 'branchDist': 1.5, 'scale': 15.0, 'armLevels': 2, 'gustF': 0.07500000298023224, 'closeTip': False, 'shape': '4', 'minRadius': 0.001500000013038516, 'leafScaleT': 0.0, 'leafDownAngle': 30.0, 'splitByLen': True, 'prunePowerLow': 0.0010000000474974513, 'splitBias': 0.0, 'autoTaper': True, 'leafRotateV': 30.0, 'scale0': 1.0, 'length': (0.75, 0.5, 1.5, 0.10000000149011612), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'bevel': True, 'baseSize': 0.20000000298023224, 'handleType': '1', 'ratioPower': 1.75, 'leafScaleV': 0.0, 'ratio': 0.02500000037252903, 'scaleV': 5.0, 'gust': 1.0, 'baseSplits': 2, 'loopFrames': 0, 'curve': (0.0, 20.0, -40.0, 0.0), 'pruneWidth': 0.5, 'shapeS': '4', 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'branches': (0, 35, 15, 1), 'frameRate': 1.0, 'splitAngle': (12.0, 30.0, 16.0, 0.0), 'seed': 2789, 'nrings': 0, 'previewArm': False, 'pruneWidthPeak': 0.6000000238418579, 'af1': 1.0, 'splitHeight': 0.20000000298023224, 'rotateV': (15.0, 15.0, 45.0, 0.0), 'attractUp': (0.0, 0.0, -2.75, -3.0), 'curveV': (150.0, 120.0, 0.0, 0.0), 'makeMesh': False, 'leaves': 150, 'curveBack': (0.0, 20.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'resU': 4, 'useOldDownAngle': False, 'pruneRatio': 0.800000011920929, 'levels': 3, 'taperCrown': 0.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafRotate': 137.5, 'prunePowerHigh': 0.20000000298023224, 'prune': False, 'leafangle': 0.0, 'bevelRes': 1, 'curveRes': (8, 16, 8, 1), 'rotate': (99.5, 137.5, -60.0, 140.0), 'pruneBase': 0.07000000029802322, 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'scaleV0': 0.0, 'boneStep': (1, 1, 1, 1), 'useParentAngle': True, 'armAnim': False, 'wind': 1.0, 'leafDist': '10', 'leafScale': 0.25, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafDownAngleV': 10.0, 'leafAnim': False, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'af2': 1.0, 'af3': 4.0, 'downAngleV': (0.0, 20.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'rootFlare': 1.0, 'baseSize_s': 0.25}
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{'seed': 0, 'showLeaves': True, 'armLevels': 0, 'leafDist': '6', 'baseSize': 0.3499999940395355, 'loopFrames': 0, 'af3': 4.0, 'previewArm': False, 'leafangle': -45.0, 'useParentAngle': True, 'handleType': '0', 'branches': (0, 60, 30, 10), 'autoTaper': True, 'splitAngle': (12.0, 18.0, 16.0, 0.0), 'baseSize_s': 0.800000011920929, 'closeTip': False, 'af2': 1.0, 'prune': False, 'scale0': 1.0, 'rMode': 'rotate', 'useOldDownAngle': False, 'scaleV0': 0.10000000149011612, 'splitBias': 0.0, 'resU': 2, 'curveBack': (0.0, -5.0, 0.0, 0.0), 'scale': 12.0, 'shape': '8', 'leafDownAngle': 45.0, 'af1': 1.0, 'ratio': 0.019999999552965164, 'horzLeaves': True, 'leafRotate': 137.5, 'minRadius': 0.0020000000949949026, 'bevelRes': 2, 'splitByLen': True, 'rootFlare': 1.149999976158142, 'makeMesh': False, 'downAngleV': (0.0, 25.0, 30.0, 10.0), 'levels': 3, 'scaleV': 2.0, 'armAnim': False, 'lengthV': (0.05000000074505806, 0.20000000298023224, 0.3499999940395355, 0.0), 'pruneWidth': 0.3100000023841858, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'splitAngleV': (2.0, 2.0, 0.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafScaleT': 0.20000000298023224, 'leafScaleX': 0.5, 'leafRotateV': 0.0, 'ratioPower': 1.399999976158142, 'segSplits': (0.3499999940395355, 0.3499999940395355, 0.3499999940395355, 0.0), 'downAngle': (90.0, 60.0, 50.0, 45.0), 'rotateV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'attractUp': (0.0, -1.0, -0.6499999761581421, 0.0), 'leafScaleV': 0.25, 'frameRate': 1.0, 'curveV': (100.0, 80.0, 80.0, 0.0), 'boneStep': (1, 1, 1, 1), 'customShape': (0.699999988079071, 1.0, 0.30000001192092896, 0.5900000333786011), 'pruneBase': 0.30000001192092896, 'leafAnim': False, 'curveRes': (10, 8, 3, 1), 'nrings': 0, 'bevel': True, 'taperCrown': 0.0, 'baseSplits': 2, 'leafShape': 'hex', 'splitHeight': 0.550000011920929, 'wind': 1.0, 'curve': (0.0, -30.0, -25.0, 0.0), 'rotate': (137.5, 137.5, 137.5, 137.5), 'length': (1.0, 0.33000001311302185, 0.375, 0.44999998807907104), 'leafScale': 0.20000000298023224, 'attractOut': (0.0, 0.20000000298023224, 0.25, 0.0), 'prunePowerHigh': 0.10000000149011612, 'branchDist': 1.5, 'useArm': False, 'pruneRatio': 1.0, 'shapeS': '7', 'leafDownAngleV': 10.0, 'pruneWidthPeak': 0.5, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leaves': 16}
|
{'seed': 0, 'showLeaves': True, 'armLevels': 0, 'leafDist': '6', 'baseSize': 0.3499999940395355, 'loopFrames': 0, 'af3': 4.0, 'previewArm': False, 'leafangle': -45.0, 'useParentAngle': True, 'handleType': '0', 'branches': (0, 60, 30, 10), 'autoTaper': True, 'splitAngle': (12.0, 18.0, 16.0, 0.0), 'baseSize_s': 0.800000011920929, 'closeTip': False, 'af2': 1.0, 'prune': False, 'scale0': 1.0, 'rMode': 'rotate', 'useOldDownAngle': False, 'scaleV0': 0.10000000149011612, 'splitBias': 0.0, 'resU': 2, 'curveBack': (0.0, -5.0, 0.0, 0.0), 'scale': 12.0, 'shape': '8', 'leafDownAngle': 45.0, 'af1': 1.0, 'ratio': 0.019999999552965164, 'horzLeaves': True, 'leafRotate': 137.5, 'minRadius': 0.0020000000949949026, 'bevelRes': 2, 'splitByLen': True, 'rootFlare': 1.149999976158142, 'makeMesh': False, 'downAngleV': (0.0, 25.0, 30.0, 10.0), 'levels': 3, 'scaleV': 2.0, 'armAnim': False, 'lengthV': (0.05000000074505806, 0.20000000298023224, 0.3499999940395355, 0.0), 'pruneWidth': 0.3100000023841858, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'splitAngleV': (2.0, 2.0, 0.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafScaleT': 0.20000000298023224, 'leafScaleX': 0.5, 'leafRotateV': 0.0, 'ratioPower': 1.399999976158142, 'segSplits': (0.3499999940395355, 0.3499999940395355, 0.3499999940395355, 0.0), 'downAngle': (90.0, 60.0, 50.0, 45.0), 'rotateV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'attractUp': (0.0, -1.0, -0.6499999761581421, 0.0), 'leafScaleV': 0.25, 'frameRate': 1.0, 'curveV': (100.0, 80.0, 80.0, 0.0), 'boneStep': (1, 1, 1, 1), 'customShape': (0.699999988079071, 1.0, 0.30000001192092896, 0.5900000333786011), 'pruneBase': 0.30000001192092896, 'leafAnim': False, 'curveRes': (10, 8, 3, 1), 'nrings': 0, 'bevel': True, 'taperCrown': 0.0, 'baseSplits': 2, 'leafShape': 'hex', 'splitHeight': 0.550000011920929, 'wind': 1.0, 'curve': (0.0, -30.0, -25.0, 0.0), 'rotate': (137.5, 137.5, 137.5, 137.5), 'length': (1.0, 0.33000001311302185, 0.375, 0.44999998807907104), 'leafScale': 0.20000000298023224, 'attractOut': (0.0, 0.20000000298023224, 0.25, 0.0), 'prunePowerHigh': 0.10000000149011612, 'branchDist': 1.5, 'useArm': False, 'pruneRatio': 1.0, 'shapeS': '7', 'leafDownAngleV': 10.0, 'pruneWidthPeak': 0.5, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leaves': 16}
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2015-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{'curveRes': (8, 16, 12, 1), 'scaleV0': 0.0, 'pruneRatio': 1.0, 'rotate': (0.0, -120.0, -120.0, 140.0), 'resU': 4, 'levels': 2, 'frameRate': 1.0, 'ratioPower': 2.0, 'windGust': 0.0, 'branches': (0, 25, 10, 300), 'attractUp': -3.0, 'bevel': True, 'windSpeed': 2.0, 'rotateV': (0.0, 30.0, 30.0, 0.0), 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'handleType': '1', 'shape': '3', 'curveV': (120.0, 90.0, 0.0, 0.0), 'scale': 15.0, 'leafShape': 'hex', 'showLeaves': False, 'ratio': 0.029999999329447746, 'leaves': 15, 'armAnim': False, 'leafScale': 0.11999999731779099, 'leafDist': '4', 'useArm': False, 'splitAngle': (3.0, 30.0, 45.0, 0.0), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'seed': 0, 'scaleV': 5.0, 'startCurv': 0.0, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'pruneWidth': 0.4000000059604645, 'baseSize': 0.05000000074505806, 'bevelRes': 0, 'length': (0.800000011920929, 0.5, 1.5, 0.10000000149011612), 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'prune': False, 'curve': (0.0, 40.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'prunePowerHigh': 0.5, 'leafScaleX': 0.20000000298023224, 'curveBack': (20.0, 80.0, 0.0, 0.0), 'bend': 0.0, 'scale0': 1.0, 'prunePowerLow': 0.0010000000474974513, 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'baseSplits': 2, 'pruneWidthPeak': 0.6000000238418579}
|
{'curveRes': (8, 16, 12, 1), 'scaleV0': 0.0, 'pruneRatio': 1.0, 'rotate': (0.0, -120.0, -120.0, 140.0), 'resU': 4, 'levels': 2, 'frameRate': 1.0, 'ratioPower': 2.0, 'windGust': 0.0, 'branches': (0, 25, 10, 300), 'attractUp': -3.0, 'bevel': True, 'windSpeed': 2.0, 'rotateV': (0.0, 30.0, 30.0, 0.0), 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'handleType': '1', 'shape': '3', 'curveV': (120.0, 90.0, 0.0, 0.0), 'scale': 15.0, 'leafShape': 'hex', 'showLeaves': False, 'ratio': 0.029999999329447746, 'leaves': 15, 'armAnim': False, 'leafScale': 0.11999999731779099, 'leafDist': '4', 'useArm': False, 'splitAngle': (3.0, 30.0, 45.0, 0.0), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'seed': 0, 'scaleV': 5.0, 'startCurv': 0.0, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'pruneWidth': 0.4000000059604645, 'baseSize': 0.05000000074505806, 'bevelRes': 0, 'length': (0.800000011920929, 0.5, 1.5, 0.10000000149011612), 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'prune': False, 'curve': (0.0, 40.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'prunePowerHigh': 0.5, 'leafScaleX': 0.20000000298023224, 'curveBack': (20.0, 80.0, 0.0, 0.0), 'bend': 0.0, 'scale0': 1.0, 'prunePowerLow': 0.0010000000474974513, 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'baseSplits': 2, 'pruneWidthPeak': 0.6000000238418579}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
|
||||||
@ -416,7 +418,6 @@ class add_mesh_bolt(Operator, AddObjectHelper):
|
|||||||
(context.active_object.data is not None) and ('Bolt' in context.active_object.data.keys()) and \
|
(context.active_object.data is not None) and ('Bolt' in context.active_object.data.keys()) and \
|
||||||
(self.change == True):
|
(self.change == True):
|
||||||
obj = context.active_object
|
obj = context.active_object
|
||||||
use_auto_smooth = bool(obj.data.use_auto_smooth) # Copy value, do not take a reference
|
|
||||||
use_smooth = bool(obj.data.polygons[0].use_smooth) # Copy value, do not take a reference
|
use_smooth = bool(obj.data.polygons[0].use_smooth) # Copy value, do not take a reference
|
||||||
|
|
||||||
mesh = createMesh.Create_New_Mesh(self, context)
|
mesh = createMesh.Create_New_Mesh(self, context)
|
||||||
@ -428,9 +429,10 @@ class add_mesh_bolt(Operator, AddObjectHelper):
|
|||||||
bm.free()
|
bm.free()
|
||||||
|
|
||||||
# Preserve flat/smooth choice. New mesh is flat by default
|
# Preserve flat/smooth choice. New mesh is flat by default
|
||||||
obj.data.use_auto_smooth = use_auto_smooth
|
|
||||||
if use_smooth:
|
if use_smooth:
|
||||||
bpy.ops.object.shade_smooth()
|
bpy.ops.object.shade_smooth()
|
||||||
|
else:
|
||||||
|
bpy.ops.object.shade_flat()
|
||||||
|
|
||||||
bpy.data.meshes.remove(mesh)
|
bpy.data.meshes.remove(mesh)
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Contributed to by: Chichiri, Jace Priester #
|
# Contributed to by: Chichiri, Jace Priester #
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Original Authors: Evan J. Rosky (syrux), Chichiri, Jace Priester
|
# Original Authors: Evan J. Rosky (syrux), Chichiri, Jace Priester
|
||||||
@ -639,7 +641,6 @@ class discombobulator_dodads_list(Menu):
|
|||||||
bl_idname = "OBJECT_MT_discombobulator_dodad_list"
|
bl_idname = "OBJECT_MT_discombobulator_dodad_list"
|
||||||
bl_label = "List of saved Doodads"
|
bl_label = "List of saved Doodads"
|
||||||
bl_description = "List of the saved Doodad Object Names"
|
bl_description = "List of the saved Doodad Object Names"
|
||||||
bl_options = {"REGISTER"}
|
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
layout = self.layout
|
layout = self.layout
|
||||||
@ -658,7 +659,6 @@ class discombob_help(Menu):
|
|||||||
bl_idname = "HELP_MT_discombobulator"
|
bl_idname = "HELP_MT_discombobulator"
|
||||||
bl_label = "Usage Information"
|
bl_label = "Usage Information"
|
||||||
bl_description = "Help"
|
bl_description = "Help"
|
||||||
bl_options = {"REGISTER"}
|
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
layout = self.layout
|
layout = self.layout
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Authors: dudecon, jambay
|
# Authors: dudecon, jambay
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# authors: dudecon, jambay
|
# authors: dudecon, jambay
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2011-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Contributed to by:
|
# Contributed to by:
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2015-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Original Author Liero
|
# Original Author Liero
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Original by Buerbaum Martin (Pontiac), Elod Csirmaz
|
# Original by Buerbaum Martin (Pontiac), Elod Csirmaz
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: revolt_randy, Jambay
|
# Author: revolt_randy, Jambay
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2009-2010 Michel J. Anders (varkenvarken)
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
# Copyright 2009-2010 Michel J. Anders (varkenvarken)
|
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
from bpy.types import Operator
|
from bpy.types import Operator
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: Pontiac, Fourmadmen, Dreampainter
|
# Author: Pontiac, Fourmadmen, Dreampainter
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2012-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: Kayo Phoenix
|
# Author: Kayo Phoenix
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2015 Sugiany
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
# Copyright 2015 Sugiany
|
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: Buerbaum Martin (Pontiac)
|
# Author: Buerbaum Martin (Pontiac)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: Phil Cote, cotejrp1, (http://www.blenderaddons.com)
|
# Author: Phil Cote, cotejrp1, (http://www.blenderaddons.com)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Paul "BrikBot" Marshall
|
# Paul "BrikBot" Marshall
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# This try block allows for the script to psudo-intelligently select the
|
# This try block allows for the script to psudo-intelligently select the
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Blender rock creation tool
|
# Blender rock creation tool
|
||||||
@ -148,9 +150,6 @@ def createMeshObject(context, verts, edges, faces, name):
|
|||||||
# Make a mesh from a list of verts/edges/faces.
|
# Make a mesh from a list of verts/edges/faces.
|
||||||
mesh.from_pydata(verts, edges, faces)
|
mesh.from_pydata(verts, edges, faces)
|
||||||
|
|
||||||
# Set mesh to use auto smoothing:
|
|
||||||
mesh.use_auto_smooth = True
|
|
||||||
|
|
||||||
# Update mesh geometry after adding stuff.
|
# Update mesh geometry after adding stuff.
|
||||||
mesh.update()
|
mesh.update()
|
||||||
|
|
||||||
@ -664,65 +663,67 @@ def generateObject(context, muX, sigmaX, scaleX, upperSkewX, muY, sigmaY,
|
|||||||
# mesh = bpy.data.meshes[name]
|
# mesh = bpy.data.meshes[name]
|
||||||
mesh = obj.data
|
mesh = obj.data
|
||||||
|
|
||||||
|
creases = mesh.edge_creases_ensure().data
|
||||||
|
|
||||||
# Apply creasing:
|
# Apply creasing:
|
||||||
if shape == 0:
|
if shape == 0:
|
||||||
for i in range(12):
|
for i in range(12):
|
||||||
# todo: "0.375 / 3"? WTF? That = 0.125. . . .
|
# todo: "0.375 / 3"? WTF? That = 0.125. . . .
|
||||||
# *** Completed 7/15/2011: Changed second one ***
|
# *** Completed 7/15/2011: Changed second one ***
|
||||||
mesh.edges[i].crease = gauss(0.125, 0.125)
|
creases[i].value = gauss(0.125, 0.125)
|
||||||
elif shape == 1:
|
elif shape == 1:
|
||||||
for i in [0, 2]:
|
for i in [0, 2]:
|
||||||
mesh.edges[i].crease = gauss(0.5, 0.125)
|
creases[i].value = gauss(0.5, 0.125)
|
||||||
for i in [6, 9, 11, 12]:
|
for i in [6, 9, 11, 12]:
|
||||||
mesh.edges[i].crease = gauss(0.25, 0.05)
|
creases[i].value = gauss(0.25, 0.05)
|
||||||
for i in [5, 7, 15, 16]:
|
for i in [5, 7, 15, 16]:
|
||||||
mesh.edges[i].crease = gauss(0.125, 0.025)
|
creases[i].value = gauss(0.125, 0.025)
|
||||||
elif shape == 2:
|
elif shape == 2:
|
||||||
for i in range(18):
|
for i in range(18):
|
||||||
mesh.edges[i].crease = gauss(0.125, 0.025)
|
creases[i].value = gauss(0.125, 0.025)
|
||||||
elif shape == 3:
|
elif shape == 3:
|
||||||
for i in [0, 1, 6, 10, 13]:
|
for i in [0, 1, 6, 10, 13]:
|
||||||
mesh.edges[i].crease = gauss(0.25, 0.05)
|
creases[i].value = gauss(0.25, 0.05)
|
||||||
mesh.edges[8].crease = gauss(0.5, 0.125)
|
creases[8].value = gauss(0.5, 0.125)
|
||||||
elif shape == 4:
|
elif shape == 4:
|
||||||
for i in [5, 6, 7, 10, 14, 16, 19, 21]:
|
for i in [5, 6, 7, 10, 14, 16, 19, 21]:
|
||||||
mesh.edges[i].crease = gauss(0.5, 0.125)
|
creases[i].value = gauss(0.5, 0.125)
|
||||||
elif shape == 7:
|
elif shape == 7:
|
||||||
for i in range(18):
|
for i in range(18):
|
||||||
if i in [0, 1, 2, 3, 6, 7, 8, 9, 13, 16]:
|
if i in [0, 1, 2, 3, 6, 7, 8, 9, 13, 16]:
|
||||||
mesh.edges[i].crease = gauss(0.5, 0.125)
|
creases[i].value = gauss(0.5, 0.125)
|
||||||
elif i in [11, 17]:
|
elif i in [11, 17]:
|
||||||
mesh.edges[i].crease = gauss(0.25, 0.05)
|
creases[i].value = gauss(0.25, 0.05)
|
||||||
else:
|
else:
|
||||||
mesh.edges[i].crease = gauss(0.125, 0.025)
|
creases[i].value = gauss(0.125, 0.025)
|
||||||
elif shape == 8:
|
elif shape == 8:
|
||||||
for i in range(12):
|
for i in range(12):
|
||||||
if i in [0, 3, 8, 9, 10]:
|
if i in [0, 3, 8, 9, 10]:
|
||||||
mesh.edges[i].crease = gauss(0.5, 0.125)
|
creases[i].value = gauss(0.5, 0.125)
|
||||||
elif i == 11:
|
elif i == 11:
|
||||||
mesh.edges[i].crease = gauss(0.25, 0.05)
|
creases[i].value = gauss(0.25, 0.05)
|
||||||
else:
|
else:
|
||||||
mesh.edges[i].crease = gauss(0.125, 0.025)
|
creases[i].value = gauss(0.125, 0.025)
|
||||||
elif shape == 9:
|
elif shape == 9:
|
||||||
for i in range(12):
|
for i in range(12):
|
||||||
if i in [0, 3, 4, 11]:
|
if i in [0, 3, 4, 11]:
|
||||||
mesh.edges[i].crease = gauss(0.5, 0.125)
|
creases[i].value = gauss(0.5, 0.125)
|
||||||
else:
|
else:
|
||||||
mesh.edges[i].crease = gauss(0.25, 0.05)
|
creases[i].value = gauss(0.25, 0.05)
|
||||||
elif shape == 10:
|
elif shape == 10:
|
||||||
for i in range(12):
|
for i in range(12):
|
||||||
if i in [0, 2, 3, 4, 8, 11]:
|
if i in [0, 2, 3, 4, 8, 11]:
|
||||||
mesh.edges[i].crease = gauss(0.5, 0.125)
|
creases[i].value = gauss(0.5, 0.125)
|
||||||
elif i in [1, 5, 7]:
|
elif i in [1, 5, 7]:
|
||||||
mesh.edges[i].crease = gauss(0.25, 0.05)
|
creases[i].value = gauss(0.25, 0.05)
|
||||||
else:
|
else:
|
||||||
mesh.edges[i].crease = gauss(0.125, 0.025)
|
creases[i].value = gauss(0.125, 0.025)
|
||||||
elif shape == 11:
|
elif shape == 11:
|
||||||
for i in range(11):
|
for i in range(11):
|
||||||
if i in [1, 2, 3, 4, 8, 11]:
|
if i in [1, 2, 3, 4, 8, 11]:
|
||||||
mesh.edges[i].crease = gauss(0.25, 0.05)
|
creases[i].value = gauss(0.25, 0.05)
|
||||||
else:
|
else:
|
||||||
mesh.edges[i].crease = gauss(0.125, 0.025)
|
creases[i].value = gauss(0.125, 0.025)
|
||||||
|
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Paul "BrikBot" Marshall
|
# Paul "BrikBot" Marshall
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Converts a formatted string to a float tuple:
|
# Converts a formatted string to a float tuple:
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2015-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
# Author: Dominic Kröper, (dommetysk)
|
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
from math import (
|
from math import (
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2015-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: Alain Ducharme (phymec)
|
# Author: Alain Ducharme (phymec)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: DreamPainter
|
# Author: DreamPainter
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2015-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Original by Fourmadmen
|
# Original by Fourmadmen
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: DreamPainter
|
# Author: DreamPainter
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2012-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author, Anthony D'Agostino
|
# Author, Anthony D'Agostino
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2012-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: Anthony D'Agostino
|
# Author: Anthony D'Agostino
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2017-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
# Author: Sjaak-de-Draak
|
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
"name": "Triangles",
|
"name": "Triangles",
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Author: Paulo_Gomes
|
# Author: Paulo_Gomes
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2015-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Originals by meta-androcto, Pablo Vazquez, Liero, Richard Wilks
|
# Originals by meta-androcto, Pablo Vazquez, Liero, Richard Wilks
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Contributed to by PKHG, Meta Androcto, Noctumsolis, Lijenstina,
|
# Contributed to by PKHG, Meta Androcto, Noctumsolis, Lijenstina,
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
from math import sin, cos, sqrt
|
from math import sin, cos, sqrt
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
from .vefm_271 import mesh, vertex, edge, face
|
from .vefm_271 import mesh, vertex, edge, face
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# vert class and overloading experiments
|
# vert class and overloading experiments
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Amaranth
|
Amaranth
|
||||||
|
|
||||||
@ -50,7 +53,6 @@ from amaranth.render import (
|
|||||||
passepartout,
|
passepartout,
|
||||||
final_resolution,
|
final_resolution,
|
||||||
samples_scene,
|
samples_scene,
|
||||||
render_output_z,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
from amaranth.animation import (
|
from amaranth.animation import (
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Current Frame Slider
|
Current Frame Slider
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Jump X Frames on Shift Up/Down
|
Jump X Frames on Shift Up/Down
|
||||||
|
|
||||||
@ -162,25 +165,26 @@ def register():
|
|||||||
# register keyboard shortcuts
|
# register keyboard shortcuts
|
||||||
wm = bpy.context.window_manager
|
wm = bpy.context.window_manager
|
||||||
kc = wm.keyconfigs.addon
|
kc = wm.keyconfigs.addon
|
||||||
|
if kc is not None:
|
||||||
|
|
||||||
km = kc.keymaps.new(name="Frames")
|
km = kc.keymaps.new(name="Frames")
|
||||||
kmi = km.keymap_items.new('screen.amth_keyframe_jump_inbetween', 'UP_ARROW', 'PRESS', shift=True, ctrl=True)
|
kmi = km.keymap_items.new('screen.amth_keyframe_jump_inbetween', 'UP_ARROW', 'PRESS', shift=True, ctrl=True)
|
||||||
kmi.properties.backwards = False
|
kmi.properties.backwards = False
|
||||||
KEYMAPS.append((km, kmi))
|
KEYMAPS.append((km, kmi))
|
||||||
|
|
||||||
kmi = km.keymap_items.new('screen.amth_keyframe_jump_inbetween', 'DOWN_ARROW', 'PRESS', shift=True, ctrl=True)
|
kmi = km.keymap_items.new('screen.amth_keyframe_jump_inbetween', 'DOWN_ARROW', 'PRESS', shift=True, ctrl=True)
|
||||||
kmi.properties.backwards = True
|
kmi.properties.backwards = True
|
||||||
KEYMAPS.append((km, kmi))
|
KEYMAPS.append((km, kmi))
|
||||||
|
|
||||||
kmi = km.keymap_items.new(
|
kmi = km.keymap_items.new(
|
||||||
"screen.amaranth_frame_jump", "UP_ARROW", "PRESS", shift=True)
|
"screen.amaranth_frame_jump", "UP_ARROW", "PRESS", shift=True)
|
||||||
kmi.properties.forward = True
|
kmi.properties.forward = True
|
||||||
KEYMAPS.append((km, kmi))
|
KEYMAPS.append((km, kmi))
|
||||||
|
|
||||||
kmi = km.keymap_items.new(
|
kmi = km.keymap_items.new(
|
||||||
"screen.amaranth_frame_jump", "DOWN_ARROW", "PRESS", shift=True)
|
"screen.amaranth_frame_jump", "DOWN_ARROW", "PRESS", shift=True)
|
||||||
kmi.properties.forward = False
|
kmi.properties.forward = False
|
||||||
KEYMAPS.append((km, kmi))
|
KEYMAPS.append((km, kmi))
|
||||||
|
|
||||||
|
|
||||||
def unregister():
|
def unregister():
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Bone Motion Paths:
|
Bone Motion Paths:
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Time Extra Info
|
Time Extra Info
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Color Management Presets
|
Color Management Presets
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Object ID for Dupli Groups
|
Object ID for Dupli Groups
|
||||||
Say you have a linked character or asset, you can now set an Object ID for the
|
Say you have a linked character or asset, you can now set an Object ID for the
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Sequencer: Display Image File Name
|
Sequencer: Display Image File Name
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Symmetry Tools: Find Asymmetric + Make Symmetric (by Sergey Sharybin)
|
Symmetry Tools: Find Asymmetric + Make Symmetric (by Sergey Sharybin)
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Display Active Image Node on Image Editor
|
Display Active Image Node on Image Editor
|
||||||
|
|
||||||
@ -106,11 +109,13 @@ def ui(self, context):
|
|||||||
|
|
||||||
def register():
|
def register():
|
||||||
bpy.utils.register_class(AMTH_NODE_OT_show_active_node_image)
|
bpy.utils.register_class(AMTH_NODE_OT_show_active_node_image)
|
||||||
|
|
||||||
kc = bpy.context.window_manager.keyconfigs.addon
|
kc = bpy.context.window_manager.keyconfigs.addon
|
||||||
km = kc.keymaps.new(name="Node Editor", space_type="NODE_EDITOR")
|
if kc is not None:
|
||||||
kmi = km.keymap_items.new("node.show_active_node_image",
|
km = kc.keymaps.new(name="Node Editor", space_type="NODE_EDITOR")
|
||||||
"LEFTMOUSE", "DOUBLE_CLICK")
|
kmi = km.keymap_items.new("node.show_active_node_image",
|
||||||
KEYMAPS.append((km, kmi))
|
"LEFTMOUSE", "DOUBLE_CLICK")
|
||||||
|
KEYMAPS.append((km, kmi))
|
||||||
|
|
||||||
bpy.types.NODE_MT_node.append(ui)
|
bpy.types.NODE_MT_node.append(ui)
|
||||||
bpy.types.NODE_MT_context_menu.append(ui)
|
bpy.types.NODE_MT_context_menu.append(ui)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Nodes Stats
|
Nodes Stats
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Nodes: XYZ Sliders for Normal Node
|
Nodes: XYZ Sliders for Normal Node
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Nodes Simplify Panel [WIP Feature]
|
Nodes Simplify Panel [WIP Feature]
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Node Templates - Vignette, Vector Blur
|
Node Templates - Vignette, Vector Blur
|
||||||
|
|
||||||
@ -52,11 +55,13 @@ def register():
|
|||||||
bpy.utils.register_class(AMTH_NODE_OT_AddTemplateVignette)
|
bpy.utils.register_class(AMTH_NODE_OT_AddTemplateVignette)
|
||||||
bpy.utils.register_class(AMTH_NODE_OT_AddTemplateVectorBlur)
|
bpy.utils.register_class(AMTH_NODE_OT_AddTemplateVectorBlur)
|
||||||
bpy.types.NODE_HT_header.append(node_templates_pulldown)
|
bpy.types.NODE_HT_header.append(node_templates_pulldown)
|
||||||
|
|
||||||
kc = bpy.context.window_manager.keyconfigs.addon
|
kc = bpy.context.window_manager.keyconfigs.addon
|
||||||
km = kc.keymaps.new(name="Node Editor", space_type="NODE_EDITOR")
|
if kc is not None:
|
||||||
kmi = km.keymap_items.new("wm.call_menu", "W", "PRESS")
|
km = kc.keymaps.new(name="Node Editor", space_type="NODE_EDITOR")
|
||||||
kmi.properties.name = "AMTH_NODE_MT_amaranth_templates"
|
kmi = km.keymap_items.new("wm.call_menu", "W", "PRESS")
|
||||||
KEYMAPS.append((km, kmi))
|
kmi.properties.name = "AMTH_NODE_MT_amaranth_templates"
|
||||||
|
KEYMAPS.append((km, kmi))
|
||||||
|
|
||||||
|
|
||||||
def unregister():
|
def unregister():
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Set Camera Bounds as Render Border
|
Set Camera Bounds as Render Border
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
UI: Final Resolution
|
UI: Final Resolution
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Select Meshlights
|
Select Meshlights
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Passepartout on Specials menu
|
Passepartout on Specials menu
|
||||||
|
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
"""
|
|
||||||
EXR Render: Warn when Z not connected
|
|
||||||
Display a little warning label when exporting EXR, with Z Buffer enabled, but
|
|
||||||
forgot to plug the Z input in the Compositor.
|
|
||||||
|
|
||||||
Might be a bit too specific, but found it nice to remember to plug the Z input
|
|
||||||
if we explicitly specify for Z Buffers to be saved (because it's disabled by
|
|
||||||
default).
|
|
||||||
|
|
||||||
Find it on the Output panel, Render properties.
|
|
||||||
"""
|
|
||||||
import bpy
|
|
||||||
|
|
||||||
|
|
||||||
# // FEATURE: Object ID for objects inside DupliGroups
|
|
||||||
# UI: Warning about Z not connected when using EXR
|
|
||||||
def ui_render_output_z(self, context):
|
|
||||||
|
|
||||||
scene = bpy.context.scene
|
|
||||||
image = scene.render.image_settings
|
|
||||||
if scene.render.use_compositing and \
|
|
||||||
image.file_format == 'OPEN_EXR' and \
|
|
||||||
image.use_zbuffer:
|
|
||||||
if scene.node_tree and scene.node_tree.nodes:
|
|
||||||
for no in scene.node_tree.nodes:
|
|
||||||
if no.type == 'COMPOSITE':
|
|
||||||
if not no.inputs['Z'].is_linked:
|
|
||||||
self.layout.label(
|
|
||||||
text="The Z output in node \"%s\" is not connected" %
|
|
||||||
no.name, icon="ERROR")
|
|
||||||
|
|
||||||
# // UI: Warning about Z not connected
|
|
||||||
|
|
||||||
|
|
||||||
def register():
|
|
||||||
bpy.types.RENDER_PT_output.append(ui_render_output_z)
|
|
||||||
|
|
||||||
|
|
||||||
def unregister():
|
|
||||||
bpy.types.RENDER_PT_output.remove(ui_render_output_z)
|
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Cycles: Samples per Scene
|
Cycles: Samples per Scene
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
File Browser > Go to Current Blend's Folder
|
File Browser > Go to Current Blend's Folder
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Scene Debug Panel
|
Scene Debug Panel
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
File Browser: Libraries Bookmark
|
File Browser: Libraries Bookmark
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Refresh Scene
|
Refresh Scene
|
||||||
|
|
||||||
@ -49,11 +52,13 @@ def button_refresh(self, context):
|
|||||||
def register():
|
def register():
|
||||||
bpy.utils.register_class(AMTH_SCENE_OT_refresh)
|
bpy.utils.register_class(AMTH_SCENE_OT_refresh)
|
||||||
bpy.types.VIEW3D_MT_object_context_menu.append(button_refresh)
|
bpy.types.VIEW3D_MT_object_context_menu.append(button_refresh)
|
||||||
|
|
||||||
kc = bpy.context.window_manager.keyconfigs.addon
|
kc = bpy.context.window_manager.keyconfigs.addon
|
||||||
km = kc.keymaps.new(name="Window")
|
if kc is not None:
|
||||||
kmi = km.keymap_items.new("scene.refresh", "F5", "PRESS",
|
km = kc.keymaps.new(name="Window")
|
||||||
alt=True)
|
kmi = km.keymap_items.new("scene.refresh", "F5", "PRESS",
|
||||||
KEYMAPS.append((km, kmi))
|
alt=True)
|
||||||
|
KEYMAPS.append((km, kmi))
|
||||||
|
|
||||||
|
|
||||||
def unregister():
|
def unregister():
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
|
||||||
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Save & Reload File
|
Save & Reload File
|
||||||
|
|
||||||
@ -71,12 +74,14 @@ def button_save_reload(self, context):
|
|||||||
def register():
|
def register():
|
||||||
bpy.utils.register_class(AMTH_WM_OT_save_reload)
|
bpy.utils.register_class(AMTH_WM_OT_save_reload)
|
||||||
bpy.types.TOPBAR_MT_file.append(button_save_reload)
|
bpy.types.TOPBAR_MT_file.append(button_save_reload)
|
||||||
|
|
||||||
wm = bpy.context.window_manager
|
wm = bpy.context.window_manager
|
||||||
kc = wm.keyconfigs.addon
|
kc = wm.keyconfigs.addon
|
||||||
km = kc.keymaps.new(name="Window")
|
if kc is not None:
|
||||||
kmi = km.keymap_items.new("wm.save_reload", "W", "PRESS",
|
km = kc.keymaps.new(name="Window")
|
||||||
shift=True, ctrl=True)
|
kmi = km.keymap_items.new("wm.save_reload", "W", "PRESS",
|
||||||
KEYMAPS.append((km, kmi))
|
shift=True, ctrl=True)
|
||||||
|
KEYMAPS.append((km, kmi))
|
||||||
|
|
||||||
|
|
||||||
def unregister():
|
def unregister():
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user