blender插件
红色与青色
这个作者很懒,什么都没留下…
展开
-
Blender 插件开发 围绕物体旋转的相机
blender插件开发的基本流程是这样的,想做一个功能首先先学会怎么操作,再复制信息窗口上的代码,最后在blender里测试一下,基本完成,当信息窗口里没有操作的代码时,就去翻PythonAPI。围绕物体旋转的相机把前面几篇的东西都用上了,我这篇文章算Blender插件开发的一个总结,以后没遇到特别功能基本不跟新了贴代码 def execute(self, context): parent_object = bpy.data.objects["酒瓶"] #原创 2022-01-29 14:31:24 · 3415 阅读 · 1 评论 -
Blender 插件开发 添加约束
一个简单的功能,相机一直对准物体,不管物体怎么移动,用blender做过这功能的都知道只要添加一个阻尼跟踪就好了代码 def execute(self, context): camera = None for obj in bpy.context.collection.all_objects: if obj.type == 'CAMERA': camera = obj br原创 2022-01-28 10:14:26 · 2507 阅读 · 0 评论 -
Blender 插件开发 节点
节点总共分三部分:材质节点,环境节点和合成节点。节点的开发很简单,先打开一个消息界面,再打开一个着色器编辑器界面,在着色器编辑器内创建一个节点通过消息界面知道节点的type最后转换成代码下面我用代码创建了一个材质,将材质设定成红色test_material = bpy.data.materials.new("test_material") test_material.use_nodes = True test_material.node_tree原创 2022-01-27 10:31:17 · 1402 阅读 · 0 评论 -
Blender 插件开发 计算模型长宽高
模型的长宽高在写一些需要计算的插件时还是挺有用的,可以通过object.dimensions(模型尺寸)知道,可是遇到复数模型组成的物体计算长宽高就比较麻烦了,像我这个模型就是复数子模型组成的,用一个空物体当父级两个方法:方法一,把复数模型合并成一个模型;方法二,通过顶点计算出长宽高方法一代码selected_objects = bpy.context.selected_objects bpy.context.view_layer.objects.active = sele原创 2022-01-26 18:37:29 · 1619 阅读 · 0 评论 -
Blender 插件开发 添加快捷键
有时候插件有些功能需要用快捷键快速调用,比较麻烦的是不知道哪些快捷键已经被设定好了,我就用最简单的方法一个一个按,确定ctrl+D没有调用任何功能,那就先用ctrl+D来当快捷键先创建个Operatorclass TestShortcutOperator(bpy.types.Operator): bl_idname = "test_shortcut.operator" bl_label = "快捷键" def execute(self, context):原创 2022-01-25 14:09:30 · 669 阅读 · 0 评论 -
Blender 插件开发 生成动画
生成动画有两种方法,一种是直接调用object.keyframe_insert(),一种是生成一个fcurve来控制动画,贴代码# 方法1先设置属性再绑定动画 obj = bpy.data.objects['Cube'] obj.location = (0.0, 0.0, 0.0) # obj.keyframe_insert(data_path="location", frame=context.scene.frame_start)没有index表示绑定原创 2022-01-19 17:36:27 · 814 阅读 · 1 评论 -
Blender 插件开发 模型替换材质
现在有a,b,c,d四个材质我想把模型材质替换成bobj = bpy.data.objects['Cube'] b = bpy.data.materials['b'] obj.data.materials.clear() obj.data.materials.append(b)难度再升高一点,我想只替换模型某个面的材质obj = bpy.data.objects['Cube'] b = bpy.data.ma..原创 2022-01-14 13:39:56 · 1006 阅读 · 0 评论 -
Blender 插件开发 添加驱动器
现在有两个方块a和Cube添加一个驱动器让a一直跟着Cube,代码很简单src_obj = bpy.data.objects['Cube'] dst_obj = bpy.data.objects['a'] loc_exp = (dst_obj.location[0], dst_obj.location[1], dst_obj.location[2]) location_names = ('location_x', 'location_y', '.原创 2022-01-13 17:32:23 · 1652 阅读 · 0 评论 -
Blender 插件开发 将object设置成bpy.context.object
公司开始使用blender后一直忙着写插件,最近准备把一些有用的东西写成博客记录一下吧在使用一些bpy.ops.object下的函数时由于无法传参数,基本默认都是调用bpy.context.object或者是选中的模型,所以记录一下怎么将object设置成bpy.context.object# 将所有选中的模型变成False bpy.ops.object.select_all(action='DESELECT') # 有Cube模型获取Cube i.原创 2022-01-07 18:26:40 · 974 阅读 · 0 评论