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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。
) h+ o7 z; o* E$ q/ J 
! j% |/ T4 y" u9 z这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。
9 y6 O; w% K/ v* b / a' M  _* K0 ]) ~! [8 m
[自由实体], _/ L) w$ x$ x: v6 B; _: m
 6 x/ a7 x: B* D' D- b# b2 ^
现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。
" k8 h: s  z* g* m& d1 g % S5 W* O" h$ m* h; L' `/ e
什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。( u& E# W/ Q, A; W0 j
 8 x7 r/ g, K7 Z; b& O) ]
首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。  R$ G( q7 |7 B4 |1 ]( O
 / n2 ^' u7 t6 s4 X2 q
1 N: I) `: H- X
返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 
" J1 ~0 i6 V9 o# y9 @0 ^- q$ B1 |) _( w" ~4 `" z2 ]
" f: l3 I+ J& m" g2 \5 c
9 i; f$ t- o8 G8 T. Q' |

# ~$ @, E9 s8 r3 [接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:2 X! n  E. R0 E" S$ p
7 m8 Z+ p. _  n/ B

+ G2 L7 x3 H0 r7 I' |2 [7 a. c- X2 K, `5 \9 j8 B$ t" r, ?4 c% b

/ ]5 E  B5 ~# ~) }6 B 
8 O2 G6 h2 T/ I3 V保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。  X) G. l% b6 A% m/ O

" |: X2 q! x5 V$ E' f首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 ! h: Q5 u! F- F1 r

) @9 K! I/ ]8 {) A/ T% j
- S# q2 |/ {1 w& o
5 z1 o0 q! h! d3 |' M) F* S( B- X, H  ~3 x

( Y6 H! T! Z9 n! U2 R9 P$ J在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件
6 t- \8 M; ~; `( \5 X
7 d1 V3 I1 S% u# [& w4 t
' [& F8 D) b) v
( Z8 [+ B* h. L# x* V& {( _2 Q4 n* e) E# y( M6 Q
 8 h! }) a2 L# \! b& i, E
接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。
8 x: N" n- [( L$ L- u+ j8 P' j3 R8 u. d; j( h* Q
6 M0 T% @" t9 K4 A/ v0 T
7 B2 T/ }; h% S7 h+ F" K

' r/ m" I* |" ?5 B0 W0 q; _" h. H) T- I! d+ ?9 k! V7 N* w
 
& i. o6 d* ]1 \6 L* B4 d+ v& L保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。; C- S$ P9 N9 f' D

/ k0 l4 z6 l2 @' y: s* Q8 U效果应该如图所示。
, l9 B6 ~# ]2 P
$ R* h* g' v! ?- u: O; _& t1 W" y
6 p9 f% o1 s+ E5 P& v$ i
. \" d8 `8 E, x  ]% V1 @( c
) w0 v- p/ ?. k% v 8 C0 B+ Y% w) F* F/ w8 i& ^
最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。
% S% T" [- a) C" p, k
/ Q' i( O- z% z2 _' A$ a方法见步骤4和5,最后效果如下图:' r9 c0 Z% X2 T$ m% a! S
% P* U) \) p1 z& _9 q

: V' o/ y7 |6 q7 F" _  b( A) U. B" V  E, s. i

- U- L8 c- t: n+ Q* ^& b6 `$ w8 e. X9 D' Z! m, ]" j
: P% X+ F& ~: ^) e6 o) ~' B0 h! j
关于自由实体的部分结束了。+ t4 |1 n* l4 T& G3 a  w

( Q; O; t* n5 J) E 
7 i* }" R& W. L! ~! m[比例线]
5 L: e9 x/ Y7 ^1 u6 b, I: t- l5 Y 
8 P' c- P6 X, v4 b$ w; N# Y现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。+ e8 R& ^& v' ~. K+ s/ z8 K
0 T+ ~: m: ]4 u
比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。' s# \9 k+ ~3 ^7 c
& D, }( B$ o( ~0 L8 O0 D' h: t
% ^' q3 J, W- S
8 B- N) ~7 H7 |8 S  {

" A/ a* v& B9 l$ w
/ m6 m' |5 G; G# q8 y$ ^点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)
% a5 Y6 t$ g& b- u7 {/ K4 o3 q3 f, J5 i

4 [6 w) J2 {6 F/ s, \5 |3 R( N6 m) D% ]. _7 D: _! ^2 P8 `
 
