网络软件系统工具应用软件图形图像多媒体类免费游戏安全相关免费音乐网页素材 电子书籍考试考题建站源码
教育教学多媒体类编程开发操作系统游戏天地娱乐天地简历求职站长专区网页设计安全技术图形图像文学驿站
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网页设计 | 技术开发 | 专栏
当前位置:热点网络学院媒体动画DirectorDirector 3D 基础(之六)
精品推荐
热点TOP10
·Director生成文件减肥技巧
·用Director控制动画GIF
·Director怎样制作自定义光标
·利用director.ini调试应用程序
·director使用mui xtra创建对话框
·director应用技巧
·Director中控制声音音量的几种方法
·DIRECTOR去背技法步步高
·Director 3D 基础(之七)
·Director 3D 基础(之六)
·Director 3D 基础(之五)
·Director 3D 基础(之四)
·Director 3D 基础(之三)
·Director 3D 基础(之二)
·Director 3D 基础(之一)
·Director制作《七巧板》游戏
·【Director教程】lists的使用一则
·【Director教程】属性列表应用一则
·【Director教程】创建随机列表
·【Director教程】解析文本和列表
Director 3D 基础(之六)
日期:2006年10月15日 作者: 查看:[大字体 中字体 小字体]
以下的事件控制显示修饰3D文本的字面。显示字面组合可以包括显示延展文本的前面、背面、字厚度,以及其它面的一些组合效果。举例说明,如果你只是选择显示前面和字厚度,背面就不会在3D文本上显示。

on setDisplayFace
if member(‘‘textSample‘‘).displayFace = [#front] then
member(‘‘textSample‘‘).displayFace = [#tunnel]
setComment

else if member(‘‘textSample‘‘).displayFace = [#tunnel] then
member(‘‘textSample‘‘).displayFace = [#back]
setComment

else if member(‘‘textSample‘‘).displayFace = [#back] then
member(‘‘textSample‘‘).displayFace = [#back, #tunnel]
setComment

else if member(‘‘textSample‘‘).displayFace= [#back, #tunnel] then
member(‘‘textSample‘‘).displayFace = [#front, #tunnel]
setComment

else if member(‘‘textSample‘‘).displayFace=[#front,#tunnel] then
member(‘‘textSample‘‘).displayFace = [#front, #back, #tunnel]
setComment

else if member(‘‘textSample‘‘).displayFace = [#front, #back, #tunnel] then

member(‘‘textSample‘‘).displayFace = [#front]
setComment

end if
end

五、3Dtext2

当你打开并播放3Dtext2样版影片,你可以通过点击舞台左上角的按钮延展文本进3D世界。你可以点击另外两个按钮以应用一个材质球于每个字母。所有这三个按钮都有调用以下事件的行为,你可以在movie script中找到以下事件。
以下代码是一个错误捕捉,如果一个3D文本已经存在于3D世界中就促使这个事件退出。如果模型已经存在,而你试图创建另一个同名的,一个错误信息会出现。

on extrudeTextToWorld
if not(member(‘‘scene‘‘).model(‘‘3dText‘‘).voidP) then exit

prepareShaders事件调用创建所有影片中的材质球事件。PrepareLightAndCamera事件调用设定影片的灯光与摄像机位置的事件。要预备灯光和摄像机位置,你必须先保证你在影片中的文本已经是看得见的。
以下的代码定义延展文本象一个模型资源一样,并把它指派给一个方便使用的变量:
textModelResource = member(‘‘textSample‘‘).extrude3d(member(‘‘scene‘‘))
以下的代码创建一个新的模型,用上了新的textModelResource变量。
nm = member(‘‘scene‘‘).newModel(‘‘3dText‘‘, textModelResource)
这个新的模型延展文字“I』m shocked!”,由于这些文字有11个字母(包括标点符号),所以它有11个材质球――每个字母一个。
以下的脚本循环指派同样的材质球给每一个字母:

repeat with x = 1 to member(‘‘scene‘‘).model(‘‘3dText‘‘).shaderList.count

member(‘‘scene‘‘).model(‘‘3dText‘‘).shaderList[x] = member(‘‘scene‘‘).shader(‘‘shMetal‘‘)

end repeat
end

这些代码为模型创建一个材质球和贴图:

on prepareShaders
member(‘‘scene‘‘).newTexture(‘‘texMetal‘‘, #fromCastMember, member(‘‘metallic‘‘))

member(‘‘scene‘‘).shader(‘‘shMetal‘‘).texture = member(‘‘scene‘‘).texture(‘‘texMetal‘‘)

这些代码为模型创建另一个材质球和贴图。它使用newTexture函数去添加贴图到贴图列表并指派贴图到shLines材质球。

member(‘‘scene‘‘).newTexture(‘‘texLines‘‘, #fromCastMember, member(‘‘lines‘‘)) member(‘‘scene‘‘).newShader(‘‘shLines‘‘, #standard)

member(‘‘scene‘‘).shader(‘‘shLines‘‘).texture = member(‘‘scene‘‘).texture(‘‘texLines‘‘)

end
以下的事件设定演员的directionalPreset , directionalColor , and ambientColor属性。这些是用于修饰“scene”的灯光的。

on prepareLightAndCamera
member(‘‘scene‘‘).directionalPreset = #bottomLeft
member(‘‘scene‘‘).directionalColor = rgb(255, 255, 255)
member(‘‘scene‘‘).ambientColor = rgb(255, 255, 255)

这些代码移动摄像机到新的模型的位置:

member(‘‘scene‘‘).camera[1].transform.position = vector(266, 0, 300)
member(‘‘scene‘‘).camera[1].transform.rotation = vector(0, 0, 0)

end

以下的事件应用shLines材质球于一半的字母。注意到shLines材质球仅仅应用于材质球列表中的奇数条;shMetal材质球将显示于其它字母。这儿利用了mod函数,这儿是用来除以2,得到的余数是1或者0。

on addLinesToHalf
if member(‘‘scene‘‘).model(‘‘3dText‘‘).voidP then exit
repeat with x = 1 to member(‘‘scene‘‘).model(‘‘3dText‘‘).shaderList.count
if x mod 2 = 1 then -- if x is an odd number
member(‘‘scene‘‘).model(‘‘3dText‘‘).shaderList[x] =
member(‘‘scene‘‘).shader(‘‘shLines‘‘)
else
member(‘‘scene‘‘).model(‘‘3dText‘‘).shaderList[x] =
member(‘‘scene‘‘).shader(‘‘shMetal‘‘)
end if

end repeat
end

以下的事件指派shLines材质球于所有的字母:

on addLinesToAll
if member(‘‘scene‘‘).model(‘‘3dText‘‘).voidP then exit
repeat with x = 1 to member(‘‘scene‘‘).model(‘‘3dText‘‘).shaderList.count

member(‘‘scene‘‘).model(‘‘3dText‘‘).shaderList[x] = member(‘‘scene‘‘).shader(‘‘shLines‘‘)

end repeat

end

(出处:http://www.vipcn.com

关于我们 | 帮助(?) | 版权声明 | 友情连接 
Copyright 2005-2005 viphot.com All Rights Reserved.
Powered by:mesky