NSDT工具推荐Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包

有关创建模型的更多详细信息,请参阅在 Blender 中创建模型。 我们将为这个例子做一个非常简单的模型——蠕虫! 从我们的初始立方体开始,进入编辑模式,切换到面选择,然后选择任何面:

按“e”(对于挤出,你也可以从菜单中选择“网格”->“挤出”->“挤出区域”),然后稍微移动挤出的面。 重复直到你得到一个好的蠕虫。 一定要在一条直线上挤出你的蠕虫,我们会用我们的动画来弯曲蠕虫。

现在我们已准备好添加骨架或骨架,以用于为对象设置动画。 首先,让我们通过在场景中单击鼠标左键,将选择标记放在蠕虫上。 要将标记正确放置在 3 格中,通常最简单的方法是左键单击,然后查看视图(使用数字键盘或使用鼠标中键移动鼠标)并再次左键单击。

确保你处于对象模式(不是编辑模式),然后选择添加 Add->Armature->Single Bone:

嗯……我们好像什么都没看到。 那是因为骨骼在我们的模型内部。 在大纲视图中(默认为右上面板),选择骨架。 然后,在属性面板中,选择对象窗格(小立方体),向下滚动到显示组,然后单击 X-Ray:

现在我们可以看到骨骼了。 移动它直到它与模型对齐。 移动骨头的尖端部分,直到它的大小正确。

我们需要应用这个转换。 在对象模式下,选中骨骼,按 ctr-a,然后应用旋转和缩放。 这在Blender中没有明显的效果,但需要导出。 你可以检查以确保已在属性窗格中正确应用转换——旋转和缩放应为零。

这是怎么回事:Blender 存储了模型空间中每个顶点等的局部位置,然后还存储了整个模型本身的变换矩阵。当 bender 显示模型时,它使用这个变换矩阵。当它导出 模型,它没有。所以,为了让 blender 的视觉效果与 Ogre 可以看到的相匹配,我们将这个转换矩阵应用于模型本身。

选择骨骼的“尖”端,按“e”(挤出),移动鼠标挤出骨骼,完成后按鼠标左键。

继续挤压骨骼,直到你的蠕虫中有一个漂亮的骨架。

此时,骨架还没有与我们的对象配对。 它们恰好在空间上彼此靠近,但它们之间没有任何关系。 我们需要将蠕虫网格作为骨架的父级。 在我们这样做之前,我们需要确保所有变换都已应用于网格。 在对象模式下,选择网格并确保旋转、位置和比例为零。 如果没有,只需按 ctrl-a 应用,就像电枢一样。 在对象模式下,首先选择网格(你可以在大纲中执行此操作),然后选择骨架(按住 Shift 键单击)并使用自动权重将对象作为骨架的父级。

将骨架作为网格的父级时,系统需要知道网格中的哪些顶点由哪个骨骼控制。 一个特定的顶点可以由多个骨骼控制(不同的骨骼具有加权影响)。 如果我们以“正确的方式”这样做,我们将创建顶点组,并让每个骨骼控制不同的顶点组。 让我们偷懒,让blender来处理。 对我们来说,使用邻近度来确定哪个骨骼控制每个顶点。

选择骨架,然后进入姿势模式。 旋转其中一根骨骼以确保骨架已应用于模型:

在底部平面中,切换到摄影表编辑器。

然后切换到动作编辑器。

单击新按钮以获取新操作:

然后单击同一个按钮(现在命名为“Action”)将其重命名为有用的名称,例如“Wave”:

确保选择了骨架(和所有骨骼!)并且我们处于姿势模式。 然后按“i”插入关键帧(或从姿势菜单中选择插入关键帧:

将时间轴移动几帧——比如 20 左右,然后旋转一些骨骼,然后插入一个新的关键帧:

继续,直到你有一个漂亮的动画。 看起来不错,然后点击动作名称旁边的F按钮(这样我们清除它时会保存这个动画),然后点击X按钮清除动画(这样我们就可以再做一个)

如果你愿意,请重复此过程以创建更多动画。 然后,切换到 NLA 编辑器:

添加新轨道:

然后添加一个动作条。

如果你有额外的动画,添加一个新的轨道,将绿色的动画时间线移动到上一个动画的末尾,并添加一个新的动画到时间线:

在两个动作之间来回擦洗时间线,并确保它们都按照您的意愿进行。 然后,导出所有内容,并将 .mesh 和 .skeleton 文件复制到适当位置。


原文链接:Quick and Dirty Guide:Rigging and Animating a Model

bBimAnt翻译整理,转载请标明出处