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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。
. J* V' K9 |9 ~3 K$ Q 
  W; `# |7 |% S# l# J这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。) E5 Z9 ~& ^* X4 F" d/ {# O9 I4 B4 }
 : n  [( H' u$ C, _* f  K
[自由实体]
6 x3 c: F" o8 P% u 
+ E8 z& `+ ?4 L: m, E% X, [: m% _现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。! r$ `5 R% d3 M. B$ n! X7 G
 
- l- m, F4 c& S! m$ q什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。
4 a! i7 L7 I+ @& _& B+ A " r0 @2 |2 u1 l
首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。* O' I  O) w2 N& x
 
  v- j* U/ S# h# t1 x1 C; N5 y
1 C8 I% y6 X& z" R  H, g返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 
) C5 {3 R: S0 Y# w8 M
! [8 v3 ?" G( f: H3 e: E7 R  F4 d( G  ]+ l1 C3 ^& E1 `3 @  }
5 Y( ^0 P% k* M* i& }9 _) t

# T: [  ^+ Q0 f$ x: w接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:) `' j9 n5 a( d' r2 C" M+ M
( }  z2 A: A+ D2 X8 G+ Y8 p
! I  }  G- ?5 ^( `! o2 v9 a( h. a

3 `2 ]6 J& S% I! U4 e) X5 r
0 S6 ~8 C- [/ q% G+ ^5 x2 v8 k+ i 
. d+ P# \7 n. [& M; I( n" s6 N2 H保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。, u/ c" |4 ~" B: s
0 q, Q2 ~: g* k) y: v
首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 " J( ]8 ~9 \6 Z5 D9 S7 h8 U
& z" h  x8 b/ Y- `) G: S6 Y( }
  A3 E% Q/ G! N. K  C7 a5 g

6 i7 |! H& ^: f( d3 r" K/ Q. {
8 C6 ]' H& k) Y 8 E5 u0 J9 U1 k. S
在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件
! N2 \/ O' ]) J) E
9 O% m! j8 h3 C: z5 z: @/ E. d4 g% \) b
+ w' _" ]2 Q# K' }$ |
: S; y; q  [/ p. Y; N; A
 , |  n: g1 z; M9 s
接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。1 B  c& \# `+ Q4 S1 Q4 {
7 C% z( W4 ?( {# h$ N

% ?+ i% [) x( A: }/ |1 P
+ n4 l" g$ R5 O( ]; _( d6 Z
% j) ]) E& X5 X  \8 h7 Y  |. W+ O1 t
 ! b( e& f( U7 {" m
保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。7 L" n4 U( a' h4 m; O( u/ Y+ U
/ G+ G$ u4 m2 z5 T( }
效果应该如图所示。
/ D: s* k3 }2 l, f
& u8 g7 N  x. e: K- d1 z, v% v0 K: }" t% B4 {) |
: y1 J2 D* n# \# ]5 r- w2 D3 m
) L. E; |- v, m7 n5 H- P
 
8 C! t% l4 Z3 [9 W& z最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。
6 A! i' @) a3 k5 _. f, }+ Q+ S ' x* G/ p2 L5 j5 K1 a) k
方法见步骤4和5,最后效果如下图:
( h- K' J- J+ x$ S* `
2 l0 O$ \  m/ t- A: `; t; e: G* ~7 N
: K  }5 [& K, n$ B6 W/ [0 i# }

! @- Q* L1 |# E- L& A: I6 G! N# K+ V5 ?* m2 M3 Y7 g+ T
0 ^0 g- T# \" P3 W
关于自由实体的部分结束了。. J! U) [7 ~) z0 a6 ]% X% R, W. r

: B% y4 @* w8 }, h1 I7 c9 w & i8 o+ Y  a) k7 U
[比例线]) M1 O- \# C0 H- ?4 e/ O! U
 
9 t+ @) m# f  A8 L0 e& U$ p, g现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。
3 `% E+ E5 q2 U- {( M5 w
: j  A+ p  G, {  R比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。
* h7 A, F: _" d2 W( r, Z9 A. y
! L2 X+ r) A, g, ]1 P; a
& E. H- K- y  v) p% c
# k; K3 Z$ E; p; Q2 [1 A1 T) r" x+ V5 x
5 d8 g2 d, d& K; H$ U! M) _
点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)
9 z! h. q/ q2 t7 a. T
  G. `* {1 r/ M, C* e9 E7 z% r5 {; h% X, `2 N+ Z1 w8 I

