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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。! D! l3 @" b0 [2 d& }6 i- n
 , @' P6 g6 a; M  p
这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。5 O, h9 O" v, U
 . U4 V" k* H" f- t$ {* i1 `' i
[自由实体]2 A7 {  C7 l! k' ^
   f1 V/ N/ [" Z- W' ^) C1 U0 v0 z
现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。! N1 S2 B  B' X4 m1 e! \& |& H# E
 + M( f3 ]" `: w3 \* w
什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。
$ @' ~, m$ U: Q" X. E9 S 
2 ^+ L. Z/ N2 V* @首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。
- u, u5 @8 s  @: J ) i6 P: D, a; z! N% f

4 P1 y8 _2 |* c% r& w5 p. }返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 
3 W/ [4 K6 R# ]4 }) I' k1 G$ k  g$ v; t. p

2 r% x# Q+ x- Q% e/ R$ x/ [9 e
  Z  U! D( b/ j& q) F# `2 m3 _ ) \) B) Y6 U4 O5 x/ T( t$ N
接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:( ?) P3 I; O: h7 g
% i8 P; e; g% w/ H) |! B

$ G" Z/ p2 k6 _. h
  D" o% A0 ?1 L* C( M' Q3 ~
) c' i9 A; A* F- F ) x. C5 _( E# ~! X0 p6 t
保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。
# @, n1 Y* r, R" T% @! b1 ] 9 T; s4 F5 R# S8 J* G7 _8 g' e1 k
首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 
% S0 g1 I/ D. k4 \* {3 D! F" {) z3 t: T
$ \+ I0 Z3 @: R( ?
. N9 D9 }4 K  }& N3 m8 f
4 i7 m+ J8 d- o/ s" U& u: U" \

