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

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

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

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

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

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

再发一篇,争取明天把9个步骤发完。4 R3 u+ E; ^0 P. h7 v6 M8 v  \- I
 / H# [) k: y: A' S) c( X2 f
这一章将完成场景的粗略设计,在SceneEdit打开MyScene.scene。9 d" D( W& `8 q
 
2 ~7 E3 K. z  S9 Q[自由实体]' S1 M" h) O7 b, Q; z: M: O
 
( X) h# n3 W5 ]+ \" i( C6 J现在场景中的椅子仍然看起来像是画在地板上一样。之前我们使用创建desk实体和behind_desk区域这种方法实现了桌子的遮挡效果。这种方法是非常灵活的,对于大型物体和无规则形状的物体尤其有用。但对于小一点的东西我们可以使用更简单的方法:将它们创建为自由实体(free entities,希望有人提供更好的翻译- -)。接下来以椅子为例。
1 o7 n) h/ `9 f: ]( S9 @( t" q" k & {  V; j+ M9 F
什么是自由实体?之前我们所使用的常规实体:比如背景和桌子,它们在绘制时是按照场景布局(即node列表中的顺序)来绘制的。而自由实体和角色一样,绘制顺序是由它们所处的位置决定的(换句话说,由它们处于哪个区域里决定。这样看来场景中的npc就应该作为自由实体)。接下来具体讲解。
3 M; [" V3 r& z- `8 o / P& B' ?) G  C' o2 T3 J
首先,在ProjectMan中为Myscene文件夹导入椅子的图片,在“data\tutorial\gfx”选择chair.bmp并导入。
0 V7 q, |7 r" ^; e 
, h8 {* W+ C, k- r9 J% g3 S- t+ K: f# l4 I
返回SceneEdit。在layer列表中选择Free entities项,下面node列表会显示当前所有的自由实体,现在还是空的。点击Add entity并选择Add sprite entity。一个“new entity”就创建好了。将名称改为chair,标题也可以改为chair。 3 O: j* ^* T( g6 @9 M1 q" B4 Z
' r7 I% L: [9 M. R! Y; p4 x7 j

2 N3 B- Q5 J2 _: ?: Y
) U! T7 _$ X) v8 R. @   O9 L  E; G" T( y$ ?, Q
接下来为实体指定图像。点击sprite栏后面的“...”按钮选择之前导入的chair.bmp。将实体chair移动到场景中的位置:
3 L, [. [$ E, u" ~5 {2 d  m# r0 [3 B: k3 c8 O' H4 g+ i

! n/ e7 k9 J) s! b
7 s1 |3 a- q( T$ r- T. Q6 o# ?0 i8 p7 A
 5 h3 e  c5 X, O0 w/ x  ]
保存并测试一下。你会发现角色总是在椅子之上,原因是当一个区域内存在多个对象时(例如floor区域内存在角色和椅子两个对象),引擎按它们的纵坐标(即Y轴坐标)决定绘制顺序。角色的坐标已经被设定为由她的脚所站的位置决定了,但是椅子的坐标默认由图片左上角坐标决定(这样当角色与椅子重合时角色纵坐标总在椅子之下,引擎就总是先绘制椅子,再绘制角色了)。我们要做的就是让椅子的坐标也由椅子脚决定,方法是使用一个sprite而不是简单的BMP图像作为chair实体的图象。sprite在wme可以被视为包含了更多信息的图象,其中一项附加的信息就是焦点(hot spot),焦点可以指定sprite的基准点,实体所处的坐标由基准点决定。我们要做的就是将热点设在椅子脚上。$ C: P9 W. u/ f' O
  g! H1 M  I! _$ [# Y; D% d) ?
首先,为chair实体创建一个sprite。返回PM,右键点击Myscene文件夹并选择“Add->Add sprite…”命令。在弹出的模版选择窗口中,选择Empty sprite模版,并将名称改为chair。 & u$ z0 |% m7 r2 ~

! O8 p0 y% N8 K5 `( R8 W/ o' ]  Y, b

! K0 d" h+ \' i# K' V1 [* I% x* k" `) p: ?9 ]

