抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Blender使用笔记

建模

网格合并

选中模型,按快捷键ctrl+J

网格按材质切分

  1. 选中模型
  2. 进入Edit Mode
  3. Mesh——Separate——By Material

布尔建模

  1. 创建一个圆柱1,按tab进入编辑模式,选中上表面,按s将上表面进行缩放,变成一个类似“圆锥”的东西
  2. 在圆锥上侧创建一个球,下侧创建一个圆柱2
  3. 使用布尔操作,球布尔Difference,圆柱2布尔Union(注意操作后隐藏球和圆柱)

布尔建模2

模型添加材质

模型材质

自动展UV2

点击Mesh,在Data处添加UV Maps

添加uv集

选择要修改的uvmap(看不见的话向右拉)

选择uvmap

点击UV Editor——按Table开启编辑模式——全选模型——设置Select Mode为面——对模型按右键——UV Unwrap Faces——Smart UV Project

自动展开UV

斜边

快捷键Ctrl+B

进入Edit Mode——选择边——Edge——Bevel Edges——拖动鼠标

选中一圈边

进入Edit Mode——选择一条边——Select——Select Loops——Edge Loops

抬升面

渐入Edit Mode——选中面——Shrink/Fatten(在左侧栏)

插入面

快捷键 I,可以在一个圆面里切一个小圆

进入Edit Mode——选择面——Inset Face——拖动鼠标

点吸附

将一个点吸附到另一个点上,可以实现填补三角形的作用

进入Edit Mode——选择两个点——按M——选择末端点

桥接面

进入Edit Mode——选择两条边——Edge——Bridge Edge Loops

环切

快捷键Ctrl+R

曲面细分

如果要制作圆弧形模型,可以先创建一些整N边形,然后添加Modifier曲面细分(注意要在Object Mode)

UV展开

在自动展开前,先选中面,Mark Seam(会有红色的线)

比如一个圆柱,可以把环形切一下,然后在竖边切一条

vrm

一组包含blendshape的模型

最近在找带有脸部Blendshape的角色模型,尤其是使用了苹果ARKit标准,于是我发现了很多vrm模型

Blender不原生支持vrm模型,于是需要下一个插件

VRM Add on

安装后直接import模型

导出到Unity

之前遇到一个问题,vrm模型导出fbx再导入Unity,却在Skin mesh renderer中看不到Blendshape

解决方案:在Blender中删掉多余的Modify,剩下Armature,再重新导出

删除modifier

MMD

安装

blender_mmd_tools插件下载地址

blenderMMD1

Edit > Perferences > Add-ons > Install > 选择第二步下载的压缩包
  1. 激活插件,找到导入的插件,点亮左边的checkbox即可

blenderMMD2

  1. 当你看到如下内容,说明安装成功(这个小箭头确实不明显,容易找不到)

blenderMMD3

  1. 点击下图的Import即可导入模型和动画,在mmd面板可以导出mmd信息,使用blender的File可以导出fbx模型,后续在Unity、AccuRog软件使用

blenderMMD4

关闭IK

有时我们发现MMD角色的腿不动,很有可能是因为定位到一个非常远的IK,关掉即可(变为灰色)

mmd_ik

渲染视频

调整camera位置

使用选择的相机为View

选择一个相机——View——Cameras——Activate Camera

再次执行可以恢复自由相机

调整输出

设置分辨率、Frame Rate、将渲染结果为FFmpeg Video,Encoding为MPEG-4就能输出mp4视频

blender保存视频

渲染动画

播放Frame Range的动画,并保存相机渲染结果为视频

Render——Render Animation

Auto Rig Pro

插件购买地址Auto Rig Pro,脚本开发建议使用bpy==3.6

自动棒骨

Auto Rig Pro可以绑定生成控制器,便于手动制作动画。如果单纯为了自动绑定人型骨骼,比如MMD2FBX,更适合AccuRig

  1. 准备模型

准备模型

  1. Smart模型

SmartRig

  1. 添加点

添加脖子

添加点

  1. 点击GO!完成

Go

Rig效果

  1. 点击Match to Rig

Match2Rig

  1. 进入Edit模式,点击Mesh,点击Bind

Bind

模型导出

导出为Unity能使用的骨骼模型

导出fbx

Remap动画

将动画Remap到骨架上,是的Target骨架播放Source骨架的动画

如果你没有remap.bmap,那么你需要在Object Mode同时选择动画骨架和模型骨架,进入Pose Mode,依次填写Target Bones内容,制作完成后可以Export bmap,以便后续使用

动画Remap

如果原始动画的初始状态和目标模型的初始状态不同,比如一个是A-Pose,一个是T-Pose,我们需要使用第6步,依次点击动画骨架,点击Copy Selected Bones Rotation,即可将动画的初始姿态转为目标模型的初始姿态

copy_bone_rot

脚本

Blender Python 简易参考

指Python bpy脚本,可以在Blender中使用,也可以在Python中作为一个Headless库使用

pip3 install bpy

Windows和Linux下bpy版本不同,Windows下python3.11对应bpy==4.3

打开提示

在偏好设置中打开Python Tooltips,将鼠标停滞在按钮、属性上时,都会提示要如何调用,在info窗口可以看到几乎每一次操作对应的命令,便于脚本开发

blenderPythonTooltips

pythonTooltips

安装插件

blender有很多好用的插件,也可以用在bpy脚本中

如果不知道插件的名称,可以先UI启动Blender,安装并开关对应插件,在python窗口输入print(bpy.context.preferences.addons.keys()),变化的那一个包,就是你想要的插件的名称

bpy.ops.preferences.addon_install(filepath=f"{os.getcwd()}/xxx.zip")
bpy.ops.preferences.addon_enable(module="yyy")
print(bpy.context.preferences.addons.keys())

输出场景内容

for obj in bpy.context.scene.objects:
print(f"- {obj.name} ({obj.type})")

删除初始状态

# 输出python脚本所在位置
print(os.getcwd())
# 删除初始状态的几个物体
bpy.ops.object.select_all(action='SELECT')
for obj in bpy.data.objects:
print("Name: ", obj.name)
print("Delete all objects")
bpy.ops.object.delete(use_global=False, confirm=False)

打开项目

bpy.ops.wm.open_mainfile(filepath="template/tapmo.blend")

渲染视频

output_path = "output/"
os.makedirs(output_path, exist_ok=True)
bpy.context.scene.frame_start = 1 # 动画开始帧
bpy.context.scene.frame_end = 120 # 动画结束帧
bpy.context.scene.render.engine = 'BLENDER_EEVEE'
bpy.context.scene.render.filepath = output_path
bpy.ops.render.render(animation=True)

评论