Blender骨骼动画快速教程
有关创建模型的更多详细信息,请参阅在 Blender 中创建模型。 我们将为这个例子做一个非常简单的模型——蠕虫! 从我们的初始立方体开始,进入编辑模式,切换到面选择,然后选择任何面:
推荐:将 NSDT场景编辑器 加入你的3D开发工具链。
按“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 文件复制到适当位置。
原文链接:Blender骨骼动画入门 — BimAnt
相关文章:

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

【C++算法】dfs深度优先搜索(下) ——【全面深度剖析+经典例题展示】
💃🏼 本人简介:男 👶🏼 年龄:18 🤞 作者:那就叫我亮亮叭 📕 专栏:关于C/C那点破事 文章目录0.0 写在前面1. 中国象棋1.1 题干信息① 背景说明概述② 问题描述…...

HIVE 基础(三)
目录 建表语句 表数据 Hive建表高阶语句 - CTAS and WITH CTAS – as select方式建表 CTE (CTAS with Common Table Expression) LIKE 创建临时表 清空表数据 修改表(Alter针对元数据) 改名 修正表文件格式 修改列名 添加列 替换列 动态分…...

redis-cluster集群搭建
安装redis所需环境 yum install -y gcc-c yum install -y wget 创建文件夹 cd / mkdir redis/redis-cluster/7001 cd redis/redis-cluster mkdir 7002 7003 7004 7005 7006 7007 7008下载redis压缩包并解压安装 wget https://download.redis.io/redis-stable.tar.gz tar -…...
【C语言】可变参数列表va_list
本篇博客让我们来认识一下C语言学习过程中往往被忽略的可变参数列表 所谓可变参数,就是一个不限定参数数量的函数,我们可以往里面传入任意个数的参数,以达成某些目的。 关联:C11可变模板参数 1.函数 #include <stdarg.h>…...

CentOS7.6 MySQL8安装
1 检查是否安装过 MySQL rpm -qa | grep -i mysqlmariadb rpm -qa | grep mariadb2 卸载之前的安装 MySQL rpm -e --nodeps 软件名 //强力删除,对相关依赖的文件也进行强力删除卸载 rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_643 官网下载 MySQL :: D…...
安装Tomcat的步骤?
首先先完成JDK配置,javac -version 检测 1.把tomcat下载到本地硬盘 2.创建tomcat8.0文件夹,完成解压(免安装)4.打开解压之后的目录,进入bin目录,双击startup.bat,启动tomcat5.可以看到弹出一个黑色的窗口,不要关闭,如果关闭意味着…...

Redis之分布式锁
随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的 Java API并不能提供分布式锁的能力。为了解决这个问题…...

2022年中国前10电商GMV总结
我是卢松松,点点上面的头像,欢迎关注我哦! 1,阿里8万亿;2,京东3万亿;3,拼多多3万亿;4,小程序私域电商3万亿;5,抖音电商1.4万亿。6,抖音本地生活服务电商600亿。7…...
ES6新增扩展:字符串-数值-数组-函数-对象
ES6新增扩展字符串的扩展判断字符串是否包含在另一个字符中字符串补全字符串重复消除字符串空格replaceAll()替换全部字符串at字符串匹配输出数值的扩展数值分隔符检测数值是否有限检测是否为NaNNumber.parseInt()、Number.parseFloat()isInteger()判断是否为整数Math.sign()判…...
python中import原理
0. 前言 在 python 中引入 Module 是再常见不过了,那么当我们 import 时它做了什么事情呢?它是如何加载 Module 使用的呢? 1. 什么是 module? 一般,Module 是一个后缀为 .py 的文件,其 module 名称一般…...

《Qt6开发及实例》6-4 显示SVG格式图片
目录 一、简介与设计 1.1 简介 1.2 设计 二、SvgWidget 2.1 鼠标滚轮事件 三、svgwindow 四、MainWindow 一、简介与设计 1.1 简介 1、SVG 的英文全称是 Scalable Vector Graphics,即可缩放的矢量图形。它是由万维网联盟(W3C)在 200…...

OpenGL ES 绘制一张图片
GLSL 语法与内建函数 GLSL 的修饰符与数据类型 GLSL 中变量的修饰符 const:修饰不可被外界改变的常量attribute:修饰经常更改的变量,只可以在顶点着色器中使用uniform:修饰不经常更改的变量,可用于顶点着色器和片段…...
Python 之 Pandas DataFrame 数据类型的行操作和常用属性和方法汇总
文章目录一、DataFrame 行操作1. 标签选取2. 数值型索引和切片3. 切片操作多行选取4. 添加数据行4.1 追加字典4.2 追加列表5. 删除数据行二、常用属性和方法汇总1. 转置2. axes3. dtypes4. empty5. columns6. shape7. values8. head() & tail()9. 修改列名 rename()10. inf…...
MacOS下载钉钉直播回放视频的Python最新解决方案
tags: Python MacOS Tips 写在前面 之前写过一篇关于用Charles抓包下载钉钉直播回放视频的方法, 那会还是可以直接通过FFmpeg下载m3u8链接并且直接合并的, 但是现在直接上FFmpeg会出现403, 所以还是用别的方法来做吧. 后来发现抓包找到的m3u8不是加密视频流, 那就直接下载ts…...

