import bpy
from bpy.types import Panel
from bpy.app.translations import pgettext_iface as iface_
def ARMATURE(self, layout, ob, md):
split = layout.split()
col = split.column()
col.label(text="Object:")
col.prop(md, "object", text="")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
col.prop(md, "use_deform_preserve_volume")
col = split.column()
col.label(text="Bind To:")
col.prop(md, "use_vertex_groups", text="Vertex Groups")
col.prop(md, "use_bone_envelopes", text="Bone Envelopes")
layout.separator()
split = layout.split()
row = split.row(align=True)
row.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
sub = row.row(align=True)
sub.active = bool(md.vertex_group)
sub.prop(md, "invert_vertex_group", text="", icon='ARROW_LEFTRIGHT')
split.prop(md, "use_multi_modifier")
def ARRAY(self, layout, _ob, md):
layout.prop(md, "fit_type")
if md.fit_type == 'FIXED_COUNT':
layout.prop(md, "count")
elif md.fit_type == 'FIT_LENGTH':
layout.prop(md, "fit_length")
elif md.fit_type == 'FIT_CURVE':
layout.prop(md, "curve")
layout.separator()
col= layout.column()
col.prop(md, "use_constant_offset")
sub = col.column()
sub.active = md.use_constant_offset
if md.use_constant_offset:
sub.prop(md, "constant_offset_displace", text="")
col.prop(md, "use_relative_offset")
sub = col.column()
sub.active = md.use_relative_offset
if md.use_relative_offset:
sub.prop(md, "relative_offset_displace", text="")
col.prop(md, "use_object_offset")
sub = col.column()
sub.active = md.use_object_offset
if md.use_object_offset:
row=sub.row().split(factor=0.7)
row.prop(md, "offset_object", text="")
op=row.operator("rtools.sync_object")
op.mod=md.name
op.object=_ob.name
col.prop(md, "use_merge_vertices", text="Merge")
sub = col.column()
sub.active = md.use_merge_vertices
if md.use_merge_vertices:
sub.prop(md, "merge_threshold", text="Distance")
sub.prop(md, "use_merge_vertices_cap", text="First Last")
row = layout.row()
split = row.split()
col = split.column()
col.label(text="UVs:")
sub = col.column(align=True)
sub.prop(md, "offset_u")
sub.prop(md, "offset_v")
layout.separator()
layout.prop(md, "start_cap")
layout.prop(md, "end_cap")
def BEVEL(self, layout, ob, md):
offset_type = md.offset_type
layout.row().prop(md, "affect",expand=True)
layout.row().prop(md, "offset_type")
if offset_type == 'PERCENT':
layout.prop(md, "width_pct")
else:
offset_text = "Width"
if offset_type == 'DEPTH':
offset_text = "Depth"
elif offset_type == 'OFFSET':
offset_text = "Offset"
layout.prop(md, "width", text=offset_text)
layout.row().prop(md, "segments")
split = layout.split()
col = split.column()
col.prop(md, "use_clamp_overlap")
col.prop(md, "harden_normals")
layout.row().prop(md, "limit_method")
if md.limit_method == 'ANGLE':
layout.prop(md, "angle_limit")
elif md.limit_method == 'VGROUP':
row = layout.row(align=True)
row.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
row.prop(md, "invert_vertex_group", text="", icon='ARROW_LEFTRIGHT')
def BOOLEAN(self, layout, _ob, md):
layout.row().prop(md, "operation", expand=True)
col = layout.column()
col.prop(md,'operand_type')
if md.operand_type=='OBJECT':
row= col.row().split(factor=0.7)
row.prop(md, "object", text="")
op=row.operator("rtools.sync_object")
op.mod=md.name
op.object=_ob.name
else:
row= col.row().split(factor=0.7)
row.prop(md, "collection", text="")
op=row.operator("rtools.sync_object")
op.mod=md.name
op.object=_ob.name
layout.row().prop(md, "solver",expand=True,text="Solver")
def BUILD(self, layout, _ob, md):
split = layout.split()
col = split.column()
col.prop(md, "frame_start")
col.prop(md, "frame_duration")
col.prop(md, "use_reverse")
col.prop(md, "use_random_order")
sub = col.column()
sub.active = md.use_random_order
sub.prop(md, "seed")
def MESH_CACHE(self, layout, _ob, md):
layout.prop(md, "cache_format")
layout.prop(md, "filepath")
if md.cache_format == 'ABC':
layout.prop(md, "sub_object")
layout.label(text="Evaluation:")
layout.prop(md, "factor", slider=True)
layout.prop(md, "deform_mode")
layout.prop(md, "interpolation")
layout.label(text="Time Mapping:")
row = layout.row()
row.prop(md, "time_mode", expand=True)
row = layout.row()
row.prop(md, "play_mode", expand=True)
if md.play_mode == 'SCENE':
layout.prop(md, "frame_start")
layout.prop(md, "frame_scale")
else:
time_mode = md.time_mode
if time_mode == 'FRAME':
layout.prop(md, "eval_frame")
elif time_mode == 'TIME':
layout.prop(md, "eval_time")
elif time_mode == 'FACTOR':
layout.prop(md, "eval_factor")
layout.label(text="Axis Mapping:")
split = layout.split(factor=0.5, align=True)
split.alert = (md.forward_axis[-1] == md.up_axis[-1])
split.label(text="Forward/Up Axis:")
split.prop(md, "forward_axis", text="")
split.prop(md, "up_axis", text="")
split = layout.split(factor=0.5)
split.label(text="Flip Axis:")
row = split.row()
row.prop(md, "flip_axis")
def MESH_SEQUENCE_CACHE(self, layout, ob, md):
layout.label(text="Cache File Properties:")
box = layout.box()
box.template_cache_file(md, "cache_file")
cache_file = md.cache_file
layout.label(text="Modifier Properties:")
box = layout.box()
if cache_file is not None:
box.prop_search(md, "object_path", cache_file, "object_paths")
if ob.type == 'MESH':
box.row().prop(md, "read_data")
def CAST(self, layout, ob, md):
split = layout.split(factor=0.25)
split.label(text="Cast Type:")
split.prop(md, "cast_type", text="")
split = layout.split(factor=0.25)
col = split.column()
col.prop(md, "use_x")
col.prop(md, "use_y")
col.prop(md, "use_z")
col = split.column()
col.prop(md, "factor")
col.prop(md, "radius")
col.prop(md, "size")
col.prop(md, "use_radius_as_size")
split = layout.split()
col = split.column()
col.label(text="Vertex Group:")
row = col.row(align=True)
row.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
row.prop(md, "invert_vertex_group", text="", icon='ARROW_LEFTRIGHT')
col = split.column()
col.label(text="Control Object:")
row= col.row().split(factor=0.7)
row.prop(md, "object", text="")
op=row.operator("rtools.sync_object")
op.mod=md.name
op.object=ob.name
if md.object:
col.prop(md, "use_transform")
def CLOTH(self, layout, _ob, _md):
layout.label(text="Settings are inside the Physics tab")
def COLLISION(self, layout, _ob, _md):
layout.label(text="Settings are inside the Physics tab")
def CURVE(self, layout, ob, md):
split = layout.split()
col = split.column()
col.label(text="Object:")
row= col.row().split(factor=0.7)
row.prop(md, "object", text="")
op=row.operator("rtools.sync_object")
op.mod=md.name
op.object=ob.name
col = split.column()
col.label(text="Vertex Group:")
row = col.row(align=True)
row.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
row.prop(md, "invert_vertex_group"
没有合适的资源?快使用搜索试试~ 我知道了~
Blender批量网格模型加效果器插件 Synchronize Modifiers V2.2.0.zip
共2个文件
py:2个
需积分: 0 1 下载量 27 浏览量
2024-02-22
17:12:46
上传
评论
收藏 16KB ZIP 举报
温馨提示
Synced Modifiers 是一个 Blender 插件,允许您同时向多个对象添加修改器,并使用驱动程序自动同步所有修改器。 如果你想要免费的blender插件、模型等可以看看这个blender资源库:https://www.aleshu.com/creatorscenter/groupdetail/feature-detail/?groupid=9c0b0eec6d157521f02de4abc86ca056&featureid=7ef0923244ad17cdd08e77596c70bd09 还有免费的Blender入门教程:https://www.aleshu.com/creatorscenter/groupdetail/?groupid=f61270465783d779b8595420cfc87c06
资源推荐
资源详情
资源评论
收起资源包目录
Blender批量网格模型加效果器插件 Synchronize Modifiers V2.2.0.zip (2个子文件)
Synced Modifiers
__init__.py 44KB
properties_data_modifiers.py 53KB
共 2 条
- 1
资源评论
one行feng
- 粉丝: 1058
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功