/ v3 O2 o) M9 H" d7 }  r+ f6 _之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。! U# H' }/ ~- e" Y7 d
 
. d  d! I' b3 ~) T8 H. ~2 L$ P, d! {8 ?  ~/ t, S
0 |' p1 h- l2 w8 m  X
你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。( R6 W1 n4 A5 x" ~/ V

$ ^6 `, {# g4 q; p+ _9 g, b/ k! K+ }2 V

7 S# r$ F& G; [% ~* q) P% T/ S; x+ O5 Y, I$ H
 3 u/ J% }7 B; P! [
这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。
, x( {' O( K' P; C3 z# B 
% |3 c4 m3 P% Y2 A* q/ B2 M2 s3 R [修饰区域]
( x4 Y' O3 H) T6 ?9 P 
" L: c. g* H0 ~% Z, |" {接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。
. i) n" k5 b2 o4 y5 f - T+ C" q5 C& ]. A, ^; m1 R& y3 B4 e  c
我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。
9 o: z% x3 b" y3 i) w4 g4 l . v! D- ?8 _7 n3 {
在layer列表中选择main,并点击下图的按钮添加一个区域。
+ B& |2 J& `$ \4 g+ |* q9 J6 e) N$ t, r# E, l6 ?' C& d

6 C* ]/ I9 _9 ?( M8 ^- c" k9 |. p+ v" c5 f2 H& G" c# j& E

, ^7 t6 M8 w  ^1 ? 5 P; @# j6 z- U4 M; ?
将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。9 `: O* ?1 O5 S" {9 w$ P

. Q) `2 E8 x: j% O/ r! q1 |
+ ^8 x) q; {: c/ H' b# |+ z1 O' U
9 \2 I" ~' y7 M) L, Q) \1 X4 v3 y + Q- {; |+ s$ ^4 p) f4 i, M2 c
改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。7 y1 G" S* O, n" a
 9 b0 }) q' Y, G7 C: |4 q4 n
注意,设定颜色后必须满足以下两个条件才能实现:/ X: a  Y+ Y0 N! s
1、游戏必须运行在加速模式中,兼容模式下无效2 ?, t9 k9 Z3 o1 a
2、对象必须将Colorable属性设为真, w& B8 _  H" S' |) ^
' B8 u- {. M. ^- R" e
最后将区域移动到合适的位置并调整形状:
/ o; r2 z+ V5 n+ D) h# z6 T) P0 Z2 \& |- M# z
1 d5 _0 _( |5 M5 p, e2 @2 v
 ; J" Q8 @( I0 l, P' g7 Q
1 `& z: n  |$ d
注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。3 x' k' ^/ Z9 j
 6 F# b& c3 g  O, e% X% B4 G# e' T
你可以回PM测试一下或使用角色模型看看效果。+ W6 S) |( H) n- w" a: E4 _

9 Z5 u4 G: _8 Q& x1 K这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……' [" V/ u4 n) ?$ i! h. ~- R
+ `2 u* Y: y3 l  W# r1 ]2 Z
注意,设定颜色后必须满足以下两个条件才能实现:
2 f9 ]2 l% R6 T: b; ?7 Q# ]1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?
9 c; [& {' O( K2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -
% _+ f2 V* `) K6 R/ i
( ^. A" e. M. }/ c这里忘了说明:9 b8 ^5 \; L! h1 u
1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -+ u+ S) r3 \5 i7 j* W( R
2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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