Blender 基础 骨架 01
Blender 基础 骨架 01
我使用的Blender版本:Blender V 2.77
前言
本讲介绍: 骨架的基本使用方式。
骨架是角色动画里面最常使用的元素,它可以准确控制一个模型的变形,尤其是很复杂的模型。
我们现在先来建一个圆柱体,来示范一下 骨架 的基本使用方法:
骨架 的基本使用方式
Step 0 . 我习惯先将布局中的 灯 和 摄像机 放在最右下角的 可视化布局层 里面。详细的操作请见:Blender 移动制定模型到自定可视化布局层里面 这一教程。
Step 1 . 在场景中,创建一个 圆柱体:按组合键:Shift + A 弹出下面的 Add工具栏,选择里面的:Mesh(网格 / 模型) -> Cylinder(圆柱体)
Step 2 . 重设圆柱体参数:将鼠标放在其中一个视图里面,按键盘上的:T,在弹出的视图右边栏中,设置刚刚添加的圆柱体的参数:(长度(Depth)增加到10.00左右;不要 圆柱体的上下两个面,所以将这 Cap Fill Type 项选择为:Nothing,现在圆柱体变成了一个空心的桶状。其他的参数不变)
Step 3 .
1. 按键盘上的 Tab 键 切换为 编辑模式。
2. 在全选或者没有选中模型都无所谓,按组合键:Ctrl + R (look cut),并将鼠标移动到圆柱体表面位置(这时,会在圆柱体中间位置出现一条紫色的线)。
3. 滚动鼠标滚轮 (或者按键盘上的:Page Up),增加等分节数,将圆柱体切成11等分(差不多就行)。
- 点击鼠标左键确定。这时 紫色的线变成了黄色,上下移动鼠标,可以控制黄色的线上下方向竖直移动。
- 这时点击鼠标右键,黄色的线会回到默认的位置(或者:你也可以将黄色的线移动到你满意的位置后,按鼠标左键,将其固定)。现在完成的切割等分,如图1的样子:
Q: 为什么要切这么多节?
A: 是因为,我想要弯曲这个管子。所以需要有足够多的节数,才能把它弯曲的比较漂亮。切的节数不要太多,也不要太少。
骨架控制的特点就是:一次可以控制非常多的点,而且它在关节的部分采用的是分配控制的方式。解释:它在两个骨架之间,制造部分影响力,这样模型在弯曲的时候,不会看起来很生硬。
现在我们进入正题:怎么建立骨架:
Step 4 .
1. 按:Tab键,切换到 物件模式(Object Mode)
2. 按:Shift + A,选择:Armatrue(骨架) -> Single Bone (单个骨头)
- (现在你还看不到刚刚添加的骨头),按键盘:Z 键,切换为线条显示.(现在,你就可以看到刚刚添加的骨头了)
- 鼠标放在正视图里面,按组合键:Shift + 空格,将这个视图窗口切换为最大显示。滚动鼠标滚轮可以放大缩小场景:(现在你能清晰的看到,这个像锥型 的东西,就是刚刚我们创建的骨头。)
- 骨头被选中的状态下,按:G键,移动骨头。将这个骨头移动到圆柱体下端的地方:(辅助操作:按住Shift键 + 鼠标中键 + 移动鼠标,可以平移场景)
Step 5 . 按键盘上的:Teb键,进入编辑模式。我们来看一下这个骨架的结构,这个骨架,除了一个锥型的身体外,还有一个头和一个尾。(辅助键:鼠标右键可以选择骨架的 头 或 尾。)
鼠标右键选中骨架的 头 或者 尾 之后,按住鼠标左键,就可以推动骨架的 头 或者 尾 ,你拉的越长,骨架的身体就越长。
Step 6 . 我们现在要把这个骨架散布在这个圆柱体内,所以,我们现在要抓住这个骨架的尾端,把它移动到圆柱体大概中间的位置,稍微呈现一小角度:(为什么要把这个骨架放斜,我们之后会解释)
Step 7 . 我们现在要添加另外一只骨架,要把它跨过圆柱体的顶端。
1. 操作跟我们建模时用的 Ecx chu 工具一样,鼠标右键选中当前骨架的尾部,按键盘上的字母 E 。当我们按下字母 E 的时候,移动鼠标,你会看到,在原骨架的尾端长出了一只骨架。
2. 将新长出的骨架的尾端放到圆柱体的顶端位置,按鼠标左键固定它,如下图:
这样,我们给圆柱体添加的骨架,就完成了。现在我们按 Tab 键,回到物件模式(Object Mode),你可以看到,这个骨架现在是包含了两个骨头和三个关节(或叫:节点)。
现在我们要如何控制这个骨架呢?
假如我们现在转动这个骨架的话,你可以看到,在物件模式(Object Mode)下,你只能绕着下面骨头的头这个节点为转点,进行转动:
假如我们进入编辑模式(按 Tab 键进入),我们鼠标右键选中骨头,按 R 旋转它,我们使用可以选择骨头的;
现在选中关节(除了子阶层骨架的尾关节),按 R 旋转它,我们不能旋转关节。可是我们希望使用关节来调整骨架。那么,怎样才能通过关节来调整骨架呢?
我们可以在下面的选单列里面可以看到,当我们选中骨架的时候,选单列里面的项会改变,其中会多出来一个项:Pose Mode。 Pose的意思就是:摆姿势:
现在我们可以选择 Pose Mode。当我们选择Pose Mode 时,我们在使用旋转工具(快捷键:R),现在就可以按照骨架的关节的位置来旋转 :
一个逻辑:
骨架有父子阶层的关系。所以第一节建立的是父阶层,第二个建立的子阶层:
所以,现在我们选中父阶层,转动(快捷键:R),子阶层会跟着它动,整个子阶层会被父阶层牵着跑:
当我们选中子阶层时,转动,不会影响到父阶层:
重点来了:现在我们怎样将这副骨架跟这个圆柱体模型产生关系?
Step 8 .
1. 首先我们选择这个圆柱体模型,
2. 然后按组合键:Shift + 空格,回到四视图布局场景,
3. 现在点击 Blender窗口 右边框里的 Modifiers (边修器):
- 我们给这个模型增加一个 Modifiers,这个Modifiers 是:Armature
我们点击 Object ,它会弹出一个下拉选单,选择里面的:Armature。(这个 Armature 是Blender里面内建的名称,当我们建立一副骨架的时候,它就会自动为骨架建立一个叫Armature的名称。)
将Bind To: 里面的 Bone Envelops复选框勾选:
顺便一提:虽然骨架建立了两节,但实际上,我们切换到 物件模式(Object Mode),骨架在物件模式下,不管你对这幅骨架里面建立多少节,只要是同一组骨架中延伸出来的,它全部被视为是同一个物件。它内定的名称就是:Armature。你可以在这里看到:
- 我们现在回到 Pose Mode 下,随带一提,这里也有快速键:Ctrl + Tab ,可以在 Pose Mode 和 Object Mode 之间进行切换。
- 在 Pose Mode 和 Object Mode 下,按 Tab 键,会在 当前模式 和 编辑模式(Edit Mode)之间进行切换。
当你使用快捷键不是很熟练的情况下,我还是建议你在选单列中使用鼠标点击进行模式的切换,这样不容易出错。
Step 9 . 现在我们在 Object Mode 下选中骨架,按 Ctrl + Tab 切换到 Pose Mode 下。我们现在选择上面这个骨头,按 R 使用旋转工具转转看,大家可以看到,现在这个圆柱体模型已经被影响到了:
有的朋友,可能会看到圆柱体模型的有些表面没有控制的很好,比如像下面这样:
出现这种情况的原因是:因为骨架内定的影响范围可能不够足以涵盖到圆柱体左上角这边的表面。
但是没有关系,我们可以使用很多种方式来修整,我现在就用最简单的方式:Step a . 按Tab 键,进入编辑模式。选中上面的关节(子阶层骨架的尾关节),稍微向左边移动一些:
Step b . 现在,在按一下 Tab键,回到 Pose Mode, 再试着旋转(快捷键:R):
解释: 现在上面的骨头向左移动了一点,所以使骨头的影响范围把左上边的表面给涵盖进来了。
当然,这是最简单的做法,我们后面教大家更专业的做法。
同样的道理,你在 Pose Mode下,选中父阶层的骨架,进行转动(快捷键:R),如果你需要下面这幅图的问题,比如像下面圈圈里的地方也需要修整。这个地方,出现了与上面同样的状况,圆柱体右中部也是没有涵盖到的表面 。
修整的方法也和上面一样:按 Tab键,来到 Edit Mode,选中两个骨头中间的关节,向右移动一点点就可以。修整完成后,按 Ctrl + Tab 回到 Pose Mode。选中父阶层骨架,按 R 转动它:(效果不错)
总结
现在我们就可以体会到了,假如我们现在有一个骨架,然后让这个骨架和我们的模型产生关联关系之后,我们就可以使用骨架来控制模型的移动。
注意:
1. 我们在 Pose Mode 下面移动骨架,是控制了这个骨架的动作。(没有改变骨架的本身设定的位置。)
2. 如果你想编辑骨架的设定位置,你必须按 Tab 键,切换到Edit Mode下。在Edit Mode里面才是真正的编辑这个骨架。
Blender 基础 骨架 01的更多相关文章
- Blender 基础 骨架-02 骨架的各种呈现方式
Blender 基础 骨架-02 - 骨架的各种呈现方式 我使用的Blender版本:Blender V 2.77 前言 在 Blender 基础 骨架-01 教程里面,将骨架和模型联系在一起,我们在 ...
- 【T-SQL基础】01.单表查询-几道sql查询题
概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...
- CSS3基础入门01
CSS3 基础入门 01 前言 相对于css2来说,css3更新了很多的内容,其中包括选择器.颜色.阴影.背景.文本.边框.新的布局方案.2d.3d.动画等等. 而如果想要学习css3的诸多部分,不妨 ...
- lqb 基础练习 01字串 (itoa)
基础练习 01字串 时间限制:1.0s 内存限制:256.0MB 问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: 00000 00001 0 ...
- Java实现 蓝桥杯 基础练习 01字串
基础练习 01字串 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: 00000 ...
- 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结
086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...
- 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现
075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...
- 074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现
074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现 本文知识点:综合案例-数组移位-主方法功能3的实现 说明:因为 ...
- 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现
073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...
随机推荐
- 20 Python 常用模块
collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...
- LeetCode OJ:Minimum Size Subarray Sum(最小子数组的和)
Given an array of n positive integers and a positive integer s, find the minimal length of a subarra ...
- hdoj-1285-确定比赛名次(拓扑排序)
题目链接 /* Name:hdoj-1285-确定比赛名次 Copyright: Author: Date: 2018/4/11 15:59:18 Description: 标准的拓扑排序模板题,注意 ...
- Codeforces Round #279 (Div. 2)B. Queue(构造法,数组下标的巧用)
这道题不错,思维上不难想到规律,但是如何写出优雅的代码比较考功力. 首先第一个人的序号可以确定,那么接下来所有奇数位的序号就可以一个连一个的确定了.然后a[i].first==0时的a[i].seco ...
- MyISAM引擎的特点及优化方法
1.什么是MyISAM引擎?MyISAM引擎是MySQL关系数据库管理系统的默认存储引擎(MySQL5.5.5以前),这种MySQL的表存储结构从旧的ISAM代码扩展出许多有用的功能.在存储的时候,每 ...
- Python collections系列之双向队列
双向队列(deque) 一个线程安全的双向队列 1.创建一个双向队列 import collections d = collections.deque() d.append(') d.appendle ...
- GWT实现“跟随标题栏”
在一些商城或者博客上,随处可见一些“跟随的标题栏”,什么是”跟随的标题栏“呢?它的效果是当浏览器窗口移到看不见某处内容的时候,这块内容的标题会紧贴在浏览器顶部,跟随浏览器滑动,当用户将浏览器内容往上拖 ...
- HDOJ1010 (DFS+奇偶剪枝)
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- Java基础--比较器Comparator
Comparable接口和Comparator接口都是用来定义集合中的排序的,只是Comparable是在集合内部定义排序的实现,Comparator是在集合外部排序的实现. Comparable 的 ...
- postgresql 模式与用户,及跨库访问
1 控制台命令\h:查看SQL命令的解释,比如\h select.\?:查看psql命令列表.\l:列出所有数据库.\c [database_name]:连接其他数据库.\d:列出当前数据库的所有表格 ...