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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。- F3 I$ @' P7 ]; o* v% t1 A* y
 * S8 P9 g9 k  U2 Q
这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。% f# G7 R  z2 ^4 E( B& ^1 P
 0 h; W: S0 o. w
[自由实体]
  {' U5 D* V! W* ^$ G1 i2 t' c; h ) E& N. T8 c. _7 t: L3 f- q' Q
现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。& \% ]+ r  y; Y0 O) q: M2 R
 
+ j+ |4 {- s6 X. y2 _, Z什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。! [3 a/ u1 D. ?$ a  d& L' N
 ) \3 Q; B6 n. K
首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。
2 c. b+ s" R1 \2 a4 m+ U5 O ; r/ U5 \1 k( u, J, k) F5 w

6 S# ]! z, {1 R- z5 Y6 g! G返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 
6 G, Y5 \; w( @
$ Y% f8 L& U' W  V. c' ?
2 j/ Z$ o$ C  F9 P
; P! S1 }' i. E% i 6 ]+ i1 C" H! E& n5 c5 R% l
接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:/ V) p: g% P% ~; C
! _1 \! E% D2 ~- H0 M+ f
: ?5 |! _7 H! O$ S( L

+ r/ G2 i  u& ~/ T& ~
( k2 z3 K. `  Z$ i; Y& C 
: [0 g' z! Z- a  j* I5 B保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。
( L. y+ a9 G& z" }/ O, [ : C6 f. z! V" n6 V2 F7 @9 V/ P& [
首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 / Y+ Z. {: v3 D( \: k) v3 s0 y
  \6 T% d# v! s, G0 [

( Y* Q0 C. l' c3 L+ H* v$ v* o/ Q. u0 P1 w1 C1 I1 A* r4 ^3 \; E9 \# O
" D% p- p5 H" A* f  Q
! N) V9 z8 S6 ]
在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件! j3 G4 a$ ]2 a1 a& U# p
+ C' B, k' `% }* R5 g  `

& r4 r9 `! x) W: s6 N, \" [
( P- |/ J; C/ ?& k# ]* u" a" [* Y# g8 _- R0 U- ]# A
 
8 [" z) A. D9 l0 ^6 B3 z6 Z接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。3 e; }+ n2 T# {8 Y

; e" {+ P$ V1 y+ u# t, t8 q. ^
( q- d: M* r2 t6 Y. m
$ H' o5 B- a: f. c4 `7 r8 ~1 y5 j/ \" Q/ Q& g; c- o. h1 O
2 [1 G# V8 i+ A' F
 - j8 ]( ~: h( a# I
保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。( {$ |; y6 {7 x2 ^) P' [# ^
9 h. ]2 J  w$ M2 W# H/ k
效果应该如图所示。" {; ]2 j: D" \9 c

: Y8 k" g3 a9 j! P0 R# d- S! `: f  M/ s" c( u' u: e& L
7 u8 g; e+ @& Z" i# ?5 ?% e
  }6 q) U0 o. P' m- t0 o
 
5 z1 n3 V8 a* i9 s最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。; I( b  v, E6 W& D: v* m9 @
% d2 F* Y3 F& M- ~2 [7 |+ V2 |
方法见步骤4和5,最后效果如下图:
+ M  |: J( ^& \* o  I2 V+ r3 F# @- R0 r& K  X
5 L: S: _8 s7 y# B- P1 i4 ~* }2 F
. e0 V7 _; j5 U$ W  \
5 _3 j) K# a2 N, y: O0 j% r1 M. ^
* D( Y& {! a* Q

( [  S0 o5 ]1 w+ t2 i  j; @4 k关于自由实体的部分结束了。
7 u3 Z7 L" n4 X; v* L* k$ z% {" X4 u
* o6 O9 a& h5 z8 [$ J4 L9 n: [ - G# e& B5 ]( F+ ^5 d4 d3 L
[比例线]" q3 s& D9 n% v! l+ {5 B" _" |0 I
 
/ I8 V8 Q( F* |, `% @  u现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。
7 M$ |! {! x- m( R! @- k) ] 2 i: [  ?* T5 R. {3 g
比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。5 r% a5 ]% a7 D! X+ N9 q5 ]

. C' q, F' i4 y$ _- h- G6 ^+ `3 F0 D3 |" M5 e# ~' n
9 \( v4 J2 c2 ~& G

$ S4 K% X# g  S1 l" F
! k! U" ^1 ?+ z" g8 e; C点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)
9 i, Y5 w' H* B1 y9 k& N
& z. d7 T" k- T) V7 ^# N/ A
3 v( O6 _+ H/ M2 B' a
" Z- }# H0 }9 d 
8 U6 d8 x" g6 i1 f4 Z% a. M' c之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。, V& M& ~6 _" U6 Q3 s5 y
 ! L8 p8 N. i" Q( s, f0 P/ @

; M, s# r4 ^2 Q. D# v  V- H/ J" X/ s
8 ^: L% ?, C' w2 O0 _  M你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。+ i" W9 e: k, Z6 Y& @
* Z; V. E' l$ y' E7 q8 ~
9 l8 X3 M! R9 B& C

9 M' d' S8 X' B+ r7 G, K6 [9 W! E, ?& {9 {8 B/ N; o3 o4 n+ B
 
' ]4 Q1 n1 M2 w; x) C6 V1 S这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。
1 J8 v! G" y4 X2 f 
! o5 u" T0 x' x* Z) q6 Q$ V# P, n [修饰区域]; \/ S; r: C. N) J
 
* z+ b; k2 t7 [$ U) H' \接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。; Z; I' q' e  @8 z" A
 
9 G% r# y$ D& }# W" P# R: D, v" R3 K我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。; d( u# n" t) p% y& n) n" i: i

0 a+ S) ^) P! d' v* e; D% ^: {在layer列表中选择main,并点击下图的按钮添加一个区域。0 J( n! C3 @7 S2 _3 H! b

8 r6 H! L5 N' z7 Q3 R7 I5 ^5 q  g* ~0 F5 r8 E" x: j# W
% @: j$ Q3 }  R$ _7 P

& h; k  a- |6 n+ C 3 W' F8 l: @8 }: _% E' p! W
将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。
7 L6 j, t' s8 @2 t
' [  |( C  T) m" W
# L0 \  `7 a( V" r1 A# I1 F
# v: D! E% a3 _5 w$ t 4 r0 _6 `# y9 f0 C- `
改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。% A9 a% B; w0 i2 ?' n, F. ?
   r& i/ `% f  H( x5 ~, G( m
注意,设定颜色后必须满足以下两个条件才能实现:7 n  X7 O8 K4 c; }1 d* o, y
1、游戏必须运行在加速模式中,兼容模式下无效
' n! W2 |, p4 ]2、对象必须将Colorable属性设为真# W9 Y) k# h. K, Q. q
$ Y1 n  n0 y8 j7 g( K
最后将区域移动到合适的位置并调整形状:! p3 e/ P/ l9 Y0 H% w5 x$ t

4 H) j0 N& p  Q% u" F( j. W9 d; e' I3 O% j8 i$ Q& W' F8 Q
 
3 `+ b( Q' _4 o! F1 U8 P+ T
6 c- o- @, @8 E) l7 a+ H5 j注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。
1 T& t: y- j4 }5 x 
5 z* a3 g/ R% E9 l, g2 C$ L你可以回PM测试一下或使用角色模型看看效果。* |( S2 l( n) b& P* Q6 b
+ ?0 c! I" D: {8 `6 r6 ]) ~- B
这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……
9 u# Q/ d2 Y" n* D" v; E( q+ b7 k* G1 t: u+ y6 }
注意,设定颜色后必须满足以下两个条件才能实现:
7 \% p' C5 o$ y4 ~0 T1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?+ u7 W  y1 J7 h2 H% `0 J9 d3 T
2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -# e0 K  {1 e8 s, a. C

& [6 J! }5 t7 d9 K% ]这里忘了说明:
/ \5 e! f8 b0 ~1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -
+ v, P9 G" o8 x& ]2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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