设为首页收藏本站官方微博

wintermute学习笔记[7]--搭建场景步骤六:自由实体、比例线、修饰区域

[复制链接]
查看: 3284|回复: 2
打印 上一主题 下一主题

wintermute学习笔记[7]--搭建场景步骤六:自由实体、比例线、修饰区域

跳转到指定楼层
楼主
发表于 2010-9-17 21:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

wintermute学习笔记[7]--搭建场景步骤六:自由实体、比例线、修饰区域

再发一篇,争取明天把9个步骤发完。) N( {, N6 Y9 w) J7 V0 P
 ' S$ y8 i& n7 B" h+ D+ N1 u+ X% N
这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。
) r# h& x, m- Q* ?3 G" a, L' d 
" s, Y2 k+ A% {[自由实体]7 A* j9 [) E% o. N% e( ?
   T3 v( w- M: D% i! \8 j! ^
现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。# e! A: Y! s0 Y6 ~- }
 2 Q' E& p( b) t3 m- ^! Y8 n3 A
什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。
+ f% ^- I0 c, O& U" f1 C, l * f! b0 y  `7 R
首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。
$ p9 v: |- o$ M2 x 3 Z- y  E% A- T8 b

9 i( l3 K- z7 e. ~: i, Y返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 
& F! M. V) W1 A5 Y- `' Y: U- E9 I
4 I: q. f2 p. R2 i& a( `7 D

  L3 A' W+ R  w* J + U6 K; s4 @8 M% m/ `8 H# ]0 Q4 }5 K
接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:
4 i" Y+ T& ?% E& f2 W# o* I' \9 }( X% `# W, W/ G

( y; G  W2 k: g# L$ @5 j" N
+ I: W5 `. Z8 y. J8 C4 F0 V0 M& d$ |5 g* e
 
- e. W0 g) R+ w. v保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。
6 g) ?! \; g5 u+ U ) x" N& a1 Q2 I' t
首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 & \" {) U$ ^3 {
8 D8 `) Q. m1 Z+ U2 [5 @* h. b; P9 g) c

" ~% K$ I. H* X% ]: K; R  n  p+ }+ Q1 q8 r# h

1 t6 ^" P8 ?8 H# O* q+ }' H" P8 \- x- V + Y) a' G/ c) p/ u  p
在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件
/ B1 Y$ d0 @2 k  ]! U7 M  i, V8 Y) k

