3d动画学习心得体会(共7篇)
三维动画是使用电脑软件制作出立体虚拟影响,所以又称“3D动画”,是近年来随着计算机技术迅速发展而产生的一种新技术。三维动画是集摄影艺术、布景设计以及灯光合理布置等等于一体的技术艺术集合体技术。在相对于二维动画的层面上,三维动画不仅仅只是要求在设计制作人物形象或者场景方面需要有艺术功底和创造力,且要求制作者还要有较好的空间感和艺术感。在这几个条件都具备的情况下,制作者还必须能够很好的运用各种三维动画的制作软件,例如:3DMAX、MAYA等等。因此我觉得三维动画不仅仅是艺术,而还必须拥有一定的技术才能够展现。
不管是二维还是三维动画首先需要的就是要有一个好的剧本,或者说是一个好的故事好的剧情,有了好的故事好的剧情动画就已经成功了一半。其次就是人物与场景的精美精细的程度了。在制作三维动画之前必须详细的构思好符合动画剧情的场景和符合人物性格的人物造型。
在分镜的方面,三维动画的分镜相较于二维动画的就较为难办了。在三维动画的分镜头中必须表达的有镜头的类别和运动、人物与场景的构图和光影以及光源、运动方式与时间以及音乐音效等等。每一个图片都代表一个镜头,且需要使用文字来说明镜头的长度、人物台词和动作。
在人物和场景设计初期,三维动画需要先在纸上画出大概的造型设计,以及身上的饰物的这些细节,且对于场景造型设计和人物造型设计要求比较严格。不仅仅是需要人物的正面图,还需要他的侧面背面等草图。且必须考虑到人物运动过程的样子,人物面部表情,例如:惊讶、高兴、难过、生气等等。有了这些全方面的考虑和草图设计才能够在建模的时候有一个初步的模型。
三维动画在人物和场景的制作方面还需要考虑材质。例如木头的材质所需要的贴图应该是有木头特有的纹路,且光是这一点还需要考虑木头的.颜色以及如何切割的,不同切割方式的木头有不同的纹路所以需要不同的贴图。在灯光方面,三维动画中还需要考虑不同的灯光下有不同的颜色,且随着时间的不同,还需要考虑到灯光的投影、所产生的阴影、以及灯光对人物的轮廓显示等等。
最后是动画的动作调节方面。三维动画需要在软件中调整帧数以及人物身上的曲线来控制人物动作幅度大小以及时间。这些都需要对三维动画制作软件有详细的了解才能够完成。其中人物说话的口型变化、表情、走路动作等等,都要符合自然规律,且制作要尽可能的逼真、细致、细腻,因此三维动画师还需要专门研究且熟知各种事物的运动规律,并且要熟知同样的事物但不同材质的运动规律是如何的,例如:同样是圆形球体,但是铁球和木球的运动规律就完全不相同了。而在人物方面,还需要知道当人说话的时候,讲话的口型变化,需要把这种细微的口型变化给体现出来,使人物的动作与声音协调。另外在人的动作变化中,三维动画软件系统提供了骨骼的制作,通过蒙皮技术将模型与骨骼绑定,使得人物的动作能够合乎自然规律。
1.离子流表现,我所做的这个离子流只表现一种运动形式,大家可以通过这个方法做出很多好东东,如火,水,雾
2.灯光表现实体
教程按下图为例
1.在视图中创建一圆球
如图所示,参数可以自己设置
2.在Graph Editors(图表编辑器)菜单中选择最后一项,离子视图
也可用快捷键6调出来
如图所示
3.在离子视图空白区点击右键,弹出菜单,创建一空离子事件
4.继续在空白区域创建一事件控制器,操作对像为实物体
5.离子表现运动都需要有自己的生命周期,因此我们需要给这个离子流的每个离子加入生命周期及离流的大小
如下图所示,在离子视图下方选择birth,点击左键拖入到第一个事件中
6.设置离子的起始,结束,如图所示
emit start代表离子从第几帧出生,emit stop代表离子第几帧结束
我们暂定数字为0和60
rate代表离子的数量
7.选择年龄测试age test拖入第一个事件中
如图所示
8.设置其参数
9.在第一个事件中,选择POSITION OBJICT 在右边出现的菜单中点击BY LIST
如图所示,出现对话框,点击球物体1,确定
此动作意味着,将离子流附在了球1上面,也就是说每一个离子都在在这个球上面诞生的
10.将空离子源与事件一联接在一起,如下图所示
11.同创建事件1相同,在空白区域创建事件2
用此事件来控制离子舞动
如下图所示
12.选择DELETE操作,将其拖入到第二个事件中,其方法与上边birth方法相同
如下图所示
13.设置DELETE控制面板的参数,表示离子产生后一段时间自动消失,其数值可以自己试着改变设置
14.离子的诞生我们已经完成了,但到现在离子了产生后只会附在球形物体上,不能产生运动
因此我们需要给离子一个力的作用,在3DMAX辅助物体中,只有WIND是最合适的
如下图所示,进入创建面板,选择辅助物
15.在圆球物体的下方创建三个WIND风
16.分别设置其风的参数,这个参数需要根据你自己的实际情况来调
strength代表风的强度
turbulence代表湍流
frequency代表频率
scale代表比例
(点击放大)
17.建立一个Drag空间弯曲,在其属性面板中选择Linear Damping(线形阻尼),选中Unlimited Range,设置X、Y、Z三个方向上的阻尼值均为100%,并设置它的作用时间(Time On和Time Off)为和动画的时间等长
(点击放大)
18.我们渲染其中的一帧,发现离子仍附在物体上,没有动
这是因为离子和动力还没有产生关系,我们需要一个关系来联接他们
19.点击6进入离子视力,如图所示,在下方选择Force Operator(作用力操作器),将其拖入到第二个事件中
20.选择FORCE,在右边的控制面板中,选择BY LIST 如图所示,出现对话框,将所有的扭曲操作选择
21.用同样的方法,将离子测试同第二个事件联接起来
这样他们就能开成一个整体的离子系统
22.拖动到某一帧,我们可以看到效果
23.渲染一下效果,咦!!!!!!!
怎么会什么也没有呀,只看到球球,没有离子呀
原来我们所创建的离子没有一直对着摄像头
24.下面我们就实现让离子显示出来
创建一摄影机,并将透视图改为摄影机视图
如下图所示
25.在离子视图中,选择shape facing.将其拖入到第二个事件中
26.进入其控制面板,点击NONE然后在视图中选择摄影机
如图所示
(点击放大)
27.我们再看效果,终于可以出一口气了
嘿嘿
28.接下来我们来给离子做一种材质,这种材质我们可以随意来做的,只要感觉效果好就行
同样,在第二个事件中我们加入一个Material Dynamic Operator(材质动力学操作器)
如下图所示
29.下来我们来做一种类同火焰的材质效果
如下图所示,选择一个材质球,设置其中的参数
30.进入Maps卷展栏,单击Opacity贴图通道按钮,在弹出的窗口中选择“Gradient Ramp”,调整渐变颜色从左到右分别为橙黄色、橙红色、黑色
31.调整渐变颜色从左到右
选择Gradient Type为Radial,Interpolation为Ease In。Ease In可以让渐变更加自然地过渡,不至于在颜色之间出现条纹。在下面Noise(噪波)组中为这个渐变添加噪声
32.设置刚才露掉的基本参数
33.在离子视图中,选择第二个事件中的材质操作器
在控制面板中,点击空白栏.在弹出的Material/Map Browser对话框中首先单击Mlt Editor(从材质编辑器中选取材质)
然后选择我们刚才所做的材质
34.我们已经完成了离子的运动的部分,渲染一下,看看你做的效果
35.我们现在已经完成了离子运动的部分,接下来要做的法器的实体部分
其中包括两部分,一部分是法器构架,也就是普通的建军模
另一部分是魔球,此部分也可以一个实体球,加入特殊材质来完成
今天我们用另外一种办法来完成魔球--体积光
如下图所示,首先将离子诞生地球体隐藏
36.创建一Omni(泛光灯),将其放在刚才隐藏起来圆球的地方
如下图所示
37.泛光灯的聚光区、散光区以及近距离和远距离衰减区都是球形的
如图所示,我们打开泛光灯的近距离和远距离衰减
我们看到泛光灯所能照亮的范围
(点击放大)
38.在渲染菜单栏中选择环境选项
如下图所示
39.弹出环境对话框,在大气扩展栏中,点击ADD增加
如图所示,出现对话框,选择体积光volume light
40.仍然在环境对话框中,点击拾取灯光pick light
然后点击我们刚才所创建的泛光灯
可以看到修改此泛光灯特殊效果的栏目已出现
41.设置体积光的参数
体积密度density设置为90
加入澡波noise效果,如下图所示,设置其它参数,这些项目大家可以自己来试试,看看每一项不同数值可以产生什么样的效果
42.在视图中选择泛光灯,进入修改面板中,修改泛光灯的基本参数
如下图所示,我们要求用泛光灯来表现成魔球,因此这个球的大小一定要适合,我们可以根据泛光灯的近远距离扩散来实现这一点
设置其近远距离扩散的开始及结束
并且要将光线强度设置高一点
43.接下来创建法器
法器主支架部分我们将用曲线旋转而成
在左或右视图中创建曲线
位置在离子的正下方
44.选择线条进入修改面板下的点层级
选择线条上所有的点,如下图所示,点击右键,在视图中出现浅灰色的菜单,勾选smooth光滑
45.仍然选择线条,在修改面板中,进入样条线层级spline
如下图所示,在下拉菜单中使outline轮廓按钮被选中
46.拖拉我们所创建的线条,如下图所示,线条好像复制出了一条,其实这是一个闭合的曲线
其之间的距离我们可以靠所拖拉的程度来控制
47.给线条加入lathe修改器
48.在支架的旁边创建一曲线,如同刚才所做一样,将所有点变为平滑
49.在顶视图中创建一圆球
我们将用刚才所创建的曲线及圆球放样来做一个粗细不均的圆条物体
50.进入创建Compound Objects(合成物体)面板
选择loft放样
51.接下来的步骤将使曲线成为放样路径,圆环成为放样的形体
如图所示,选择我们所创建的曲线,在放样修改面板中,使get shape选中,再点击所创建的圆环
如下图,我们所需要的东西已经出来了
52.选择刚刚放样的物体 ,在修改面板中,选择loft放样设置的最后一项deformations变形
选中其中的缩放scale按钮
53.上图中所表现一条直线,表示放样出的圆环柱粗细程度是均一的
我们需要的是一个流线形
如下图所示,在缩放控制栏中,我们可以将直线变为曲线,方法是加放一些点,使其高低起伏
54.在此做品中,我们需要法器上面有三个这样的变形体,并且是相同距离围绕着法器的主支架
因些我们可以用一种陈列工具来实现,但实现这样效果之前,想一下,变形体是围着法器主支架形成一个圆,因此这个变形体的中心点应该在主支架的中心轴上面
选中变形体,进入层次面板hierarchy
选项中Affect Pivot Only仅影响轴心点
将其变形体的轴心点移动到正中心,也就是支架的轴心线上
55.进入工具菜单,选择array阵列工具
其对话框如下图所示
注意观察变形体在视图中的位置,我们可以看到我们所要求的旋转轴是Y轴
因此在些对话框中,要填入的旋转角度应该是Y轴下的项目,我们所需要的操作是旋转,因此对应第二项,我们所创建物体为3,因此为120度
56.其效果如下图所示
57.在下图所示的位置创建一Cone(锥体)
参数设置如图所示
58.复制出一个圆椎,其方法为选择圆椎,按下shift 键,拖动圆椎
59.选择原先的圆椎,在修改下拉列表中选择Lattice(框架)修改器
产生一种框架结构
60.在刚才复制出圆椎的基础上再复制出一个圆椎.并设置其两个大小如28图所示
我们将用这两个圆椎创建出一个中空的椎罩体,用来做魔法球的半透明光罩
61.使用布尔减运算
选择外圆椎,进入创建复合物体面板,选择布尔运算,点击pick operand
然后点击内圆椎,记得调为相减
62.用同样的方法创建出光罩的上半部分
63.用创建支架的方法,使用曲线的LATHE
创建出顶端塔尖
最终效果如下图所示
64.到此为止,法器离子部分及建模部分已完成
接下来的还有法器旋转部分及材质渲染部分
因为此部分不是我们要做的重点,所以也不会讲太详细
1.法器魔球光罩旋转部分大家可以根据自己的需要来做
旋转速度逐步加快,在第40帧处旋转一周,在70帧、90帧、100帧处旋转一周
也就说第一周用40、第二周用30、第三周用20、第四周用10
2.渲染我主要来给大家说一下透明光罩的做法,如下图
设其基本参数,本着色设为一种淡黄色,在贴图中,self 及opacity设置为falloff
65.最后我们来做一个场景来洪拖气氛
首先要四周的灯光要晕暗,但要照好法器旁边的部分
总之这些东西要根据自己的爱好,自己所创建实际情况来定
在这个做品中,另外加入了三个灯光,他们的强度,远近扩散度都比较小,只能照亮周围一小部分
66.地面的材质,也要带一点宗教神秘色彩
如下图所示
使用的TIELS,并加入了一种矿石贴图
大闹天宫后的四百多年间,齐天大圣成了一个传说。在山妖横行的长安城,百姓们在朝夕不保中惶惶度日。孤儿江流儿与行脚僧法明相依为命,小小少年常常神往大闹天宫的孙悟空。
有一天,山妖来劫掠童男童女,江流儿救了一个小女孩,惹得山妖追杀,他一路逃跑,跑进了五行山,盲打误撞地解除了孙悟空的封印。悟空自由之后只想回花果山,却无奈腕上封印未解,又欠江流儿人情,勉强地护送他回长安城。一路上八戒和白龙马也因缘际化地现身,但或落魄或魔性大发,英雄不再。妖王为抢女童,布下夜店迷局,却发现悟空法力尽失,轻而易举地抓走了女童。悟空不愿再去救女童,江流儿决定自己去救。日全食之日,在悬空寺,妖王准备将童男童女投入丹炉中,江流儿却冲进了道场,最后一战开始了。
歌词介绍
从前的我
作词:田晓鹏
作曲:黄英华
心里的呼唤 总在徘徊
风中的云彩 它向我走来
远处那个人 还在等待
熟悉的声音 已不在
你说你要离开 明天还会回来
曾经忘不掉的 如今你是否还记得来
转身不算告别 分离却分不开
若是遇见从前的我
请带他回来
星月那么亮 风多自在
梦里的草原 誓言如花开
唱完这首歌 谁先醒来
说好不分开 何必未来
你说你要离开 明天还会回来
曾经忘不掉的 如今你是否还记得来
转身不算告别 分离却分不开
飞越思念时空之海 你还在不在
你说你要离开
曾经忘不掉的 如今你是否还记得来
转身不算告别 分离却分不开
若是遇见从前的我 请带他回来
引言
严格来说,这不是一篇教程,这篇文章的旨在目的是向还没有接触过Vector类的闪友介绍、推荐Vector类,利用它的方便,简洁以及它的强大功能作出更加完美的动画,特别是模仿3D的动画,说到Vector类,必须说到一个人――Robert Penner,是他在《Flash Mx编程与创意实现》一书中为它赋予了生命与灵魂(我是这么认为的)(先声明这不是做广告),这本书在几年前就出版了,应该很多闪友已经看过了,我是在几个月前才知道和看到的(有点井底之蛙,可别取笑我),当我看到其中的Vector类时,眼前确实一亮,我是一名高中物理教师,学过高中物理的闪友都知道矢量在高中物理中的份量,所以我花了大概两天时间,把其中的矢量类部分认真输入电脑几遍,并好好体会了它的实现方法,同时试做了几个常见的动画,等一下我会详细介绍,我会把我输的书本的部分代码贴出来,供共同研究,由于我也是新手,有许多可能是自以为是的地方,希望读者谅解,可别扔东西哦。
正文
读者可以先看第一个例子:www.flash8.net/fla/4822.shtml,怎样,还是比较逼真吧。让我们先看一下它的代码:
Vector=function(x,y,z){
this.x=x;
this.y=y;
this.z=z;
};
//构造一个矢量类Vector,它包含3个属性x、y、z
Vector.prototype.rotateXYZ=function(a,b,c){
varsa=Math.sin(a*Math.PI/180),ca=Math.cos(a*Math.PI/180);
varsb=Math.sin(b*Math.PI/180),cb=Math.cos(b*Math.PI/180);
varsc=Math.sin(c*Math.PI/180),cc=Math.cos(c*Math.PI/180);
with(this){
//绕x轴
varry=y*ca-z*sa;
varrz=y*sa+z*ca;
//绕y轴
varrx=rz*sb+x*cb;
z=rz*cb-x*sb;
//绕z轴
x=rx*cc-ry*sc;
y=rx*sc+ry*cc;
}
};
/*类Vector的方法,该方法是使矢量绕x、y、z轴分别以a、b、c的
角度增量旋转,作3D动画必需的方法,可以参考数学矢量的旋转*/
Vector.prototype.getSee=function(ViewDist){
if(ViewDist==undefined){
ViewDist=300;
}
returnViewDist/(ViewDist+this.z);
};
//获得矢量透视度的方法,返回值是一个随z的增大而减小的值,可参看透视学
Vector.prototype.cast=function(p){
if(p==undefined){
p=this.getSee;
}
with(this){
returnnewconstructor(x*p,y*p,0);
}
};
//根据透视原理,把矢量投影到x、y平面上,flash没有真正的3D
//以上是现成的,和我无关,也就是说,完成刚才的动画效果,我只需写下面几句代码就可以了
Point=newVector(10,0,100);
//创建一个新对象,用来对“地球”的初始坐标定位
this.createEmptyMovieClip(“mc1”,);
//创建一个空的电影剪辑
mc1.attachMovie(“mc2”,“mc3”,0);
//在空的电影剪辑中插入mc3,也就是“太阳”,深度为2000
onEnterFrame=function(){
mc._x=P.x*2.5;
mc._y=P.y*2.5;
//定位mc(地球)的初始坐标
this.mc.swapDepths(2000-Math.round(Point.z*10));
/*设置mc的深度,看得出,如果“太阳”在原点,从立体坐标看
,z<0在太阳背面,深度应该大于2000,反之小于2000*/
Point.rotateXYZ(0.5,4,0.1);
//让矢量Point绕x、y、z旋转0.5、4、0.1
m=Point.getSee();
//获取Point的透视度m
mc._xscale=mc._yscale=m*40;
//把mc缩放m*40(本例经验值),离读者越远,m越小,mc越小,造成视觉上的立体感
P=Point.cast();
//把Point矢量投影到xy平面,作为下一个时刻mc的坐标
};
大家可别被代码吓坏了,从上面我的解释中可以看出,很多代码是不要自己写的,可以说记住就行了,而自己发挥部分,没有太复杂的算法,如果用常规的方法作上面的效果,我想,三角函数,椭圆的参数方程估计少不了吧。
如何,有点感觉了吗,再看第二例:www.flash8.net/fla/4848.shtml。立体感出来了吧,看看代码先
//构造一个类
Vector=function(x,y,z){
this.x=x;
this.y=y;
this.z=z;
};
//为类创建一个方法,即矢量的旋转方法,可查一下数学哦
Vector.prototype.rotateXYZ=function(a,b,c){
varsa=Math.sin(a*Math.PI/180),ca=Math.cos(a*Math.PI/180);
varsb=Math.sin(b*Math.PI/180),cb=Math.cos(b*Math.PI/180);
varsc=Math.sin(c*Math.PI/180),cc=Math.cos(c*Math.PI/180);
with(this){
//绕x轴
varry=y*ca-z*sa;
varrz=y*sa+z*ca;
//绕y轴
varrx=rz*sb+x*cb;
z=rz*cb-x*sb;
//绕z轴
x=rx*cc-ry*sc;
y=rx*sc+ry*cc;
}
};
//获取透视度,产生立体效果
Vector.prototype.getSee=function(ViewA4ist){
if(ViewA4ist==undefined){
ViewA4ist=300;
}
returnViewA4ist/(ViewA4ist+this.z);
};
//投影到xy坐标平面内,z=0,因为flash没有真正的3d
Vector.prototype.cast=function(p){
if(p==undefined){
p=this.getSee();
}
with(this){
returnnewconstructor(x*p,y*p,0);
}
};
//真正我写代码,是从下面开始的
//初始化边长,和某一个顶点A1的坐标
d=100;
a=-50;
b=-50;
c=-50;
//初始化正方体八个顶点的坐标
A1=newVector(a,b,c);
A2=newVector(a+d,b,c);
A3=newVector(a+d,b+d,c);
A4=newVector(a,b+d,c);
A5=newVector(a,b+d,c+d);
A6=newVector(a+d,b+d,c+d);
A7=newVector(a+d,b,c+d);
A8=newVector(a,b,c+d);
/*定义画正方体的函数,思路就是把正方体的12条边连出来,方法不唯一,我可是在草稿上画了好几次才画好的哦*/
functiondraw(){
clear();
lineStyle(1,100);
moveTo(A1.x,A1.y,A1.z);
lineTo(A2.x,A2.y,A2.z);
lineTo(A3.x,A3.y,A3.z);
lineTo(A4.x,A4.y,A4.z);
lineTo(A5.x,A5.y,A5.z);
lineTo(A8.x,A8.y,A8.z);
lineTo(A7.x,A7.y,A7.z);
lineTo(A6.x,A6.y,A6.z);
lineTo(A3.x,A3.y,A3.z);
moveTo(A1.x,A1.y,A1.z);
lineTo(A4.x,A4.y,A4.z);
moveTo(A1.x,A1.y,A1.z);
lineTo(A8.x,A8.y,A8.z);
moveTo(A7.x,A7.y,A7.z);
lineTo(A2.x,A2.y,A2.z);
moveTo(A5.x,A5.y,A5.z);
lineTo(A6.x,A6.y,A6.z);
}
//随机产生xyz三个方向的旋转角度
e=random(5);
f=random(5);
g=random(5);
/*定义函数,使8个顶点依次按各自的角度旋转后投影作为新的顶点坐标,
调用函数画正方体*/
functionmm(){
for(i=1;i<=9;i++){
this[“A”+i].rotateXYZ(e,f,g);
this[“A”+i].cast();
}
draw();
}
/*先调用一次函数画出一个立方体,由于还没有调用函数mm,即各点都没有旋转,
所以是一个正方形(真正使它旋转,是在按钮里调用了影片剪辑onEnterFrame事件)*/
draw();
(喝杯水先),哈哈,感觉有点强烈吧,同样的工具,在不同的人手里发挥的效应是不一样的,我只是一个新手,做了点东西就是爱丢人现眼,高手别笑我,我只是想抛砖引玉罢了,3D的问题能解决,那二维平面的就没问题了,下面再罗嗦介绍一个二维矢量类的简单应用,
点击这里下载源文件
对高中物理还有映象的闪友可能还记得,这是矢量合成的平行四边行定则嘛,网上早已有人做过了,哈哈,我在这里只是想试一下Vector类的威力罢了(谁丢的香蕉皮?)
看看代码先
_global.Vector=function(x,y){
this.x=x;
this.y=y;
};
Vector.prototype.reset=function(x,y){
this.constructor(x,y);
};
//向量相加
Vector.prototype.Addition=function(v){
with(this){
returnnewconstructor(x+v.x,y+v.y);
}
};
//向量相减
Vector.prototype.Subtraction=function(v){
with(this){
returnnewconstructor(x-v.x,y-v.y);
}
};
//向量角
Vector.prototype.getAngle=function(){
returnMath.atan2(this.y,this.x)*180/Math.PI;
};
//向量长度
Vector.prototype.getLength=function(){
with(this){
returnMath.sqrt(x*x+y*y);
}
};
//以上是RobertPenner先生的东西,下面就要靠自己了
//设置各向量及其夹角的初始值
PointA=newVector(0,0);
F1=newVector(150,10);
F2=newVector(70,80);
F=F1.Addition(F2);
angle1=F1.getAngle();
angle2=F2.getAngle();
angle=F.getAngle();
//设置箭头的方向函数
functionsetarrow(mc,angle,v){
with(mc){
_rotation=angle;
_x=v.x;
_y=v.y;
l=v.getLength();
_xscale=l/5;
_yscale=l/5;
}
}
//调用函数设置箭头方向
setarrow(arrow1,angle1,F1);
setarrow(arrow2,angle2,F2);
setarrow(arrow,angle1,F);
//连线函数
functiononLine(v1,v2){
this.lineStyle(2,100);
this.moveTo(v1.x,v1.y);
this.lineTo(v2.x,v2.y);
}
//绘图函数
functiondraw(){
this.clear();
onLine(PointA,F1);
onLine(PointA,F2);
onLine(PointA,F);
onLine(F,F1);
onLine(F,F2);
}
draw();
//以上初始化,完成了一个定态的平行四边形
this.onMouseMove=function(){
if(a==1&&b==1){
F1.reset(this._xmouse,this._ymouse);
F=F1.Addition(F2);
}elseif(a==2&&b==1){
F2.reset(this._xmouse,this._ymouse);
F=F2.Addition(F1);
}elseif(a==3&&b==1){
F2.reset(this._xmouse,this._ymouse);
F1=F.Subtraction(F2);
}
angle1=F1.getAngle();
angle2=F2.getAngle();
angle=F.getAngle();
setarrow(arrow1,angle1,F1);
setarrow(arrow2,angle2,F2);
setarrow(arrow,angle,F);
//以上是把鼠标的坐标当作一个变量加入,重新初始化各个矢量及其夹角,其中的a在按钮中被赋值
draw();
//调用函数再画一个新的四边形,其中的clear()函数清除了原来的四边形
updateAfterEvent();
};
this.onMouseDown=function(){
b=1;
};
this.onMouseUp=function(){
b=2;
};
代码好象有点长,但仔细观察不难发现,整个代码没有复杂的算法,都是一些简单方法的直接引用。
不知不觉中浪费了读者这么多时间,不好意思,我们不妨回过头看一看,总结一下,不难得出结论,Vector类的方法在一定程度上避免了太多的复杂的数学算法,对于数学功底不是很好的害怕复杂算法的一部分闪友不失为一种好的方法,可以帮你作出漂亮的flash作品。同一效果实现的方法不是唯一的,所以上面的方法不一定是最好的,对于高手来说,他们习惯了的方法也许才是最好的,看闪吧里,卧虎藏龙,许多高手用一般的方法,凭借过硬的基本功和丰富的想象力,作出了一件件漂亮的作品,真是羡煞旁人也。
课程名称:3D MAX动画设计 英语名称:
课程代码: 课程性质:专业必修 学分学时数:4学分 108学时 适用专业:图形图像制作
审核人: 审核日期: 审定人: 审定日期:
一、课程的性质和目的
(一)课程性质
3ds max是当今世界上应用领域最广,使用人数最多的三维动画制作软件,为各行业(建筑表现、场景漫游、影视动画、角色游戏、机械仿真等)提供了一个专业、易掌握和全面地解决方法。3ds max7支持大多数现有的3D软件,并又有大量第三方的内置程序。Discreet开发的character studio是一个为高级角色动画及群组动画提供理想扩展方案的插件。3ds max同时与Discreet的最新3D合成软件combustion完美结合,从而提供了理想的视觉效果。
(二)课程目的
根据课程特点、学生情况、专业特点以及教学大纲的规定,通过学习,让学生掌握3DS MAX建模、贴图、渲染等基本常识,了解相关理论知识和实际应用知识,并应用到实际生活中。了解3DS MAX的操作界面及其相关知识。了解3DS MAX的物体建模等基本常识。了解3DS MAX的材质一般贴图、玻璃、金属材质贴图的做法。了解3DS MAX透明材质贴图、多层材质贴图采用图文并茂的教学方法使其更形象的理解把3DS MAX设计的理论应用到实际生活中去,增加学生的课外知识,扩大学生的视野。
二、教学内容、重(难)点、教学要求及学时分配 第一章:初识3ds max 7(8学时)
1、讲授内容:(1)3ds max7介绍(2)3ds max7的硬件要求(3)3ds max 7 操作界面(4)3ds max7的新增功能
2、教学要求: 了解:3ds max7的概念,三大要素,新增功能
理解:3ds max的工作界面中各个模块的功能和使用方法 掌握:3ds max的工具栏中经常使用的基本工具
3、教学重点:3ds max的工作界面中各个模块的功能和使用方法
4、难点:3ds max的工作界面中各个模块的功能和使用方法
第二章:基础建模(16学时)
1、讲授内容:(1)建模基础
(2)二维基本样条线建模(3)三维基本造型建模(4)创建扩展基本体
2、教学要求:
了解:各种建模方法的特点
理解:“次物体”的概念, 3ds max命令面板中的二维造型的使用方法
掌握:建模过程中经常使用的工具, 熟练二维基本样条线建模、三维基本造型建模
3、教学重点:二维基本样条线建模、三维基本造型建模
4、难点:二维基本样条线建模、三维基本造型建模
第三章:常用修改器(20学时)
1、讲授内容:
(1)认识修改器命令面板(2)常用的编辑修改器
2、教学要求: 了解:修改器命令面板
理解:修改器堆栈、编辑修改器的顺序和修改器堆栈的塌陷
掌握: Bend、Taper、Twist、Skew、Noise、Stretch、XForm等修改器的使用
3、教学重点:
(1)修改器堆栈、编辑修改器的顺序和修改器堆栈的塌陷。
(2)Bend(弯曲)、Taper(渐变)、Twist(扭曲)、Noise(噪声)、Stretch(拉伸)、Squeeze(压榨)、Push(推动)、Relax(松弛)、Ripple(涟漪)、Wave(波浪)、Skew(倾斜)、Slice(切片)、Spherify(球体化)、Affect Region(起伏)、Lattice(网格化)的操作方法。
(3)使用Edit Mesh和Edit Spline修改器,对三维几何体模型和二维图形的次物体进行修改和编辑。
4、教学难点:(1)Bend、Taper、Twist、Skew、Noise、Stretch修改器。(2)Extrude、Lathe、Bevel修改器。
第四章:复合对象(10学时)
1、讲授内容:(1)变形(2)散布(3)一致(4)连接(5)水滴网格(6)ShapeMeyge(7)布尔(8)地形(9)放样
2、教学要求: 了解:复合对象简介
理解:放样物体的五种变形的方法,注意区别和比较使用
掌握:Morph、Boolean和Loft工具来创建复合物体,并创建复合物体进行编辑和修改
3、教学重点:
(1)复合物体的基本概念及其创建方法分类。(2)Morph、Boolean和Loft工具的使用。
4、难点:
Morph、Scatter、Conform、Connect、Shape Merge、Boolean和Terrain 9种复合方法。
第五章:高级建模(20学时)
1、讲授内容:(1)网格建模(2)面片建模(3)多边形建模(4)NURBS建模
2、教学要求:
了解:网格建模、面片建模、多边形建模、NURBS建模的概念 掌握:4种建模的方法
3、教学重点:
网格建模、面片建模、多边形建模、NURBS建模方法
4、难点:
网格建模、面片建模、多边形建模、NURBS建模4种建模方法的应用
第六章:材质与贴图(16学时)
1、讲授内容:(1)材质编辑器(2)材质(3)贴图
2、教学要求:
了解:一些材质的相关概念,熟悉材质编辑器和给物体赋予材质的方法;Checken Bricks、Gradient Swirl、3D map、Compositors其他几种子层贴图类型。
理解:同步材质和异步材质基本概念,熟悉材质/贴图测览器并能从材质库中获取材质;熟练设置材质的基本参数设置,能够制作霓虹、自发光、透明等材质效果。
掌握:基本贴图方法,学会设置内建式和UVW Map贴图贴图坐标使用;Self-Illumination、Opacity、Filter Color、Bump、Relection几种主要的贴图类型。
3、教学重点:
(1)材质、贴图的基本概念及其各自特点。
(2)材质编辑器的组成,对材质进行编辑,将某种材质赋予物体。(3)贴图坐标的概念,贴图参数调整方法,将某种贴图赋予物体。
(4)使用Bitmap、Checker、Gradient、Cellular、Marble、Noise几种类型的贴图。
4、难点:
(1)对材质进行编辑,将某种材质赋予物体。(2)贴图参数调整方法。
(3)Self-Illumination、Opacity、Filter Color、Bump、Relection几种主要的贴图类型。(4)设置内建式和UVW Map贴图贴图坐标使用。
第七章:场景(8学时)
1、讲授内容:(1)设置灯光(2)环境(3)摄像机
2、教学要求:
了解:在场景中建立和设置环境光、泛光灯和目标聚光灯 理解:在场景中建立火焰特效、雾、质量雾和质量光。掌握:建立和使用质量雾和质量光,了解它们的特性。
3、教学重点:
(1)灯光与摄像机的基本概念及其分类。
(2)Target Spot(目标聚光灯)、Free Spot(自由聚光灯)的创建与参数调整。
(3)Target Camera(目标式摄像机)和Free Camera(自由式摄像机)的创建与参数调整。(4)四种大气特效的设置。
4、难点:
(1)Target Spot(目标聚光灯)、Free Spot(自由聚光灯)的创建与参数调整。
(2)Target Camera(目标式摄像机)和Free Camera(自由式摄像机)的创建与参数调整。(3)边界盒的选择。(4)大气特效的参数设置。
第八章:动画(6学时)
1、讲授内容:
(1)动画制作基础理论(2)轨迹视图(3)动画控制器
2、教学要求:
了解:3ds max中的时间设置。
理解:Motion面板,学会使用Motion面板中常用的动画控制器制来制作和调整计算机三维动画。掌握:熟悉轨迹视图与功能曲线建立和调整,能利用轨迹视图来创建和调整计算机三维动画;用轨迹窗和动画控制器制作动画。
3、教学重点:
(1)使用Animation动画按钮建立基本动画。(2)用轨迹窗和动画控制器制作动画。
(3)使用喧染动画及视频合成对动画或图像进行合成处理。
4、难点:
(1)轨迹窗和动画控制器。(2)喧染动画及视频合成。
第九章:粒子系统与空间扭曲(4学时)
1、讲授内容:(1)粒子系统(2)轨迹视图
2、教学要求:
了解:基本空间扭曲的使用,了解它与一般修改器的区别。理解:常用粒子系统的创建。
掌握:高级粒子系统的创建和空间扭曲对粒子系统的影响。
3、教学重点:
(1)基本空间扭曲的使用。(2)常用粒子系统的创建。
4、难点:
⑴常用粒子系统的创建。
三、各教学环节的基本要求
(一)课堂讲授
1、教学方法
(1)课堂讲授:教师充分利用多媒体手段备课,讲授时力争讲清讲透课程的重点和难点,让学生能基本掌握本课程设计基本理论和设计基本技术。
(2)教师演示:教师直接在机房进行设计操作示范,并利用多媒体网络教学软件,实现教师机与学生机同屏显示教学内容,使授课与学生上机练习随机进行,做到了真正的互动式教学。
(3)上机实训:有选择性地布置一些思考题和实训题,强化学生加强课内外上机练习,掌握基本操作技能。
(4)网络辅助教学:利用网络,开设论坛,回答学生提出的问题,学生通过网络提交作业,教师通过网络将批阅后的作业返回给学生。这样不仅使学生对本课程的内容有了更进一步的了解,而且加深了学生对电脑网络知识应用的兴趣。
(5)案例教学:在教案中准备不同的教学案例,将这些案例让学生分析、讨论或课外思考,使学生更多地了解实际,扩大视野。
2、教学手段
利用多媒体教学系统,边讲边演示,使学生即时看到操作效果;利用网络将课堂教学延伸到课外,学生根据需要通过网络学习有关内容。
3、教学辅助资料 三维动画
(二)作业、答疑和质疑
1、作业
本课程以上机实验为主,在每章中穿插写实验报告1~2次,以巩固学生学习成果。期中安排一次复习练习,用来总结、评测这半学期学习的效果,同时加深学生对该课程学习的印象,提高综合动手能力。
2、答疑和质疑
通过学生作业的情况了解学生对知识点的掌握情况,要求把每次作业的程序文本和运行结果存入到本人的用户目录下或其它方式供老师检查。通过学生作业的情况进行讲解和复习巩固所学的知识。
(三)考核方式
考查
四、与其他课程的联系与分工
本课程的预修课程是信息文化基础,Flash动画制作,Photoshop图片处理,CorelDraw图形处理。
五、建议教材及教学参考书
(一)建议教材
《3ds max7动画教程》西安电子科技大学出版社 2005年10月
(二)教学参考书
1. 3D技术以及3D电影的具体涵意
1.1 3D技术的概念
3D为“Three Dimensions”,其中“Dimension”代表维度,“Three Dimensions”一般是指有三种维度。一个物体的三维描述一般包括长、宽、高三方面才可以形成我们所说的“立体”。因而,世间上每个处于三维空间中的立体都包括长、宽、高三种属性。通俗来讲,3D是长宽两个平面物体的对立体。人利用双眼观看物体的时候,由于两只眼睛的距离不同所以看到的物体角度也不同,若将其中的一只眼睛遮挡上能发现看到的物体效果和双眼所看效果有较大的不同,其实双眼看事物能呈现出上下、左右、远近三个维度的感知,从而形成立体的视觉,并将真实空间中的事物全部映射到我们的眼睛里,影像是通过立体形式呈现出来的。
1.2 3D电影的涵义
3D电影与传统电影在技术上有很多不同之处,在拍摄时3D电影便利用光学原理使用了新的拍摄方式。在观看3D电影时,观众需要佩戴专用的立体眼镜,否则由于3D电影的偏振光技术影响,很多画面无法正常观看。佩戴偏振片制作而成的眼镜后,由于光的偏振效果,能够使人所观看到的视觉效果产生立体感。人们将这种能够有身临其境感觉的立体影响电影定义为3D电影。3D电影通过将两个不同的影像相互重合,利用人眼的左右视觉差异和大脑的图像处理能力来呈现立体效果。在3D眼镜通过偏振片,将左眼和右眼接收到的光线进行区分,左眼只能看见拍摄时摄影机从左侧拍摄的画面,同理右眼如是,在图像传递到大脑中后,便会被大脑处理成立体的影像。对于电影创作者来说,3D电影范畴并不仅仅局限在上述内容之中。所有应用3D技术的电影都应该称之为3D电影。譬如玩具总动员这部动画电影在拍摄时便应用了3D电影技术,因此其也是3D电影中的一种。
2. 3D技术在电影制作中的应用范围
2.1剧本讨论
对阿凡达这样的电影来说,在电影开拍之前要进行合理细致的策划工作。需要了解导演的主要创作要求,同时还需要同相关技术人员进行交流与沟通,对其需要的相关设备要有所准备。电影剧本能否最终得以通过,很大程度上取决于相关制作过程中是否能够将导演心中所构想的画面完美地呈现出来,是否能够达到其所希望的画面质量。卡梅隆曾经说过在阿凡达处于构想阶段时,当时的技术是完全不可能实现其构思中的画面的。
2.2概念设计与分镜故事版的制作
概念设计中包括了角色和道具以及二维场景,由此决定电影的整体风格和色调。分镜故事版是通过参考剧本进行的分镜头拍摄,通过二位场景和建筑等等镜头活动来描绘相应的情节。这两个环节的工作能够为后期的3D电影制作提供足够的画面参考。
2.3 3D模型设计
3D模型的设计工作对于3D电影本身非常重要,3D模型是整部3D电影中最重要的画面组成,包括了场景和角色的3D制作。整体过程由技术人员通过相关软件制作而成。
2.4 3D场景建立
在建立3D场景的过程中主要有两种技术方式可以满足相关要求,同时也是最常用的两种方式。第一,利用计算机软件的3D场景建模技术来完成3D场景的制作工作。这种方式有很大的缺点,其一便是工作量巨大,很难在短时间之内完成,对于技术的要求也比较高,整体制作成本有所增大。其二便是利用计算机软件所制作出来的畫面在真实感上会有很大的降低,画面整体质量不高,和真实拍摄的画面相比差距明显。第二,利用3D追踪技术进行拍摄,拍摄时先用摄影机对真实的`场景进行拍摄,之后再将其用计算机进行后期处理,从而还原到计算机建模之中。通过这种模式所构建的3D场景相对于纯计算机软件独立制作而成的场景,在工作量上要相对较少,有利于影片成本的控制工作。同时,由于其拍摄的是真实场景,所以其画面感非常强,真实性更是计算机模拟软件所不能比拟的。同时在拍摄的过程中便可以将3D摄影的技术融入到画面当中,这种拍摄手法对于后期制作有很大的益处,能够为后期3D视觉效果的制作打下基础。
2.5贴图材质与灯光效果制作
灯光效果制作均由灯光师对其进行光处理,通过对材质细致的描摹,以奠定CG场景整体色调,然后借用灯光效果渲染每个镜头。
2.6动画
动画师可以结合具体的剧情需要,分镜头地为观众呈现出故事内容。故事内容的呈现需要借助于动画,动画设定的对象是角色或者其他的活动场景,设定期间可以使用人工关键帧设定,或者动作追捕器设定动画。使用何种设定方案就要基于具体的动作场景,但最终的目的均是让人物的表达更具生动性。如《阿凡达》,卡梅隆导演就是使用先进的技术开展动作捕捉。
3. 3D动画在影视特效中的应用
3.1 3D拍摄技术
3.1.1实景拍摄
为更好地拍摄具有3D视觉效果的真实场景,所有的3D实景拍摄系统都是必备的。卡梅隆导演在进行高难度拍摄的时候,对3D实景操作进行改进,解决原来3D拍摄中由于摄影机笨重所有很难达成高难度拍摄的缺陷。3D实景拍摄是由摄像机和两个高清镜头构成的,使用高清镜头是由于其体积较少,移动方便,且能抓拍不同的角度,摄像机的体积较大,且很笨重,移动不方便,部分角度很难触及到,但是摄像机的平稳性和画面质感是高清摄像头无法达到的,所以就要两者配合,利用各自的优势,灵活地调节摄像机和高清镜头。配合不同数字镜头使用分光滤镜的方式,让所有的景物都能直接进入到镜头中。在折射和反射路径不同的情况下,使用两台摄像机分别进行记录,这就犹如我们的双眼,可以提供不同的视觉将所有的透视信息全部反馈给大脑,从而形成三维视觉。
3.1.2虛拟拍摄系统
虚拟拍摄是在虚拟的CG场景中,利用虚拟摄像机拍摄3D场景,拍摄时先要将场景内的所有的实体场景用摄像机记录下来,通过定位追踪的方式,完成场景搭设后,使用3D模型软件后期制作人物或者辅助场景,然后将计算机内存在的真实场景就会变成虚实结合的场景。在呈现出虚拟场景的时候,要多使用虚拟摄影机,用以变化不同的角度和方向。
3.2 3D影像呈现技术
电影院观看时若能看到真实的3D情景,主要是依靠3D影像进行的技术搭设。其实3D影像中的内容较为繁杂,且使用中有优势更有劣势,所以观影期间需要考虑采用何种方式能达到最好的观影效果。考虑的时候先要从设备条件、3D影片的数据等方面入手。如比较熟悉的《阿凡达》,电影院观影的时候均是使用眼镜式的3D影像进行技术呈现,其中使用的3D影像技术是偏光式的。原因是《阿凡达》拍摄期间所使用的拍摄3D技术均是使用单机双镜头拍摄的,其实两个镜头就与人的双眼有着相似之处。这类的3D拍摄技术能产生的数据类型均是使用专门的眼睛式3D影像技术。但裸眼式3D影像能呈现出的技术就要使用全面的3D数据信息。3D影像呈现技术中,我们能根据所需的技术手段选择需要的设备,可以将其分成两类:第一类是要佩戴立体眼镜的3D影像呈现技术。所有的观众都要佩戴立体眼镜,这种立体眼镜能让人的左眼和右眼看到不同的视觉影像。其实3D影像呈现技术就是在这个原理的前提下开设的;第二类是裸眼式的3D影像呈现技术,该3D影像呈现技术能让观众不需佩戴任何立体眼镜的情况下能获取真实的3D视觉呈现效果。
3.3 3D 视觉效果的后期制作3.3.1单机双镜头
在电影《阿凡达》中,是通过卡梅隆导演研发的单机双镜头进行3D实景拍摄的,在最后形成的画面中是通过3D图像处理后的数据文件,这种处理技术一般在进行后期制作过程中非常便捷。
3.3.2双机双镜头
如果是通过双机双镜头的3D拍摄系统形成的各种文件,是与观众两眼对应的两个同步的图像文件。由于双机双镜头的3D拍摄系统生成视频后,需要进行后期处理,一定要在对软件进行后期制作时将两路视频文件进行同时导入之后,再进行编辑这两路视频文件,其中涉及到剪辑、调色、制作后期效果等。如果制作过程中没有做到全部同步,不但3D视觉效果的呈现大打折扣,2D的视觉质量也会下降。所以视频文件保存的时候均使用2D视频保存方式,故此2D视频的后期很多内容能直接调整和编辑,包括EDIUS、大洋、AfterEffect、premiere等。
4.结束语
近年来随着计算机硬件水平的提高和三维动画软件的普及,三维动画技术除了在影视方面应用越来越广,还在广告、建筑、医疗、教学等领域不断拓展。特别是VR虚拟现实技术的兴起,使三维动画在仿真领域大展身手,使得一些军事国防领域也越来越多地涉及到三维动画技术,可以预想未来的军事训练可以像看一场电影一样轻松容易,而普通的观众走进影院也能通过三维动画仿真感受一场真实感很强的战斗。电影《阿凡达》的战争场面现在还历历在目,这是3D技术给我们带来的视觉享受,如果虚拟现实领域越来越成熟,这部电影将给我们带来不仅仅是视觉的体验,我们也将走进影院感受一场真正的战争。
参考文献
[1]景立辰.试论3D技术在电影制作中的应用——以《阿凡达》为例[D].河北师范大学,2013.
[2]刘姝婧.三维影视特效技术在动画电影产业中的发展历程[D].北京林业大学,2012.
接下来就是满满的理论与实践操作相结合的课程。通常理论课程会很无聊,因为有过很多类似的培训,说实在的真的很无聊。但这次的培训,我只能用“受益匪浅”这个词来形容。培训中,有专门讲授理论的主讲老师,还有专门教你操作的助教老师,一步一步让我们掌握相关理论与技术。
通过这次的培训学习,我们了解到3d打印技术早在19世纪就以被应用,历经几个世纪不断发展他已经逐渐成为一种新型的工业制造工艺,而且还在蓬勃发展。基本掌握了3d扫描技术、3d修模技术和3d打印技术。
【3d动画学习心得体会】推荐阅读:
3D动画设计师工作职责06-02
动画软件学习方法09-30
动画造型设计结课心得10-21
cg动画06-16
动画影评06-30
动画概论重点07-20
动画速写07-25
动画创作教案11-06
动画项目总结11-10
体验动画制作05-25