zoukankan      html  css  js  c++  java
  • Blender 基础 骨架-02 骨架的各种呈现方式

    Blender 基础 骨架-02 — 骨架的各种呈现方式

    我使用的Blender版本:Blender V 2.77

    前言

    Blender 基础 骨架-01 教程里面,将骨架和模型联系在一起,我们在3D动画里面,管这道工序称之为:绑定,英文就是:Band。(绑定:让骨架控制模型)

    这节课,我们继续学习骨架。学习骨架在Blender里面的各种呈现方式。

    从界面上,我们现在的这个骨架,有点像锥状物,这个东西我们称之为:八面体。当你将场景转一下,你会看到,这个东西其实是立体的,下面的小角锥有四个面,上面的大角锥也有四个面,加一起一共八面。

    这里写图片描述

    在Blender里面,默认骨架的呈现方式就是:八面体。 在Blender里面,还有几个呈现的方式。

    透视 X-Ray

    Shift + 空格,先切换到四视图布局。我们先看右上角的透视图。我们可以看到:骨架被圆柱体包裹着,不太方便看。模型把里面的骨架大部分都包袱住了,所以感觉上好像不太好用。

    这里写图片描述

    Q: 我们如何让这个骨架:就算有模型包袱,我们也可以看到骨架?
    A: 我们可以做一些设定:
    Step 1 . 现在选中这个骨架,然后按Ctrl + Tab 来到 Pose Mode (在 Object Mode里面做下面的设定也是可以的)

    Step 2 . 右边的选单列里面,有一项,有点像一个小人的标签,这个标签就是:Object Data。进入这个 小人 标签。

    这里写图片描述

    我们之前在做模型的时候,经常使用的一个标签,是下面这个 Object.这个标签里面,是当前被选中物件所有的状况。
    这里写图片描述

    当我们在场景里建立了骨架之后,我们就多一个可以使用的标签,就是 这个:Object Data。(这个标签里面有一些我们可以设定的东西)

    进入 小人 标签(Object Data)后,我们可以看到有一项: Display,这个Display里面有一项:X-Ray,这个X-Ray的意思就是医院里的X-光

    这里写图片描述

    Step 3 . X-Ray复选框勾选,现在场景里面,就可以透过模型看到被模型包裹着的骨架。(X-Ray 对我们来讲非常方便。)

    这里写图片描述

    骨架的呈现方式

    再来还有什么模式:
    我们现在可以改变骨架呈现的样式。在 Display 里面,有下面几个选项:

    这里写图片描述

    这几个选择的字比较长,有的被切掉了,我们现在把右边选单列拉长,让字母全部都显示出来:

    这里写图片描述

    你可以看到:
    1. 有默认值 Octahedral 就是八面体
    2. 还有 Stick ,意思是:拐杖或者棍棒
    3. 还有 B-BoneB-BoneB 就是Box的缩写,所以它可能会使用一种像长盒子的方式来呈现骨架
    4. Envelope 一般它的意思是:封套。不太好说,等一下,我们来示范一下它的呈现效果。(这个呈现方式非常重要,下面我们会详细介绍)
    5. Wire 这个就不用说了,就是一条线,骨架会以一条线的方式呈现。

    你试着点击这这个按钮,来看看骨架的各种不同的呈现方式都是什么样子的。

    Octahedral

    Octahedral 就不用说了,八面体,默认的骨架呈现方式。

    Stick

    点击Stick,将骨架的呈现方式切换为棒状看看。现在我们可以看到,骨架就变成了:看起来像棍棒的方式来呈现。使用这种方式呈现的好处就是:因为它比较细,如果我们做比较精细的模型时,比如:手指,树枝。在建骨架的时候,我使用这种呈现方式,会比较容易操作。因为骨架太粗看起来比较麻烦,所以我在必要的时候,我们可以将骨架的呈现方式切换成:Stick

    这里写图片描述

    B-Bone

    再来看看 B-Bone , 呈现方式是下面的样子:看上去像是一个火柴棒,其实就是一个长方体

    这里写图片描述

    Envelope

    重点讲:Envelope 。

    当我们将呈现方式切换为:Envelope时,界面就变成了下面这个样子:(这个Envelope的呈现方式其实对我们来说还是蛮重要的)

    这里写图片描述

    Envelope的呈现方式,按 Tab键 切换到编辑模式Edit Mode )下,就是这个样子的:

    这里写图片描述

    我们观察一下,当我将模式切换为编辑模式,这两个骨头都有一个椭圆形的圈圈在骨架外围,这个是什么东西?
    这个就是:这个骨架所影响的范围。所以,Envelope这种呈现方式我给它翻译成:封套 或者 包袱。也就是说,假如我们把这个骨架看成是一个封套的话,灰色部分就是:骨架所能包裹的模型表面范围。

    例如:上部的子阶层骨架,它所包袱的范围,就是灰色的这一圈的范围:

    这里写图片描述

    假如,我们现在点击(鼠标右键)骨架任何一个关节(骨头的端部)的话,我们就可以使用放大缩小工具(注意: 这里的快捷键是:Alt + S,而不是:S)来改变它现在这个包裹的范围。

    例如:
    我们现在点击(鼠标右键)子阶层骨架的尾部关节,然后按 Alt + S 组合键,我们就可以改变它所影响的范围:

    这里写图片描述

    当然,每个关节都可以去做这个设定。那这个设定会影响到的就是: 你在折弯这个模型是,模型所产生的变化。

    使用 Envelope 呈现方式来 解释并解决 Blender 基础 骨架-01 教程里面遇到问题:部分模型表面没有被骨架控制

    我们现在就来试试看:现在按键盘上的Tab键,回到Object Mode,再按:Shift + 空格 回到四视图布局状态。

    Step 0 . 先还原问题“现场”:
    1. 选择 Octahedral 八面体骨架呈现方式。
    2. 再按 Tab键,切换到编辑模式(Edit Mode),将骨架移动成下图的位置:

    这里写图片描述

    1. Tab 切换回 Pose Mode,按 R 键旋转骨架的时候,模型的一些表面没有被移动:(说明:“现场”还原成功)

    这里写图片描述

    这里写图片描述

    1. Alt + R,将折弯的骨架变回原来的样子。(选中一个骨架,按Alt + R 只能还原这个骨架为原来的位置,其他的骨架还需要继续还原。)

    这里写图片描述

    Step 1 .
    1. 在Pose Mode下,把骨架的呈现模式改为Envelope
    2. 按住 Shift键,选中(鼠标右键选中)所有的骨架:

    这里写图片描述

    箭头所指的圈圈里面就是没有被包裹到的模型表面。

    现在大家马上就可以看到端倪了。为什么模型有的地方的表面没有被移动,就是因为这些表面没有在包裹的范围之内,所以,假如我们点选上面的骨头,旋转它的时候,没有包袱的表面,就不会跟着骨头跑。

    这里写图片描述

    Step 2 .
    1. 现在我们按 Tab 键,进入编辑模式,选中(鼠标右键)上的关节(子阶层骨架尾端关节),按Alt + S组合键 来使用放大缩小工具,把这个关节放大,把模型左上角未被包裹到的表面包裹住即可:

    这里写图片描述

    现在你可以回到 Pose Mode下,使用旋转工具来检验模型的左上角表面是否被包裹完整。各位可以看到,那个表面就跟着骨头跑,这个地方确实被包裹起来了:

    这里写图片描述

    Step 3 . 现在需要将圆柱体右边中间位置的表面也包裹到骨架控制的范围内。对于现在的这个情况:将中间的关节移动到圆柱体中间位置的解决方案,要比放大这个关节的解决方案要好得多。
    1. 按 Tab键,切换为 编辑模式(Edit Mode
    2. 鼠标右键选中中间的关节,移动它到圆柱体中间位置。

    这里写图片描述

    1. (你可以看到上面的图片中,模型左上角的部分表面又步骤骨架包裹的控制范围内了。)对上面的关节进行微调,最后调整成下图样子:(注意:鼠标左键按住目标位置的白色圆,才能成功拖动目标物体。)

    这里写图片描述

    Step 5 . 现在回到 Pose Mode,来旋转一下看看,现在骨架牵动模型的状态就比较理想了。

    这里写图片描述

    当我使用 Envelope 呈现方式 调整完骨架的状态之后,我还是习惯将呈现方式调整为:八面体(Octahedral )的形式来呈现。


    总结:

    1. 快速将折弯的骨架变回原来的样子:组合键:Alt + R Alt + R 就是将角度归回原来的设定值。
    2. 选中一个骨架,按Alt + R 只能还原这个骨架为原来的位置,其他的骨架还需要继续还原。
    3. 在编辑模式(Edit Mode)下,鼠标左键按住目标位置的白色圆,才能成功拖动目标物体
  • 相关阅读:
    RESTful API 设计指南【转】
    一款 .NET 下的轻量级 REST 和 HTTP API 客户端
    Windows 服务开发框架介绍
    实例演示 kino.razor (前端 Javascript 模板工具,Razor 风格)的使用
    深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的
    扩展 IEnumerable<T>,让它根据另一个集合的顺序来排列
    谷歌正式发布Google APIs Client Library for .NET
    身为码农,为12306说两句公道话
    12306外包给阿里巴巴/IBM到底是否可行?
    自定义一个叫 ReadOnlyXmlMembershipProvider 的 MembershipProvider,用 XML 作为用户储藏室
  • 原文地址:https://www.cnblogs.com/aobosir/p/5928603.html
Copyright © 2011-2022 走看看