/ X9 `; ~) C! O, M8 _/ }! R
* L' a$ a5 G7 I0 a( V% ^6 n! l! D
9 H* f' \9 R. E0 E$ J3 F6 } / m' s; u! Y. M5 [( Z
接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。) n! ~$ B0 j5 H) q- S

7 l$ l  I" m+ {" h9 ?1 ~" I
1 i; a5 p$ [4 t9 h4 f+ C& @8 h' Y. t& A  z! T! F4 r5 h0 F! K) ?
) S+ @0 k# q7 _
# h( I, C) ~0 r
 
- X8 O4 U. d  Q+ e) k保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。* T" W2 i7 V+ \' s

& R" i+ Z% ~2 o$ h! L) n效果应该如图所示。, q! J! s1 ?7 B# @- }* R4 D9 W

; h2 z9 T% W8 B( E1 c! Y( w5 E3 U2 A# i9 V( `0 o
+ |7 H9 G( n1 i: P/ c: B

) y, _& [# l5 M6 q - D9 c1 ^' h8 g/ m5 i# S7 R, z
最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。
! g. s1 c# f  ] ! [7 a6 ^/ e, o1 b. l$ Q& G
方法见步骤4和5,最后效果如下图:
% `' R" _) ]6 U7 f  N
) A, O* @3 o8 C  z7 b0 B! n. p
/ J( d8 v) e' r
2 H9 [2 a% f8 S% M
0 A5 d4 C6 E% S8 y+ q7 G$ G8 Z
9 l4 j: _$ Y3 S' y2 x# q6 h, N% F& E) L" `! x/ H+ c* M6 z
关于自由实体的部分结束了。
6 S! F4 R& s( z. g( H3 n( F6 I; B9 u7 `+ _
 
5 n1 v% q: L2 I# W8 W1 H[比例线]6 R) T9 X! {8 Y& p
 
+ v7 q  q. Q( B  v现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。
- i. ]3 R6 t# _( X4 _& V 1 o: r, C7 K4 j2 X1 \- o
比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。2 R" N. O- A/ l. r- W

: `- a) X7 a( B4 o5 ?$ a% L
: ^2 i: A' K) M4 L
+ @( A8 i9 F3 X  i( @; m# i, G, }, W) h" }& F5 h1 {% t5 Q$ t
  i7 Y/ f7 }- }8 l9 c/ W8 k% K
点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)
& n2 p# N, H# t- ^
. e8 c* H7 a2 N$ d7 T0 t% v
6 E" ^( k: O- l* y8 \6 j2 H
/ {8 _7 b" o4 N$ x. d 
$ u! k7 T2 y. V7 s: W5 Q' |) w之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。
0 k+ |4 V5 G! R' a2 y' n+ E ' _4 n  L  c' X% v& c; E

  l- ^$ f# |6 |" x( Q. q1 l 5 f) {; j. v3 B
你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。0 \3 z- F+ Y) S5 U- u  u

' c  m/ z) N" K0 M& e. i. O& ]) M& ~/ c9 e- P% k7 K, T1 V

: l  Z: h9 Z3 X8 D/ B3 O5 F, {+ m& J: Y# M
 
5 f3 b% Y' z3 J这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。' M' A5 |( w1 y/ Y' N# U9 h/ o$ B$ l
 
8 m3 h7 C1 h# Z [修饰区域]
$ v6 I6 E7 K. i5 L% z. d/ Q7 B( p 
6 e+ N. @- {0 j5 L( y8 n% h2 s6 \接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。
! t0 x; ]- `- C/ q. l- G3 x6 o9 T 
. T9 t6 v$ @) ~5 P, c. [- {/ K我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。
. N! \4 S, b7 S/ Y6 w% C 6 V( U) N. I) F/ F4 g# e, i* f) P
在layer列表中选择main,并点击下图的按钮添加一个区域。  ?7 `! \  i) j0 j0 Z- A

1 N4 {+ i7 _' l4 B5 E& g4 f
: F. g1 X1 T9 [% `3 E7 H+ p
6 u3 j5 J' \. Y- X) `3 |2 N6 M, R" e* |3 C! Q+ D' [: E+ ~

% Z3 ?2 L8 d- u& N" @; ], p( S将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。
1 A- x. o4 I) d3 |1 [& B, S2 E
! f" U5 I1 A9 ^! ^6 X
+ v' _/ Q( L$ k* u
1 s1 q& I( n0 m9 c# d& Y: { 
) H2 ^! O2 k& y改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。
2 n& _( ~& s" R. _/ _ 
& e- m* d6 ^2 l注意,设定颜色后必须满足以下两个条件才能实现:( q& y9 }8 K; {
1、游戏必须运行在加速模式中,兼容模式下无效
- W  ^; k  M) E2、对象必须将Colorable属性设为真
2 s3 y. J: N+ T% Y" T
) }3 `$ V: \$ U4 Z6 Z3 Q最后将区域移动到合适的位置并调整形状:  s! I3 }5 q3 c/ \
" d# \0 b* X7 Q- ?* Z1 p

8 p4 d- |' u% ], j. e 1 Q1 Z* s1 w8 c  y# ~7 ^% }
3 x* n4 q6 t7 F4 y; y
注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。
2 r! z* [: a; U  Q 1 M- @! w1 U  a1 _8 q
你可以回PM测试一下或使用角色模型看看效果。
# Z% K) T4 E6 p' g
5 ~/ H4 {( ^' ~这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……. S& c& q4 h/ M8 n8 u  {5 g8 T
' b, x) q, W7 D: f$ K! g- r
注意,设定颜色后必须满足以下两个条件才能实现:. a) n0 e5 {+ q
1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?
8 U- y5 \0 S* |, Y. ]- u. ~3 Q" T( ?2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-9-18 09:55 | 只看该作者

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -
& f+ p- ?$ j  |( M7 o) J8 d7 \! g$ R8 G6 L" D1 c
这里忘了说明:8 @3 ^# i$ t: d6 J" e" q  h" ~
1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -9 y/ }4 P. y! T. Z2 v
2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表