Blender 3D︰從入門到精通/骨骼的使用

维基教科书,自由的教学读本


骨骼用于移动模型并使其可造型。如果你尚未准备好学习这点并希望继续简易建模,请跳过本节教程到下一章节。

骨骼是一种对动画角色尤为重要的建模工具。骨骼让你能够通过比每次都试图重排顶点更简易的方式移动角色的肢体。

其基本原理是让每根骨头同某些顶点相关联,当处于姿态模式时,这些顶点会随骨头姿势变化而变动。一旦你学会其要领,使用骨骼是相当容易的事情,不过就像 Blender 中的很多东西一样,乍一看可能会让人气馁。不用怕——这就是教程所要的!

模型[编辑]

骨骼只做其分内的事——实际上渲染的时候它们是不可见的!所以,我们需要一个模型一同使用它。用前边教程创建一个简单模型,如果还没有创建的话,然后我们要开工了。

本节教程里,我们将使用一个人体协调模型,不过骨骼可以用于几乎任何体型。同样的想法可以应用于猫、蜘蛛等等。

安放骨骼[编辑]

注意:这里只是示范下给物体添加骨骼的基础。到 advanced animation 页来看更详细的指南

首先,我们需要一个模型来安放骨骼!本节教程里,我们会使用一个人形模型。我使用基于 Blender 3D: Noob to Pro/Modeling a Simple Person 第一个教程制作的快捷模型。它相当的块状,但这不是一个精细的教程。当然,你可以在这里找到一个为你预建好的模型。


OK,首先,这是我们的装备,一个“块状仔”站在平面上。

现在,我们给块状仔安放一些骨骼!物体模式(Object Mode)下,在空格键 -> 添加(Add)-> 骨架(Armature)。

我们所看到的是一个骨架,这是一根骨头。现在,我们需要把骨头放进块状仔里!移动并且旋转骨头以使其位于小人的胸部。如果你建的骨头尺寸不合适,那么通过移动骨头的一端来改变它的大小:切换到编辑模式(Edit Mode),选择骨头的一个端点,然后通过 GKEY 来移动它(你也许会想缩放骨头,但是这样会弄乱)。如果是在实体模式(solid mode)下,你可能需要切换回线框模式(wireframe mode)——简单的按 ZKEY 来在它们之间切换。

以第一根骨头的一个端点为起点,创建第二根骨头,确定下你是在编辑模式(Edit mode),选择第一根骨头的端点,然后按 EKEY。第二根骨头出现了,其起点是第一根骨头上刚才所选的那个端点。移动鼠标在终点的位置按 LMBENTER 或者 SPACE。现在,按需要拉伸(EKEY)并缩放骨头以放进它的身体!确定下是在编辑模式(Edit mode),然后单击骨头一端的粉色的点来进行像拉伸这样的操作。这些操作同顶点的操作非常类似,可以拉伸、旋转、平移以及细分。你完成的成果应该看起来是这样的:

现在,要的事情简单了些,我们将为骨骼命名。例如,我建的骨骼命名为 RT_Forearm、Left_Forearm、RT_Upper_Arm 等等。选择骨头然后按 F9 来显示编辑面板(Editing panel),在其中“骨架骨骼”("Armature Bones")字面板左上框中编辑名字,在下图截屏中以红色箭头指示的。(新手注意:当你为骨骼命名是请记住如果你是从前面看小人,那么你的左侧是小人的右侧。为便于命名,通过 CTRL+NUM1 切换视图到从后面看小人。)

现在我们需要设置骨骼为网格的父对象。返回物体模式(Object Mode)然后选择盒状仔。这时再选择骨架并按 CTRL+PKEY(新手注意:在定义谁是父对象时选择的顺序很重要,所以你不可以同时选择两个物体),会弹出菜单,选择骨架(Armature),然后选 Create From Bone Heat(blender 2.46 以前版是 Create From Closest Bones)。选择骨架然后进入姿态模式(Pose Mode)(CTRL+TAB)(你需要选择骨架来使这一选项出现!)。试着小幅移动骨头,如果你之前操作都正确,当你移动骨骼的时候,网格会跟着动!如果没有,放大下骨骼使其在网格内更相匹配,放大骨骼直到它们合乎你的意愿。(如果你平移/旋转骨骼的时候没反应,阅读以下关于调整骨骼封套的注解)。现在有骨骼了,你可以把盒状仔放置各种不同的姿势而不用移动每一个独立的顶点了。

注意:Create From Bone Heat 在同骨架相关联的子对象中创建顶点组,这是根据骨骼的姿势和尺寸自动完成了。要么,如果你不希望 Blender 自动分配组的话,选择 Name Groups 代替 Create From Bone Heat,然后手动分配组。手动顶点组要在编辑模式(Edit Mode)[编辑模式(Edit Mode)F9链接与材质(Links and Materials)标签]然后使用分配(Assign)移除(Remove)按钮。“分配”向组内添加顶点(不会移除当前未选中的任何成员),而相反地“移除”会移除选中的顶点。顶点可以分配到多个组。

回应前文注释,如果得当地分配顶点到骨骼,它们会移动,无论骨骼是否在躯壳内部。(当然,这会影响它们如何变形的)。我猜测你的错误是创建躯壳并且(更重要地是)指定父对象到骨架,而骨架在躯壳的外面,这导致 Blender 根本没有分配顶点到任何骨头。你可以通过编辑躯壳来检查这点,在链接与材质(Links and Materials)标签选择顶点组,然后点选择(select)按钮。这样会使关联到骨头的顶点高亮。如果什么都没有选中,那就意味着之前没有分配任何顶点组——这时你需要按照上文所述手动分配它们。

如果这没起作用,选择编辑(Edit)或者姿态(Pose)模式,骨头(或骨骼)选择封套显示(Envelope display)模式[F9 -> 骨架(Armature)-> 封套(Envelope)],然后按 Alt+S 并增加其扩大其区域,以包含所有应该受骨头影响的面。

最后,这是一个如何通过骨骼移动盒状仔的例子:

  新手:有人能告诉我如何单独移动骨骼吗?
  在物体模式(object mode)我可以移动骨骼的整体,然后小人跟着走。
  在物体模式(object mode)我不能单独选择一根骨头。
  在编辑模式(edit mode)我可以单独选择一根骨头,并且小人不会有任何相随的变化。
  在物体模式(object mode)选择骨架,然后在姿态模式(pose mode)就可以了。
  新手2:我在姿态模式(pose mode)骨骼不能旋转或者平移。。。。之后,
  我发现问题所在了:“只移动物体中心”("Move Object Centers Only")按钮[就在
  旋转/缩放轴心(Rotation/Scaling Pivot)按钮的右边]。