ShockWave 3D 制作系列教程之六

物体的复制与三维字体的建立
通过本例 , 你将掌握:
物体的克隆
从文字演员中建立三维字体
把位图演员作为材质
摄像机的自转
下面就让我来介绍制作的过程:
1、使用3DMAX制作一张茶桌并命名为DESK;建立一个酒瓶并命名为BOTTLE
2、输出W3D文件并导入DIRECTOR
3、在DIRECTOR中建立一个文本演员 , 命名为TXT , 如下图所示
4、按FILE-IMPORT分别导入两个位图演员 , 本例中这两个演员的位置位演员表的4和5号 , 如下图所示
5、在场景中单击右键对W3D添加行为 , 如下图所示

6、行为内容如下:
property pscene,pbottle
on beginsprite me
--定义场景
pscene=member("scene")
--场景归位
pscene.resetworld()
--定义场景中的酒瓶
pbottle=pscene.model("bottle1")
--复制四个酒瓶
repeat with i=2 to 5
--复制酒瓶
newbottle=pbottle.clone("bottle" & i)
--酒瓶定位
newbottle.transform.position.x=pscene.model("bottle" & (i-1)).transform.position.x 15
end repeat
--建立3D字体
txt = member("txt").extrude3d(pscene)
--产生字体模型
newtxt=pscene.newmodel("3dext", txt)
--3D字体高度
newtxt.resource.tunneldepth = 3
--导角类型
newtxt.resource.beveltype = #miter
--导角参数
newtxt.resource.beveldepth = 0.2
--从演员表中新建两个材质
normalmap=pscene.newtexture("normalmap",#fromCastMember,member(4,1))
reflectmap=pscene.newtexture("reflectmap",#fromCastMember,member(5,1))
--对字体贴材质一
newtxt.shader.texturelist[1]=normalmap
--贴图方式为圆柱
newtxt.shader.texturemodelist[1] = #wrapcylindrical
--对字体贴材质二
newtxt.shader.texturelist[2]=reflectmap
--贴图类型为反射贴图
newtxt.shader.texturemodelist[2] = #reflection
--以混合方式贴图
newtxt.shader.blendfunctionlist[2] = #blend
--字体透明度为80%
newtxt.shader.blend=80
--把字体的X轴旋转90度
newtxt.transform.rotation=vector(90,0,0)
--字体定位
newtxt.transform.position=vector(-16,3,27)
end
on exitframe me
--摄像机以瓶子3为中心旋转
pscene.camera[1].rotate(vector(0,0,1),pscene.model("bottle3"))
end

    推荐阅读