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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。
" `1 m7 p5 P3 @: H- I8 E 
  h2 d% x& C2 }+ @这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。* b: Y# n" C6 @' T# O
 " n& x5 W; x4 q$ K' \( ~4 `
[自由实体]
( j9 y' A0 K0 c. f( W 
% J8 e; o+ t% A. V! T4 N2 \现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。6 A, @& d( q$ Y7 V; I, |2 ^
 
8 _2 i! X$ d# l: m什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。, H$ k2 e' \( n! Y* F
 
# U" m' F+ I/ S) S首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。
1 b& e! |+ Z" u0 I / K- R* y+ y- s% e) L0 W' Y

" a1 `6 g* w6 C; J7 |# g+ z返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 ' t6 V5 i. T! \

6 F, x9 h4 j0 G! e7 p0 d
0 s6 i5 {" u1 t; Y+ p$ s
, X# ]  U$ |/ s+ ]( W: o/ ^
# b4 T8 r3 I; ]9 _. H& d5 N' q' \接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:* r8 i1 B8 C' N& l9 x, g4 Q

: V, `! c- E4 }2 r2 }# K3 ?/ Q+ L7 x% h! W# j# Y
' G3 v) |* z# k+ E/ v: O
. H$ m& g. A1 n8 P; M- @, `
 - i3 Z8 A( p" x  _: @& l
保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。3 T' m# G6 l. N/ I3 m
8 L( b3 d; E( X5 x1 u: x
首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 / {/ [: M7 @% B8 W

8 _! v  |( Z9 b: T( x2 e6 J
+ O' `2 h- l/ z" r0 z* ?
$ x) D+ x' L8 N
$ ?+ @9 D- k6 l1 A9 Z  r% S
  W- ?* I, X; K7 o/ k/ ~3 u在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件! l  l' q( v4 `+ ]" a
) e& B0 t- C& E( h  w) `

3 Q* @9 W3 D" M. d5 \. e4 ?3 f' u% b" ~! ^7 K; j

5 z: q: U0 A- W2 p% F) `$ H* H , l9 D0 V& _! M! K) O  s; Y8 N
接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。" Y3 u+ \- N4 M. r
; m0 N" s. Z9 ~0 p* R. l- b% E. O
6 e6 W6 H- I- P4 ~% B4 J" y

/ V6 f1 L. U1 j' v- M6 A, |/ M# j8 B" l- P/ D8 H# c* I/ y* s" n
  E1 g1 X1 {, J8 [6 V" F
 
* f0 W: ]0 P3 T* j7 C6 U- X8 @# g保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。7 z" s9 n- z5 P5 X% j, [
+ _- m+ o8 g& D, l) L8 @
效果应该如图所示。
$ b9 e# {* A% p" h$ T+ H1 j; Q# p! P5 O4 ?8 ~

' _  A- c8 ^2 l( J8 H+ m  n" {. ]1 R& _4 d; |. k+ I

8 _" d# A$ [3 q/ c 
# K; r3 p9 p: S7 ~9 I最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。; K# e1 p9 d# I. Z" ?

4 M/ Y3 L0 _; d, [& h8 {7 O% n方法见步骤4和5,最后效果如下图:
* J* x9 |1 G7 [3 ]' t' |/ u8 N, x  {, ^( ]( X1 Y, {  A) Z

! J) l1 {& K' t& f$ N0 A# o& N" T' y+ g* P/ m+ |
5 v- q2 L) w8 R$ d1 [* J3 @
  u. Q. `; P" p' X" F; q, }9 d) S  X
! Q3 l. Y/ G( |9 s! B
关于自由实体的部分结束了。1 N, z8 @# j8 @1 l! S- t. l
  |9 [+ q) k) M: X6 f1 w3 w
 
& i( w1 E* L4 n& H- a" j/ v# ^) [[比例线]
' t1 l: P& i* _* w 
' n) k4 e5 [6 f# j" i现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。
$ F" k6 U6 y) M: l+ } / H7 a+ n) ?# p, I# S; Z: ~
比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。
; N6 l( w' l4 R2 v) W7 d9 I
6 ~7 G3 U+ \: \5 q$ v' ^. @5 ]+ f6 [
$ l0 |8 e3 |' O; {) T
; W7 F4 q) J' a( |& `9 {; U$ P5 p9 _

' Z1 q: p% b: l$ W6 E. j& I点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)5 h7 B" b2 H2 t6 h( p3 c' g9 p* w

6 f- V& a5 s1 l; m& U
, j6 O, W" S/ N+ F4 l: d& V8 |7 v3 C7 [# g5 ~" t) E  M
 
0 t* i* t$ i6 S4 s9 o之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。
; k, ?( g" U8 H, N! S6 w , l( H/ ^; e' C  ?0 _

7 A0 b! m% s6 E3 X5 o
1 J9 [- W: ^: N3 z你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。' \# q9 h8 N. W6 G$ M! Q

" j3 w" V  h5 R* P- I% d5 e$ Z5 E/ U# s
0 ]$ x/ H  _2 F# ^2 ~" k7 j

2 y4 o" E4 O2 M# c1 m   j# _$ F# A6 h
这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。9 z& I) c; I6 n3 ]+ K9 L: [( Q5 O
 1 P9 B* H8 d6 [& e
 [修饰区域]
, j* ?7 Z! U7 c$ E( e# J2 _ 4 O  g- e0 g8 E/ W) i
接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。6 l8 N/ Z4 Z7 p2 e) Q# S+ z
 
% ^. ~/ o4 _) g) `) _我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。
- L: G) x9 E  g% O
' E% ~3 ^1 h1 \在layer列表中选择main,并点击下图的按钮添加一个区域。
. g" N, u2 @" j+ w) l) D6 ~
: Q: U6 A' j' L- l3 Y! }2 H% h; `( i) v

8 S/ O$ C# h) E; O: B+ G& k7 T, N& ~5 A" Y& Z; s5 ]7 L1 F- B
3 H2 ^5 }0 f$ p* }3 r7 F
将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。
0 h7 f+ d8 N: t2 N; e( v
5 H! F& v) E2 T+ q0 x( ?3 g+ X7 [: T( z) w& a
+ C0 V8 E; K: E* e, u3 ~
 
- H; W) M+ u. H# x. B$ D改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。  I; P# \8 }9 f( h- G) w+ h/ z
 4 V4 m" @$ y5 _7 }1 |  C* V
注意,设定颜色后必须满足以下两个条件才能实现:, T; h  {- B: v- J5 i
1、游戏必须运行在加速模式中,兼容模式下无效% T) g8 ^* o0 {% w% ?% e" V4 N
2、对象必须将Colorable属性设为真* R2 I1 C, ^- H# d: K6 a
, Z2 ?! f( C5 J
最后将区域移动到合适的位置并调整形状:# M$ H7 q$ j4 H6 y

1 \/ f8 a% _; K% b' J! V
# p) w/ S6 w$ g8 h% L 
- \) f) o  o3 P3 `8 ]. D; n" a0 q4 p
+ D* l: a9 [. y0 s  C( T5 a' L注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。, A, t& X0 e  A& Z6 l
 + l, f/ r* f, x# E# y4 X/ ]
你可以回PM测试一下或使用角色模型看看效果。: v3 R$ v  @5 `6 N3 B1 n0 _
3 X# r& j; i4 Q. W& y, Z
这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……( `# o, [+ f; H- o
" h' w7 o: W8 F+ ?7 S- s
注意,设定颜色后必须满足以下两个条件才能实现:; k% M) u* E- K$ W) _
1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?3 p- j6 Y, E8 ~
2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -
; l$ w+ c7 w' `6 M/ H+ ?# P) M9 B% a0 ^( M: B
这里忘了说明:
& c8 N7 V3 {3 e. ?: C/ z$ v1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -
' [& P  ?3 n$ n* y2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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