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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。7 U1 ?% [$ }2 E: b9 T5 e+ ?; Q
 * B5 D( W( h+ W  V5 a& f
这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。
8 f% y1 t. L% g # ~' I- g% g) b2 Q, T1 G- H
[自由实体]5 U! I. h- E% [# W/ f3 D; g. b
 
8 N1 v" m, W, C9 ?现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。8 `- f/ u: g& t9 h9 C1 D
 ; b8 z. z7 T% ^
什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。
4 G: d& W/ H7 Y" l5 Q( J 
5 y0 t/ }, K8 Y, [首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。
0 u9 W: \" B9 `3 X3 Z8 X4 b 
7 l' E' p+ h; y: H8 D+ m+ O
* }. o& P; F2 o; B返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 
+ k" ~+ D( |- u: L. Y2 Q
- p) n& I1 X* |* ?. H# n# k0 {( n
  q1 t; r2 [9 u
; }$ g* M3 c  X$ m7 A* l
/ l6 ]! c$ a* x3 i( U& R" |/ C接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:
4 R7 S7 |5 }% q8 w# n, e7 _/ i. t9 E2 q
* h! o6 X- S8 K( H5 q: I7 Y

0 D, }) _2 T2 P, S6 Z1 s% x7 A+ g, C" S
 
8 u# B4 W* E# [7 A保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。
2 `+ n2 O2 v3 q0 K/ _2 f
" I) ]9 a( f9 a$ e首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 ; ]/ c, S) K3 ]; L
9 m  B, K" _2 U! a9 C

$ G$ [# }0 E  ~* y& {  v, A" U+ H& Y2 b0 `

& P4 B+ c$ a" p& N  ^" o+ @ : `9 U2 _& ^( |1 b* i5 w
在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件8 }& I6 x. C% y" `" }

