注:本系列进阶教程仅针对引擎编辑器:v1.2.2及以下版本 
 
 动画融合 
 
 素材资源   工程文件 
 
 在本实例中,我们分别制作了融合后的人物动画和未融合的人物动画,通过两者的对比,展示了Genesis-3D编辑器所提供的完美的动画融合效果。 
 
 1.创建工程。我们可以直接利用之前做好的“动画”工程。在入门实例中找到“动画”,点击“工程下载”下载工程,打开工程,一个人物动画出现在场景中: 
 
 
 
 2.运行游戏,可以看到人物动画效果: 
 
 
 
 3.为了形成对比,我们需要在场景中放两个人物动画,一个设置动画融合,另一个不设置,通过比较看出效果: 
 
 (1)复制人物动画zhujue_02,粘贴,可得到完全相同的第二个人物动画: 
 
 
 
 (2)此时场景中就有了两个人物。从左到右分别命名为"player01"和"player02",调整人物位置,使其如下图排列: 
 
 
 
 4.编辑代码 
 
 (1) 找到动画的代码文件UserDefCSharp.csproj,用Mono打开。如果已经将Mono和Genesis-3D编辑器连接,那么直接双击脚本文件,就能打开。 
 
 (2)往里添加控制动画融合的代码。添加后代码如下: 
 
 
  
   
   
   |  02  |  
       using System.Runtime.CompilerServices;  |  
     
  
   
   
   |  04  |  
       namespace ScriptRuntime  |  
     
  
   
   
   |  06  |  
           public class ChactorControll : ScriptableClass  |  
     
  
   
   
   |  08  |  
               string ForwardAnim = "asset:forward.anim";  |  
     
  
   
   |  09  |  
               string RelaxAnim = "asset:relaxation2.anim";  |  
     
  
   
   |  10  |  
               public string PlayType="PLAYING";  |  
     
  
   
   |  11  |  
               //定义字符串并调用编辑器内部存储的动画资源。  |  
     
  
   
   |  12  |  
               public override void OnFrame()  |  
     
  
   
   
   |  14  |  
                   if (Input.KeyPressed(Code.W) )  |  
     
  
   
   
   |  16  |  
                       if(PlayType=="PLAYING")  |  
     
  
   
   
   |  18  |  
                           Owner.Animation.PlayAnimation(ForwardAnim);  |  
     
  
   
   
   |  20  |  
                       else if(PlayType=="CROSSFADING")  |  
     
  
   
   
   |  22  |  
                           Owner.Animation.CrossFading(ForwardAnim,0.5f);  |  
     
  
   
   
   
   
   
   
   |  28  |  
                       Owner.Animation.CrossFading(RelaxAnim);  |  
     
  
   
   
   
   
   
   
  
 (3)点击"Build"—>"Build UserDefCSharp",对脚本进行编译。左下方出现"构建成功"表示编译通过: 
 
 
 
 5.在代码中添加的字符串变量PlayType是可以从编辑器中获取的内容。此时我们可以在右侧脚本栏中看到多了一个PlayType(string)输入框,里面输入的内容就是程序中变量PlayType获得的值。我们设置player01的PalyType值=PLAYING,player02的PalyType值=CROSSFADING: 
 
 
 
 
 
 6.运行并发布游戏: 
 
 每个人物都有休闲动作和前进动作。在播放休闲动作时,两个动画的效果一样: 
 
 
 
 当按住键盘上W键,需要实现从休闲动画到前进动画的转换时,两个动画人物的效果出现差别:左侧player01由于设置了动画融合,所以在转换时有一个自然地过渡,右侧player01由于没有设置动画融合,发生转变时比较突然,动作生硬,没有过渡: 
 
 
 
 看到这里,是不是已经了解了Genesis-3D所能实现的强大的动画融合效果呢?赶快动手做出漂亮流畅的动画效果吧! 
 
                                                    
                                            来源:oschina
链接:https://my.oschina.net/u/1432254/blog/195021