冒险解谜游戏中文网 ChinaAVG
标题:
wintermute学习笔记[7]--搭建场景步骤六:自由实体、比例线、修饰区域
[打印本页]
作者:
clockworkman
时间:
2010-9-17 21:17
标题:
wintermute学习笔记[7]--搭建场景步骤六:自由实体、比例线、修饰区域
再发一篇,争取明天把9个步骤发完。
0 A) U N A4 ?+ \2 F
) P) _: l8 h8 v+ V. P: X
这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。
9 s6 p9 R. R/ M' _" ~
" t/ _- V5 K3 `! W5 L0 b
[自由实体]
& n6 [5 g1 s7 b* r# J
2 U1 j7 ]' O# @. f, c8 k
现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。
0 y: P9 V1 O8 u' |2 O# h1 p
+ T0 w! m9 L, p. T
什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。
" C1 C, |) y: L* |
4 h% ~. z# D2 v. X% a4 w1 w
首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。
( |9 L" I/ \- l5 l/ ?7 o
; y: R. X, I/ _) j9 l( t
a( `. g. T4 g
返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。
) \/ _8 f: Q. U: k0 _
! R& {; |' v8 e# g7 a- D! e" p
) S0 @, @( d, \
8 O/ p; q7 M& {$ I, F8 V6 G0 B8 V3 D
p1 s7 h9 k' r2 K
接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:
4 D0 O9 u- P' r( \- ^7 \! R7 {
. [) d+ u. w$ I* o* L
. ?$ |) g$ f, H8 D
3 T$ b, F' x* ~2 N5 K1 P! \% l
x# g3 ~1 d5 J
% p# Z( l- k, g3 x/ Q9 x1 G# a
保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。
8 I3 j/ f# T& w' D8 ]* o3 P0 |1 a( U
# k# n& m, h3 S
首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。
( }. R# [3 t3 ?1 k$ G1 J
: g9 S% r/ t1 l5 o
6 n( g& Q# ?( E3 w, Z. l
5 Q* m+ i1 ~% Q0 _ m- t R
. Y' K; _1 R! s7 I. l: C7 v
& c8 z, P( \6 ]# _' M
在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件
* q: R/ A; K9 P% n, y9 ?
! Z7 O' e: z! G2 l4 b0 _- L
7 j) E& \/ H9 w& r
- w5 P' u6 v) @
5 _8 |, {1 H l4 D
0 _6 J/ Z/ |' a: c
接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。
$ @ J3 e) u; Q: [/ e0 v
% f/ ~& e( t( O4 g8 A
4 O+ Z) {! {6 x6 X+ B' y2 H1 c+ @
0 m5 {. j' }. b+ j$ ~
0 G# F, ~% T5 }% W
' y) C- H/ q6 F( Z7 h% ^
( M* I$ r) ^3 t1 k( L% a
保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。
0 a$ o! i! V" a0 M* Z
5 O$ `" u) Q) p" ?# G) B' W4 c
效果应该如图所示。
6 o5 [2 G0 y+ P2 b+ y6 X2 i
, t3 I" n0 C- w: h7 v2 U4 x4 y
( E, h+ d* z) u; Z9 t
( h# r" T% |( v' Y$ J% ?
. M3 \5 U: d9 w0 s
3 j1 p T& s+ l0 u4 {/ @! F! b6 F; x
最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。
# J7 i, t& g6 I2 \1 `
1 L& ~3 F6 R$ V( E
方法见步骤4和5,最后效果如下图:
1 `! O+ `8 N+ ?- O Z; o
, B7 L+ h' f# S% u. Z; e& y! X
) e K- ?) d5 `
$ r3 A9 X2 s. f% b
( B& H1 T; b* Y
0 I$ b! W: I, l2 ?! \0 u
8 w& E. D- G' {1 q5 V" j& u ~7 \
关于自由实体的部分结束了。
9 a7 W' X; S/ L7 V
' P2 S* }) \+ \' W
2 p- K' E5 t5 i' t+ |% Y
[比例线]
4 Y* O- P6 }4 q( b' K- k7 C4 i
( g. A$ ~% E' S% o9 V" j
现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。
: m: E9 S8 S2 h6 @
& x5 I5 h& G3 h
比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。
5 O! j. p2 h9 N r5 C
' g5 C* \- r" h
( K9 A7 m& o* ~7 l
& _1 n3 N) k" P* m w
: V: K" K( k* E5 I8 w# `: [
8 u2 }8 Y2 g8 H$ t. l
点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)
M; ~) q+ Q+ I$ ?& N
5 |6 m( @7 D! |; [/ B: e
- H! E3 t3 U) `9 W% N
J& q' ?1 `% k- \
) a+ T7 k5 q& G
之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。
# \8 u+ P0 S1 \$ y/ l( l5 j: T! f
: P2 a. Q) a7 a, _/ Y& b
" a* E+ J) w2 V8 B. a2 O+ k# s
3 ]% b, R. i. ?; b; N5 Y0 P
你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。
* g) O. [" k, _. u
1 ?% y+ N- V5 t6 A: y7 ?9 {
: Y) p$ q; V4 c; |
" V$ s6 N+ S. t: l4 V: I' U
# h( `$ [2 A4 S( s' l! ?/ p, @/ b
) p9 Z, c# d7 t& m' W# s, S
这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。
o9 ?! C: c7 z5 d# y+ |
$ L5 u- L/ o3 ?" ]. J B, \
[修饰区域]
/ k' z8 h+ s. k
) d. f. j1 ]5 s6 ^- U/ T. H
接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。
) T* E9 o! Z% C
+ f- m0 B% g: ^9 P' s( N
我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。
0 A( s5 C, N6 W c6 x; e% q& |- D# e4 V
* {4 M5 S9 G7 V- o# d1 S
在layer列表中选择main,并点击下图的按钮添加一个区域。
9 g( E3 L, @9 r5 n
% Z) m' g6 C2 N# G" c1 T1 o
: x1 \/ M% i z' x8 ]/ N; H9 |
% n& _& }: k. V# c5 B( I
1 V B$ s( E! Q% L. S1 Z2 Y
9 Z$ _' Q2 F- ^0 K9 n- g
将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。
3 c- ]+ n* o& e" ?
9 M8 H+ Q+ s$ V9 u8 c+ ~- S
( ~& A( {1 C' W4 U+ U
. Z5 f0 Z8 [0 C; E
6 ^" b* O" t% ` x( a/ }% |. [
改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。
3 k! E* J" ]/ h3 Y0 W
: d. x q4 O) E ]
注意,设定颜色后必须满足以下两个条件才能实现:
. V' K% D# N5 Q3 f5 i
1、游戏必须运行在加速模式中,兼容模式下无效
5 T s% c# Z3 K& D4 d
2、对象必须将Colorable属性设为真
8 ?3 q7 G# W3 V+ e' u1 S$ k
3 p8 J6 X0 Z+ f. X
最后将区域移动到合适的位置并调整形状:
; R3 g1 w) W1 Y% t) q. U
9 h( r& E6 o+ G! v
# u. e" }) g* R# t G4 k1 K$ Z# _- N
" w; t2 ^. J/ N0 i3 D* C
# Y$ p2 H0 f, {& P4 l5 O
注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。
) m7 p% S, t: J' `& }" g1 L5 j$ r w4 d
& n' e# O4 P% i3 D8 ? I
你可以回PM测试一下或使用角色模型看看效果。
9 y* l( M( r, h% y: D) B: e
/ v: c% K( |- t
这一章结束了~
作者:
naptid
时间:
2010-9-17 22:58
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……
! ~ O/ b9 g: [* |: O6 s: K
! R: A) Y* M5 s! T, d, \7 I
注意,设定颜色后必须满足以下两个条件才能实现:
, l3 C ~5 m; _* t1 G
1、游戏必须运行在正常模式中,兼容模式下无效——
正常和兼容模式指的是?
" W# w/ | y6 e% R$ ?
2、对象必须将Colorable属性设为真——
此属性设定的位置?
作者:
clockworkman
时间:
2010-9-18 09:55
标题:
回 1楼(naptid) 的帖子
话说刚才有段时间一直上不了论坛- -
0 X8 m V- ?: x0 m# g
5 `; A& c1 w" Z6 Y& L
这里忘了说明:
' ^0 p$ y% y5 X d
1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -
6 _, F% v" ]7 R8 M8 N
2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2