& ]# x: ~9 G7 P 3 Z1 @# \! |+ I; ]
之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。# ~8 I4 `1 o: L& E5 I' M- @
 
9 z: {! M3 Z1 S& m: u9 Q6 r+ y; H. w4 @  |$ L+ @1 F

' c9 V( y+ a* f2 z/ A" |& R1 J你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。5 n/ p4 g  i4 j: k$ z% O7 L
. Z! G8 m6 r' K3 ^# v3 o0 B

  V4 U( }' c) t0 f
1 G8 a# C; K. H% i# B$ Q
7 ]+ r4 z9 J9 A- O, ~! y# b + S0 X- ]  E9 r7 x2 T, a; q
这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。
3 m( z3 x# {7 [ 0 F" `) e4 d9 |
 [修饰区域]
9 ^( D9 y! d1 B1 A 
* ^$ W; [1 k5 T5 r9 `# Y! A) Y接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。
; ]5 e# ^2 L: O* P 2 l' M6 q/ J3 E3 Z0 Q
我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。  Z% b" \0 U0 Y& B) @

$ l1 X  x1 H: z2 [在layer列表中选择main,并点击下图的按钮添加一个区域。  r' `3 j# S/ i+ D2 g$ |
" I8 a8 Y1 ]$ l; I* T

6 l; p: V: A9 D- {0 |
+ Z# U. D" a0 B: u) p- f4 l$ b, P
3 H5 T" R* q) }
将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。# N4 I3 l1 U  V  u- H
7 ~. H& n" a8 K7 }% t

7 B- E# R' @# O
9 ]3 h# H8 \. p 7 w9 b4 J4 z9 q" V4 J2 R1 o* \8 S8 W
改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。
/ |# G% ]$ ^' T- c  s$ v/ t # _, y% q8 w% F' M8 N9 |
注意,设定颜色后必须满足以下两个条件才能实现:7 V3 K9 ]' C/ a( a* v# `+ n3 B1 K0 J
1、游戏必须运行在加速模式中,兼容模式下无效
$ F7 H$ H' A/ @2、对象必须将Colorable属性设为真( S# S1 @: _9 b: K$ Q
- A7 H5 D; i' d; i$ T. J& q
最后将区域移动到合适的位置并调整形状:8 {* L# Y7 h$ @- ?4 v

+ @$ S) T- X: I% [7 Q0 a4 Z9 u+ }, m2 D$ {. x) E2 l
 
% b6 l  F6 N3 [, L/ ~" `9 w/ ?$ k. u  N% B
注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。) k8 k" N( G' L; o! @# T2 G6 g
 4 \& E2 V. N( C$ s. C9 {
你可以回PM测试一下或使用角色模型看看效果。
6 }- |8 Z, g8 S# J) G* A7 h  J
* ]% N+ w( L9 F- \6 d# d9 I这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -
6 [' O5 f: y/ d; @- i& M! H/ Y/ ?# m
) C2 t' f1 P% Y这里忘了说明:- \2 h1 T5 w! ^/ A2 |9 w9 _" h3 N' ^% ?
1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -( |/ _1 s; W) D$ }' E; s
2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……1 R; V4 d/ E% E2 \

  Q( k8 ~6 L) A; E3 S1 s注意,设定颜色后必须满足以下两个条件才能实现:. k/ R% Q: |5 v/ }6 w7 J8 n2 i
1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?
- q0 o/ s" n8 A2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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