5 h9 }; b- x. z# ^: l8 y* M在MyScene文件夹中一个名为chair.sprite的新sprite创建好了。双击chair.sprite后PM会自动调用SpriteEdit工具帮助你编辑。现在这个sprite是空的,我们首先要添加一个帧(frame)来放椅子的图片(添加多个帧并设定一些信息后就是动画了)。点击Add frame(s)按钮并选择chair.bmp文件
0 l3 ]& @/ ~$ t2 }. R% r
% u: M4 r+ x" o8 t; w6 \; g9 [( Y9 }. w0 @
$ D" }; I( ]; I( b6 }5 l
% W* T0 n( P1 d6 Y& a. H
 
; o9 R0 ^0 g/ S接下来需要改变焦点的位置。有两种方法:一是在右边的预览窗口里拖拽图片使焦点(就是那个红色十字)移动到椅子脚的位置,二是在左下角的信息栏中找到hot spot一栏填写坐标135,174。
3 i' A. O) l6 l2 s) J( R5 H% @$ |/ t) j4 k6 D1 h3 U4 Z  l

1 Y2 S" ?2 S1 B0 U
6 z1 p/ U9 u. h/ q5 B. j
# W4 ?) x8 `, X
; ~. Z" |+ @8 v- V( s% }, s 
1 j. i, D, p4 i3 [! K保存并返回SceneEdit。选择chair并更改chair的图象为新创建的chair.sprite文件。你会发现椅子的图象移动了,这是因为我们改变了图像的基准点,移动图像到正确位置。保存并测试游戏。
, D& b; ?$ u) q* J' A
( W& n( C4 K8 g% B# \( j" q/ r效果应该如图所示。
1 q. r# M$ y- l% B- N+ s8 `7 h9 ?& j9 G$ @% H9 t0 n

( d  _6 m# z; i/ Y2 h" K5 u1 }3 \% B9 r7 M$ l  L

2 G8 x% j9 h, e0 G/ K. } 9 W' C. V9 ]- Y8 f
最后要做的就在椅子下增添一块障碍区域防止角色横穿,还有设几个路径点。
5 ~1 k8 l) y$ p0 _3 K' X 1 M$ U* Y5 f, |1 b# U
方法见步骤4和5,最后效果如下图:
) N1 J' _& D% d: y2 O
) j- ^5 g0 f) r+ f( U
; V8 X1 O/ r, O
! S: y/ k# `7 g" k! C3 ?+ x
) X9 i$ b: ~6 _- |
& ]% z5 D) I5 Y! V& a7 R' Z7 r$ E
8 R0 n/ x* N. u& W关于自由实体的部分结束了。
+ b, B" V* h1 y+ b
/ b0 ~* c3 H7 p. v ( ]2 d+ K, O+ R  L1 U7 l* y
[比例线]7 ~+ j; k) V* \. M& U3 g
 
+ g  ]9 J4 W! C: a3 V6 f1 Q( N! c现在场景看起来貌似差不多了,但角色好像有点太小了,我们通过可以比例线(scale levels)改变角色的缩放效果。比例线在Scene中表示为一条绿线,在最左端标注了比例,例如现在场景里有两条比例线,中间一条70%,底下一条100%,这样角色从底部到中间行走过程中,比例逐渐由100%缩小至70%(在70%线之上时会默认恢复为100%大小),这样就实现了近大远小和不同场景人物比例不同。7 _* R" |! h: ~5 ^, `& e

* S) Q) K- O" Y& ~# ]* m比例线最左端还有一个很扁的小方框,按住小方框并拖动就可以改变比例线的位置,右键点击小方框可以修改属性(properties,可以改变缩放比例和指定位置),或删除(remove)比例线。
  H1 a& s% Q; W$ o' z& M* p+ g" q) L* U* |' k
/ m7 A% Z3 A/ u5 v1 g7 |

