|
首先感谢头目解答了不少疑惑。感谢AMO画的瞄准镜图像。
此演示只是粗浅的演示,教程也是粗浅的教程,仅起抛砖引玉作用,还有些东西会继续添加上来,不过近期要开始上班,不知道能否完成。
关于演示没有什么说的,自己测试即可,就不弄视频了。按1开始进入第三人称视角模式,asdf控制移动,鼠标右键开启瞄准模式
瞄准模式无法移动。
此演示理论上应该支持多玩家使用。但是没有测试过。
关于演示就说这么多。
下面是关于制作此类系统的基本教程。
FPS效果分为第一人称及第三人称的,这个的差别只是在于视角距离而已。
实现第一或第三人称视角跟随,一般来说有三种选择:
1、不断平移镜头。此方法是最笨的方法,周期移动镜头到单位位置,套用镜头属性……一般我们都不会用这样的方法。
2、绑定镜头到单位。这个方法的优点是,鼠标滚轮不会对镜头产生影响,但是视角前后移动时会有明显的不连贯感。
3、绑定镜头到单位组。这种方法的优点是,任何方向的视角移动都很连贯。但是需要禁用UI界面,并且会受到滚轮的影响。
具体做法:(平移镜头的方法就不做介绍了。)
一、 做跟随视角需要使用到的几个动作如下:
相关动作最好自己试验一下,才能正确了解它的作用。[trigger]
鏡頭 -為玩家1鎖定鏡頭滑鼠相對模式停用
鏡頭 -為玩家1鎖定鏡頭滑鼠相對模式停用
[/trigger]
这两个动作一起使用来实现跟随视角系统的基本控制,选择启用时有效,即隐藏鼠标并且由鼠标移动控制视角。(此时鼠标虽然隐藏,但是实际位置被锁定到屏幕的中心,此时点击左右键有效)[trigger]
鏡頭 -為玩家1在2.0秒內將鏡頭平移至((觸發的區域)的中心),且初速為已存在的速度%,減速10%,以及不執行智能平移
[/trigger]
最基本的平移镜头,没什么说的。一般不使用智能平移,0秒立即移动。[trigger]
鏡頭 -為玩家参数 玩家設定鏡頭滑鼠偏擺旋轉速度為参数 视角水平滚动速度
鏡頭 -為玩家参数 玩家設定鏡頭滑鼠間距旋轉速度為参数 视角俯仰滚动速度
[/trigger]
设置鼠标控制镜头的移动速度,偏摆是指水平方向的速度,间距是指水平方向的速度。[trigger]
鏡頭 -在2.0秒鐘內為玩家1套用(預設遊戲鏡頭)為有已存在的速度%初始速度,10%減速,並包括目標
鏡頭 -在2.0秒鐘內為玩家1套用鏡頭物件距離數值為有已存在的速度%初始速度,10%減速
[/trigger]
这两个很相近,基本是相同的,套用镜头属性XX为YY与套用XX属性值为YY的镜头物件是一样的。
我已经确认效果的镜头物件的属性如下。
攻角:实际就是镜头的俯仰角度。用于控制镜头向上向下看。
侧滚:就是旋转镜头,左天右地或者地上天下的效果就是调整这个属性实现的。
偏移高度:在攻角不变的情况下镜头的垂直高度的变化。
旋转:镜头的面向角度,控制向地图的东南西北哪个方向看。
视野:能够看到的范围,这个没怎么使用过,具体效果自己测试吧。
距离:就是镜头到目标的距离,第一人称还是第三人称的效果就在于这个属性的设定。
其他属性的效果还没测试,搞明白后我会补上。[trigger]
鏡頭 -為玩家1儲存目前鏡頭設定
鏡頭 -為玩家1在0.0秒鐘內以已存在的速度%初始速度和10%的減速還原已儲存的鏡頭設定
[/trigger]
似乎每个玩家每次只能存储一个镜头。先存储后还原。[trigger]
鏡頭 -為玩家1鎖定鏡頭輸入
[/trigger]
玩家没法控制了,但是触发还是可以控制的。[trigger]
鏡頭 -為玩家1(最後被創造的單位)含鏡頭和清除目前目標跟隨
[/trigger]
使用转换单位到单位组来绑定到某一个单位身上。如之前所述,这种绑定不会影响到鼠标滚轮。使用跟随来绑定目标,使用停止跟随来取消绑定。此动作的效果是自动平移到设定的单位组中距离当前镜头位置最近的一个单位的位置。移动镜头有些延迟(单位移动后晚一会才会移动镜头)。
特别注意一点,使用此动作绑定玩家视角时,如果你修改了镜头距离,当你的镜头俯仰变化时镜头的距离也会变化,并且镜头无法透过地面一下,解决方法是禁用玩家的UI(使用者界面),使用如下动作。[trigger]
使用者介面 -為(玩家群組(参数 玩家))隱藏遊戲的使用者介面
[/trigger]
使用后问题解决,同时可以透过地下向上看了。[trigger]
鏡頭 -為玩家1讓鏡頭注視((觸發的區域)的中心)持續2.0秒鐘內有已存在的速度%初始速度,10%減速
鏡頭 -為玩家1讓鏡頭注視並跟隨無動作者
鏡頭 -為玩家1讓鏡頭注視並跟隨無單位
[/trigger]
这三条动作的差别就在于绑定的对象不同,第一条是绑定到点,第二条是绑定到演算体,第三条是绑定到单位的演算体。
绑定效果很直接,移动是立即进行的。镜头不会平移,而是在保证绑定目标在镜头的中心的前提下调整镜头的俯仰、距离和旋转。
特别注意一点,在使用此动作绑定玩家视角时,如果你希望修改视角属性,在使用套用镜头物件或属性动作处理时,一定要是0秒,否则无效。
二、两种绑定方法的缺点修复。
1、绑定镜头到单位这个动作的缺点是镜头不会平移,无法保证视角跟随绑定单位,在相对视角方向切向移动时(即只是镜头的旋转属性变化),效果很好,但是平行视角方向时就需要做一些调整了。
具体的方法就是循环套用镜头属性距离为某一固定值。而且,仅仅这样也还是有问题,当绑定单位面向向视角方向靠近时,镜头会积累攻角的属性变化,最后导致玩家视角变成垂直向下看。所以要在每次还原视角镜头的攻角属性。由于同时会掺有鼠标控制的镜头攻角变化,于是只是在变化小于某一值的时候才还原。
具体使用触发如下:[trigger]
<> - 未標題的觸發器 001
事件
計時器 -遊戲時間的每0.02秒
本地變數
條件
動作
鏡頭 -在0.0秒鐘內為玩家玩家套用鏡頭物件距離移动控制 视野距离[未知索引]為有已存在的速度%初始速度,0%減速
一般 -若滿足(條件)則執行(動作)否則執行(動作)
If
And
條件
(玩家玩家目前的鏡頭俯仰)<(移动控制 原始视角俯仰[未知索引]+移动控制 视角俯仰修正)
(玩家玩家目前的鏡頭俯仰)>(移动控制 原始视角俯仰[未知索引]-移动控制 视角俯仰修正)
則
鏡頭 -在0.0秒鐘內為玩家玩家套用鏡頭物件攻角移动控制 原始视角俯仰[未知索引]為有已存在的速度%初始速度,0%減速
Else
變數 -設定移动控制 原始视角俯仰[未知索引]=(玩家玩家目前的鏡頭俯仰)
[/trigger]
尽管这样修正,还有两个问题。一方面是移动时镜头不连贯,可以看出镜头一下下的移动,循环间隔的增加并不会显著的缓解这一问题,因为这种绑定的方式下套用镜头物件时间只能为0,所以也没有其他好的解决方法。第二方面就是从正上方看向目标单位时,镜头会快速的变化(旋转属性转向180度)。此问题暂时还没想到好的解决方法。
详细效果请看演示。
2、现在的跟随视角一般都使用绑定镜头到单位组的方法。但是因为暂时除了不停的重置镜头距离没有其他的好方法。麻烦的是,在实际使用中重置的距离很可能是依据情况变化的(例如从第一人称视角变为第三人称视角),所以做起来很麻烦,需要根据条件来判断使用哪个条件。
总体来说,一般的地图还是使用绑定单位组的方法比较好,因为我们在一般情况下不需要使用滚轮,所以对游戏的效果影响很小。
详细效果请看演示。
|
|