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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。
/ k0 H. {- W( `0 z4 u, `; I 
& H( H  C% k6 ?( ^' N这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。3 h  }9 {* e/ @- q, z. z2 Q/ |
 
; [6 D+ C6 \/ i[自由实体]0 g! A* O) s9 A: T4 n: z
 7 E( j, S3 K' N" x" o3 }3 s' u
现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。
1 X6 l! ~  G' s; C) T& [( R" R2 p 
2 b5 w( ~  M7 \% Z# m什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。; B- n6 ~4 }; n; I
 : z( x1 z! Z& v: g$ |
首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。
: q, T% z1 P1 b' Z  v8 g 
( _1 |4 }- T; u+ U. R2 I1 H7 ~7 a+ Q- g+ C
返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 " H9 w0 o* \" m- p5 z2 C
) U* q4 x, D* w/ v  X5 x
. U- U( r. P8 N8 e4 L  D( a

+ g5 Z5 }' }- o9 A3 K
6 D7 @, m# o; i- Q7 _2 U% {接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:
6 o1 J+ c1 x: _, @6 y0 v9 W. Q
( e" D5 ]. ^! j, O' W' k/ ]" U+ t+ P# O2 f; D3 S# P
2 H" k- v0 H+ l/ O  `' x

& n! O8 N6 [  o& G2 ~% B # w: J% Q- T% p7 H
保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。
$ ~, D; _' [7 A0 g$ V5 u & \. B+ P0 m& ?& H
首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 
/ f! @. W( i( [3 b
, z( ~# ^/ F4 N& y! N
: ?$ M: {5 m' k2 I+ z  I; t5 b: V) ?1 E" P) k

: m4 [5 f* @  {4 ]$ O# B8 ? # {: [, B1 H5 g6 U1 F3 b: v
在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件
9 X- V+ k& D- P; |' o) D
2 M: A1 U' A3 @. y' z7 h5 b8 `- r0 O* [2 O

; h. e9 z( f  E% c: f# p" W  Y% l; a+ D
 1 q* D! F- {: I! T
接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。, ?7 ?. p- W# N  p7 l' B

0 ~& e8 p8 m- v1 [5 I0 H
' H0 L( O. D# C: g9 K' ^5 r) E6 ]# P9 C8 q' ]2 c% b; b* d, H& F

4 S8 b& y5 x$ I! _3 O( z5 {- Q8 m% L: g" W; }
 
( E& p) F* D/ [1 j保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。
1 w! d% {: e5 [
  I3 x: Z/ E- f. e+ I1 u' Y( v效果应该如图所示。* h6 @2 V, X! e/ U% {# J5 u
" d* I' b0 e% C8 |- ?0 n: G1 e

; E0 u1 R; z. z1 c1 \
/ ?: R  x: g. y5 r& ], g  Y
0 T" O/ h8 R2 p 
' U  ?6 I, ^: U  c8 |& y$ U- L; h最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。2 j5 q' V; O8 L
, p5 @( ?& Y9 J6 `
方法见步骤4和5,最后效果如下图:
( Z, E( i) J% g! }: P# q; Y+ Y( b" i+ s0 T: h* K. ?

: A4 D7 m% f( w4 p+ u' c3 Q6 n' [, B, ^0 Y! c/ t  x9 `5 B
  y) _+ X7 Y6 J  b0 K+ l
0 C& \" C- b) Z* R

# A  ]+ U  G, ]: w1 h& ^) P; B$ c关于自由实体的部分结束了。: w$ Y6 F  t9 G; T' d! L9 e

# G) J' D) N( s: P 
: s, z6 @3 X7 b[比例线]5 X* ~* l7 W2 q% Q, F
 " |1 z" @% d  P
现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。4 b- t( [5 u8 o
. e4 {6 T) K: S6 d" h+ L+ F8 v
比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。
; S2 J* p. L2 ?2 \/ J- G+ \$ V) l% U' g

/ K( }) |. ]/ S3 N  H9 |
% _& m1 t; a" T% n& e6 r
; \/ g+ k8 K: i% t+ I/ s9 B% h
+ t0 ]7 T& v0 q% M点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线). j0 [$ S; [; v6 x" X
; F1 y5 J6 Y- s; p

. M; [3 J( V2 T: t0 X
3 J5 z. c7 d1 @ % N% ^( p+ M( L) X2 c
之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。, U' u+ b+ c/ F) C! L. n/ y' ?
 
1 c4 s0 u1 z( B0 I* D+ ?9 o: s5 r4 }  n& s# D6 m

  Q; H7 ^! B+ P  ~' P3 a你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。
5 n6 W+ a; l! _5 |
: b2 w; n6 F8 S' K0 n
$ [1 c' j, r! v6 v3 s- l
3 N& R) {) I  `* m9 t7 p' r0 B8 W6 }
/ n: H- o6 g. q0 F/ _2 \ 
7 l9 R1 |, H- g! p: y! W这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。3 e: H' D( ]5 r, c, u1 F+ D6 k# f
 ( v  q; I5 J. T2 `. l. X3 C
 [修饰区域]9 i# ~: L% z3 W. |
 
1 K6 v& o6 _, c. S" {! V# H接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。- u; n" P% e; u8 ?/ L
 
, J/ A2 M" U  r' B  p* v我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。
) R" F8 ^  n$ V; d& M8 y+ L
6 y! y' i) {* W; a, d& p在layer列表中选择main,并点击下图的按钮添加一个区域。
7 R0 z2 [7 z4 p* `$ p# ?. j$ F4 i) v4 L* Y
4 w+ {# [0 G- z' a
; ~- C' V8 f7 j: H- t, w+ f

2 k0 p% U* J3 B4 f/ E7 s* f% K* l
# c2 I# q& V% x: ?将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。
% S) J. H- n; B4 F3 m& Q! R
( [; a) P2 z) @5 E- `0 q6 r+ e) ~3 `6 J$ H; O4 b# u

2 a  c3 X# t6 U: ] 
2 F" u  k  N/ y/ [) t3 u& B% c改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。6 I$ T; h  B4 ^* G% V' J; U% j
 
7 h: B+ U" y1 `; Y+ [8 c- U注意,设定颜色后必须满足以下两个条件才能实现:- d; J% t' b0 s8 _4 z
1、游戏必须运行在加速模式中,兼容模式下无效7 i" c$ {5 |+ z1 D4 k
2、对象必须将Colorable属性设为真
4 |9 B. L7 l5 z8 t7 z 5 d6 v4 E" F% B6 r
最后将区域移动到合适的位置并调整形状:) T8 Y' t+ n4 @1 q3 @8 x
6 `. z7 Y; E2 K* ]( a) f5 F) p

, }, w9 E; _: a 
" \1 g4 O. V1 ^- Q3 f( T+ d8 z$ v/ s9 m# M, V
注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。! r5 k$ @1 }; k! S6 S; b
 
) z. t( n% y1 _) `; l# K你可以回PM测试一下或使用角色模型看看效果。% r% s, y5 g% p8 g4 r

! K& Q; E. j1 b& f" I这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……- Y# P+ o# ^* X, I# P8 z+ D
$ s( |, U, g( S0 b! T7 ^
注意,设定颜色后必须满足以下两个条件才能实现:) X3 B: V' I) D% x$ O
1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?/ t$ j( w# g: B/ C- g4 r; y
2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -
9 x0 {! |8 n* m# z
( Q; U0 D% u1 q! S. p  _这里忘了说明:
- v5 M3 h. ]" H/ ~1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -
) K3 i* `& S& v- C2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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