4 k2 o4 s2 z" P9 ~$ L' G在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件$ L, _& m) I2 c' w1 @4 N
+ L, Z% S' e1 ?- C. O$ Z9 ^/ e
9 s  I0 I) P( m4 D" L% l

4 C7 _' Z/ G$ \5 @) G4 [6 Z) M
/ D8 ?: s# L8 P * d5 W3 z% A1 b- x* K
接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。
2 @5 S: [+ {3 b7 X# N4 f  x6 y1 ~  ~* w" n# H; m8 v. G

# o; Z' y0 R2 X/ v$ L8 v" N! |# q
. {7 p" p  `  o. t0 I

- K0 @* d3 m" \! A1 l/ x- g 0 L3 G" z8 {/ ?) d$ E+ i% ]3 E
保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。9 ?# q' {& w9 R! F$ c# P

: F, [1 f. T0 b) I' c3 E& }效果应该如图所示。0 S0 M; f0 @/ G6 z8 [, B5 X

) k+ |. J" R3 N; h8 W  ?
6 r! a: l4 Z( |) V. s
5 G" t$ H0 J9 ]3 b+ Z5 {& f" Q9 j& b( i: Y: F. j" b. n* D
 
3 T, d+ b% `& }& P! N最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。
& O  D7 V7 p; t: Y1 R9 P 1 _1 k+ i2 b: g) L  G# Y
方法见步骤4和5,最后效果如下图:) }; X7 l# @; i4 o6 _3 L: b9 C

5 h- G7 e+ A" ?/ C$ e
; [% f, M$ |! T
/ s$ y5 @, c/ }
9 I9 O9 A! d/ z, ~
9 g9 v; w: U0 T1 \, Z5 ?  H
$ L3 m( L3 K9 L& o# M8 w2 j: D关于自由实体的部分结束了。
8 A: g, X5 h: }1 C, u+ a! d  ?: M
9 a9 i2 Q. i0 o0 l4 g* {- E, d ; a. G1 e/ G# F5 j
[比例线]
6 r, \$ ]) f; u 
2 t7 D0 ?% F. w/ D3 Y9 I! M+ I. \现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。
! q" Q, _, u9 ?% e( U( v9 }/ r# V ! z2 r4 \5 g+ P) a# o. O  N( t& w
比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。* }5 F. T( V! q9 O; s+ f; Z9 h

. v% Q: J0 s4 S; Z3 e3 y* q
8 |; Y! K; _5 d  n& O% m: O2 _3 v' W7 @' k9 R) h% W8 P4 y% L# w

3 R9 g3 @" b3 {0 {
$ [# |" J- y( T& X" A2 Z0 Q& M点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)
! @1 W. I. Z% q- N
! o0 H' X! h3 m( E! L, {# j  b# j" x) @7 s# n2 W! R5 x& m
* G# u% D" @  F& c
 : H( V1 m2 N/ n
之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。$ L7 Q8 v3 B9 Z) p% s5 E
 . {( U+ R6 J. }6 F4 W6 f
+ C  i- x" R1 Y
  N  P* b) t" K& d. w: w) ^2 E
你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。3 X& U$ }/ X: F6 o. [( l
! A$ g1 x' q# ]# N8 f
, Z8 F- S' W: n% n

5 N  \$ E! c' ~4 z, [4 V5 V1 W
' E& _& b( }0 @* @$ U3 T 
; O. W5 B2 E: m1 r这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。) z' ^3 w: F+ v( I
 
: r' @' C# m+ u/ a [修饰区域], u, b/ W; g! L7 x3 G* M. y
 ; _1 E7 v. e6 d3 r6 d% R
接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。5 j! X& \% s$ Y
 
% ~7 ?0 F% x5 L; m. Q$ ]我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。/ p; K0 ?! {0 }- S3 P

# |. L" A  q; T0 A) C" }+ W: N在layer列表中选择main,并点击下图的按钮添加一个区域。
! F& k) Y7 T' s
$ ?  ~: n! a& P; y) Y7 _
  G$ }2 }; A$ `* @" Z
0 l/ [( [) P. V2 T
  [) o! |: h  s
! B2 S( W& J8 ?3 p$ k1 {将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。
9 X4 j0 g5 X; m  |( F: d: k" ~5 }  O  Q$ g, c* {

7 j% \& ]9 b6 T* g& b( s/ C4 d4 U/ w3 {3 ?- L' E: C) O
 4 G  a: g. B9 Y( C, U' R0 Q2 [$ s
改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。
# A4 T1 z1 l1 V3 ]$ l 
! L/ K) N" E/ X" G& `注意,设定颜色后必须满足以下两个条件才能实现:7 Y5 T9 m  ~- ^4 x( r5 F. @
1、游戏必须运行在加速模式中,兼容模式下无效! ], J  M0 u3 ~' t
2、对象必须将Colorable属性设为真2 e5 }' K* ?" U8 u# f% O

- D0 V+ e1 x- u最后将区域移动到合适的位置并调整形状:
0 }) d$ \/ l7 N3 n0 d9 E1 j% U) x& F9 ^/ R# F  W

, c& G& c9 u! a) b( q/ k; d 
, ^2 G5 w; V9 _2 p7 s' B$ D! K8 G+ V1 x* V
注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。
+ j7 Y8 I. s9 V& D 
2 ~- i' Y9 c6 O3 G! n1 u你可以回PM测试一下或使用角色模型看看效果。: U, L5 r7 P9 N
8 ~! T. P$ r5 v, e( C
这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……* T( m  j6 ~5 J; ]
, a0 a- \* k$ Q  y9 L0 M9 k$ [3 G
注意,设定颜色后必须满足以下两个条件才能实现:
+ i6 J+ i% Z& h" _% P1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?2 i$ N1 g# s; B8 \
2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -2 X5 q% V9 @/ g: q! e: ~3 V; w
% |( g4 d) ~8 i, L5 w
这里忘了说明:
. V' Z, A6 q9 U8 [+ Y1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -+ q1 y1 Z+ j( u# j" q% t7 o
2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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