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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。8 V" v9 c6 P1 q, I# a7 E
 
5 @8 ~7 J" z" H5 ?9 o1 J8 P; C' U这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。9 @- g; c) ?/ A6 A2 _" ~+ m4 r) W
 1 o$ g0 }. J2 {. A9 P5 ^) G
[自由实体]# ^; b; j, g; O- V; H! n
 
4 d+ ^8 o' S9 ]; _4 R) x% T现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。, v4 b% {* }" k$ \5 n1 V
 0 ^  t% c" _7 _5 Z. W
什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。
! ^  Q9 @9 e& I7 }! k ! v$ \- {7 H5 {1 s
首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。: V0 ?- Y" K. w
 * S% j0 {, G3 Z7 N1 E- i

& B4 L1 X4 m8 y8 b返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 4 e% P# p, |; c5 Z& i9 |" R; f/ Q

+ E) `4 B! X  v0 i6 |3 L  |; U* j1 Z7 H. f% @" d4 v
+ [; i8 O  t3 F# y# \2 X# O! z0 z
: r" \- ?; N) K1 Z8 G
接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:
7 [; j+ y, i2 Y4 Y1 b9 C. ~2 y" Y( E

" O! P6 K; S3 P% M, f1 m7 Y
9 V9 @$ o8 t7 G2 a- k" g% e+ `& O0 r+ r. j4 C: Z
 2 p; Z* h1 L3 k; ^/ v
保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。* ^" B# N9 }% b+ y9 N' `2 }8 n
; Q; D) ^+ v+ ^+ \
首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 
( @  M4 N% N5 T1 i6 h! S8 n# h9 R
! i1 g6 s* E( g3 D) }0 |

1 b7 Z, _6 |; ~0 [3 Y- K) J5 Z+ T6 D& o6 K) ~3 p
/ U- T. l1 l1 b. |, M% f
在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件
. O4 m& V+ I$ x7 A8 y9 ?4 r1 Q
1 A7 Z; p2 W  b3 F  y3 s0 p
# T6 h7 b: Y: l* D, ]; G8 {* B- L7 P- m( T3 z4 q
) Q7 r! @6 S7 N3 j* Z5 B% E  E) z
 
2 B" K6 \  B" O: q* x3 o接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。! ^, I) z, p' N/ F3 ^( r

9 p5 i" m5 O# ]9 @3 K; [) G+ [6 A: E2 B5 K9 H

$ Q& e2 A, M( o' t* a( Q4 m, k9 o- x: T/ S. r
2 S4 S$ w) D2 p9 b- ]$ ?& e; `5 Z
 $ Y. {7 [6 E3 D# P# L
保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。9 U& `4 W. j8 ^2 T! u6 A
9 c2 ~; u5 X8 r4 h, R
效果应该如图所示。- k: a' r4 o3 w! L% [' {

0 H3 G: i+ @1 p: L- c* D% f, k/ A

# l, R! G- M2 u$ R9 S
9 l! s: B3 G4 F: w0 F  b 
* M0 }! V# G5 y! p2 f5 g$ j4 l最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。, n1 O* W( p0 {! e5 w6 I5 @3 c

! R& e& P4 Z. P/ Y/ a& J0 m3 T方法见步骤4和5,最后效果如下图:  T  q+ R9 m, J9 f2 l3 X2 e/ ]& v

9 ]) {) ~3 ?/ S8 V1 r. L3 f4 Y. V7 o/ P- ]
) E/ t6 X# v; ^- f$ }