' K% O  f& I. D, r
! G( y# D! }9 P+ R
. [$ N& ^0 z1 ^6 g" T/ N7 H0 v
+ U( a5 W1 ^$ n. D- `4 S8 g+ l 
7 I5 a0 T- ~2 c9 e6 ], ^* ]接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。
+ h: h9 C& a) z2 ]$ }1 T. E: C' o* S- A% z8 ?
' ?1 k! ?* f% r4 P, U) i
7 [% h; h2 c# B# n! ^5 a  C
. |3 a3 V  g* I- \; X: ^

" B% h, S  W3 J* r* e$ j$ } . d& E: T3 X- n: A2 h8 ~: ^2 ?
保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。. m4 N3 a/ s7 [! {
6 n0 L5 p5 q, H0 i4 G6 ]$ U5 E
效果应该如图所示。
8 s# X( w9 q/ y7 i% w* j6 B, p4 ^, G" D$ h: W2 F+ r5 ^1 Q
1 |# a  F2 |2 g0 ^/ K; y5 x

4 r& d- `  n  W+ Q! [5 b6 Z+ @4 m7 L: `% v' I8 g
 2 a+ o- z3 G/ n0 f' L! a
最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。
. m) l) S) H+ B5 V$ M . [( ^: Q; X* W
方法见步骤4和5,最后效果如下图:+ t) I$ F- w& d$ n5 w
% u+ g' J: G4 Q) R' X7 K7 A+ O& g
. n' D8 w- x7 y

2 w  [  ]& q  c# N* {' n6 T$ S
) ^, O& U, `% h
4 d: ~7 P" @0 z3 p( s7 U% P0 M: f% |  H  P
关于自由实体的部分结束了。
' F: }" f+ G0 x: e9 q3 Y- J5 m$ L2 Y8 p# S! _  D  U, ~/ ^2 o7 A
 
& {" b3 b* ]9 E8 Q7 S- J[比例线]
6 h, k' ~2 L  P0 D. s! `7 ` 2 L* E( j. d6 g
现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。  U" \+ [* i' w1 d9 b" T3 R/ r" r

, ?( k/ l& L9 ?2 S9 U6 E比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。
0 ^. T5 L, V3 Y! c4 |4 C' Q& u
. j9 h+ [6 A* g5 W/ ]
; R8 u1 U0 J; V; K2 K
/ ?; W6 b5 p) `! \8 v4 r8 A. Q; W$ Q( h

0 ]8 T8 K2 I- ]$ V1 D点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)
) N+ S4 w3 o5 ]2 ~4 c4 G7 p* T
- c9 E$ z9 k" h1 K1 _& ^, d5 p( H5 C6 p
8 P; K: D4 p' f( x9 K
 & V" L. k0 V2 }  a4 Z
之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。
6 D0 Y. S6 X: ]- j' _4 o6 i 
" D- q* _9 q1 Z% ]6 M9 g1 p. z7 V: k2 j6 V; h: J6 n

* x+ G$ \& C9 S' n5 o你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。
( m3 l, p1 w3 b' z1 q
# e7 {/ |3 D& g
5 P# }6 M- A; W/ h& y, C, d, s) u- f* W- X% y: |6 L

7 \# X  d2 G& B; q- ~- D 
3 J! g$ ~5 o2 R( K" \: v这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。
. K) {) t" C. N; Z1 V( E . x" `  z& k- [4 u
 [修饰区域]
9 c7 _4 W( D3 U6 \& y% q5 C3 a2 M 
3 [( I8 q3 K: G接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。$ z1 H6 t! B/ o# j3 ^4 o
 
2 D9 A: ~4 ^5 y+ T) {我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。9 e% q4 s; U: X1 X
) m: F6 E$ U7 |) l' B
在layer列表中选择main,并点击下图的按钮添加一个区域。  i# l$ Z" r8 t1 L: M5 d

# l! n+ R/ R5 O/ C5 g% y; w
4 Q* c4 v. r; X7 j' I% d, D8 [
$ A9 U  r0 H% [7 S
  K+ y! W# r1 P/ l9 C( {# G 3 f! o4 |, W+ m6 x0 l1 M  m! I, J
将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。5 }. C$ f6 K7 W7 K. P7 Q1 h
, G* i" ^6 F& F0 w4 w! F2 }$ Z
7 Z( `$ {0 `6 n! _" S% _7 n
# \7 l9 k$ j3 x, z7 V
 . R! X8 C, b( _
改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。
2 g" k  F. d: B6 h/ d; { 6 s$ X7 P$ y: f( h, l$ v* Q
注意,设定颜色后必须满足以下两个条件才能实现:
' N3 }) R% S; g& @/ F1、游戏必须运行在加速模式中,兼容模式下无效. n9 b# G5 c" a; F# `
2、对象必须将Colorable属性设为真" \" L" G( f# e7 s; w2 L0 q

6 Q; V  k' t3 g. k最后将区域移动到合适的位置并调整形状:9 K" m/ k7 Z5 c9 }* @+ |) w! V

8 m2 y' }  H% ~5 q) s5 @
1 I  d+ R- G! }3 w8 r- J7 f! I) N ( K/ y8 v4 U1 v/ m5 V
1 P4 D4 W  k8 j8 B3 v
注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。3 \5 Z7 k, h: v. J+ D! T7 l+ K
 # b: B9 _$ n0 f$ Y% @
你可以回PM测试一下或使用角色模型看看效果。( `2 b$ r5 W. I
' I/ P- w! I* r  y1 o% w/ d
这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……# n( z1 Y2 ^+ ?; G! a% z) z
! P+ w8 R1 A$ V+ j, D
注意,设定颜色后必须满足以下两个条件才能实现:
! W! x, Y5 k7 t& B% N  ?- O) i1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?* q# P  j! p2 b/ \% O8 m# U
2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -
* X. Y& T2 N1 O: r& W( X! t7 I4 t/ }+ W4 S3 d- [2 ]$ [
这里忘了说明:  g+ [: U. N5 m
1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -* b* e' S* J, o
2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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