zoukankan      html  css  js  c++  java
  • Unity3D之挥动武器产生的剑痕特效

    网维教程网 观看很多其它教程




    眼下已知3种方法能够做这样的剑痕特效

    1.尾随特效

    2.程序实现动态面来处理剑痕动画。

    3.美术实现剑痕动画,直接坐在模型动画里面 (由于我不会美术所以这个忽略 嘿嘿)

     

    所谓剑痕特效就是尾随武器挥剑轨迹。那么我们须要在模型上找到武器挥剑轨迹的根节点。例如以下图所看到的,首先找到武器模型的根节点。假设你找不到就问问给你模型的美工,他肯定知道unity3d博客

    然后在创建一个空的对象”a”(随便起一个即可),挂在武器模型的以下。Transform的 Position 和 Rotation 都改成 0 0 0  Scale 都改成 1 1 1 。


    1.尾随特效

    Unity自带了一个叫Trail Render的组件,就是尾随特效、它能够尾随无题移动产生拖尾的效果。然后使用Component ->Effects->Trail Render把拖尾组件加入至刚刚创建的空模型中。Time是一次尾随的时间,Start Width 和 End Width能够调节拖尾的宽度。

    直接执行,怎么样?剑痕特效出来了吧?只是这样做的效果有点局限,由于武器在挥动的时候自身是会旋转的,然而这个粒子效果不会应用武器旋转的角度。它仅仅是依据武器上的一个点始终保持尾随而已。我们须要的是不仅尾随还有和原模型保持同一个角度,所以我放弃了这样的方式来制作剑痕。

    2。通过程序来动态生成面来实现剑痕特效

    后来我发如今Unity AssetStort中有剑痕的免费样例,直接搜索Pocket RPG Weapon Trails 就可以看到,以下我就来说说怎么把这个样例的剑痕特效高速加到你的project中,把组件”a“又一次改一下。unity3d官网


    然后把AnimationController 绑定在须要播放剑痕特效的模型上,在写一条測试脚本Test.cs。

     
    Test.cs

    using UnityEngine;
    using System.Collections;

    public class Test : MonoBehaviour
    {

     public WeaponTrail a;
     protected AnimationController animationController;

     void Start ()
     {
      animationController = GetComponent<AnimationController> ();
      animationController.AddTrail (a);
                    //设置拖尾时间
      a.StartTrail(0.5f, 0.4f);
                    //设置播放时间
      a.SetTime (0.5f, 0.2f, 0.2f);
         animation.Play();
     }
    }

     另外,记得一定要改动动态网格的坐标,在本例就是对象 “a”。改动的时候你能够按帧来播放游戏(快捷键Command + shift + p ),直到向以下这样,剑痕网面的角度始终跟对武器。不同的模型可能角度会有点不同,这里须要调一调。

     

    还有Unity4添加了新的动画系统,此时你在把老的模型动画托放在project中会发现已经不是Animation组件了, 而是Animator 。用曾经的方法是播放不了动画的,除非手动改动一下模型的类型为 Rig -> Legacy 、可是假设你的模型和动画很的多,程序绝对不能手动的一个一个来改动。所以我写了以下这个简单的脚本,当模型拖入Project视图时自己主动改动类型。把以下脚本放在Project视图 Editor目录下,没有的话创建一个就可以。

    using UnityEditor;

    public class EditA : AssetPostprocessor
    {
        public void OnPreprocessModel()
        {
            ModelImporter modelImporter = (ModelImporter) assetImporter;                   
           //这里是模型的缩放比例,默觉得0.01 这里我改成了1
            modelImporter.globalScale = 1f;         
                    //这里改动模型类型
      modelImporter.animationType = ModelImporterAnimationType.Legacy;
        }  
    }

     
  • 相关阅读:
    全端开发必备!10个最好的 Node.js MVC 框架
    action和servlet的关系
    js模块化
    前端类库
    Windows下配置nginx+php(wnmp)
    DllMain的作用
    在linux上实现DllMain + 共享库创建方法
    QT实现Windows下DLL程序编写
    平台相关的宏
    远程线程的注入 PE的修正
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4348694.html
Copyright © 2011-2022 走看看