2023年测试人跳槽新功略,涨薪10K+
软件测试是如何实现涨薪的呢?很多人眼中的软件测试岗位可能是简单的,技术含量不是那么高,就是看看需求、看业务、设计文档、然后点一点功能是否实现,再稍微深入一点就是测试下安装部署时会不会出现兼容性问题,以及易用…...

RabbitMQ之Work Queues
Work Queues 工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务…...

CRM哪家好?这5个CRM管理系统很好用!
CRM哪家好?这5个CRM管理系统很好用! CRM(Customer Relationship Management)即客户关系管理,能够帮助提高客户的价值、满意度、赢利性和忠实度,缩减销售周期和销售成本、增加收入、寻找扩展业务所需的新的市场和渠道,…...
国内ce认证机构有哪些 国内十大CE认证机构排名 做ce认证的公司推荐
CE认证,是任何企业的任何产品走进欧盟市场的硬性要求。挑选CE认证机构,一定要认准拥有正规资质的机构/企业,例如中国质量认证中心CQC、CVC威凯、CTI华测检测,以及TV南德认证、安博检测、万泰认证等。本文中,MaiGoo小编…...
多If函数封装的策略
在工作中我们经常遇到有多个if的判读函数,这是一件很正常的事情,如下: let order function (orderType, isPay, count) {if (orderType 1) {// 充值 500if (isPay true) {// 充值成功console.log(中奖100元)} else {if (count > 0) {c…...

Mysql的卸载与安装
确保卸载干净mysql 不然在进行mysal安装时候会出现不一的页面和问题 1、卸载 在应用页面将查询到的mysql相关应用卸载 2、到c盘下将残留的软件包进行数据删除 3、删除programData下的mysql数据 4、检查系统中的mysql是否存在 cmd中执行 sc deleted mysql80 5、删除注册表中的…...
Cursor 1.0 的核心功能亮点及技术价值分析
Cursor 1.0 的核心功能亮点及技术价值分析 结合官方更新和开发者实测整理: 🛠️ 一、BugBot:智能自动化代码审查 功能亮点:深度集成 GitHub,自动扫描 Pull Request(PR)中的潜在 Bug(…...

智绅科技 —— 智慧养老 + 数字健康,构筑银发时代安全防护网
在老龄化率突破 21.3% 的当下,智绅科技以 "科技适老" 为核心理念,构建 "监测 - 预警 - 干预 - 照护" 的智慧养老闭环。 其自主研发的七彩喜智慧康养平台,通过物联网、AI 和边缘计算技术,实现对老年人健康与安…...
服务器中日志分析的作用都有哪些
服务器日志是用来检测和排查可疑行为的主要工具,运维团队可以通过分析和解读日志文件,发现服务器中潜在的网络安全威胁或异常活动,下面,就让小编和大家一起来了解一下服务器中日志分析的作用都有什么吧! 对于服务器中的…...

GIC v3 v4 虚拟化架构
ARMV8-A架构中包含了对虚拟化的支持。为了与架构保持匹配,GICV3也对虚拟化做了支持。新增了以下特性: 对CPU interface的硬件虚拟化虚拟中断maintenance 中断:用于通知监管程序(例如hypervisor)一些特定的虚拟机事件 …...

Pytorch安装后 如何快速查看经典的网络模型.py文件(例如Alexnet,VGG)(已解决)
当你用conda 安装好虚拟环境后, 找到你的Anaconda 的安装位置。 我的在D盘下; 然后 从Anaconda3文件夹开始:一级一级的查看,一直到models Anaconda3\envs\openmmlab\Lib\site-packages\torchvision\models 在models下面&#x…...

20250606-C#知识:匿名函数、Lambda表达式与闭包
C#知识:匿名方法、Lambda表达式与闭包 闭包乍一听感觉很复杂,其实一点也不简单 1、匿名方法 没有方法名的方法一般用于委托和事件 Func<int, int, int> myAction delegate(int a, int b) { return a b; }; Console.WriteLine( myAction(1, 2)…...
Java观察者模式深度解析:构建松耦合事件驱动系统的艺术
目录 观察者模式基础解析核心结构与实现原理Java内置观察者实现Spring框架中的高级应用典型应用场景与实战案例观察者模式变体与优化常见问题与最佳实践总结与未来展望1. 观察者模式基础解析 1.1 模式定义与核心思想 观察者模式(Observer Pattern)是一种行为型设计模式,它…...

JAVA理论-JAVA基础知识
1.Java 基础 知识 1.1 面向对象的特征(了解) 面向对象的特征:封装、继承、多态、抽象 封装:就是把对象的属性和行为(数据)结合为一个独立的整体,并尽量隐藏对象的内部细节,公开我希…...
自定义事件wpf
// 自定义控件 public class MyCustomControl : Control { public static readonly RoutedEvent MyCustomEvent EventManager.RegisterRoutedEvent( "MyCustom", RoutingStrategy.Bubbling, typeof(RoutedEventHandler), typeof(MyCustomControl) ); public event R…...