blender 使用“Shape Keys”(形状键)

【Blender教程】形态键动画_哔哩哔哩_bilibili

  1. 准备人头模型
    • 首先需要一个人头的基础网格模型,包含眼睛、嘴巴等部位
    • 进入编辑模式,确保顶点布局合理,待会儿需要移动这些顶点
  2. 设置相对形状关键帧
    • 切换到物体数据属性面板,选择Shape Keys选项卡
    • 默认情况下只有一个基础形状关键帧
    • 点击"+"号创建新的形状关键帧,命名为"闭眼"
    • 在3D视图中选择眼睑周围的顶点,向内移动形成闭眼状态
    • 再添加"张嘴"形状关键帧,移动嘴部顶点形成张嘴状态
  3. 调整权重制作眨眼和说话动画
    • 在时间线上,将闭眼关键帧权重设置为0
    • 在适当的时间点,将闭眼权重设为1,然后再设回0,即可形成眨眼动画
    • 对张嘴关键帧做类似操作,权重在0-1之间波动,形成说话动画
  4. 精细化动画
    • 可以添加更多形状关键帧,比如撅嘴、侧嘴等嘴型
    • 也可以添加眉毛、脸颊等其他面部表情
    • 将多个相关的形状关键帧权重同步驱动即可协同工作
    • 需要反复微调各个形状关键帧的权重曲线来精细化动画
  5. 渲染动画
    • 最后只需设置好渲染范围和输出选项
    • 点击渲染动画即可得到最终的人头说话并偶尔眨眼的动画

总的来说,运用Shape Keys的步骤是:先设置好各种面部表情的形状关键帧,然后在时间线上驱动这些关键帧的权重值,最终通过权重的叠加形成生动的面部表情动画。掌握了这个技巧,就可以制作出各种复杂的人物动画。

使用“Shape Keys”(形状键)可以创建复杂的面部动画,包括让一个人头说话和偶尔眨眼睛。以下是一个基本的步骤指南:

  1. 创建基础形状键:在Blender中,首先为你的模型创建一个名为“Basis”的形状键,这将作为所有其他形状变化的基础。

  2. 分离眼睛和其他部件:为了避免在调整面部时影响到眼睛或其他配件,你需要将它们从主网格中分离出来。

  3. 应用所有修改器:在添加形状键之前,确保应用所有修改器,因为一旦添加了形状键,就无法再应用修改器。

  4. 创建顶点组:为了能够对面部的左右两侧进行不对称的调整,创建顶点组是非常有用的。

  5. 添加说话相关的形状键:创建一系列形状键来模拟说话的动作,比如嘴巴的开合、嘴唇的移动等。

  6. 添加眨眼的形状键:创建一个形状键来模拟眨眼动作,通常只需要简单地移动眼睑的顶点。

  7. 设置驱动程序:为了让动画自然,你可以设置驱动程序来控制形状键的值,这样可以根据时间轴上的关键帧自动调整形状键的值。

  8. 调整形状键的权重:通过调整每个形状键的权重,你可以控制每个形状变化的程度,从而实现更加细腻的面部表情。

  9. 同步音频:如果你有音频文件,可以同步形状键的动画,以匹配说话的节奏和眨眼的时机。

这些步骤提供了一个基本的框架,但实际的实现可能会根据你的具体需求和模型的复杂性而有所不同。更多详细信息和教程,你可以参考Blender社区和教程网站,如知乎和Bilibili上的相关内容。祝你制作动画顺利!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/750105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp 分包

