精华内容
下载资源
问答
  • 动画中场景设计的概念
    千次阅读
    2022-04-01 08:47:51

    动画插件


    反向动力学

            IK,反向动力学与FK正向动力学对应,正向运动学就是根骨骼带动节点骨骼运动。而反向运动学就是反过来,由子节点带动父节点运动,实现牵一发而动全身的动画效果。

     动画是在导入的FK动画基础之上 ,在游戏中通过与场景元素的交互,实时调整动画状态。

            如果我们要使用IK,Unity的Humanoid类型,是内置了IK API的,但是实现完全依赖于自身,所以除非自己的项目需要攻克这一部分,大概率是使用其他的IK插件了,这里推荐一下FinalIK,这个插件比较全,基本上常用的行走、看向这些IK都是可以一键搞定的。也支持Generic和Humanoid类型。

    一个问题 :想给角色设置ik 以实现代码控制的 更为自然的 角色动作

    比如角色头跟随点击转动 身体也有相应扭转

    https://docs.unity3d.com/Manual/InverseKinematics.html

    这部分是很容易实现的 ,unity有现成的方法只需要调用一些带ik的API

    具体方法见链接

    用IK需要fbx的rig 的animation设置为humanoid

    这样会有个问题就是 那些附属品 比如裙摆 武器 和很奇怪的跟随着角色的xxxx 这些附属品的animation会失效 

    而换回generic ik又会失效

    解决方法是 fbx 的Animation 的mask 里面把 那些附属品勾选让他们不受IK影响就可以了 

    官方IK:反向动力学 - Unity 手册
     


    动态骨骼/布料

            Dynamic Bone,Obj Cloth 也就是比如🐻、飘带、裙子的抖动之类的,会在播放动画的过程中,根据物理更加真实的反应身上物件的变化。

    Dynamic Bone | Animation Tools | Unity Asset Store
     


    布娃娃

            布娃娃系统表现,比如糖豆人、动物派对那种软软的效果。
     

    动画制作要点

         3DS Max中使用IK的情景还是非常多的。比如一个小章鱼,每个脚上面绑上IK,然后就可以通过脚步移动控制整条腿的运动。如果不用IK的话操作起来很麻烦而且不自然。
          而FBX的格式里面也是有IK信息的。只是Unity过滤了相关的数据而已。美术在导出动画之前做这么的操作,然后动画就正常了。
          1) Set up the bone structure as you please.
          2) Create the animations you want, using FK and/or IK
          3) Select all bones and/or IK solvers
          4) Go to Motion->Trajectories and press Collapse. Unity makes a key filter, so the amount of keys you export is irrelevant
          5) "Export" or "Export selected" as newest FBX format
          6) Drop the FBX file into Assets as usual
          在3dmax中ctrl+A选中所有所有骨骼,在右侧的选项卡中选择Motion->Trajectories,如果已经选择好骨骼,Collapse按钮就可以正常点击,点击这个按钮,然后正常的导出动画。这样Unity中的动画表现就跟3dmax一致了。

         注意,使用Collapse功能会修改动画的帧(使帧间隔变得一样),这样我们很多动作播放的时候就会被改变,比如攻击动作会变得很慢,没有力度。美术应该在Collapse后再次修改动画(或者是在制作动画之前使用Collapse)以保证动画的正确性。

    相关基础概念 

           从Unity的角度来讲,模型动画类型有三种分别是 Legacy、Generic、Humanoid。Legacy基本是在被舍弃了,用的多的是Generic和Humanoid。而从程序的角度来讲模型动画是:顶点动画、蒙皮骨骼动画等等分类。

    Unity Generic与Humanoid的若干基础点除盲:

    Humanoid类型使用范围与Generic类型使用范围是等价的,但是内部实现方式不一样,即是说使用Generic能达成的效果,Humanoid基本都能达成。但是Unity对Humanoid做了更多上层应用的封装.
    Generic满足于一般的动画需求,而Humanoid类型结合Unity的Avartar可以使用Unity内置的IK、AvartarMask、重定向等等功能(提出这个是因为不少同事都是基于商业引擎开始学习的,误将Avartar这类定义在概念层面与3D模型动画绑定在了一起,这里除下盲)。
    Humanoid的性能消耗>Generic。一般的模型动画播放,使用Generic也可以满足要求,即使是人形态的模型动画。


    常见的几种程序和美术意义上的动画类型:

    骨骼蒙皮动画(SkinnedMesh)

    骨骼蒙皮动画(SkinnedMesh):类比于:如同人体运动骨骼带动皮肤。概述一下就是,由世界矩阵驱动根骨骼,根骨骼矩阵驱动子骨骼,逐层递进驱动全身骨骼,再通过蒙皮信息决定每个骨骼对物体模型网格上每个顶点的权重影响,最终决定物体上每个顶点的实际运算位置。这一篇blog写的 

    混合形状动画(BlendShape)


    混合形状动画(BlendShape):这个和骨骼动画不同,它是由相同网格顶多,预定义出不同的网格形状,进行插值运算,而不是通过骨骼层层递进去运算,

    顶点动画


    顶点动画:在Unity中很少直接接触到顶点动画,顶点动画与混合动画类似,不过它是记录每一帧的所有顶点数据,逐帧播放。这种对于大顶点数的模型,会占据相当大的内存,不过没啥运算压力。而在一些动画解决方案中,会有bake烘焙动画的功能,其实就是把骨骼动画的每帧计算结果转化成顶点动画,记录下来.由于用得少,这里只提一下.

    unity插件-Umotion进阶技巧-合并FK/IK、曲线的使用_哔哩哔哩_bilibili

    Unity快速入门之四 - Unity模型动画相关_翕翕堂的博客-CSDN博客_unity动画类型

    更多相关内容
  • 通过对场景的概念的分析讲解,应用设计思路教学内容,使学生对场景设计成有初步认识了解。 经过对场景设计的历史的讲解,使学生对场景设计的发展规律、形象特点有初步认识。
  • ·学习重点:1、动画场景概念 2、动画场景的功能 动画场景是动画作品重要的组成部分。场景设计的好坏直接影响整部作品的风格和艺术水平。 第一节 动画场景概念 一、什么是动画场景 著名电影导演安东尼奥尼说:“没有...
  • 动画场景设计过程,首先是要将一个复杂的真实场景打散,将其分解为单纯的场景构成要素,认真分析每一个构成要素的造型与情感特征是否符合剧情需要,从中取舍。然后,将每一个要素依照一定构成形式法则重新整合,...
  • 但是我们清楚的看到,游戏无论从概念设计,场景细节,色彩画面,以及各个环境灯光的渲染和高精度的材质贴图都具有相当大的局限性。文章具体针对游戏动画现状,提出针对使用HDR高精度场景渲染以及各环境下灯光布置的重要...
  • 动画场景设计特点在动画片的创作动画场景通常是为动画角色的表演提供服务的,动画场景设计要符合要求,展现故事发生的历史背景、文化风貌、地理环境和时代特征。要明确地表达故事发生的时间、地点,结合核部...

    三维设计已经大量的应用到我们的生活中,在游戏与动漫设计的过程中,三维的设计非常的重要。那么,什么是三维场景设计呢?以下是由学习啦小编为大家整理的三维场景设计的介绍,希望能帮到你。

    动画场景的设计特点

    在动画片的创作中,动画场景通常是为动画角色的表演提供服务的,动画场景的设计要符合要求,展现故事发生的历史背景、文化风貌、地理环境和时代特征。要明确地表达故事发生的时间、地点,结合核部影片的总体风格进行设计,给动画角色的表演提供合适的场合。在动画片中,动画角色是演绎故事情节的士体,动画场景则要紧紧围绕角色的表演进行设计。但是,在一些特殊情况下,场景也能成为演绎故事情节的主要“角色”。动画场景的设计与制作是艺术创作与表演技法的有机结合。场景的设计要依据故事情节的发展分设为若T -个不同的镜头场景,如室内景、室外景、街市、乡村等等,场景设计师要在符合动画片总体风格的前提下针对每一个镜头的特定内容进行设计与制作。

    创作出各具特色的动画片,既是动画艺术家对个性化的追求,也是不同层面观众的多样化需求。动画场景的类型与风格的变化,深受民族、时代、地域、传统文化等多方面的影响,从关国早期以水粉绘制的写实风格的动画场景到欧洲极富表现力的现代抽象绘画风格的动画场景,从借鉴我国敦煌壁画艺术到用水墨画、剪纸、版画等风格的设计,不同时代美术思潮对动画场景设计的影响尤为突出。

    三维动画场景设计研究

    1 3D动画场景设计简述

    动画场景设计是除角色以外一切对象的造型设计,是塑造角色,烘托气氛和影片风格的关键创作环节。三维动画场景设计主要是动画场景的概念上设计,包含场景的结构,渲染画面色彩,材质贴图纹理的变化,添加不同灯光调节出各种环境效果,如:白天、黑夜、季节等。一部动画采用什么样的场景设计风格,对整个动画最终风格有着决定性作用。

    2 3D动画场景设计

    3D动画场景设计是设计师以动画剧本为基础,编排和创造的蒙太奇空间。场景的设计需要具有质感,画面效果精细,给人一种身临其境的感受。还要有强烈的真实感和亲和力。在3ds Max软件中制作简单的动画场景,需要经过几个步骤才可以设计出。

    2.1 场景建模

    对于三维动画来说,三维的立体的物体是场景中不可缺少的元素,所以,首先必须建立三维模型。建立三维模型可以有两种方法:利用二维视图扩展和直接使用几何体。对于建筑类的场景模型或一个大的场景,要先有一定的规模和草稿图画,一般都是绘画出精确的二维视图,再经过修改器里面的一些挤出、车削等功能就可以制作出一个具有立体感的三维物体。3DS MAX中,图形、几何体和修改器是制作三维模型的基本工具。根据本小组所做的3D项目,项目场景中各模型的建模主要用到标准基本体,扩展基本体,复合对象,曲面等几何体工具。标准基本体包括长方体、球体、圆柱体等几何体,扩展基本体只要用到切角长方体和切角圆柱体,复合对象主要进行放样操作和布尔操作。制作建筑和一些方形家具的时候通常需要切角、倒角、挤出和将几何体转变为可编辑多边形从而对点线面操作。布尔运算可进行切割,放样操作和车削修改器等可将一些先转变成面或几何体。其中,修改器是建模最重要的功能,很多二维的视图还可以通过添加弯曲、扭曲等修改器来变化物体的形状和结合时间帧来变换变形。场景个体模型举例如图1、图2、图3所示。

    每个场景是很多不同的景物组合成的一个空间环境,那些单个的模型就相当于场景的装饰品。场景建模过程中,先是分开把每一个模型建立好,然后再导入合并到同一个操作环境里,根据原有的剧本所需和设计师的设计,再对其进行位置移动和旋转,将其摆设好位置,设置出动画所主要的场景。小组所做的3D项目里,主要布置的场景就是客厅和厨房。初步的场景模型线框图如图4所示。

    2.2 场景加材质及灯光

    在制作场景时,素材、材质贴图与灯光对整个场景的效果至关重要,会直接影响到整个动画的视觉效果。这也是一个相当复杂的制作,需要很仔细的调整,需要对参数具有一定的了解和熟悉。在材质与灯光的照射角度和灯光的距离渲染下,物体会显示不同的效果,从而渲染出不同的场景氛围,为动画增添生动。

    2.2.1 材质类型和属性

    在3DS MAX里面建立出来的物体只是一个没有外表的模型,没有灵魂,要是模型生动真实,就得附上材质。材质也有不同的类型和属性,根据不同的需求,对模型附上不同的材质,经过参数调整可以得到不同效果的物体。

    (1)类型:

    a. 多维子材质。可以使材质拥有多个子材质组成,需要对物体进行材质ID号设置,对不同的面赋予材质。比如一本书,未打开的书是六个面的,不同的面就是不同的图案,所以需要设置ID号,针对各个面附上不同的材质。

    b. 双面型材质。给同一个表面的正反方向分别赋予材质。大厅里面的全家福相框可以使用双面材质进行贴图。

    c. 光线追踪材质类型。光线追踪类型材质可以制作半透明物品、金属和玻璃。小组所做的3D动画项目里,里面的门,窗户是使用调节漫反射颜色和反射中添加光线跟踪制作出的玻璃材质。客厅上的茶几腿和餐桌椅的腿是金属材质。

    (2)属性。材质有很多属性,它们的参数不同,对材质的效果都不同。下面是一些常用属性的举例:

    a. Diffuse:漫反射颜色,物体的主要色彩。

    b. Specular:高光色,物体全反色的色彩。

    c. Ambient:环境色。物体受到外部环境影响时所发出的的色彩,一般情况下没有任何效果。

    d. Specular Level:高光强度。一般金属,陶瓷等比较坚硬和光滑的物体都有比较的高光。而墙体、布料等材质的高光比较弱。

    2.2.2 灯光类型

    灯光有光度学,标准和VRAY三种大类型。下面针对标准类型灯光举例说明里面的各个小类型灯光。

    (1)目标式聚光灯。目标式聚光灯有起始点和目标点,起点表明灯光所在的位置,目标点指向需要照明的物体。一般用来模拟手电筒、灯罩等台灯、追光灯和窗外投入的光线等照明效果。

    (2)自由式聚光灯。自由式聚光灯没有目标物体,它靠自身的旋转来照亮空间或物体,其它参数都与目标式聚光灯相同。通常可以模拟矿工头盔上的顶灯,随着走动,灯光就跟着移动,即依靠物体运动带动它的运动。通常可以连接到摄像机上来始终照明摄像机视野中的物体(如漫游动画)。   (3)目标式平行光。与目标式聚光灯一样,有起始点和目标点,起始点代表灯光的位置,目标点指向所需照亮物体。不过,平行光中的光线是平行的,可以模拟日光。

    (4)自由式平行光。用于漫游动画或连接到其它物体上,通过移动或旋转来调整灯光的位置来调整证明方向。

    (5)泛光灯。泛光灯向四面八方投射光线,属于点状光源。泛光灯不擅长突出主题,通常作为补光来模拟光的漫反射效果。

    (6)天光。天光是模拟天空光来照明环境。

    2.3 动画场景加材质灯光展示

    物体的材质就好比人的衣服,是本体的衬托。材质一般都是利用一些已有的图像,或直接饮用,或分解合成,然后附加给对象。其中添加材质中也有很多参数,如漫反射颜色的调节,材质的反射,感光度,凹凸,不透明度等,这些参数都对材质的效果有很大的影响。

    《虚拟消防安全宣教动画设计与实现》这个3D动画项目里,在对场景物体添加材质贴图和灯光时都运用各种材质类型方式和各种灯光来设置动画所需的场景视觉效果。为了符合场景需求,在大厅里设有电视机,摆放灭火器和抹布等工具。经过添加材质灯光和调整各种参数,动画里所需要的场景效果基本完成,效果如图5、图6所示。

    三维场景的搭建过程

    一、三维动画短片场景设计的风格

    (一)整体风格的确定

    动画短片《堕落的艺术》讲述的是一群战争中狂想者,军官让士兵完成空中飞跃,就为了那“完美”的血光飞溅的照片,并将整个照片连接进播放设备中,做成连续流畅的的舞蹈画面。画面中透着唯美,舞蹈中透着优雅,那激情四溅的音乐,如军旅小号,一遍遍回响在空旷的影棚中。反映出战争对人类灵魂的摧残。耐人深思。该短片整体的风格印象,先抑后扬,首先就要以场景环境渲染出影片的压抑感。动画场景的不同效果直接影响了动画短片整体的风格的形成。无论从高高扭曲的云塔,还是冷清的放映大厅,间或忽明忽暗的灯光都能体现出整个战争所带给人类扭曲的风格,“心理扭曲”是整个片子的灵魂,也是整个片子的特殊风格的体现。

    场景就是环境,环境是空间,是剧本所涉及的时代、社会背景和自然环境,它主要服务于角色表演的空间场所,是人物角色思想感情的陪衬,是烘托主题特色的环境。可见场景要体现出四个特征:剧情、时代、地域、时间。优秀的场景设计不仅是填补镜头画面空白的手段,而且能强化主题,渲染气氛,还对塑造角色性格、表现角色心理活动等起着重要作用。所以动画短片《堕落的艺术》中的场景起到很大的渲染作用。营造短片先压抑的风格气氛。例如那高耸的用木棍搭建的高塔,歪歪扭扭,高耸入云。这一场景的搭建与角色扭曲的心灵完全融合,所以场景的风格是根据剧本的剧情以及角色的风格来确定的,因此,三维动画场景要时刻符合剧情需要与角色的内心世界保持一致,以确定整体风格。

    (二)场景的造型风格的确定

    根据短片《堕落的艺术》的风格,需要我们从每个局部的场景组建起来,这个短片并不是一部写实主义风格影片,而是具有强烈手绘效果风格化的特点,并采用全部手绘的纹理贴图。这种风格简化了制作难度。建模师不用费力制作每一个细节,模型的多边形数量并不高;而动画和绑定也轻松了许多,材质采用简单的shader;许多场景中只有角色是3D的,其它都是合成的手绘层。因此整个制作过程最复杂的就剩下纹理和背景的绘制。因此通过简单的建模,加上独特的手绘贴图,使得短片具有了自己独特的风格。

    在放映室中,复杂的放映装置、简单的桌椅和布局以及空旷的大厅。都显现出神秘而又压抑的气氛。这正符合导演所要表达的主题,战争给人们带来的恐惧与崩溃。在外场景,高耸木架的陈旧造型,歪歪扭扭、粗落有致,给人带来压抑的内心情感。站在高高的木架上,通过俯视镜头以及以及镜头追踪的人物下坠场面,让观众在感官上有一种很压抑的感觉,尤其是那种猛烈撞击地面的瞬间,让观众进入窒息。在短片的最后我们只用了一束灯光打在了角色的身上,其他空间让观众有了无限的想象。这些场景造型的风格,都体现出了短片的整体的造型风格。

    二、三维动画场景的定稿与二维绘制

    (一)三维动画短片场景的定稿

    在进行短片场景设计的时候,必须要考虑到影片的所要表达的主题。在三维动画短片《堕落的艺术》中,摇摇欲坠的高塔、独木桥、荣耀的徽章、类似青蛙的古怪动物发出好笑的悲鸣、一部国家机器、死亡的舞蹈、领导者的梦想和信念、一个接一个的牺牲、战争不过是阴谋和野心家们精心编排的欢快的舞蹈、和某些伟人们暗合的面容,还有更多,还有继续通过牺牲而产生的艺术。所以我们不仅仅要在剧本,人物上考虑,更重要的是要考虑在场景上营造剧本主题所需要的环境,让人物在表演上更具体、更形象。因此我们将短片所有的场景风格定制在了扭曲的手绘的风格上面。并且色调也都偏于暗淡的,整个的场景的样式也都是偏于沉重。如那些孤独的座位,昏暗的灯光,跳动的音乐,无不体现出这些风格特点。

    (二)三维动画场景的绘制

    在不断的推敲,确定了场景建筑后,就将进行纸上具体细节的二维绘制。绘制的过程中,同样要考虑到短片的主题,风格,在片中能够表达的寓意。所以将短片中室内的场景结构,布置搭建的很简单,很老旧,能够从中表达出人物在追求自己梦想时的生活情况,也体现出战争对人类摧残到只为满足某些个人的享受而独自狂欢。那种绘制是简单而有深刻的。在放映室内的设计考虑上,都能够从中传达出一定的寓意。比如那些烦琐的放映设备,变换无穷的滚轮与连动杠杆,设计比较复杂,这样的构建是有目的的,就合司为了体现某些人为了自己的狂欢是经过复杂的精心的安排的,而空旷的大厅也是特意设计的,就是为了形成鲜明的对比效果上,这样的构建,既能够表达战争对某些人的摧残的心理效果,又能让观众产生视觉上压抑的感觉。根据这些风格特点,通过手绘的方式,将这些场景确定下来。   三、三维动画场景的搭建

    (一)三维动画场景造型的搭建

    优秀的三维动漫作品应该是内容与形式的完美结合。造型形式,特别是场景的造型形式,是体现影片整体形式风格、艺术追求的重要因素。场景的造型形式直接体现出影片的空间结构、色彩搭配、绘画风格,设计者需要探求影片整体与局部、局部与局部之间的关系,形成三维造型形式的基本风格。在创作过程中,我们首先通过对作品总体艺术认识的逻辑思考,完成对场景造型的形象创造,再通过形象思维与剧情、人物的结合进行全面的、镜头画面内部的总体造型设计,以表达我们对剧情。角色心理的认识和理解,以及对动画作品整体场景造型的创造性构想。所以在短片《堕落的艺术》中场景建筑的位置也是很重要,整体的木塔是经过精心设计的,建模主要经过Lightwave等软件进行搭建的,也可以通过3Dmax或者Maya等三维软件搭建而成。在建模过程中不需要把模型搭建的十分精细,也就是说布线不用十分精密,因为在贴图上可以通过手绘贴图来改善这种效果。每个场景的造型都是不可分割的。因为一个整体的搭建,是需要每个个体局部所搭建成的。

    (二)三维动画场景细节的搭建

    在短片《堕落的艺术》中幻灯机的设计,作者就是经过一遍又一遍的推敲,才找到了这个能够表达短片场景环境的设计。这样的场景不但要结合实际,从实际出发,更要能够表达出短片的细节。就好像整个吉他店的外观设计,在不同角度所表达的意境。在俯视的角度,让观众看到的是压抑的感觉。而在平视的角度,那几根简单的圆柱细节,又表达出了另一番意境,就像圆柱一样要静静的支持着。

    而放映厅内的设计也是作者经过深思熟虑的,把复杂的幻灯机与简单的桌椅放在一起形成鲜明的对比,所表达出人物是为了追求战争刺激而煞费心机,而观众缺空无一人。灯光设定也煞费心机,把角色的内心世界照的清清楚楚。作者就是为了突出个人战争情怀,才把观众去掉的,更突显战争对人类心灵造成多么严重的扭曲。

    猜你感兴趣:

    展开全文
  • 它通过三维动画软件在计算机首先建立一个虚拟的三维世界,设计师在这个虚拟的三维世界按照要表现的对象的形状、尺寸建立模型以及场景,并按要求对物体赋予特定的材质,设置灯光,然后根据要求设定模型的运动轨迹...

    计算机三维动画的概念

    三维动画又称3D动画,是近年来随着计算机软硬件技术的发展而产生的一项新兴技术。它通过三维动画软件在计算机中首先建立一个虚拟的三维世界,设计师在这个虚拟的三维世界中按照要表现的对象的形状、尺寸建立模型以及场景,并按要求对物体赋予特定的材质,设置灯光,然后根据要求设定模型的运动轨迹、虚拟摄影机的运动和其他运动的参数。当这一切完成后就可以让计算机自动运算,输出最后生成的动态画面。

    三维动画艺术是一种影视艺术,它涉及到角色、场景、构图、景别、摄影机角度、灯光、色彩、音响等多方面视听元素的模拟设计制作。三维动画通过对现实拍摄的模拟,有很轻的透视效果,并且不受场景限制,全方位展示360度空间。

    e43365a32a19e03abf09bc22386fbaa3.png

    计算机三维动画技术的发展

    三维动画业是新兴行业,也可称CG(Computer Graphics)行业。三维动画以计算机为创作的工具和平台,它伴随着计算机三维动画技术的发展而发展的,计算机三维动画的发展历史经历了4个时期:技术酝酿期(1984年~1994年)、起步发展期(1995年~2000年)、迅猛发展期(2001年~2003年)、全盛时期(2004年~至今)。

    计算机三维动画的应用

    随着计算机三维技术的不断发展,三维动画被广泛应用于影视制作、广告、片头动画、景观、建筑、电子游戏、艺术创作、军事、产品展示设计等诸多领域。

    计算机三维动画制作主流软件

    目前,三维设计人员主要运用3ds Max、Maya、Poser、Softimage、Rhino、Lightwave等计算机三维动画制作软件。

    展开全文
  • Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 制作的动画文件的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator 控制动画播放的同时,设置 Animator 的 applyRootMotion 字段为 ...

    Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator 控制动画播放的同时,设置 Animator 的 applyRootMotion 字段为 True 就 OK 了。

    那么怎么来利用这个特性达成我们想要的一些效果呢?这个 applyRootMotion 到底指的是啥呢?

    ApplyRootMotion,从字面上理解来看,是『应用根节点的运动』,听起来貌似像那么一回事。可是我们可以从官方文档上看到这样一段话:

    The Root Transform is a projection on the Y plane of the Body Transform and is computed at runtime. At every frame, a change in the Root Transform is computed. This change in transform is then applied to the Game Object to make it move.

    翻译过来的意思,应该是这样的:

    根节点的运动变换其实就是整个物体运动变换通过 Y 轴垂直在水平面上的一个投影。根节点的运动变换在动画的每一帧中都会进行计算。计算出来的根节点变换结果都会应用在播放动画的对象上,让该对象按照根节点的运动变换进行移动。

    这段话大体的意思就是,RootMotion 这个玩意就是作用于动画物体在 X 轴和 Z 轴上的位移的,而且这个位移是根据实际播放的动画中每一帧物体的位移在 X 和 Z 轴上投影计算出来的。

    这个特性非常赞特别是对于某些技能动画,整个动画是有一定位移的,但是动画的位移是动作设计师在设计时根据动作需要调出来的,位移是跟动作的幅度直接相关和匹配的。

    那么在释放技能的时候就只需要直接播放动画,并且应用这个 Root Motion 的特性就可以很好的完成角色在播放攻击动作的同时进行移动,动作播放完毕之后就在动画结束帧角色所在的位置,切换为待机动作就 OK 了。

    看起来很牛逼的样子对不对?是的,确实很牛逼。但是还有很多事情需要我们都一一了解以后,我们才能做出我们想要的东西的。

    下面我们先岔开一下话题,好好说说这个 Animation Import Settings 中『Animations』Tab 页中各项设置的作用。

    • Import Animation,勾选这个才可以导入动画到 Unity 工程中;
    • Bake Animations,这个选项只在使用 Humanoid 动画并且使用到了 IK 特性的时候才可用;
    • Anim.Compression,这个是关于动画压缩选项的,默认会选择 Keyframe Reduction 这个是『压缩关键帧』,就是 Unity 会自行重采样动画的关键帧,还有两个选项『Off 和 Optimal』,一个是关闭动画压缩,一个是最优化压缩(应该是压缩效率最高,动画效果失真度可能也较高)
    • 选择了 Keyframe Reduction 或者 Optimal 压缩选项,就会有三个用于控制压缩选项的系数配置, Rotation Error,Position Error 和 Scale Error,这个三个参数默认都是 0.5,越小呢精度就越高也就是说动画的失真度越小。
    • Clips,这个下面列出了这个 FBX 文件下包含的所有动画,我们在默认的动画文件基础上新建和删除动画片段 (Animation Clip),当然每个动画片段都是可以指定起始帧和结束帧的; 以下的设置都是针对单个动画片段滴:
      • Loop Time,勾选这个选项之后,如果 Animator 处于播放这个动画状态时,在播放完第一遍这个动画片段之后,会自动循环从起始帧再次开始播放动画,如此循环往复。如果我们不勾选这个选项,例如 Animator 一直处于播放这个动画的状态,那么动画会定格在动画的结束帧,直到我们通过 Animator 切换这个 Animator 状态机的状态,切换到其他的动画;
        • Loop Pose 和 Cycle Offset,在勾选了 Loop Time 之后生效的两个选项,Loop Pose 用于控制动画循环播放时,从结束帧切换到起始帧时,动画的动作可以无缝的衔接上,Cycly Offset 就是用于控制循环的时候起始帧偏移用的;
      • Root Transform Rotation,根节点的旋转信息
        • Bake Into Pose,勾选后会将根节点每一帧的旋转方向信息烘焙到动画的骨骼运动中,在整个动画播放的过程中,根节点的旋转信息就不会在通过 Root Motion 作用到播放该动画的 GameObject 上了,这就意味着这个动画播放的过程中,该物体的 Transform 中的 Rotation 值不会因为动画中物体做了任何旋转而发生改变,而是会保持一个恒定的值,和该动画播放之前的旋转值保持一致;
        • Based Upon (at Start) 或者 Based Upon,根节点旋转的参考基准,有两个选项『Original 和 Root Node Rotation』这两个分别指的是动画文件中指定的旋转值和根节点旋转信息,其实我更愿意将 Original 理解为动画中原点的旋转值,因为在整个动画播放的过程中,所有骨骼肯定都会有旋转和位移的变换,但是动画的原点其实一定都是确定的,这样理解感觉更简单也更形象一些,勾选了 Bake Into Pose 之后,就会变成 Based Upon 而不勾选 Bake Into Pose 就会保持为 Based Upon (at Start),这个目前还木有理解为啥;
        • Offset,旋转角度与参考基准的偏移(以度为单位);
      • Root Transform Position(Y),根节点位移信息(Y 轴)
        • Bake Into Pose,勾选后会将根节点每一帧在垂直 Y 轴方向上的运动信息烘焙到动画的骨骼运动中,在整个动画播放的过程中,根节点在 Y 轴方向的所有位移信息不会通过 Root Motion 作用到播放该动画的 GameObject 上,这就意味着我们在场景中看到物体在 Y 轴上有位移,例如向上或者向下移动,但是该物体的 Transform 中的 Position 信息不会发生改变,会跟动画播放之前的 Position 信息保持一致;
        • Based Upon 或者 Based Upon (at Start),这个貌似有点不一样哦,在选中 Bake Into Pose 之后会变成 Based Upon (at Start),不勾选的时候是 Based Upon,不过这个就能理解了。不烘焙的话,那么 Root Motion 中 Y 轴的变化就依赖于选择的『Original 或者 Root Node Position』的 Y 轴位移变化,如果选择烘焙的话,那么就以这个动画的起始帧的 Y 轴作为整个动画 Root Motion 的 Y 轴位移,在整个动画播放的过程中,Y 轴的位移都是恒定不变的;
        • Offset,垂直方向上的偏移;
      • Root Transform Position(XZ),根节点位移信息(水平面,XZ 轴)
        • Bake Into Pose,勾选后会将根节点每一帧在水平面(X 和 Z 轴)方向上的运动信息烘焙到动画的骨骼运动中,在整个动画播放的过程中,根节点在 X 和 Z 轴方向的所有位移信息不会通过 Root Motion 作用到播放该动画的 GameObject 上,这就意味着我们在场景中看到物体在水平面上移动,但是该物体的 Transform 中的 Position 信息不会发生改变,会跟动画播放之前的 Position 信息保持一致,假如动画中物体会向前移动 3 米,我们会看到物体在整个动画播放过程中确实在向前移动,播放到最后一帧时确实向前移动了 3 米,但是当这个动画播放完毕之后,切换到任何其他的动画时,物体会直接闪回这个动画播放前物体所在的位置,所以通常我们需要保留动作位移的动画都不会勾选这个选项。那这个选项有神马用捏?例如某些待机动画,我们其实希望物体只是做一个待机动作,但是实际上不想让物体在水平方向上有位移,这个时候就可以勾选这个选项了,到时候看起来物体就像是钉在水平面上了;
      • Mask,这个掩码主要是用于控制动画播放过程中,各个骨骼之间的运动变换的
        • Definition,可以选择从动画文件创建也可以选择使用其他动画文件中已经创建好的配置;
        • Transform,这个就是动画文件中所有骨骼的层级关系,可以选择勾选那些需要应用动画中运动变换的骨骼;
      • Curves,这个主要用于设置某些跟动画相关的参数用,例如控制整个动画播放过程中的速度参数之类的,在动画播放的过程中可以通过 Animator.GetFloat(ParamName) 函数来读取曲线的值,曲线的 X 轴为动画的时间轴,Y 轴为曲线的值,曲线可以通过曲线编辑器进行增加关键点,调整曲线斜率进行编辑,读取时默认会根据当前动画播放的进度作为 X 轴的值进行读取,一个动画片段可以有多个曲线;
      • Events,这个是用于在动画播放的过程中触发事件的,例如整个动画中有起跳和落地两个事件需要在准确的时间点触发并通知到游戏中其他的对象,那么就可以在 Events 时间轴上新增事件通知,设置好触发的方法名称和参数,在播放该动画的 GameObject 上确保有某个脚本中有与该事件通知的方法签名一致的方法就好了,当动画播放到触发通知时间时,就会向 GameObject 广播该时间通知,脚本中方法签名一致的方法就会被回调了,那我们就可以做我们需要做的事情了。

    说了这么多貌似跟 Root Motion 不是很相关的东西,那么究竟我们今天的主题是啥呢?肯定还是 Root Motion 这货。主要因为动画导入时的设置对于 Root Motion 的应用影响非常直接,所以前面絮絮叨叨地把这个动画导入设置都罗列了一遍。

    回到正题,Generic 动画应用 Root Motion 有以下几个特点:

    1. Root Motion 仅仅作用于 GameObject 在 X 和 Z 轴上的位移变换,不影响 Y 轴上的位移。例如现在播放一个从地上向前空翻之后落地的动画,设置 Animator 的 applyRootMotion 为 True,也就是应用 Root Motion,那么动画在播放过程中,物体会在水平方向和垂直方向上都按照实际动画的运动轨迹进行运动,如果将 applyRootMotion 设置为 False,那么我们就只能看到动画在原地起跳然后再落地,动画中原本应有的在水平方向的位移就没有了;
    2. Root Motion 与导入动画时设置 Root Transform Position(XZ) 是直接相关的,如果我们选择了将 X 和 Z 轴方向上根节点的位移烘焙到动画骨骼运动中的话,那么动画播放过程中不论我们是否将 Animator 的 applyRootMotion 设置为 True 还是 False,动画播放过程中物体在 X 和 Z 上的移动是一定的,因为这个已经被烘焙到骨骼动画中,只要动画播放,物体就会移动,但是在动画播放的过程中 GameObject 的 Position 值不会改变,在动画结束后我们切换到其他动画的时候,其他动画开始播放时的 GameObject 的位置会回到这个动画播放前的位置,所以如果我们需要对某个动画应用 Root Motion 的话,那么这个动画在导入的时候就不要烘焙其在 X 和 Z 轴方向上的 Root Transform Position,让 Unity 自行根据动画中根节点的位移进行位移计算 GameObject 的位置信息;
    3. 注意 Root Motion 与 Rigidbody.Velocity 属性的关系,如果有两个动画 A 和 B,播放 A 动画的时候,希望 A 动画应用 Root Motion,而在播放 B 动画的时候不想应用 Root Motion,那么就直接在切换到动画 B 的时候,将 Animator 的 applyRootMotion 设置为 False 就 OK 了。但是如果播放动画的 GameObject 带有 Rigidbody 组件,那么需要注意一点,在播放 A 动画时 Rigidbody 的 Velocity 并不会在切换到 B 动画时清零,也就是说如果 A 动画的运动速度较快,那么切换到 B 动画的时候,如果希望 B 动画播放的时候 GameObject 按照自己的设定轨迹运动,就需要自行手动在切换到 B 动画之前将 Rigidbody 的 Velocity 属性清零,防止 GameObject 按照 A 动画的运动惯性继续运动。这个问题在没有 Rigidbody 组件的 GameObject 上不会存在;

    这边再岔开一下,说说这个动画跟 Rigidbody 之间的关系:

    1. 如果我们没有将 Root Transform Position 的 Y 和 XZ 轴进行烘焙的话,那么在动画播放的过程中,Rigidbody 将会自动获得动画中物体运动的速度信息,直接通过 Rigidbody.Velocity 属性就可以获得;
    2. 如果我们将 Y 轴进行烘焙,那么 Rigidbody.Velocity 在 Y 轴上的值将会一直为 0,对于 XZ 轴也是一样的,如果烘焙了 XZ 轴的位移,那么整个动画播放过程中,Rigidbody.Velocity 在 X 和 Z 轴上的值都会为 0;
    3. 如果播放动画的物体没有 Rigidbody 组件,那么动画的运动都会仅仅按照动画实际的位移来进行逐帧播放,不会出现上文中提到的动画播放切换之后还存在的运动惯性问题,因为物理引擎依赖于 Rigidbody 组件,如果没有该组件,所有动画的播放都只是逐帧播放动画,不会存在速度的概念只有移动位移。
    4. Rigidbody 使用使用重力对于动画在 Y 轴上的位移没有任何影响,不论是否对 Root Transform Position 的 Y 轴进行了烘焙。
    展开全文
  • 精通DirectX.3D图形与动画程序设计.pdf

    热门讨论 2013-02-17 16:40:18
    中文名: 精通DirectX 3D图形与动画程序设计 原名: 精通DirectX 3D图形与动画程序设计 别名: 游戏编程, 游戏开发 作者: 王德才 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: 9787115159717发行时间: 2007...
  • 第7~11章是面向对象程序设计,也是本书的重点,采用Greenfoot教学工具详细讲解面向对象程序设计概念、特点与应用; 第12~15章是Java综合实训,围绕一个Java平面游戏案例,从游戏框架、游戏场景到游戏角色等4个...
  • 虽然早期的GIF动画不论是从技术层面还是从应用范畴来看,都和界面设计并无特别直接的关系,但是近几年,动画图标开始在界面设计中大量运用,并有流行开来的趋势。坦率的讲,让图标动起来,或者通过动态图表达一些...
  • 资源名称:高端CG影视动画 绘图视频教程 教程内容:45度场景 1 45度场景0 45度场景2 中国风场景示范 云彩4 元素搭配 光与素描 光与色彩 地形 场景起稿范画 大场景 夜晚 大场景科幻 示范 大场景范画 大...
  • clarisse电影级CG场景渲染中文教学

    千次阅读 2021-03-17 02:55:34
    clarisse电影级CG场景渲染中文教学clarisse电影级CG场景渲染中文教学clarisse电影级CG场景渲染中文教学clarisse电影级CG场景渲染中文教学clarisse电影级CG场景渲染中文教学课时数:15小时左右/62课节使用软件:...
  • 实现碰撞检测和精灵动画
  • 08.spritekit征程——场景中动画

    千次阅读 2015-03-04 11:38:54
    08.spritekit征程——场景中动画接着上文,显示静态的文字是否无法满足你的欲望,那么本文的内容绝对让你热血沸腾,记得小时候爱看动画,现在有这么一个机会让你来创作是不是想想都有点小激动呢。 动画的核心呢...
  • 在如今这个时间和知识都是碎片化的时代,C站根据C1-C4认证的成长路径,进行知识细化整理,形成系统化的知识图谱。 通过调研一线互联网大厂的招聘JD,小编对标C站能力认证要求,为大家整理了... 【响应式网页设计实战..
  • 序言三维设计、CG动画这种类型的工作,说白了都是操作计算机图形的,既然要让计算机呈现美轮美奂的图形效果,那计算机本身的配置就不能太差。通常来说,三维设计、视频渲染、效果图渲染、CG动画、模型制作、工业设计...
  •  增强现实技术AR:--融合了三维动画、立体视觉和图像处理;--建模、渲染、位置标定、图像融合;2. OpenGL是一种用于创建实时3D图像的编程接口。3. 三维这个术语表示一个正在描述或显示的物体具有三维维度:宽度、...
  • Unity动画系统,Animation,Animator。 本文对Unity动画系统基础做了一个全面解析,还包括实战演练。近万字教程让你对Unity的动画系统有一个系统的了解,敬请品尝!
  • 浙江大学软件学院三维动画与交互技术考试概念整理第一讲1.增强现实技术AR:--融合了三维动画、立体视觉和图像处理;--建模、渲染、位置标定、图像融合;2.OpenGL是一种用于创建实时3D图像的编程接口。3.三维这个术语...
  • 场景则是游戏的环境、机械、道具等死物。场景开始对美术的要求没有那么高,只要熟练运用3D软件就行了。 逐步掌握游戏场景元素设计理念,不同风格游戏的制作方法。着重学习材质处理技法,能够根据原画制作出精细...
  • 动画专业主要学什么?

    千次阅读 2021-06-16 05:51:59
    01动画专业学生主要系统地学习动画基础知识和动画技法,学习剧作、分镜、视听语言等专业知识,掌握相关动画制作软件,能够进行完整的动画短片设计制作。主要课程:影视剧作、影视声音、动画技法、影视动画创作、...
  • 引擎支持 Visual Studio 2013 及以上版本,如果你使用的是较低版本的 VS,那么你需要考虑一下更新你的编译器了什么是动画直接修改节点的属性会立即生效,体现不出时间的概念,也没有渐变的效果。想让一个精灵执行一...
  • 1. 动画介绍动画对于App来说,非常的重要。很多App,正是因为有了动画,所以才会觉得炫酷。移动端的动画库有非常的多,例如iOS上的Pop、web端的animate.css、Android端的AndroidViewAnimations、跨平台的Lottie等。...
  • 打造高性能css动画,你该怎么做?

    千次阅读 多人点赞 2021-08-21 11:44:33
    CSS有两个至关重要的概念 —— 重排和重绘。由此,通常会有一个问题:“为什么重排比重绘更耗性能?” 要解释这个,还要回到浏览器的渲染原理上: 自上而下解析 DOM,生成 DOM 树; 解析 CSS,生成 CSSOM 树; ...
  • 动画骨骼模型文件格式fbx

    千次阅读 2021-08-31 15:34:03
    2011年的时候集中轰击了五款3D模型格式(obj、3ds、md2、md3、md5),那时候其实主要是从渲染方式和模型动画方式的进化角度来选择的,尤其是ID Tech的md系列,让这个世界的模型动画观念从最简单的“帧动画”到当前...
  • 『可组合的Vue』别样的“小组件”设计

    千次阅读 多人点赞 2022-01-08 23:48:42
    最近在设计笔者所在组自己的组件库。从设计上看,一个组件库是否“成功”取决于前期的设计 —— 我决定用上ITCSS模型。为这个组件的团队维护、扩展打下坚实的基础。 但这还不够,组件库最重要的组件往往是非大型库...
  • 老夫离职前夕,随手翻译了...在总结了多年设计关卡和场景的失败经验后,我终于找到了能帮助你从开始,到完成一个项目的方法。 因为有了之前很长时间的规划,在大学的最后一年我完成了我的动画论文。由于在做之前用...
  • 为什么设计师的眼里饱含着泪水,因为对页面效果爱的深沉。本篇就介绍一下transform。(擎天柱:Autobot transform!) transform本质上是一系列变形函数,分别是translate位移,scale缩放,rotate旋转,skew...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,421
精华内容 9,768
热门标签
关键字:

动画中场景设计的概念