Director3D基础.pdf
《Director3D基础.pdf》由会员分享,可在线阅读,更多相关《Director3D基础.pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Director 3D基础(一)本教程的例子是用Macromedia 的教程例子。教程假定大家已是熟悉Director 基本功能与操作,并能完成简单的工作了的。相关附件一、使用 3D 演员3D 演员有多种层次的属性。一个3D 演员包含一个完整的3D 空间,叫 3D世界。一个 3D 世界可以有多个 3D model(模型),例如,一个 3D 演员可以包括一个图球与一个正方体等等。每一个 3D model(模型)就类似于一个 Director Sprite,都有它们的一系列属性,如:大小、颜色、阴影等。Director 提供两种方法去查看它们的属性:Shockwave 3D 窗口与 Lingo 程
2、序语言。二、导入 3D 演员当你在 3ds max 或其它建三维模型程序中建立了3D 模型,并把它们输出成为“.w3d”格式后,你就可以把它导入Director 中使用了。打开本教程附件,你会找到“3D Tutor for Dir User Start.dir”与“Orb.W3D”。1.打开“3D Tutor for Dir User Start.dir”影片。可以看到演员表中已有两个演员。2.用外部链接文件方式导入“Orb.W3D”。3.导入后可以见到演员表中多了个名字为“Ord”的演员。4.保存你的影片。三、使用 Shockwave 3D窗口在演员表中双击“Orb”演员,就会打开Shock
3、wave 3D 窗口来查看“Orb”演员。见到打开的 Shockwave 3D 窗口中有一个圆球,球上环绕着“macromedia”字样。下面介绍一下打开的Shockwave 3D 窗口,窗口中有一些工具是可以修改3D 世界的 camera(摄像机,可以理解为观察整个3D 世界的窗口或视角、角度等什么的)位置的。可以用三种不同的方式来移动camera(摄像机):平移(panning)、旋转(rotating)、移远移近(dollying)。1.为了移动 camera(摄像机)可以先按下这个按钮,然后再在 Shockwave 3D 窗口中按住鼠标左键不放来拖动一下,效果是看到球的位置移动了。2.
4、要旋转球,从而从不同角度来看它,按下这个按钮,再在 Shockwave 3D窗口中按住鼠标左键不放来拖动一下。3.这两个按钮是当你在使用上面的旋转按钮时配合来用的。是决定Y 轴或Z 轴哪个是上面的轴的。4.为了移近与移远球,可以先按下这个按钮,然后再在Shockwave 3D 窗口中按住鼠标左键不放来拖动一下,效果是看到球变大了(近了)或变小了(远了)。5.当你做了各种操作(放大缩小、平移、旋转)之后,要恢复原来的样子,就要按这个按钮了。6.而当你做了各种操作(放大缩小、平移、旋转)之后,觉得很满意了,想把这时的状态保存下来,就要按这个按钮。四、运用 Lingo 进行更多的控制正如你所看到的,
5、Shockwave 3D 窗口可以很好地观察3D 演员,也可以很方便地移动 3D 世界的基本的 camera(摄像机)。然而,当你需要控制3D 演员的更多属性,你就要使用Lingo 语言了。五、做一个 3D 角色1.重置你的播放头,使它回到第一帧。2.打开演员表。3.拖动“Orb”3D 演员到舞台左下角。4.打开分镜表,这时你可以看到在通道1 中的第 1 帧到第 28 帧有了“Orb”角色。六、添加一个你自己的按钮1.重置你的播放头,使它回到第一帧。2.打开工具面板。3.按下工具面板中的按钮工具,如图。4.在舞台右下角按下鼠标左键不放,拖出一个矩形的方框,记得这个方框的大小就是你想做的按钮的大
6、小。当你放开鼠左键时,矩形方框中就出现一个文本插入点在闪,这时,按钮处于编辑状态,等待输入按钮名字。5.输入以下字样:Camera X+10 6.在按钮外面按下鼠标左键,退出按钮的编辑状态。七、为按钮加上程序现在你可以为按钮加上Lingo 程序以控制 3D 演员的 camera(摄像机)了。1.打开演员表,你会看到多了一个按钮演员。2.选中这个按钮演员,在演员表中的名称方格中为它输入名字:CameraX+10。3.打开分镜表,点击选中通道2 中的整段按钮演员。4.并在它上面单击鼠标右键,在弹出的菜单中,选取“Script,”,打开 Script窗口。5.不要移动 Script 窗口中的插入点,
7、直接输入以下Lingo 程序:sprite(1).camera.translate(10,0,0)在这个程序中,事件名称是:on mouseUp。意思是当你在这个按钮上按下鼠标左键时,就会执行上面这句程序。这句程序是用了点句式的格式的。点句式相对于英语来说是倒装格式的。在英语中这句程序听起来应是:Translate the camera of sprite 1.意思是改变角色 1 的摄像机。sprite(1)是指分镜表中通道1中的角色,在这里就是“Orb”3D 角色。sprite(1).camera是指分镜表中通道1中的角色的摄像机。Translate 在这儿的作用是移动摄像机于某一固定的数值
8、。在这句中指定的数值是(10,0,0),意思是指沿 X 轴移动 10 个像素,沿 Y 轴与 Z 轴移动 0 个像素,三个数字分别代表在三个轴上的改变量。6.关闭 Script 窗口,运行影片。7.按一下 CameraX+10 按钮,看看屏幕上起了什么变化(报像机往右移了,但实际上看到的效果却是球住左移了,仔细想想,没矛盾的)?注意,不要按太多次按钮,否则会把球移到看不见的地方去的。下一步,可以再加多一个按钮,以使球移回原位了。八、使摄像机回到原位(即使球住右移)为了使摄像机回到原位,可以再增加一个类似的带程序的按扭。不过,有点很重要的不同就是必须修改translate 命令指定的数值。1.停止
9、影片,重置你的播放头,使它回到第一帧。2.在工具面板中按一下按钮工具。3.在舞台上刚才那个按钮上拖出一个按钮,输入CameraX-10 字样。4.在演员表中把这个新的按钮命名为CameraX-10。5.在分镜表中右键这个按钮角色(在通道3),在弹出的菜单中,选取“Script,”,打开 Script 窗口。6.在 Script 窗口中输入(此时是on mouseUp 事件):sprite(1).camera.translate(-10,0,0)即沿 X 轴移动-10 像素,Y 轴与 Z 轴移动 0 像素。7.关闭 Script 窗口,保存你的影片。8.重置你的播放头,使它回到第一帧。播放影片,
10、按CameraX-10 按钮,看看摄像机是不是住左移了(实际上是球住右移了)?你可以两个按钮都按按,看看它们是怎么样互相抵消移动的。九、旋转模型(在这里就是球)为了实现旋转这个球,又要新增加一对按钮类似于刚才建立的那一对,分别控制球向两个方向旋转。这时要用的命令是:rotate。1.停止影片,重置你的播放头,使它回到第一帧。2.象上面一样利用工具面板中的按钮工具建一个按钮。3.在按钮上输入 Rotate Y+20。4.在演员表中把这个按钮的名称改成:RotateY+20 5.在分镜表中右键这个按钮角色(在通道4),在弹出的菜单中,选取“Script,”,打开 Script 窗口。6.在 Scr
11、ipt 窗口中输入(此时是on mouseUp 事件):member(3).model(1).rotate(0,20,0)这句程序告诉 Director 旋转演员表中第3 个演员(即“Orb”3D 演员)中的第一个模型(即是球),就是让球绕 Y 轴旋转 20 度。7.关闭 Script 窗口,保存你的影片。8.重置你的播放头,使它回到第一帧。播放影片,按RotateY+20 按钮,看看效果吧。十、添加第二个旋转按钮1.停止影片,重置你的播放头,使它回到第一帧。2.象上面一样利用工具面板中的按钮工具建一个按钮。3.在按钮上输入 Rotate Y-20。4.在演员表中把这个按钮的名称改成:Rota
12、teY-20 5.在分镜表中右键这个按钮角色(在通道5),在弹出的菜单中,选取“Script,”,打开 Script 窗口。6.在 Script 窗口中输入(此时是on mouseUp 事件):member(3).model(1).rotate(0,-20,0)这句程序告诉 Director 旋转演员表中第3 个演员(即“Orb”3D 演员)中的第一个模型(即是球),就是让球绕 Y 轴旋转与上一个按钮控制的方向相反的20 度。7.关闭 Script 窗口,保存你的影片。8.重置你的播放头,使它回到第一帧。播放影片,按RotateY+20 按钮,看看效果吧。十一、为模型加上texture(材质、
13、贴图)这一节要说的是建立一个按钮为模型加上texture(材质、贴图),以更改它的表面外观。1.停止影片,重置你的播放头,使它回到第一帧。2.象上面一样利用工具面板中的按钮工具在四个按钮之上建一个按钮。3.在按钮上输入 Add Texture。4.在演员表中把这个按钮的名称改成:AddTexture 5.在分镜表中右键这个按钮角色(在通道6),在弹出的菜单中,选取“Script,”,打开 Script 窗口。6.在 Script 窗口中输入(此时是on mouseUp 事件):myTexture=member(3).newTexture(red square,#fromCastmember,m
14、ember(1)member(3).model(1).shader.texture=myTexture 第一句程序的意思是在演员表的第3 个演员(“Orb”3D 演员)中用演员表中第一个演员的图案建立一个名字叫做“red square”的新的 texture(材质、贴图),并把它赋给变量myTexture 来记住它。第二句的意思是把“Orb”角色中的模型 1(即球)的 shader(材质球)中的 texture(材质、贴图)属性改变成变量 myTexture 所指定的值。特注:关于 shader:以 3DMax 为外部三维编辑器,director 中的一个 shader就是 max 中的一个材
15、质球,一个shaderlist 就是一个 model 的 shader 如:一张桌子,桌面是一种材质(一个材质球),四个桌腿共用一个材质(另一个材质球),桌面桌腿都是分开的model(共五个),所以导入 director 中,共有两个 shader,五个 shaderlist。摘自 zain 的文章 shockwave3D 制作之随便说 7.关闭 Script 窗口,保存你的影片。8.重置你的播放头,使它回到第一帧。播放影片,按AddTexture 按钮,怎么样,看到球的表面变了吧。如果你按了按钮超过一次,会弹出一个Lingo 出错的提示框。因为第一次按时已经在演员表的第3 个演员(“Orb”
16、3D 演员)中建立了名为“red square”的新的 texture(材质、贴图),当第二次按时,Lingo程序会尝试再建一个一模一样的同名的texture(材质、贴图),这是不允许的。十二、移去 texture(材质、贴图)为了移去 texture(材质、贴图),可以再建一个按钮,并在按钮的程序中用resetWorld()命令实现。这个命令可以移去任何在3D 演员中新建的项目,并返回其最初的状态。例如,上面所做的新的texture(材质、贴图)就可以移去。1.停止影片,重置你的播放头,使它回到第一帧。2.象上面一样利用工具面板中的按钮工具在五个按钮之上建一个按钮。3.在按钮上输入 Rese
17、t World。4.在演员表中把这个按钮的名称改成:ResetWorld 5.在分镜表中右键这个按钮角色(在通道7),在弹出的菜单中,选取“Script,”,打开 Script 窗口。6.在 Script 窗口中输入(此时是on mouseUp 事件):member(Orb).resetWorld()意思是重置 3D 演员“Orb”为初始状态。7.关闭 Script 窗口,保存你的影片。8.重置你的播放头,使它回到第一帧。播放影片,随意按几下旋转或移摄像机的按钮。9.按按钮 ResetWorld。可以看到球又回到原位,且表面外观又复原了,这时你又可以按 AddTexture 按钮而不会引起Li
18、ngo 报错了。十三、用帧程序(或叫帧脚本、帧行为)实现旋转模型当你使用 3D 演员建立了你自己的影片时,有时候会希望你的3D 模型在没人对它操控时也会自动旋转或移动,这时你就可以利用帧程序来实现,下面的例子是现“Orb”演员中的球的自动旋转的。1.打开分镜表。2.双击程序通道(脚本通道)的第28 帧,这时会打开 Script 窗口,显示原来在第 28 帧处的程序:go to the frame 3.把插入点移到“on exitFrame”后,按下回车键,插入点会下移到新的一行。4.在这新的一行输入以下程序:member(Orb).model(1).rotate(0,5,0)这句程序和上面为旋
19、转按钮建立的程序是基本上一样的。但在这儿的作用是:每当播放头插放一次第28 帧时,rotate 命令就使球旋转 5 度。5.关闭程序窗口并播放你的影片,这时你一样可以使用前面建过的按钮。只是旋转按钮的效果就不太一样了,因为,这个球自己在不停地自动转。十四、利用 message窗口进行测试Director 包含了一批重要的命令来控制3D 演员与它们内部的组件。你会发现在自己的程序中使用这些命令前先试验一下这些命令是十分有好处的。Message 窗口在你决定是否在你的影片中使用一个命令时提供了一种简易的方法去测试这个命令。这一段向你展示如何在message 窗口测试 Lingo。你可以只是单单输入
20、一句Lingo 程序,并立即看到运行结果。如果你想查看一个变量或一个属性,可以使用put 命令。这个简单的命令可让Lingo 在 message 窗口显示你的 Lingo 程序的结果。如果你想控制一个演员或角色的外观,你可以在message 窗口输入必要的Lingo 语句并马上看到改变的结果。这种改变是不论影片是不是正在播放都可以进行的。现在,来试试我们已经熟悉了的命令:rotate 命令1.停止影片。2.打开 message 窗口。3.在 message 窗口中输入:member(Orb).model(1).rotate(0,50,0)4.按回车键。5.对于某些类型的演员,例如 3D 演员,
21、当影片不播放时你必须点击舞台上的角色才能让 Lingo 的效果显示出来。这样才能强迫 Director 重新刷新舞台上的内容。因此,请点击舞台上的3D 角色。6.现在再在 message 窗口中输入:member(Orb).model(1).rotate(50,0,0)7.按回车键。不要点击舞台上的3D 角色,再输入命令:updateStage,再按回车键。这个命令也能强迫Director 重新刷新舞台上的内容。这一次,你可以看到球是绕 X 轴旋转的了。现在你明白使用 message 窗口是一个好极了的测试rotate 命令关于绕不同轴转不同数值的角度的方法了。现在,你可以尝试测试一些你还没见
22、过的命令了。十五、在 message窗口查看属性当你不能确定一个演员里有些什么内容时,message 窗口的作用就显得很有用了。原因是你会时常遇到3D 演员中有许多内部内容(组件)的时候。在这里可以使用 message 窗口来查看 3D 模型的 textureList。1.重置播放头,播放影片。2.如果你见到球表面是红色的,按Reset World 按钮。3.在 message 窗口中输入以下语句,并按回车键:put member(Orb).model(1).shader.textureList Director 会马上在 message 窗口显示出 3D 模型的 textureList 中的
23、值:-,你可以看到模型的八个texture 内容都是空的。4.乘着影片还在播放,按一下Add Texture 按钮,球变红了。5.在 message 窗口中把插入点移到第3 步骤中输入的语句后再按回车键。这次显示的 textureList 结果包括了附加在Add Texture 按钮上的程序所建立的red square texture了。-texture(red square),6.又乘着影片还在播放,按一下Reset World 按钮。7.又在 message 窗口中把插入点移到第3 步骤中输入的语句后再按回车键。-,显示的 textureList 结果又已经恢复初始状态的值了。十六、设定灯
24、光(探照灯、照射灯)的颜色现在来尝试调整 3D 世界中的灯光颜色。一个3D 世界可以包含你想加进去的许多灯光。本例中的“Orb”3D 演员包含了三种灯光,你可以查明它们并更改它们的颜色。1.首先,你可以让 Director 显示在“Orb”3D 演员中存在几种灯光。在message 窗口中输入以下语句,并按回车键,会出现结果数字3:put member(Orb).light.count-3 count 属性可以用来检查一个3D 演员中的许多项目内容,包括cameras、models、model resources 和其它别的什么。2.然后,你可以查看“Orb”3D 演员中第 3 种灯光的名字。
25、在message 窗口中输入以下语句,并按回车键,出现了第三种灯光的名字:put member(Orb).light(3).name-Ambient Light3.现在可以使用颜色属性来设置名字叫“Ambient Light”的灯光的颜色了。颜色是可以设成任何RGB色彩的。在这里,试把它设为蓝色。在message 窗口中输入以下语句,并按回车键,由于影片还在播放,你会马上看到球便绿色了,这是因为在蓝色灯光的照射下:member(Orb).light(Ambient Light).color=rgb(0,0,255)4.尝试把灯光改为绿色。在message 窗口中输入以下语句,并按回车键,球变绿
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Director3D 基础
限制150内