书签 分享 收藏 举报 版权申诉 / 73
上传文档赚钱

类型游戏中计算机动画技术课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4093182
  • 上传时间:2022-11-10
  • 格式:PPT
  • 页数:73
  • 大小:4.44MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《游戏中计算机动画技术课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    游戏 计算机 动画 技术 课件
    资源描述:

    1、浙江大学计算机学院动画的基本概念和方法动画场景中的碰撞检测运动的指定方法关键帧动画的编程基于动作捕捉技术的动画编程粒子系统与动画动画的定义:就是一组连续的图像序列。当按一定的速率显示的时候,能传递一种运动的感觉动画的技术要求:每一幅图像或者每一动画帧,都必须有机地、无缝地和其他的图像融合在一起,这样才能随着时间的变化,产生平滑的、连续的运动传统的动画制作方法 将人物运动的所有帧序列手工地绘制出来计算机在动画制作中的作用 自动产生某些中间帧序列 模仿手工动画,将多层绘制的场景由计算机来进行合成制作方式的改变 从“绘制出每一帧”到“使用计算机工具来制定图像序列如何变化”动画的分类:二维动画 二维动

    2、画集中于图像的处理和操作,如 sprite-based animation,blending or morphing between images,embedding graphical objects in video footages,or creating abstract patterns from mathematical equations 三维动画 三维场景和人物的建模以及他们之间的交互 建模 运动的指定()绘制展示形式 直接播放方式 游戏的片头或者篇尾,例如 AVI 或者 MPEG 连续贴图方式 通过连续贴图成像技术来产生动画效果编程关键 定时器 创建一个定时器 利用回调函数来

    3、显示动画 删除定时器镂空动画(sprite animation)一幅背景图 一组蒙版图 人物的连续显示方式 DOUBLE-BUFFER 不要在窗口中直接贴图,避免闪烁 建立一个内存DC,然后把所有的贴图动作都在这个DC上进行,最后把结果显示到操作窗口中。对动画序列中的每一帧 Load 背景图 确定sprite绘画的位置 将某一蒙版图与背景图作AND运算 将对应的人物图与背景图作OR运算 更新sprite绘画的位置演示 Sprite animation demo1半透明的动画效果 将要贴上人物的背景图部分取出,放入buffer 在buffer中的背景图上,AND 蒙版图,OR人物图 在buffe

    4、r中的位图乘上透明度t 再次取出相应的背景图,作半透明计算,并生成半透明图片 直接将半透明图贴在背景图中透明效果演示 Sprite animation demo2观看演示 Sprite animation demo3思考下列问题 动画中的效果有什么不一样?猜猜使用的动画技术?“终点返回起点”三种主要的运动方式 场景内容不变,视点在移动 漫游等 场景内容在动态改变,视点不变 人物表演动画等 混合方式 场景内容和视点都在运动最简单的情形 使用标准的绘制程序,仅移动物体或视点.技术核心 各个运动物体的平移和旋转量确定。关键问题 如何指定和控制物体在场景中的运动.相机或者物体移动,或者两者同时移动.相

    5、机的任意外部参数都可以形成动画。这类动画一般在第一人称游戏中最常用。用户可以控制相机位置(三个自由度)和相机的朝向(两个自由度).在两个相邻的关键点上需要插值相机参数,在此过程中最重要的是保持相机的up向量。此外,用户也可以控制视点的运动,而视线则始终跟踪一个目标点。该目标点可以是静止的,也可以移动。所涉及的关键技术 漫游 碰撞检测(collision detection)人物动画 骨架驱动的动画 运动的生成 面部表情 粒子系统 碰撞检测(CD-Collision Detection)用于确定两个物体是否相交以及在何处相交.单纯确定是否相交又叫做相交测试.检测两个运动物体最初接触的时刻.检测两

    6、个运动物体在何处检测.物体相交的类型:线与物体求交,平面与物体求交,物体与物体求交.游戏中需要碰撞检测的场合有:在大型地貌系统中需要正确驱动交通工具;监测轨道中行驶的汽车并检测两辆车是否碰撞;确定导弹是否击中目标,弹性物体在物体之间的弹跳 两个人物交战时的状态查询 决定是否某个物体可以通过一个通道碰撞检测采取两步法 首先剔除明显不相交的物体 包围体方法以及其他空间剖分策略 检测可能相交的物体之间的情况并在给的精度下求得相交点.BSP树是游戏中组织场景的最常见方式之一;BSP的叶结点可分为 虚节点 实节点PABDCABCDEF检测一个点的运动路径是否与BSP树中的实节点相交 检测与剖分平面的交点

    7、如何检测一个动画人物与场景的交点 Bounding box/sphere“膨胀”BSP树PADCADP算法步骤HitCheckBSP(N,v0,v1)If(not isSolidCell(N)return FALSEElse if(isSolidCell(N)Pimpact=v0 Return TRUEEndHit=FALSE;If(clipLineInside(N shift out,v0,v1,&w0,&w1)Hit HitCheckBSP(N.negtivechild,w0,w1);If(hit)v1=Pimpact;EndIf(clipLineInside(N shift in,v0,

    8、v1,&w0,&w1)Hit HitCheckBSP(N.positivechild,w0,w1);If(hit)v1=Pimpact;EndReturn Hit;V0V1w0W1W0W1n为什么是两边都要检查?ABCDE其他的包围盒的方法 AABBs(Axis-aligned bounding boxes,与坐标轴平行的包围长方体),一对AABB如果有交当且仅当它们在某些个轴上的投影有相交的部分。AABB方法简单,当物体旋转时,或者重新计算包围体,或者应用一个新的包围体。OBBs(Oriented bounding boxes,旋转后的最贴近物体的长方体)球 轴平行 AABB 有向 OBB

    9、离散多边形 层次包围盒 整个物体可以表示为一个OBB层次树。树的根即整个物体的OBB,叶节点包含一个或多个多边形.如果两个物体的根节点的OBB相交,那么碰撞测试将从上往下遍历下去,直到找到相交的叶节点。因此,OBB树越贴近物体,处理碰撞查询所需要的遍历次数越少。从绘制流水线的角度看 在某个瞬间(某一帧),只要知道此时的物体和场景的空间位置的信息,就可以绘制出画面关键:运动指定 一帧一帧指定:每秒25到30帧,。人物动画的难点:动画人物的身体的各部分的和谐的、自然的运动。人的视觉系统(人类动画师)并不明显区分建模信息、运动信息和视觉效果信息基于骨架的人物动画 抽象出骨架:建模和运动分开,在绘制时

    10、进行骨架和模型的绑定。方便运动的指定 模型和运动都可以重用什么是关节?它由一系列刚体、它们之间的连接关系组成,这使得物体的不同部分可以相关联地运动。整个物体的运动受全局的连接关系限制 整个结构由一条联结关系组成,某个关节的运动造成它的邻接关节运动 并且限制了邻接关节的运动方式,如人类的骨架关节无法做完全旋转。关键帧:指定每一关键时刻的物体的运动位置和方向 优点:简单,易理解 缺点:它要求动画师经验丰富,并且耗时 难以模仿动作的某些细微特征或者特定的动作动态(过程)模拟(物理建模)根据物理规律和指定的目标,使用算法或者过程来模拟产生运动或者动作序列优点:很容易根据运动的要求配置相应的参数,初学者

    11、也能产生高质量的动画序列缺点:对简单的运动比较有效 没有系统性的方法来描述一个复杂的运动,或者一个具有细微特性的运动基于动作捕捉设备 将表演者的现场表演的运动数据实时纪录下来,并映射到计算机的动画人物中优点:实时,直观,可视 运动数据可以被实时地、直观地可视化。演员、导演和动画师可以在一起工作,来获取所期望的动作,便于交流,高质量动作数据 可以产生特定人物的特定运动数据,这是手工指定所无法比拟的 产生的运动数据比较真实、自然,并可表现出表演者的人物个性。很多细微的运动元素已经自然地体现在捕捉下来的数据中,不需要通过领域知识来添加。浙江大学计算机学院动作捕捉实验室 曹光彪东楼313-314生产厂

    12、家:Motion analysis 公司 如果只用于游戏和动画,Vicon更佳性能 10Hawk摄像头 每秒200帧 精度小于0.5mm照片的版权归相关的公司或者团体所有关键帧系统的应用背景在电影和动画界,这是一个最常用的技术为了节省动画片制作中的巨大工作量,动画公司采用层次的系统结构,即高级动画师首先手绘一段关键帧构成的动画序列。然后这些序列由动画师(inbetweener)完成帧间动画的绘制。最后,由动画师(inker)将这些序列着色。扩充到三维动画三维空间中的物体也可以由关键帧定义 并由计算机完成中间帧的生成。相比手绘动画,在计算机动画中需要更多的关键帧以获得完美的效果。以一个弹性球为例

    13、.下图展示了三个关键帧。1 2 3 指定骨架关键帧有多种方法,比如:最简单的情形:通过空间中的一系列点确定关键帧点定义一个物体所经过的点序列,并将这些点列用三次曲线拟合生成路径。比较好的方法允许动画师指定更多的关键帧之间的运动信息 例如直接定义一条运动曲线.此外,可以定义运动路径上的速度变换函数.一般地,为了正确控制运动,必须显式地定义位置变换与时间的函数关系 指定路径上的动态行为.参数位置关节角形状变形物体材质相机运动光照如果我们仅考虑位置,那么我们可以应用一个与时间相关的4x4位置矩阵于场景物体。为了使物体运动真实,矩阵的二阶导数必须连续矩阵中的位置部分的三个分量可以独立插值,但旋转部分不

    14、行。1000)()()()()()()()()()()()()(333231232221131211tttatatatttatatatttatatatMzyxVoid KeyFrameController:Update(float time)InterpolateTranslation(time,localTranslate);InterpolateRotation(time,localRotate)每个插值进程以某一时刻为准,找到与之最近的两个关键帧时刻点。这两个关键帧用下面描述的方法进行插值。基本思想:用四元数表示旋转将旋转矩阵变换到四元数空间,然后在四元数空间进行插值插值后的四元数变回到

    15、三维空间并应用到物体上。四元数 可视作一个类似矩阵概念的算子,它能将一个向量变到另外一个,但是四元数的选择是唯一的.4-元数是什么?将旋转定义为绕轴n旋转角度的一对关系:R(,n).绕三个轴向变成绕一个轴向为什么使用4-元数来插值?基于欧拉角的旋转具有轴相关性 V R Rr r|n n r V R r)(sin)(cos1()(cos)(sin)()(cos)()(sin)(cos)()(|rnnrnrrnnrnrnrnRrRrRrVrRrrnrnVnrnrrnrnr考察四元数的旋转功能。r 可表示为四元数p=(0,r),因此该操作可视为:因此,将向量r旋转一个 角度(,n)相当于利用角度位移

    16、的概念,即将它提升到四元数空间,然后表示为单位四元数(cos(/2),sin(/2)n)(2sin)()2cos1(2cos,0()(1|)sin,(cos1rnrnnrqpqpRnwherenqp对四元数(0,r)执行操作q()q-1,可将方向参数化为以下四项:cos(/2),sin(/2)nx,sin(/2)ny,sin(/2)nz 利用四元数代数操作每个分量假设动画师设置了一系列旋转的关键帧序列,那么 每一帧可由单个旋转矩阵决定。这些矩阵序列将被转换到一系列四元数。在关键帧四元数之间进行插值,产生一系列连续的四元数,再将它们转换到旋转矩阵。这些矩阵在应用到物体上。一般的,四元数的使用对动

    17、画师来说是透明的。将一个向量P 旋转一个四元数q:q(0,P)q-1q 又可表示为:(cos(/2),sin(/2)n)=(s,x,y,z)它等价于下面的旋转矩阵:10000)(212222022)(212202222)(21222222yxyzsxxzsyyzsxzxszxyxzsyszxyzyM若旋转矩阵则1000000222120121110020100MMMMMMMMMMsMMzsMMysMMxMMMswherezyxsq444121),(011020021221221100球面线性插值的公式是:考虑两个二维向量 A 和 B,它们之间的夹角是,其中 向量 P 与A成角度 P是A和B的球

    18、面线性插值的结果:P=A+B A P B 一般地,,由下式给出:|P|=1,AB=cos,AP=cos A P B sinsinsin)sin(BAP两个单位四元数 q1 和q2之间的夹角为:q1q2=cos它们之间的球面线性插值可将前面的公式推广到四维:(u0,1)sinsinsinu)-sin(1qu)q2,slerp(q1,21uqCreate a new Scene Create a new Scene Scene NewScene(girl2girl)Create a new Skeleton.Create a new Skeleton.Skeleton NewSkeleton(bo

    19、dy)Skeleton looptime1000 标准T-poseCreate 14 Joints.Create 14 Joints.Joint NewJoint(j0,null,0,0,0)Joint NewJoint(j1,j0,0,22,0)Joint NewJoint(j2,j0,5.3,16.7,0)Joint NewJoint(j3,j2,12.5,15.8,0)Joint NewJoint(j4,j3,22.1,15,0)Joint NewJoint(j5,j0,-5,17,0)Joint NewJoint(j6,j5,-12,16,0)Joint NewJoint(j7,j6,

    20、-21.8,15,0)Joint NewJoint(j8,j0,3,-3,0)Joint NewJoint(j9,j8,4.5,-19,0)Joint NewJoint(j10,j9,7.1,-38.2,0)Joint NewJoint(j11,j0,-3,-3,0)Joint NewJoint(j12,j11,-5,-18.80)Joint NewJoint(j13,j13,-8.3,-38.1,0)Scene SaveScene(sprocket2sprocket)Fine tune Joint positions.Fine tune Joint positions.Init Vertex

    21、-Joint Blending Init Vertex-Joint Blending Weights.Weights.Object InitWeights()Create the first KeyFrame.Create the first KeyFrame.KeyFrame NewKeyFrame(0,0)Pose KeyFrame,and Fix Pose KeyFrame,and Fix Vertex-Joint Blending Vertex-Joint Blending Weights Pass 2Weights Pass 2 Create the second KeyFrame.

    22、Create the second KeyFrame.KeyFrame CopyKeyFrame(0,500)Create remaining KeyFrames.Create remaining KeyFrames.KeyFrame CopyKeyFrame(0,1000)KeyFrame NewKeyFrame(0,250)KeyFrame NewKeyFrame(0,750)三个主要的运动动方式前向动力学逆向动力学运动捕获Joint space:各个关节点和关节的DOFEnd-effector space:end effector 的m-维空间World space:人物场景空间 骨架/

    23、关节点的位置是各个关节夹角(用户指定,前向动力学)的一个函数 用户也可以直接指定骨架的姿势和关节点的位置(逆向动力学)动画编程人员眼中的前向动力学和逆向动力学问题描述Joint spaceEnd effector spaceXX=f()前向动力学=f-1(X)逆向动力学两个骨架Link的例子:)cos(sin)cos(sin(tan)2(cos2212222122112122212212xLLyLyLLxLLLLLyx1L1L22X(x,y)IK的解决方案:解析解 差分算法 优化 非线性规划。IK的演示 IK demo动作捕捉数据驱动 前向或者逆向动力学?动作捕捉数据的格式 TRC HTR B

    24、VH BVA C3D.文件格式实例 骨架定义 各帧的数据BVH 文件解剖BVH demo粒子动画 逐个地运动一大堆粒子,模拟自然界的“点云”运动的整体效果。比如焰火.粒子 是一些小的物质,每个都有自己的运动脚本工作原理 基本思路是某些自然现象可以通过描述一大群单个粒子的运动和绘制来加以模拟.工作方式 单个粒子一般被视做几何上微小或者为零的基本单元,小到多个粒子可能投影到屏幕的一个象素但是每个粒子拥有自己的属性,如颜色。粒子的建模 一般可以设计一个脚本 赋予每个粒子一定的随机性,产生彼此之间的差异性。例如,每个粒子的位置在随时演化之中。不同的自然现象通过群体粒子属性脚本和单个粒子差异脚本描述。控

    25、制每个粒子差异性的参数包括下列特征,它们与粒子的位置和粒子本身的生命周期有关:运动轨迹,形状,颜色.粒子的动力学行为和外观是时间函数,可以集成到同一个脚本描述Reeves(1983)描述了生成单帧粒子动画的五个步骤:生成新的粒子并放置到当前系统中;赋予每个新的粒子属性.删除超越生命周期的粒子 活性粒子根据各自的脚本运动 绘制活性粒子单个粒子的脚本描述包含下面一系列属性:初始位置与速度 发射的方向 尺寸(如半径)和形状 弹性系数和碰撞系数 透明度 摩擦系数、重力和风力 生命周期 纹理 一般地,一个粒子总是被作为一个带纹理映射的长方形在绘制在屏幕上并与背景做透明度融合某时刻 t的粒子数量由下式决定:N(t)=M(t)+rand(t)V(t)其中,M(t)是数学均值期望,V为方差.方程用于控制总体的点云变化(收缩和增长)尺寸.对于一个粒子系统:初始化所有粒子 启动粒子系统 处理所有粒子 工作完成后清除所有粒子演示 Particle demo

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:游戏中计算机动画技术课件.ppt
    链接地址:https://www.163wenku.com/p-4093182.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库