当前位置:   article > 正文

[unity3d插件]如何在Animator中使用刀光残影插件”PocketRPGTrails”_unity残影插件

unity残影插件


今天到家吃完饭,突然想敲代码……不知道怎么会有这种想法.

打开了尘封了多年的项目,那是在学校跟几个朋友一起合作写的MOBA类型的游戏,想起了当年的热血,也准备在工作之余重新开启这个项目,这些都是题外话,项目中有刀光残影的效果,是使用的一个叫《PocketRPGTrails》的插件,效果还是不错的,不过插件说明和案例都是用的animation组件,那么animator下怎么使用呢?

[unity3d插件]如何在Animator中使用刀光残影插件

unity残影拖尾插件PocketRPGTrails

下载地址:http://pan.baidu.com/s/1i3kq5V3


首先,插件中提供的AnimationController脚本就不能使用了,需要我们自己写一个Trail脚本。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using  UnityEngine;
using  System.Collections;
public  class  Trail : MonoBehaviour {
     public  WeaponTrail TrailObj; //武器柄的节点
     private  float  t = 0f;
     private  float  tempT = 0f;
     private  float  animationIncrement = 0.003f;
     void  Start () {}
     void  LateUpdate()
     {
         t = Mathf.Clamp(Time.deltaTime, 0, 0.066f);
         if  (t > 0)
         {
             while  (tempT < t)
             {
                 tempT += animationIncrement;
                 if  (TrailObj.time > 0)
                 {
                     TrailObj.Itterate(Time.time - t + tempT);
                 }
                 else
                 {
                     TrailObj.ClearTrail();
                 }
             }
             tempT -= t;
             if  (TrailObj.time > 0)
             {
                 TrailObj.UpdateTrail(Time.time, t);
             }
         }
     }
}

把这个脚本add到你角色的节点上,如下图:

[unity3d插件]如何在Animator中使用刀光残影插件

再找到你模型挂武器的武器节点,比如说右手拿武器,那就找到右手这个骨骼的节点,反正最好是武器把手的位置。

如下图:

[unity3d插件]如何在Animator中使用刀光残影插件

注意:一定一定是骨骼的节点,或者自己在他的节点下新建一个节点。

武器把手的节点add上插件提供的“WeaponTrail”脚本。

除了WeaponTrail脚本外,节点上必须包含的组件如下图:

[unity3d插件]如何在Animator中使用刀光残影插件

注意:记得注意shader是否选择的是Paiticles/Additive!并且图片选择的是Assets/PocketRPG Trails/Prefabs/Effects/Attacks/weaponTrail02,不是不能改,而是以我们程序员的审美,可能会自己改的很丑,或者说是我的审美很差。。。直接用插件提供的效果就已经很不错~所以最好不要改拉~

最后把这个节点拖到我们Trail脚本的TrailObj属性上,如下图:

[unity3d插件]如何在Animator中使用刀光残影插件

加上自己的Animator,运行并播放攻击动画看一下效果~

[unity3d插件]如何在Animator中使用刀光残影插件

注意:适当的调整一下武器把手的节点上的“WeaponTrail”脚本的属性,比如把Height调整成真正角色武器的长度、Time刀光残影残留时间等等的属性自己调整一下,调的好看一点~

看上面的gif会发现角色在移动和武器收回的过程中都带有拖尾效果,虽然挺炫,但是不符合常理,我们怎么样只有攻击过程中有残影,并且收回武器的时候没有残影呢?那还要改一下我们的Trail脚本,并且添加动画事件。先说Trail脚本。

  1. 在Start()函数中先把残影关掉

  2. 增加开启残影函数(用于动画关键帧调用)

  3. 增加关闭残影函数(用于动画关键帧调用)

Trail更改后如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using  UnityEngine;
using  System.Collections;
public  class  Trail : MonoBehaviour {
     public  WeaponTrail TrailObj;
     private  float  t = 0f;
     private  float  tempT = 0f;
     private  float  animationIncrement = 0.003f;
     void  Start () 
     {
         //先把残影关掉
         TrailObj.SetTime(0.0f, 0.0f, 1.0f);
     }
     public  void  TrailStart()
     {
         //设置拖尾时长
         TrailObj.SetTime(2.0f, 0.0f, 1.0f);
         //开始进行拖尾
         TrailObj.StartTrail(0.5f, 0.4f);
     }
     public  void  TrailStop()
     {
         //清除拖尾
         TrailObj.ClearTrail();
     }
     void  LateUpdate()
     {
         t = Mathf.Clamp(Time.deltaTime, 0, 0.066f);
         if  (t > 0)
         {
             while  (tempT < t)
             {
                 tempT += animationIncrement;
                 if  (TrailObj.time > 0)
                 {
                     TrailObj.Itterate(Time.time - t + tempT);
                 }
                 else
                 {
                     TrailObj.ClearTrail();
                 }
             }
             tempT -= t;
             if  (TrailObj.time > 0)
             {
                 TrailObj.UpdateTrail(Time.time, t);
             }
         }
     }
}

然后找到攻击动画,找到自己觉得应该出现残影的那一帧,添加一个事件。

如我的攻击动画第一帧,添加上一个事件,

如何添加动画关键帧:怎么预览动画肯定知道吧,点击Events下的按钮,就是在当前预览的动画暂停的那一帧上添加一个事件。

弹出来的窗口Object选择 Trail脚本,Function写上"TrailStart"。这样就是当动画播放到这一帧的时候,会自动调用这个函数开启残影。如下图:

[unity3d插件]如何在Animator中使用刀光残影插件

那么结束就应该是找到结束的那一帧添加一个事件,调用TrailStop函数。这里就不写、也不放图了。

一些细节就看自己慢慢调了~


我们的MOBA里面的效果:

[unity3d插件]如何在Animator中使用刀光残影插件

[unity3d插件]如何在Animator中使用刀光残影插件

有任何问题直接留言或者微博或者qq都可以~及时解答大家问题~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/281982
推荐阅读
相关标签
  

闽ICP备14008679号