我想通过脚本变形网格
Posted
技术标签:
【中文标题】我想通过脚本变形网格【英文标题】:I want to deform the mesh by script 【发布时间】:2020-04-14 15:04:47 【问题描述】:在雕刻模式下看不到原木变形。 由于这个原因,它被比例编辑的“球体”部分变形了。
bpy.ops.transform.translate(value=(4.95114, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='ENABLED', proportional_edit_falloff='SPHERE', proportional_size=15.8631, release_confirm=True, use_accurate=False)
当我运行这个脚本时,选定的部分不会膨胀成球体,但整个原始模型会移动。 我认为它正在发生,因为脚本中没有指定中心点的部分。 但我无法指定中心或其他解决方案。
通过脚本进行比例编辑的方法是什么?让我知道是否还有其他方法可以在脚本中进行。
【问题讨论】:
如果您需要脚本搅拌机的帮助,您会在blender.stackexchange 找到更好的支持。 好的,我会在那里提问。谢谢。 【参考方案1】:bpy.ops.transform.translate
用于对象和编辑模式,对象需要处于编辑模式才能移动选定的顶点。
在雕刻模式下,使用的运算符是bpy.ops.sculpt.brush_stroke
。在脚本中使用它需要设置一个OperatorStrokeElement
,其中包括鼠标位置...
如果你想通过脚本变形网格,你应该考虑使用bmesh。
【讨论】:
谢谢您的回答。是否可以通过在脚本中指定Median来进行比例编辑?【参考方案2】:您可以像这样在雕刻模式下使用“DRAW”或“CLOTH”笔刷:
def sculpt(coordinates, strength=0.5):
bpy.ops.paint.brush_select(sculpt_tool="DRAW", toggle=False)
bpy.data.brushes["SculptDraw"].strength = strength
strokes = []
for i, coordinate in enumerate(coordinates):
stroke =
"name": "stroke",
"mouse": (0,0),
"pen_flip" : False,
"is_start": True if i==0 else False,
"location": coordinate,
"size": 50,
"pressure": 1,
"time": float(i)
strokes.append(stroke)
bpy.ops.sculpt.brush_stroke(context_override(), stroke=strokes)
print("Finished sculpting")
sculpt([(0,0,1),(0,0,0.5),(0,0,1)])
取自here。
【讨论】:
以上是关于我想通过脚本变形网格的主要内容,如果未能解决你的问题,请参考以下文章