Unity 特效 之 武器拖尾效果

Pocket RPG Weapon Trails 武器拖尾效果
截图:


由于这个插件提供的 AnimationController.cs仅对 Animation动画进行支持,对 Animator动画支持的话需要自己实现。文档上说明实现的方式:
  • The WeaponTrail can be built by calling Itterate(float itterateTime) and UpdateTrail(float currentTime, float deltaTime). These functions are called by AnimationController, however if you don't want to use AnimationController you can call these yourself.
即只需要调用 ItterateUpdateTrail方法。下面使用另外的角色模型进行测试拖尾效果。

测试角色的模型包:Unity Asset Store - The Best Assets for Game Making
CSDN资源地址:SwordGirl.unitypackage-C#代码类资源-CSDN下载
首先,在Animator窗口,创建休闲idle状态和攻击attack状态,设置它们相应的Motion,设置从idle到attack的动画参数为Attack,类型为Trigger,如下图所示:


Speed属性可以控制当前状态动作的速度。接着,创建个脚本TestMyTrail.cs附加到角色上,脚本代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using UnityEngine;
using System.Collections;

public  class TestMyTrail : MonoBehaviour {

     private Animator animator;

     void Start () {
        animator = GetComponent<Animator>();
    }

     void OnGUI()
    {
         if (GUI.Button( new Rect( 005050),  "攻击"))
        {
            animator.SetTrigger( "Attack");
        }
    }
}
运行,可以看到默认角色是休闲状态,点击按钮是攻击状态,如下图所示:

查看模型,可以看到武器是绑在右手上的,如下图所示:

武器(Object003)添加一个子对象,命名为Trail,为其添加WeaponTrail.cs脚本、Mesh Renderer组件,材质为Pocket RPG Trails提供的材质,设置好如下图所示:

修改TestMyTrail.cs代码为如下:

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
50
51
52
53
54
using UnityEngine;
using System.Collections;

public  class TestMyTrail : MonoBehaviour {

     public WeaponTrail myTrail;

     private Animator animator;
     private  float t =  0.033f;
     private  float tempT =  0;
     private  float animationIncrement =  0.003f;

     void Start () 
    {
        animator = GetComponent<Animator>();
    }

     void LateUpdate()
    {
        t = Mathf.Clamp(Time.deltaTime,  00.066f);

         if (t >  0)
        {
             while (tempT < t)
            {
                tempT += animationIncrement;

                 if (myTrail.time >  0)
                {
                    myTrail.Itterate(Time.time - t + tempT);
                }
                 else
                {
                    myTrail.ClearTrail();
                }
            }

            tempT -= t;

             if (myTrail.time >  0)
            {
                myTrail.UpdateTrail(Time.time, t);
            }
        }
    }

     void OnGUI()
    {
         if (GUI.Button( new Rect( 005050),  "攻击"))
        {
            animator.SetTrigger( "Attack");
        }
    }
}
Trail对象赋给 My Trail属性,如下图所示:

现在运行,可以看到休闲状态时,武器拖尾的若隐若现,如下图所示:

攻击时的效果:

要调整好 Trail对象的位置、旋转等,尽量贴合武器,设置拖尾的高度,尽量与武器同长度,才能产生较好的效果。当攻击结束,武器往回收的时候,也会有拖尾,如下图所示:

如果要去掉这个时候的拖尾,可以采用更精确的控制拖尾的出现。选中攻击动作,切换到" Animations",播放动作,在攻击开始时刻,添加一个事件,如下图所示:

在攻击完毕,也添加一个事件,如下图所示:
点击" Apply"进行应用。修改 TestMyTrail.cs代码为如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
     void Start () 
    {
        animator = GetComponent<Animator>();
         // 默认没有拖尾效果
        myTrail.SetTime( 0.0f,  0.0f,  1.0f);
    }
    
     public  void heroAttack()
    {
         //设置拖尾时长
        myTrail.SetTime( 2.0f,  0.0f,  1.0f);
         //开始进行拖尾
        myTrail.StartTrail( 0.5f,  0.4f);
    }

     public  void heroIdle()
    {
         //清除拖尾
        myTrail.ClearTrail();
    }
现在运行,就会发现休闲状态时候,不会有拖尾效果,当进行攻击时,拖尾只在相应的时间点进行出现,如下图所示:

武器回收的时候,也不会有拖尾了,如下图所示:

参考资料:
1.Unity3D 武器拖尾效果(刀光) 使用PocketRPG Trails  http://blog.csdn.net/xv_ly15/article/details/8509781
2.Unity3D研究院之挥动武器产生的剑痕特效(四十七)  Unity3D研究院之挥动武器产生的剑痕特效(四十七) | 雨松MOMO程序研究院 
### 回答1: Unity粒子拖尾特效是一种创造自然而流畅感的特效,这种特效的产生依靠着粒子间的连续轨迹和持续性释放。它在游戏中可以制造出许多视觉上的效果,比如制造出快速移动的火球,高速前进的飞船以及射击物体之后的痕迹效果等等。这种特效不仅美观而且非常易于使用,可以通过简单的控制粒子发射器的大小、颜色和持续时间等参数来轻松地定制和创建拖尾特效Unity粒子拖尾特效能够通过移动物体、旋转物体、手动发出粒子、射击武器或者任意其他触发机制来进行触发,它的作用是在运动中加入视觉上的轨迹效果,从而让游戏效果更加美观和真实。这种特效主要是通过增加粒子间的连接性,把单独的粒子集合成一个整体,从而创造出质感更强、更加细致的自然运动效果。同时,通过调整参数可以调整拖尾的长度、宽度、曲率和透明度等属性,从而产生出各种不同效果拖尾特效。 综上所述,Unity粒子拖尾特效是一种优秀的特效技术,在游戏开发中可以增添游戏真实感,提高游戏玩家的体验。对于游戏美术设计人员来说,掌握这种技术是必不可少的。 ### 回答2: Unity粒子拖尾特效是一种在游戏或应用程序中使用的可视效果,用于增强游戏场景中运动物体的真实感和视觉效果。 在Unity中,我们可以通过创建粒子系统并为其添加拖尾模块来实现拖尾特效。首先,我们需要在场景中创建一个粒子系统,并设置其初始位置、大小、颜色等属性。然后,我们可以在粒子系统的组件面板中添加一个拖尾模块,并调整它的属性。 拖尾模块有几个重要属性。首先是“持续时间”,它控制拖尾效果持续的时间长度。其次是“宽度曲线”,它定义了拖尾的宽度变化规律,可以使拖尾变宽或变窄。还有“长度曲线”,它控制了拖尾的长度变化规律,可以根据物体的速度或其他变量实现自定义的长度变化。 在拖尾模块中,还可以设置拖尾的颜色、透明度以及混合模式,以实现更多的效果变化。我们可以根据游戏场景和物体的需求来自定义这些属性,以获得最佳的拖尾效果。 值得注意的是,在使用粒子拖尾特效时,我们应该考虑性能问题。一些特效的设置可能会增加游戏的渲染负荷,因此在使用拖尾特效时需要注意控制粒子系统的数量和其他属性,以确保游戏的帧率和性能不受影响。 总而言之,Unity粒子拖尾特效是一种简单而强大的工具,可以为游戏或应用程序增添更加逼真和吸引人的视觉效果。在使用时,我们需要根据需求调整粒子系统和拖尾模块的属性,以创建出最合适的拖尾特效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值