123 第1页 | 共3 页下一页
返回列表 发新帖
查看: 5259|回复: 27
打印 上一主题 下一主题

[其它] ShockWave 3D(一)

[复制链接]

797

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
5568
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2011-8-5 14:19:24 |只看该作者 |倒序浏览
 首先,创建一个3D成员。最简单的办法就是选择插入->媒体元素->shockwave3D,你就会看到在演员组里出现一个新的成员,将它命名为“Scene”.
  这个成员是一个小的3D地球,现在我们创建一个用于帧脚本中的行为。这个行为首先要作的就是用属性变量pscene关联上那个成员,这很容易实现。3Dlingo经常会建立一些和那些成员模型的某个属性的某个属性关联的联系。这对于用变量来存储这些关联很有帮助,这样会让你的程序短一些,更快一些。
  当你从头创建一个任意的3D场景的时候,你要作什么呢,那就是用resetWorld命令来重置这个地球。其实这在编辑你的场景时候很容易实现,要知道每一次运行程序都要从头开始的。
  以下是这个行为,声明了属性变量pScene,它将和将来出现的球体模型关联。
property pScene, pSphere
on beginSprite me

  -- get the member

  pScene = sprite (me.spriteNum).member

  

  -- reset the world before starting

  pScene.resetWorld ()

    

  在我们创建球体之前,我们先作一个星星的背景。背景是3D成员的一个特殊的属性。它是出现在所有的模型后面的一张静态图片。它会替代3D成员默认的颜色。当你想创建一个星空中旋转的飞船。用这个属性会使你的星空背景更加逼真。

  

  这张图实际上是一张位图。创建背景需要两个步骤,第一,要创建一个名字为“backdrop”的材质。3D成员将其存储为类似材质的形式,这样就可以应用在一个或者所有的模型上。所以,我们要在创建背景之前先创建这个材质。

  

  下一步就是用insertBackdrop命令在场景中放置它。背景是照相机的属性。一个照相机就是观察场景的一个视觉角度。每一个3D成员都有一个默认的照相机。camera 1,这就是我们现在要用到的。我们要在几周之内了解更多关于照相机的知识。

  

  -- 创建星空背景

  pScene.newtexture ("backdrop", #fromCastMember, member ("stars"))

  pScene.camera (1).insertBackdrop (1, pScene.texture ("backdrop"),point (0, 0), 0)

  

  现在我们可以开始创建球体了。记住,在创建任何模型之前先要创建一个源模型。就好像创建一个蓝图似的。一旦你拥有了一个源模型,你就可以用它创建一个或者更多的模型,因此,我们要创建一个球体的源模型。我们把它命名为“SphereResource”,和我们连接它的变量同名,这样我们可以很容易地使用它。以后,通过源模型的名字来指向它也是一种方式。现在,我们创建了sphereResource这个变量,我们就可以用它来指向源模型了。

  

  -- 创建一个球体源模型

  sphereResource = pScene.newModelResource ("SphereResource", #sphere)

  

  源模型的类型不同,它所拥有的属性也不同,一个球体的源模型拥有半径属性,现在,我们将这个属性设成50。

  

  sphereResource.radius = 50

  

  接下来,我们要创建实际的模型了。我们要把它放在场景的中心位置。将其命名为“Sphere”,但是我们将来用变量pSphere来指向这个模型会更容易一些。

  

  -- 创建模型

  pSphere = pScene.newModel ("Sphere", sphereResource)

  

  下面,我们为其关联一个材质。之前,我们的这个球模型只有一个默认的红白相间的材质。为这个模型关联一个材质还真是一个相当麻烦的过程。首先你需要创建一个新的材质,就像刚才我们创建那个星空的材质一样,每一个材质我们都要命名成不同的名字。我们就将这个材质命名为“Texture”。我们从成员“texture”中获得图象。

  

  -- 为球体关联一个材质

  pScene.newtexture ("texture",#fromCastMember, member ("texture"))

  

  当然,你要做的不仅仅是为这个模型关联一个材质。还要必须创建一个叫做阴影(shader)的东西。阴影定义的是模型的哪一侧,那一面要显露出来。我们创建一个标准的阴影,名字叫“shader”。然后,我们要将材质关联到阴影上。

  

  pScene.newshader ("shader", #standard)

  pScene.shader ("shader").texture = pScene.texture ("texture")

  

  为了激活模型的阴影,我们需要将模型的阴影列表中的第一个元素设置成我们刚刚创建的那个阴影。球体模型只拥有一个阴影,它覆盖球体的整个表面。那么材质就会扑满球体的整个表面。

    

  pSphere.shaderList[1] = pScene.shader ("shader")

end
  我们刚才用的材质是一张火星表面的整图。是无缝的。就是说右边界和左边界非常完美的接合。如果不是这样的话,我们就能在球体的材质上看到区分左右部分的那条线了。最后一步,我们让球体转起来。我们可以利用行为中的exitframe句柄来调用球体模型的属性,用rotate命令来让模型围绕y轴每帧转一度。
on exitFrame me

  -- rotate 1 degree per frame

  pSphere.rotate (0, 1, 0)

end
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

315

主题

0

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
10878
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2011-8-8 16:01:26 |只看该作者
很不错的样子!犀利啊
回复

使用道具 举报

1274

主题

1

听众

4万

积分

禁止发言

纳金币
43676
精华
4
板凳
发表于 2011-8-8 16:18:00 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

1010

主题

1

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
31646
精华
1

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2011-8-8 16:19:20 |只看该作者
很实用啊
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2011-8-10 17:01:32 |只看该作者
再次路过……
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2011-8-20 11:29:50 |只看该作者
原帖由  东哥V5  于 2011-08-08 16:19 发表:
很实用啊
-----------------------------------------------------
好用,你就多用点!!!呵呵 !!!
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

7#
发表于 2012-1-20 23:27:45 |只看该作者
今年过年不收礼,收礼只收你短信,祝福不分大小,只要真心我就要。条数越多我越高兴,手机越响我越开心,你可否提前把礼送,等礼等得我好心焦。
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2012-2-3 23:31:42 |只看该作者
我无语!
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

9#
发表于 2012-2-21 23:24:11 |只看该作者
水……生命之源……灌……
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2012-3-12 23:32:49 |只看该作者
有意思!学习了!
回复

使用道具 举报

123 第1页 | 共3 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-9-23 01:22 , Processed in 3.785598 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部