纳金网
标题:
uScript 实作练习(一)使用Trigger制作红色警示区域
[打印本页]
作者:
艾西格亚
时间:
2013-3-12 01:15
标题:
uScript 实作练习(一)使用Trigger制作红色警示区域
本帖最后由 艾西格亚 于 2013-9-10 16:03 编辑
uScript V 0.9.2236下载:
http://www.narkii.com/club/bbs_286674.shtml
初识uScript (一)程序安装与范例文件的使用
http://www.narkii.com/club/bbs_288802.shtml
初识uScript (二)小球吃钱币的设计逻辑与思路研究
http://www.narkii.com/club/bbs_289006.shtml
初识uScript (三)使用Trigger进行灯光颜色的变换
http://www.narkii.com/club/bbs_289351.shtml
在uScript 的前面的几个教程里面,相信大家对于uScript的节点操作已经有了初步的认识,
同时也有朋友提出一个问题,Playmaker的可视化操作与uScript比较起来谁更具优势?
简单来说,uScript比较偏向逻辑性操作,也就是具备了程序化的思维,从前面的几个范例流程里面大约可理解了uScript的节点运用与物件之间的关联性。接下来的教程里面,我们将以一个控制台的开关来说明uScript的逻辑操作,在教程的第一个阶段我们将设定角色走向大门内的警示区,这时门口两边的红色警示灯开始旋转,同时发出巨大的警报声并关闭大门。
2013-5-15 13:03 上传
下载附件
(30.2 KB)
第二个部分是设定警示区的关闭,在角色靠近控制台时,系统提示按下H键关闭警示区域的,然后角色就可顺利通过大门而进到内部的空间,在解除警示区的同时,控制台与大门上方的也会进行颜色的替换。
2013-5-15 14:21 上传
下载附件
(30.11 KB)
2013-5-15 14:21 上传
下载附件
(28.88 KB)
范例所在位置:Examples > AlarmGameplay (需安装uScript的范例资源包)
如图所示,在场景内的两个Trigger(绿色框物件)分别触发不同的功能,在左边控制台的Trigger用来提示解除警示区的按键,大门的Trigger则是触发警示区的光线与警报声。
2013-5-15 13:03 上传
下载附件
(56.9 KB)
在Hierarchy架构里面可以看到Alarm_Setup是整个警示功能群组,Trigger_Alarm为门口的触发器物件,Trigger_Console物件则是用在控制台的前方区域。
2013-5-15 13:03 上传
下载附件
(27.8 KB)
Ok,现在开始第一个部分的制作,按下Ctrl + U键打开uScript编辑视窗,首先建立一个Ttigger Events,直接将Events > Trigger Events拖曳到编辑视窗内即可。
2013-5-15 13:03 上传
下载附件
(42.63 KB)
接着将Alarm_Setup > Trigger_Alarm这个触发物件拖曳到 Trigger Events > Instance的栏位,这个作用是让Trigger_Alarm具备传送触发事件的功能。
2013-5-15 13:03 上传
下载附件
(25.53 KB)
然后将Alarm_Light_Left, Alarm_Light_Right这两个光源以GameObject模式拖曳进来,如图所示。
2013-5-15 13:03 上传
下载附件
(76.56 KB)
将Action > Toggle > Toggle Component拖曳到编辑视窗,Toggle Component的作用类似开关的功能,接着将OnEnterTrigger连接到Toggle Component > Turn On,Target则连接到Alarm_Light_Left, Alarm_Light_Right这两个GameObject。
2013-5-15 13:03 上传
下载附件
(58.82 KB)
2013-5-15 13:03 上传
下载附件
(31.06 KB)
从这个连接的方式来看不难理解,只要Trigger_Alarm被触发(OnEnterTrigger),Alarm_Light_Left, Alarm_Light_Right这两个光源就成为启用的状态。
请注意,Alarm_Light的默认已经被我们设定成关闭,所以在Trigger_Alarm被触发后就成为开启的状态。
按下Component Name创建一个Create Linked Variable的节点,在Value的栏位内键入Light,
表示在节点里面是调用了Light的组件作为开关。
2013-5-15 13:03 上传
下载附件
(39.96 KB)
2013-5-15 13:04 上传
下载附件
(16.83 KB)
在编辑视窗内进行uScript储存,选择File Menu > Save As..将目前的设置储存为一个新的名称,然后进行Play测试,当角色移动进入大门的前方区域是,两边的红色警示灯就成为开启的状态。
2013-5-15 13:04 上传
下载附件
(45.66 KB)
在测试的时候我们发现一个问题,那就是角色触发Trigger_Alarm启动了红色的警示灯,但是角色离开该区域后,警示灯并没有关闭,这时只要将OnExitTrigger连接到Turn Off的位置,如此在角色离开Trigger_Alarm的范围,红色警示灯就会回到原来的关闭状态。
2013-5-15 13:04 上传
下载附件
(32.3 KB)
2013-5-15 13:04 上传
下载附件
(42.1 KB)
警示灯的启用只是将红色灯光打开,并没有进行其他的动作,所以我们需要在灯光上做些效果,将Actions > Game Objects > Rotate 拖曳进来,Degrees 设定为360度,Axis设定为Y轴,Seconds为2秒,然后将Target连接到Alarm_Light_Right。
2013-5-15 13:04 上传
下载附件
(49.18 KB)
2013-5-15 13:04 上传
下载附件
(50.78 KB)
从Rotate的节点连接之后来看就很容易理解uScript的逻辑,简单的描述一下就是: Trigger_Alarm被触发时就启用Alarm_Light的两个红色灯光,并以Y轴进行每秒180度的旋转,如果将Seconds设定为1,就表示灯光每秒旋转一圈。
Rotate > Target只连接到Alarm_Light_Right,如果我们将两个光源连接到相同的节点,这样两个灯光会变成相同的旋转方向,这时需要复制出另一个Rotate节点与Alarm_Light_Left进行连接,点击Rotate按下Ctrl +C键,Ctrl + V键复制出另一个Rotate节点,在复制出来的Rotate节点里面修改Degrees为-360(反向旋转),然后连接Target 到Alarm_Light_Left,如图所示。
2013-5-15 13:04 上传
下载附件
(53.68 KB)
储存后再进行测试时就会看到两个灯光在Tigger_Alarm触发后会做出不同反向的旋转,在角色离开Trigger_Alarm的作用范围后,警示灯光也会随之关闭。
2013-5-15 13:04 上传
下载附件
(46.25 KB)
灯光的效果处理完成后,还少了警示的音效作用,将Actions > Audio > Play Sound 拖曳进来,这个节点是用来播放场景或是物件上面的音效。
2013-5-15 13:04 上传
下载附件
(36.77 KB)
在Play Sound的属性栏里面,将场景内First Person Controller/Main Camera拖曳到Target > Game Object的栏位,Volume音量设定为1, 勾选Loop使其能循环播放。
2013-5-15 13:04 上传
下载附件
(22.7 KB)
将Variables > Audio Clip拖曳进来,并与Play Sound > Audio Clip连接,这个操作方式与之前的uScript版本有些不同,建议使用圈子提供的版本进行练习,接着在Audio Clip栏位里面选择alarm(Audio目录下)为指定的音效。将Toggle Component > Turned On连接到Play, Turned On 连接到Stop,使警示音效在角色触发Trigger_Alarm时能开启,并在离开后关闭。
2013-5-15 13:04 上传
下载附件
(20.01 KB)
音效的设置完成后,门口的部分还需要制作关闭的效果以防止角色进入,如图所示,在Trigger_Alarm触发时,门口会进行关闭的动作。
2013-5-15 13:04 上传
下载附件
(47 KB)
2013-5-15 13:04 上传
下载附件
(51.36 KB)
我们需要对Door_Panels里面的Left与Right这两个物件设置Position.x的位移动画制作,操作方式是选择Door_Panels,在Animation里面新增一个ModoAnim的动画文件,然后分别对Door_Panel_Left与Door_Panel_Right进行关键帧设定。
2013-5-15 13:04 上传
下载附件
(21.95 KB)
如图,我们在Door_Panel_Left的X轴移动设定了1秒的关门动作,移动的距离是2个单位,
Door_Panel_Right也做了2单位的移动,如此大门可以控制在1秒内进行关闭的动作。
2013-5-15 13:04 上传
下载附件
(38.42 KB)
设定完成后将Actions > Animation > Play Animation 拖曳进来,然后连接Toggle Component > Turned On与Play Animation > In的节点。
2013-5-15 13:04 上传
下载附件
(55.48 KB)
将Door_Panels拖曳进来成为Game Object的节点,然后与Target进行连接,Animation输入我们设定好的关键帧动画的文件名ModoAnim, Speed Factor设定3的数值来加速门的关闭,
勾选Stop Other Animation是让物件上其他的动画暂时停止。
选择Play Animation,使用Ctrl+C,Ctrl+V方式复制出另一个节点,在复制出来的Play Animation里面将Speed Factor设定为-3,同样的将Target连接到Door_Panels,最后将Toggle Component > Turned Off连接到复制出来的Play Aniamtion > In的节点,如图所示。
2013-5-15 13:04 上传
下载附件
(33.55 KB)
2013-5-15 13:04 上传
下载附件
(90.29 KB)
按照上面的操作完成后进行Play测试,角色移动到Trigger_Alarm区域后触发警示灯与警报声,同时门口也会自动关闭,当角色离开警示区域后,警报解除,门也会再度打开。
练习完成第一个部分的操作后,对于uScript触发设定可说是有了更进一步的了解,
,在下一个教程里面,我们将使用控制台的触发来解除警示区的动作,透过这两个阶段的练习,相信对于uScript的综合运用会有全面的提升,同时也希望有更多的朋友能一起探讨uScript的未来发展与技术交流!
作者:
Zack
时间:
2013-3-12 01:47
这个应用不错,先顶一个!
作者:
王者再临
时间:
2013-3-12 16:27
这个很好,比起Playmaker的设计思路好很多
作者:
雅雅
时间:
2013-3-14 02:04
希望有更多方面的教程可以参考,谢谢!
作者:
王者再临
时间:
2013-3-16 11:08
uScript的一些命令与Playmaker不太一样,不过总的来说,u脚本是直观多了。
作者:
艾西格亚
时间:
2013-5-15 14:22
原文章遗失的图片已经补齐
作者:
筱筱
时间:
2013-5-16 08:51
谢谢楼主分享。。
作者:
libufan
时间:
2013-5-16 10:09
谢谢楼主分享。。。
作者:
fuland539
时间:
2013-5-18 23:34
给美工有的东西,呵呵,我用不上
作者:
Xn10710203
时间:
2013-7-5 17:04
果断先收藏了
作者:
Fre3Dom
时间:
2013-7-5 21:12
果然强大
作者:
radio
时间:
2013-7-6 11:01
好东西,学习下
作者:
may
时间:
2013-7-6 11:57
感觉这玩意在国内很冷门啊
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5