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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。
. h' V. s) Z, D5 ~' [% q2 A % d0 k5 n0 d$ G' l( ]3 [% \  ]
这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。1 h* H! I3 }1 C
 ' |' F" [" Z3 O; l1 r
[自由实体]
& p' }3 s2 j6 [ & _( x/ y, C$ }' Z; L3 t/ t
现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。
; d( s% }( m: i3 U' w ; ]0 s; g% j8 V7 o
什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。, K( C1 W: a- Q' R- ?* _4 e# w  w
 2 l) ^1 p3 |8 B4 [  N: @, t1 p
首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。
6 ]+ ^. p1 H, P6 ]& K- ~3 D 9 o9 e2 r4 b; N7 O! }7 C

9 v( X  s, [3 N: ]1 |( R6 \返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 
) }! K- c6 l" B( I5 \
7 k7 C5 e+ x. J; W
8 r9 E) ]" U! ^! H
& s# N5 K% |, @# L; B: R
) k' S% d0 v: L2 V/ t4 s接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:
; I8 O! B. a* P* a, u3 l9 [1 p7 P; X( l* f: `8 w1 z  ]
! C, M5 h, S6 f6 q. z* j1 D

8 @* a  z% w8 g' N1 E  c2 {* a$ C2 k
 
  Z. A$ Y  W( d  x" ^保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。
! E" b! j( d  C5 e( f2 D# O9 P
/ A, ]4 |" A+ {$ _9 b" N& G! c首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 3 W# s- P! V& m; G6 p

" H* l' x' ~, e& q) D& ^! V
4 g! j  S2 G" M+ d9 f3 Y, n9 K2 |$ _! h7 ^
# X1 a# [0 U; }5 R! u( w% _
  H# R" L/ z, k* b' s/ D
在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件
$ y$ d9 c! S: O4 w* {
) O' @# _1 @9 D- e3 j* y' M& G2 ]
5 m+ [  j$ f/ E, t$ a; ?/ u: m( `! {5 b5 ^1 Q

" ^9 s5 y' T6 E! \ 
1 C2 r% p4 B9 T, n  ~接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。
7 X, Y& x/ g; v& ]6 R8 p6 a; T4 E: @. ~
. Q8 I, v, r" u+ M$ O

5 C4 K  I4 b& w" t5 z) \+ F. |! ?- p
3 a5 I9 \: S5 u
 
0 i/ J' Y) O8 f) d; ]5 y保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。" j$ `7 a4 `- U
8 h/ b' C7 S4 w8 p* o9 q
效果应该如图所示。
! e, Z. O( V, A! D( p: W7 E$ {! l. B

" P4 C2 ~- U- |, d) s% U4 _: w% d: ^* S# n

1 }3 X/ s" ?  ]; |" G( t  O, d, ] 
. Q2 ^/ j! k( T2 Z1 }2 ?" ~最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。
) d. w* x6 B& u( k: ~5 E- y/ ` 7 G* r% P- [8 P+ `+ G7 @$ {! P! f
方法见步骤4和5,最后效果如下图:
# n+ n/ M) a( k- s" S
1 G! S0 g' y# j) ?0 _
$ Q# t+ W9 x% C- `* w) [' q+ {- y0 I  S1 B. ~  _
, O1 V5 I" [4 y, b

' t3 D5 _4 F8 j  V9 Q+ O
/ ?# t) H4 W7 z; a关于自由实体的部分结束了。% i4 N2 |7 q3 O; B) V

# ]2 _& r6 b( W$ N 
; M$ X& D6 U# l: h9 ]+ ?( l1 L7 d[比例线]1 x- p( z3 [2 O& g1 @; r9 H
 0 R) @. O; z+ Y9 k8 A
现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。1 {% y) F, R/ }6 p' r1 w

6 j7 B4 F, i' _; M. z比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。/ n/ A4 V( _' U' {$ a8 t- M/ |

6 ?# T- [2 h/ D! Y  e: U
1 j" ?$ \$ Z3 x
5 G1 m5 d0 {1 T: G6 n
3 z; e, t8 i, M) d! N- p 6 s$ o9 O( I% ^+ p
点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)( Z( [4 M$ |  L+ w" w% m1 V

$ o( i; O) X0 [- l1 X: g- a* Y9 Q- S' o$ ^3 O3 N9 @7 A# x' L

% ?& a3 d$ ^% ? 
; i% Z0 f. U0 e, Z% P# P* G之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。
* p6 s- ^: q* x; t0 I8 {: c # f. A: ^3 t8 x2 R

. S. J2 I% X* H# W) ?7 v2 ~ . Y8 B2 b: ?' _3 D/ j
你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。. {! |8 N4 E  Z7 r8 \. }
5 U2 g3 i  s5 t' Y; a" d8 ?# a

7 e% O% ~' n1 n) l3 r' f. U# o, I7 |# C
8 \7 o1 C& r6 F4 R
 
6 R* b0 R: i7 K* S% x2 S7 {这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。5 _. X7 ~3 Y: X9 K+ H- c. a
 
/ K4 g2 ?% y, [- v. d" b [修饰区域]
5 k3 z+ e; x7 h9 h2 ] 
6 r/ V# e  R& u4 k0 T# z4 Y$ o: s$ J接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。; j' m" n$ j$ k1 [- A0 _
 
' F% l, p+ c- \. Y! \我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。7 k0 R# {, i3 \8 a

6 F% e0 J  n& {3 I! a! f在layer列表中选择main,并点击下图的按钮添加一个区域。
1 w! z6 ^: g5 Z1 e* _+ g& i: h( M
6 V3 _1 O! M" }* ]3 P. ~8 |% l. R
/ g: i4 f% \7 I/ t" x& H4 R

$ Q  Y4 p! U9 D( N8 R% K 0 A* M0 c! ^! `; ^2 @/ j. \
将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。6 _$ i0 p4 r" P1 M9 J
6 j+ Y$ J! }( u1 X" w

- F: h9 A7 O! }; e
: w5 C2 L' |3 I 6 H: p8 i9 e- y+ q/ s" [% S
改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。
' }& h6 _5 Y% H7 b; C1 B. W: z 5 [* i: c4 i/ j) W- P
注意,设定颜色后必须满足以下两个条件才能实现:& H% K2 E# D( b* x
1、游戏必须运行在加速模式中,兼容模式下无效
! G, v1 @9 z5 k+ j2、对象必须将Colorable属性设为真: }% e, L; @5 M% v, c' f  [

: y$ g, |$ g  {9 t最后将区域移动到合适的位置并调整形状:" `, S/ ?- J5 G. J* m

: X" X8 W  [. s) g' ?- e5 C0 j! G6 f# @9 t5 j: X* y
 
9 X! ?8 G; t% L0 v3 P0 L2 c2 w3 E
注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。( }! m, x# P  H. l6 o7 h
 9 T* Q6 m. o, h" f9 h0 T
你可以回PM测试一下或使用角色模型看看效果。
& }1 U4 {' u. h* f
2 L  a$ b9 |/ E" H% t. O这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……8 E( n  z- {' ?: w) O) ?

' K3 j; J1 W5 L1 }1 K# G, F注意,设定颜色后必须满足以下两个条件才能实现:
1 D" m* V- p2 p1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?3 R* k) n# q: v' Q/ c9 o$ p1 n- }
2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -
1 Z5 d9 e* B1 q! b
/ m6 B8 p; E, d这里忘了说明:# v) W6 E* C. G0 `% I% ?
1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -
5 Z9 X* d: F+ [2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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