查看: 2871|回复: 6
打印 上一主题 下一主题

Virtoools中 如何使用鼠标的方式,控制人物移动 (Part-1)

[复制链接]

2

主题

0

听众

3万

积分

高级设计师

Rank: 6Rank: 6

纳金币
31070
精华
0
跳转到指定楼层
楼主
发表于 2011-10-17 21:37:00 |只看该作者 |倒序浏览




                   在上一期的内容中,我们提到了如何运用行为模块(Building Blocks)的方法,及各个分类行为模块的位置。这次,我将以一个实例来说明,期使各位能有深刻的了解。在本次的范例中,我将说明「如何使用鼠标点选的方式,控制人物移动」,较实际的例子就是游戏了,大部分的游戏都使用这种方式来控制角色的移动,因为这样的控制方式很方便,也很简单,只要一个鼠标即可。
           



             一开始,必须先做需求的功能分析。我们要做的是「使用鼠标点选的方式,控制人物移动」,从字面上我们可以得到,这里有两种对象:一个是鼠标,另一个是人物,要做的动作分别是「点选」与「移动」。鼠标点选的部分要有更进一步、更具体的想法,因为到底是要用鼠标左键点选?还是用鼠标右键点选?这里我们选择使用鼠标左键的方式,再来又有另外一个问题,鼠标左键要点选哪里才有效?在这范例中,使用者必须点选人物角色所站立的「地板物体」才有效。所以在鼠标点选的功能部分,可以整理出对于鼠标控制的具体想法:「使用者必须使用鼠标左键,点选人物角色所站立的地板物体」。
           



             在人物移动控制的部分,必须知道要用什么方式移动,用走的?跑的?或是直接移动人物的3D坐标位置?在这范例中,我们使用走的方式,所以在人物的部分我们就必须要有走路的动作。但是要走到哪里?就必须等到点选鼠标左键做完后才知道。所以在人物的部分,可以整理出对于人物移动控制的具体想法:「人物是以走的方式,走向鼠标左键点选在地板上的位置」,必须说明的是,此位置是一个含有X,Y,Z坐标的位置。
           



             所以整个看来,我们要提供「等待鼠标左键按下」的功能、「取得鼠标左键所点选的位置」的功能、「人物移动控制」的功能与「人物走向的目的地」的功能。
           



           接下来的步骤,我们就要把我们的想法文件化,画出流程图会让人一目了然,知道每一步骤应该做的工作。
           



             在上一期的内容中,我们提到了如何运用行为模块(Building Blocks)的方法,及各个分类行为模块的位置。这次,我将以一个实例来说明,期使各位能有深刻的了解。在本次的范例中,我将说明「如何使用鼠标点选的方式,控制人物移动」,较实际的例子就是游戏了,大部分的游戏都使用这种方式来控制角色的移动,因为这样的控制方式很方便,也很简单,只要一个鼠标即可。
           



             一开始,必须先做需求的功能分析。我们要做的是「使用鼠标点选的方式,控制人物移动」,从字面上我们可以得到,这里有两种对象:一个是鼠标,另一个是人物,要做的动作分别是「点选」与「移动」。鼠标点选的部分要有更进一步、更具体的想法,因为到底是要用鼠标左键点选?还是用鼠标右键点选?这里我们选择使用鼠标左键的方式,再来又有另外一个问题,鼠标左键要点选哪里才有效?在这范例中,使用者必须点选人物角色所站立的「地板物体」才有效。所以在鼠标点选的功能部分,可以整理出对于鼠标控制的具体想法:「使用者必须使用鼠标左键,点选人物角色所站立的地板物体」。
           



             在人物移动控制的部分,必须知道要用什么方式移动,用走的?跑的?或是直接移动人物的3D坐标位置?在这范例中,我们使用走的方式,所以在人物的部分我们就必须要有走路的动作。但是要走到哪里?就必须等到点选鼠标左键做完后才知道。所以在人物的部分,可以整理出对于人物移动控制的具体想法:「人物是以走的方式,走向鼠标左键点选在地板上的位置」,必须说明的是,此位置是一个含有X,Y,Z坐标的位置。
           



             所以整个看来,我们要提供「等待鼠标左键按下」的功能、「取得鼠标左键所点选的位置」的功能、「人物移动控制」的功能与「人物走向的目的地」的功能。
           



             接下来的步骤,我们就要把我们的想法文件化,画出流程图会让人一目了然,知道每一步骤应该做的工作。
           



             有了具体想法之后,要画出流程图就很容易了,当流程图完成后,接下来的步骤,就要针对这几个功能,找出可供我们运用的BB。
           



             (1) 等待鼠标左键按下:可以使用 「Logics > Message >」中的BB:Wait Message,在「Wait Message」的预设参数设定中,可以设定成"onClick",设定完成后,此时的「Wait Message」就可以解释为:当鼠标左键点选该物体时…,其中「该物体」指的是「Wait Message」所作用的物体。这是一个很常用的功能,一定要记得。
           



             (2) 取得鼠标左键所点选的点:这个功能算是重点,若不知道 Virtools有提供这样的功能,可能会想不到应该如何处理较好。这个功能我们可以使用「Interface > Screen」中的「BB:2D Picking」,在「2D Picking」的众多输出参数 pOut中,您可以找到「Intersection Point」,这个点的意义简单说就是点选的「点坐标位置」(世界坐标)。因为这个BB做了一些运算后,才会送出这个数值出来,其中的运算即是取得所点选的鼠标坐标位置,此坐标位置还是一个 2D向量,只有 X、Y两个值,接下来透过计算后,可以计算出平面上的X、Y值,对应到3D空间中,物体上的某一点。
           



             (3) 人物移动控制:这部分比较简单,在Virtools控制人物动作的只有两个:一个是「BB:Character Controller」,另一个是「BB:Unlimited Controller」,都是放在 「Character > Movement」中。这里我们使用前者:「BB:Character Controller」,因为我们没有很多复杂的动作。
           



             (4) 人物走向的目的地:这个功能一样可以在「Character > Movement」中找到:「BB:Character Go To」。
           



             在了解Virtools Dev 中有哪些BB可以使用之后,接下来就要进入实作的部分了。我将使用 Virtools Dev 所提供的 Resource档案来示范,包含人物、人物动作与地板。
           



             (step-1) Open Data Resource,打开资源文件"VirtoolsResources",一般预设状况都是开启的。如果已经开启者,请跳过此步骤。
           



             (step-2)选择「3D Entities > Primitices」中的 「Plane」做为地板对象,并拖拉至左边的3D Layout中。
           



             (step-3)选择「Character > Skin Character」中的「Eva」做为此次范例中的人物,并拖拉至左边的3D Layout中。
           



             (step-4)选择「Character > Animation > Skin Character Animation > Eva」中的「Walk」与「Wait」,并拖拉至左边3D Layout中的人物「Eva」上。
           



             (step-5)以上都是准备工作,接下来就要开始BB实作的部分了。先处理人物动作的部分,使用「Character > Movement」中的「BB:Character Controller」,并设定如下图,记得必须作用在 "Eva"身上。
         
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2012-3-30 23:24:33 |只看该作者
我无语!
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2012-7-14 23:27:24 |只看该作者
呵呵,真得不错哦!!
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-8-31 00:49:59 |只看该作者
我看看就走,你们聊!
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2012-10-30 23:28:05 |只看该作者
先顶上去,偶要高亮加精鸟!
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

6#
发表于 2012-12-6 23:19:05 |只看该作者
路过、路过、快到鸟,列位请继续...ing
回复

使用道具 举报

0

主题

1

听众

50

积分

设计初学者

Rank: 1

纳金币
10
精华
0
7#
发表于 2014-4-8 15:20:52 |只看该作者
路过、路过、快到鸟,列位请继续...ing
回复

使用道具 举报

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

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-23 16:41 , Processed in 0.715726 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部