" l" p0 |; w1 m4 e
$ k7 h5 C+ G+ Y) O; p6 T+ V
: L1 [% V" a8 N! W点击下图中的按钮可以添加比例线。(帮助文档使用的是老版本,新版本中者按钮旁边还有个按钮,可以添加纵向的比例线)& @9 {' G& S: g. I  J1 `; C: ]

9 e4 y8 T2 P" E( t1 a" f( u
+ @% R. e/ p1 F8 R6 D  y: M" G
; X0 Z" H8 Q1 j. `; s8 t 
! L) v) g% n) Q: e之后把上方的比例线移至地板上端并将比例改为90%,下方的比例线则移至地板最下端并改为160%。
$ h( g9 a& _: _+ x) m% @, E7 c * F& q0 o( Y( Q* F8 I' ^! r- r- f
* @: c. ^" v7 u0 k' l. z* }

  S3 L1 L, C# c" r% {$ z" u% P你可能想知道如何设置到正确的比例,最好的方法是使用角色模型(actor placement tool),SceneEdit提供角色模型方便你编辑而不必频繁测试,如下图点击Place actor按钮。( `' \, w1 R; Q9 \3 i

1 d4 `) w* w! a9 ]9 @. I. w7 b% }3 ]( v  y, f

" J- m; M: w0 L% o* H- `2 O% F4 L! r  m) V
 
0 v7 q6 g' }* U5 Q  j3 p这时会弹出一个窗口让你选择使用哪个角色。在“data\actors\molly” 文件夹中找到molly.actor并载入。这时候你的鼠标就变成了一个角色模型,你可以移动鼠标到任何位置看看效果,这时点击右键角色会改变方向,点击左键会暂时将角色模型放下,以后再需要用时点击Place actor按钮就可以。; u7 |; k/ A) v8 X! Z. S2 X, t
 " Q! j9 f) Z$ C
 [修饰区域]
/ }' d* d7 L# N' c 8 W" ?2 O: @; M, T$ t
接下来我们可以添加一些小效果,比如当角色站在远处的小角落时让角色变暗一点。% h; G9 l% e; H9 a* S, A
 ( y* ~5 x0 G. F/ e9 s4 x& j/ e
我们可以添加一些特殊的区域来影响角色的颜色和缩放,这些区域被称为修饰区域(decoration regions)。/ B# Z9 a0 N. N9 c+ d
& M; o+ ^" C2 y% m$ ^
在layer列表中选择main,并点击下图的按钮添加一个区域。6 y  [! B  L! y4 ^  E0 S1 \. O

# s! P# K% d$ x, |6 N' M) v) L3 N" a+ V

9 M9 W4 w; h2 C5 r6 e/ H
3 g7 \& D& X; y , f% X7 a( M, r, C
将名称改为"shade",并将类型由layout改为Decoration。注意信息栏中的Clolor项,选择一种颜色后,在这个区域内的角色绘制时就会混合这种颜色。为了达到阴影的效果,我们指定为浅灰色。) f( q3 p. z/ W
, [4 e; j/ N' p8 M0 Q
' X9 R3 |/ E5 B1 o3 j
; H8 @0 `$ c7 `8 @' [( B/ C% y
 2 a2 Q5 D- x  Y+ a# z
改变scale项的话角色在区域内的话就会使用这个比例而不是比例线的,选0则不影响。8 v3 L' i7 K; p: ]$ n4 u6 R2 q7 `
 
+ X1 T+ K( ~1 n1 s- M& o% c3 ?, ~注意,设定颜色后必须满足以下两个条件才能实现:: I% J. m: h" N8 L9 J* I
1、游戏必须运行在加速模式中,兼容模式下无效2 v5 G* y! I, ]& q. j; R2 B
2、对象必须将Colorable属性设为真% y0 d. @7 z* }$ x0 w

9 D* [* z0 m0 d$ D% ?最后将区域移动到合适的位置并调整形状:
, n6 M3 b1 j3 l% z; J2 N/ w4 y
! a6 x0 Y- T8 Q
" j+ f) n4 s. k. K* K6 a : @1 L: P" c& c" \! {

9 F. ^/ E/ M% C+ q: @3 G) \0 V注意:修饰区域影响角色角色的绘制,所以必须将修饰区域设在node列表的末尾。
. d4 e' R# l# o& |3 P6 M 
! i* Y" l  X- u! E) k你可以回PM测试一下或使用角色模型看看效果。* K& f, @  |$ ~- r* N

/ m7 Z: C" C% K7 I) ]& N. T这一章结束了~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-17 22:58 | 只看该作者
感觉比前几篇复杂些……末尾有处“注意”看了不是很清楚……
4 k) H; }, |6 m2 |- [% W- a4 r" _% k! D$ E5 ^% S  A1 t- X: s
注意,设定颜色后必须满足以下两个条件才能实现:# y6 K, q# t* @1 P  r
1、游戏必须运行在正常模式中,兼容模式下无效——正常和兼容模式指的是?
4 N* _3 k# l, `. r/ ~2、对象必须将Colorable属性设为真——此属性设定的位置?
回复 支持 反对

使用道具 举报

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

回 1楼(naptid) 的帖子

话说刚才有段时间一直上不了论坛- -# Z' c" x: H. A4 `' M% E: p
# k6 ^3 j$ p% H, j. c
这里忘了说明:
5 f5 N3 F- t& v1、修改了,应为加速模式(accelerated mode),默认是打开的,我也不清楚具体的含义- -0 {6 K+ ~2 W2 u# x6 z
2、会受修饰区域影响的有角色和自由实体,自由实体的话,在左下角的信息栏仔细找找,就有这个选项。至于角色,我暂时没找到设置的地方,默认开启。
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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