三维动画究竟是如何制作出来的呢?
liebian365 2025-03-30 18:13 22 浏览 0 评论
今天这篇文章将为大家介绍三维动画各个阶段的制作步骤。制作的流程是将一个想法转化为成品的一系列过程,就三维制作流程而言,通常分为 9 个阶段:前期制作、模型、UV 贴图、纹理和着色、绑定、动画、灯光、渲染和合成等。每个阶段的具体流程会因项目和工作室的不同而有所区别。
前期制作
前期制作基本上是一个想法经历探索、角色设计和发现的阶段。在这个阶段,创意和概念会变得充实,产品、风格、原型、故事、环境和美学能够确立。
前期制作由故事、脚本、故事板、动态分镜、角色设计组成,如果没有完整的前期制作,任何三维动画的制作流程(甚至是其他项目的制作流程),都不可能成功。
简而言之,在创建动画之前,团队必须知道要创建什么。动画师的愿景越详细,就越容易将其变为现实。有一个可靠的计划意味着每个参与者都确切地知道他们必须做什么,并将准备好去做,从而使制作阶段和后期制作阶段变得更有效率。
更重要的是,详细的愿景甚至可以让后期的即兴创作变得更容易。有了一个完善的、丰富的计划,就会有更多的创意素材可供即兴创作,并且更容易知道如何将其融入项目中。
模型
这些模型可以使用如 Maya 或 3D Studio Max C4D等不同的三维软件创建,无论选择哪种工具,它们都有一些三维建模的共同要素,包括点、边、多边形和 NURBS。
有 4 种通用类型的三维建模方法,如下所列。
多边形建模:多边形模型表示三维空间中由线段连接以形成多边形网格的点。多边形网格文件是平面的,这意味着它们由一系列平面表示。因此,曲线只能通过具有定义分辨率的曲面细分来近似。多边形网格很方便,因为它们是轻量级的,并且可以快速渲染可视化。
曲线建模:另一种依赖曲线生成曲面几何形状的建模。曲线建模既可以是参数化的(基于几何和函数关系)也可以是自由形式的,并且依靠 NURBS(非均匀有理 B 样条)来描述曲面形状。曲线由数学方程驱动,这些方程受设计者使用加权控制点的影响。
数字雕刻:这是一种相对较新的三维建模类型,用户与数字模型进行交互,就像对粘土建模一样。用户可以推、拉、捏或扭曲虚拟粘土来生成他们的模型。
程序化建模:通过参数化物体,效果器,数学函数等,构建一条非破坏性工作流,以此来构建模型,该方法的优点是方便来回修改,并且可以快速构建大量相似的模型,但是对程序和数学方面的知识有较高的要求。
UV 贴图
UV 贴图是将现有三维模型的顶点组件信息转化为二维贴图的艺术,将二维贴图存在于一个新的坐标系中,称为 UV 纹理空间。
字母 U 和 V 表示该二维空间的两个轴,因为 X、Y 和 Z 已经用于表示模型空间中三维对象的轴,而 W(除了 XYZ) 用于计算四元数旋转,这是计算机图形学中的常见操作。
UV 贴图的过程类似于切开牛奶盒的侧面,不同的是,UV 纹理图上的扁平表面不需要与三维模型的对应面有相同的比例和形状。
运用这个优势我们可以有的放矢地为重点表面分配更大面积的 UV,这样我们就可以更容易地对需要刻画的模型细节进行纹理处理。反之,那些通常不被摄像机看到的次要却面积较大的表面,我们可以缩小它的 UV 贴图,以减轻电脑后期渲染的压力。
纹理和着色器
纹理贴图(Texture)和着色器(Shader)是三维制作流程中的一个重要阶段,在这个阶段中,三维模型被赋予不同的材质,这个过程一般是由着色器和纹理贴图共同完成的。
着色器是由一组可以体现在表面的属性组成,这些属性决定了光线与该表面的互动方式。当下主流的 PBR 流程(Physically-Based Rendering)的着色器大致包括基础色,金属度,粗糙度,法线等属性。
为了表现物体表面丰富的细节,我们需要创建纹理贴图,一般来说 PBR 流程的贴图大致包括:
法线贴图(Normal Map):一般为切线空间法线,利用 RGB 三种颜色在切线空间储存复杂的细节。
颜色图(Base Color Map):包括一个表面原始的、均匀照明的颜色信息。
粗糙度图(Roughness Map):描述一个表面的粗糙度。
金属度(Metallic Map):描述一个表面的金属性。
绑定
绑定最简单的形式是为三维模型创建一个骨架,以便移动模型。绑定不仅涉及到骨架的创建,还涉及到定义这个骨架/模型的控制器,这样我们就可以用这些控制间接地操纵模型,它很像木偶师使用绳子移动木偶的方式。
绑定过程中使用的一些关键术语包括:
关节(Joints):与人体中的关节相似,关节是一个特定模型的支点或衔接点。例如,肩膀、肘部、膝盖。
权重(Weight Painting):权重是一个绘制关节对模型上任何给定顶点影响量的过程,它对于准确模型在操纵时的变形方式非常重要。
蒙皮(Skinning):蒙皮是将实际模型与骨骼关节绑定的过程。没有蒙皮这个步骤,移动骨架无法影响到实际模型的移动。
FK(正向运动):如果躯干的骨骼组被视为躯干单个骨骼的父级,而胸部是躯干骨骼组的父级,子级是手臂、腿和头的骨骼链。在这个层次结构中,每个关节下的子关节都继承了父关节的空间属性变化。正向运动是在影响方向上对这个骨架进行操纵,即从父级部位影响到子级部位。
IK(逆向运动):逆向运动是一种逆转操纵影响骨骼的方法。例如我们将一只脚约束在地面上,对骨盆关节的操纵并不会影响到脚的位置。
动画
三维制作流程中的动画是利用现有的三维资产,通过运动使角色变得生动的过程。除角色主体外,三维动画也包括三维场景中的其他物体,如摄像机、灯光,甚至特效。
动画是获取三维对象并使其移动的过程。动画有几种不同的风格,有关键帧动画,动画师逐帧操作对象,类似于旧的手绘卡通。
其他动画方法包括将对象放置在样条线上并将它们设置为遵循曲线路径,或导入运动捕捉数据并将其应用到角色装备中。另一种制作动画的方法是使用三维应用程序的内置物理引擎。
三维软件中的动画通常涉及沿时间轴设置关键帧,操纵软件让这些关键帧之间的画面平滑过渡。三维软件中的动画制作与传统 CG 动画没有什么不同,主要区别在于三维软件会计算出中间的帧,而不需要动画师手动绘制它们。动画的节奏是通过曲线来操作调节的。
灯光
三维制作流程接下来的这一阶段是向三维场景中添加灯光。灯光的使用可以决定一个场景如何引导观众,以及如何设定一个场景或环境的情绪基调。
三维软件包中常见的灯光包括:
点光源(Point/Omni lights):从空间中的一个点向外发出的光,它通常用于模拟灯泡或蜡烛。
方向光(Directional lights):光线方向在三维空间中平行,它通常用于模仿太阳光或远处的光源。
聚光灯(Spot lights):在设定的边界内,从一个点向特定的方向发出圆锥形的光。
区域光(Area lights):类似于点光源,它从一个源头向所有方向发射,然而这个源头不是一个点而是一个表面。
环境光(Ambient lights):为场景添加一个基准照明,它既不从任何特定的源头向各个方向投射光线,也不投射阴影,通常用于柔化戏剧性的阴影或柔和地照亮场景中不受主光影响的区域。
渲染
渲染是将场景中的所有信息(物体、材料、灯光、摄像机)结合起来产生单个或一系列的最终渲染图像的过程。这通常是制作过程中计算密集的部分,根据场景的复杂性、所需的质量水平和预期的平台,可能需要从几秒钟到几小时的时间来产生渲染图像。
使用 C4D 软件进行渲染
通常有两种类型的渲染:
实时渲染:主要用于交互式媒体,如游戏,每秒需要在屏幕上显示多个渲染的图像(要求每秒至少 24 个图像/帧,以防止卡顿)并实时显示。这对互动媒体很重要,因为观众对场景的操作是不可预测的。
预渲染:通常在渲染时间不是一个限制因素的情况下使用的,正因为如此,它可以满足视觉上极其复杂和计算上要求极高的场景。这在电影、商业广告和其他基于图像的媒体中最常见。
在三维制作流程中,渲染意味着导出视频序列,但每个元素(环境、角色、道具等等)都是单独渲染的,然后在后期制作中重新合成。
合成
合成是三维制作的最后阶段,它是一个对渲染图像进行调整或与其他图像或图层相结合,以创建一个更复杂、更有凝聚力的构图的过程。
使用 AE软件进行合成
合成中的一些关键概念包括:
遮罩(Mattes):用于隔离图像的特定部分,以便它们可以在其他作品的基础上进行分层。
动态遮罩(Rotoscoping):是以动画遮罩的形式创建一个哑光的过程。当一个物体在屏幕上移动时,遮罩会跟踪它,然后我们可以根据需要加上这个物体或删除它。
抠像(Keying):它是在某种颜色的范围内创建一个遮罩,通常是通过使用绿色或蓝色屏幕来实现的。
混合模式(Blending modes):允许一个图层的像素与它下面的图层互动,并与它们进行数学结合。
追踪(Tracking):通过追踪你可以跟踪场景中一个给定的点或物体的位置、比例和旋转。
合成师负责通过组合特定镜头或图像的所有元素来创建最终图像。这需要对流程有深入的了解和广泛的三维技能。
通常,合成师会将整个作品组合在一起。合成软件还提供了丰富的效果,使合成师能够添加粒子、光效和文本。一些合成软件还可以获取三维场景的原始构建块,并通过 Alembic 等格式将其导入为 3D 文件,这些格式可用于为现有素材创建新元素和蒙版。
合成师可以采用任何最佳 3D 建模软件的最佳元素,例如来自 Maya 的角色、来自 Houdini 的模拟以及来自 Cinema 4D 的运动图形场景,并将它们组合成一个镜头。
不论是为电影、广告、动画剧集还是许多其他目的创建三维动画,都会涉及许多步骤和许多动画师一起工作,才能创作出优秀的项目。
任何制作都需要一个适当的系统来确保流程尽可能高效,专业三维动画等高度复杂的工作通常需要由动画师和创意团队按紧凑的时间表工作,因此有效的制作流程对于按时准备好最终产品并达到预期的质量水平至关重要。
相关推荐
- “版本末期”了?下周平衡补丁!国服最强5套牌!上分首选
-
明天,酒馆战棋就将迎来大更新,也聊了很多天战棋相关的内容了,趁此机会,给兄弟们穿插一篇构筑模式的卡组推荐!老规矩,我们先来看10职业胜率。目前10职业胜率排名与一周前基本类似,没有太多的变化。平衡补丁...
- VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
-
首先,程序中头文件的选择,要选择头文件,在文件中是没有对M_PI的定义的。选择:项目——>”XXX属性"——>配置属性——>C/C++——>预处理器——>预处理器定义,...
- 东营交警实名曝光一批酒驾人员名单 88人受处罚
-
齐鲁网·闪电新闻5月24日讯酒后驾驶是对自己和他人生命安全极不负责的行为,为守护大家的平安出行路,东营交警一直将酒驾作为重点打击对象。5月23日,东营交警公布最新一批饮酒、醉酒名单。对以下驾驶人醉酒...
- Qt界面——搭配QCustomPlot(qt platform)
-
这是我第一个使用QCustomPlot控件的上位机,通过串口精确的5ms发送一次数据,再将读取的数据绘制到图表中。界面方面,尝试卡片式设计,外加QSS简单的配了个色。QCustomPlot官网:Qt...
- 大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写
-
老友相聚,仗剑江湖!《大话西游2》2021全民PK季4月激燃打响,各PK玩法鏖战齐开,零门槛参与热情高涨。PK季期间,不仅各种玩法奖励丰厚,参与PK趣闻录活动,投稿自己在PK季遇到的趣事,还有机会带走...
- 测试谷歌VS Code AI 编程插件 Gemini Code Assist
-
用ClaudeSonnet3.7的天气测试编码,让谷歌VSCodeAI编程插件GeminiCodeAssist自动编程。生成的文件在浏览器中的效果如下:(附源代码)VSCode...
- 顾爷想知道第4.5期 国服便利性到底需优化啥?
-
前段时间DNF国服推出了名为“阿拉德B计划”的系列改版计划,截至目前我们已经看到了两项实装。不过关于便利性上,国服似乎还有很多路要走。自从顾爷回归DNF以来,几乎每天都在跟我抱怨关于DNF里面各种各样...
- 掌握Visual Studio项目配置【基础篇】
-
1.前言VisualStudio是Windows上最常用的C++集成开发环境之一,简称VS。VS功能十分强大,对应的,其配置系统较为复杂。不管是对于初学者还是有一定开发经验的开发者来说,捋清楚VS...
- 还嫌LED驱动设计套路深?那就来看看这篇文章吧
-
随着LED在各个领域的不同应用需求,LED驱动电路也在不断进步和发展。本文从LED的特性入手,推导出适合LED的电源驱动类型,再进一步介绍各类LED驱动设计。设计必读:LED四个关键特性特性一:非线...
- Visual Studio Community 2022(VS2022)安装图文方法
-
直接上步骤:1,首先可以下载安装一个VisualStudio安装器,叫做VisualStudioinstaller。这个安装文件很小,很快就安装完成了。2,打开VisualStudioins...
- Qt添加MSVC构建套件的方法(qt添加c++11)
-
前言有些时候,在Windows下因为某些需求需要使用MSVC编译器对程序进行编译,假设我们安装Qt的时候又只是安装了MingW构建套件,那么此时我们该如何给现有的Qt添加一个MSVC构建套件呢?本文以...
- Qt为什么站稳c++GUI的top1(qt c)
-
为什么现在QT越来越成为c++界面编程的第一选择,从事QT编程多年,在这之前做C++界面都是基于MFC。当时为什么会从MFC转到QT?主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MF...
- qt开发IDE应该选择VS还是qt creator
-
如果一个公司选择了qt来开发自己的产品,在面临IDE的选择时会出现vs或者qtcreator,选择qt的IDE需要结合产品需求、部署平台、项目定位、程序猿本身和公司战略,因为大的软件产品需要明确IDE...
- Qt 5.14.2超详细安装教程,不会来打我
-
Qt简介Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序。Qt是纯C++开...
- Cygwin配置与使用(四)——VI字体和颜色的配置
-
简介:VI的操作模式,基本上VI可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:1)...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- “版本末期”了?下周平衡补丁!国服最强5套牌!上分首选
- VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
- 东营交警实名曝光一批酒驾人员名单 88人受处罚
- Qt界面——搭配QCustomPlot(qt platform)
- 大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写
- 测试谷歌VS Code AI 编程插件 Gemini Code Assist
- 顾爷想知道第4.5期 国服便利性到底需优化啥?
- 掌握Visual Studio项目配置【基础篇】
- 还嫌LED驱动设计套路深?那就来看看这篇文章吧
- Visual Studio Community 2022(VS2022)安装图文方法
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)