0 k% N4 r3 S6 X# t. J$ a  z2 ^0 _2 |4 x. X
: m& e- v" L# m' ?5 O
关于自由实体的部分结束了。
- l. b1 u2 n7 m. Q$ ^5 M9 n
. h' P( X7 n% m0 M) M / A6 B% ~. `/ B: d* O# s* X2 [+ _
[比例线]
' L) b8 X' ]# v 6 C0 c  A1 F& N+ U
现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。! Z, J9 k( `0 X7 _7 Z" s& O6 g8 o

' O0 I* A9 v$ P5 }7 \) B, S& h比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。
. C" O* A2 K. h5 n& I9 C
( F1 Q* ~, k( C6 W# U
( ]# |$ F; c4 {* W+ U4 P/ y' P; R! \/ a- R7 H
" e$ X0 J, v" h8 q
0 d* P4 C, z3 R
点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)& {! o: A5 K3 v+ D# M: e: ~
: s1 H7 h& U% ]+ B) B2 n
- q- `+ n0 |5 b$ _; g' N

: U: g; J4 I& _, ]7 A; l 6 v0 \  J# C) O' t
之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。
$ d8 ]% g3 O  g2 L5 |+ K, v$ P% v# p 9 o7 e5 X0 E' o' p- \

5 e8 t( `% m" K( y
1 r! v7 i8 m1 ~你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。
) m3 t6 J& x: ?+ r1 z/ {' ]. T  m1 ^  |; G6 x( d- S% P: _
; K7 V" X8 v$ x: r

% D2 N9 \. u( n$ |$ G7 E$ N; x4 M+ K
 
& [$ n; R& {- W$ }7 S$ W  P: H% W这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。* N! n  B( k5 n4 G4 X5 v
 ! }& K0 [. v9 \6 q1 D
 [修饰区域]1 a$ w: T) Z/ Z+ M
 6 R" ^9 r! I8 X3 y1 h
接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。
) ^4 v& R7 ?; {" z9 t  A 
0 s, X- U8 l. N5 [7 p我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。' \0 G( `) q% E, a" H7 q8 u
5 m) B" u0 j& z* C& V
在layer列表中选择main,并点击下图的按钮添加一个区域。" j+ n) o& \- S" v( p# R
; m6 g3 o4 k/ R  _# U( U

" B4 o3 P. S5 g0 K
6 P" m3 Y+ L  _# v' ^
/ a5 R4 e! D3 V: n6 a
  N4 ^, ~8 E5 \) ^  f% P将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。7 z: {* P2 W! z2 ~
/ Z5 N8 V/ u. i5 `) U

; X/ P8 ?3 R# y4 K9 G& |$ H/ ]  \6 B3 c% _4 w9 j6 P8 \; V
 
( t; ^$ H. O% t5 B% y, D$ F/ h改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。  A$ @% j! k- _( n( r, a
 
; V, J  x# o2 S' X6 N7 W注意,设定颜色后必须满足以下两个条件才能实现:
3 m9 J2 U" O1 i% w% r1、游戏必须运行在加速模式中,兼容模式下无效
& |0 |; b9 S1 F2 C. Z+ `2、对象必须将Colorable属性设为真/ ~! f5 D. R! O+ A" h" e+ I
) r+ l1 d6 B9 A$ }" J
最后将区域移动到合适的位置并调整形状:
7 x* N/ b: h! o5 z; {
0 {: H' ?9 Q1 |. M* g' R0 n4 L' @# z% n
 
. L" w1 `; J. R
! S: d+ d' W/ z注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。
" Q$ ]6 G" ^, C) ?6 Y7 x , c. s* M9 f1 [6 l' n
你可以回PM测试一下或使用角色模型看看效果。- o' ?1 A) y+ t7 R* e
, @8 X( v+ F2 U$ ^0 D
这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……7 W& U7 B; [$ E' O' d

. H( p( h# R% ?+ @4 n8 o; a注意,设定颜色后必须满足以下两个条件才能实现:4 Z! Y4 x; T# |$ u
1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?8 y3 H' z9 `- B; ^3 c. _
2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -/ I' t7 b2 p! f/ f. f  d$ t3 T8 D

" \( P1 C+ S; T% w# E这里忘了说明:
9 \& H, i" s' y; {" f8 Q# [. U1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -
2 Z+ D% p  ^; G2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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