在uniapp项目中的根目录下找到pages.json文件夹: {"pages": [ {"path": "pages/index/index","style": {"navigationBarTitleText": "index"}}],// 分包"subPackages": [{"root"…

Lua中文语言编程源码-第二节,更改lbaselib.c基础库模块, 使Lua支持中文关键词(与操作相关的)

源码已经更新在CSDN的码库里: git clone https://gitcode.com/funsion/CLua.git 在src文件夹下的lbaselib.c,是Lua的基础库模块。 增加中文保留字标识符列表,保留英文保留字标识符列表。 搜索luaB_collectgarbage函数: 控制和查询Lua垃圾回…

算法中出现的一些报错及其处理办法

Exception in thread “main” java.lang.UnsupportedOperationException 源代码是 Scanner s new Scanner(System.in);int target s.nextInt();Set<Integer> set new HashSet<>();for(int i0;i<target;i)set.add(s.nextInt());List<Integer> list s…

基础练习题之函数

前言 这些题目来自与一些刷题网站,以及c primer plus,继续练习 第一题 给你一个数&#xff0c;让他进行巴啦啦能量&#xff0c;沙鲁沙鲁&#xff0c;小魔仙大变身&#xff0c;如果进行变身的数不满足条件的话&#xff0c;就继续让他变身。。。直到满足条件为止。 巴啦啦能量…

SQLiteC/C++接口详细介绍之sqlite3类(十五)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十四&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十六&#xff09; 47.sqlite3_set_authorizer 用法&#xff…

11.进程的同步与互斥

11.进程的同步与互斥 计数信号量及其初始化 和王道里面学的PV操作一摸一样,带个count变量,带个阻塞队列 //D:\code\x86\code\start\start\source\kernel\include\ipc\sem.h #ifndef OS_SEM_H #define OS_SEM_H#include "tools/list.h"/*** 进程同步用的计数信号量*…

BswM模块配置指导

文章目录 BswM配置的分类自动配置:通信控制Rule:CC_ComMChannel_Rx自动配置:Ecu状态处理自动配置:模块初始化其他配置总结BswM模块是基础软件的模式管理模块,模式/状态控制都是由BswM模块进行,其实现的方式是通过 “请求-仲裁-执行”三步完成。本篇基于基本Can通信所用到…

string.h主要函数汇总

大家点击蓝色的连接就可以跳转查看了&#xff1a; strcpy,strncpy strchr strncmp strcmp strcat strncat strstr

2024计算机二级6

1.基本路径测试是属于白盒测试方法且是动态测试&#xff0c;静态测试不实际运行软件&#xff0c;主要通过人工进行分析。动态测试就是通常所说的上机测试&#xff0c;通过运行软件来检验软件中的动态行为和运行结果的正确性。百合测试的主要技术有逻辑覆盖测试、基本路径测试。…

UE5.1_自定义配置文件读取

UE5.1_自定义配置文件读取 读取配置文件时常规项目都会要求考虑的一个问题,然我接触过的UE类项目还真没考虑过,最近有个想法,奈何比较费劲,利用网上的教程跟进一下试试? 先基于Actor创建c++类(应该大家都会的吧),然后就是一下代码: MyConfig.h // Fill out your c…

CSS其他属性

文章目录 1. vertical-align1.1. 概念1.2. 常用值1.3. 作用1.4. 出现的情况一1.4.1. 原因1.4.2. 解决方案 1.5. 出现情况二1.5.1. 解决方案一1.5.2. 解决方案二1.5.3. 解决方案三 1.6. 出现情况三1.6.1. 原因1.6.2. 解决方案 2. 溢出效果2.1. 作用2.2. 属性名 3. 隐藏效果3.1. …

14双体系Java学习之数组

数组 ★小贴士 数组中保存固定数量的值&#xff0c;声明数组时需要制定数组中元素的类型&#xff0c;数组的长度在创建数组时设定。 保存数据的数据结构有很多&#xff0c;Java的标准函数库中就包含了许多复杂的数据结构&#xff0c;比如map、tree和set&#xff0c;以后会讲解的…

电脑那个部件坏了或者是哪个软件需要修复来看价钱

电脑维修价格表是多少&#xff1f; 价格取决于计算机的哪个部分损坏或哪个软件需要修复。 由于电脑中的部件非常多&#xff0c;而且会以各种奇怪的方式出现问题&#xff0c;下面我们就来看看具体的充电方法。 电脑维修价格表&#xff1a; 1. 重新安装系统。 安装XP系统通常需…

uniapp sqlite时在无法读取到已准备好数据的db文件中的数据

问题 {“code”:-1404,“message”:“android.database.sqlite.SQLiteException: no such table: user (Sqlite code 1): , while compiling: select * from user, (OS error - 2:No such file or directory),http://ask.dcloud.net.cn/article/282”} at pages/index/index.vu…

行走的机器人

题目描述 Bob 对机器人进行了编程&#xff0c;让它在平面迷宫中行走。 迷宫有一些障碍。 空单元格由字符"."表示&#xff0c;障碍物由"#"表示。 迷宫中只有一个机器人。 它的起始位置用字符"S"表示。 这个位置没有任何障碍。 迷宫中也只有一个…

<Linux> 线程的同步与互斥

目录 前言&#xff1a; 一、资源共享问题 &#xff08;一&#xff09;多线程并发访问 &#xff08;二&#xff09;临界资源与临界区 &#xff08;三&#xff09;“锁” 是什么 二、多线程抢票场景 &#xff08;一&#xff09;并发抢票 &#xff08;二&#xff09;并发访…

Segment Routing IPv6简介

定义 SRv6&#xff08;Segment Routing IPv6&#xff0c;基于IPv6转发平面的段路由&#xff09;是基于源路由理念而设计的在网络上转发IPv6数据包的一种协议。SRv6通过在IPv6报文中插入一个路由扩展头SRH&#xff08;Segment Routing Header&#xff09;&#xff0c;在SRH中压…

Ubuntu下安装microk8s用代理解决无法拉取镜像问题

首先安装microk8s: sudo snap install microk8s --classic得到输出&#xff1a; microk8s (1.28/stable) v1.28.7 from Canonical✓ installed设置 K8s 命令别名&#xff08;alias&#xff09; MicroK8s 支持的命令中&#xff0c;我们会相对高频的使用 microk8s.kubectl 这个…

渗透测试与HTTP中的PUT请求

PUT 请求用于向服务器更新指定资源&#xff0c;可以理解为对服务器上的资源进行修改操作。使用 PUT 请求方式会覆盖原有的资源内容&#xff0c;因此需要谨慎使用。 在渗透测试中&#xff0c;有可能服务端会暴露PUT请求的api&#xff0c;如修改用户权限的api&#xff0c;例如HT…

蓝桥杯练习系统(算法训练)ALGO-971 比较

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给出一个n长的数列&#xff0c;再进行m次询问&#xff0c;每次询问询问两个区间[L1,R1]&#xff0c;[L2,R2]&#xff0c;  …