taecg 发表于 2018-5-5 14:05

特效福音:再也不怕特效与动作的联调了

想必在坐的各路特效大师都遇到过一个痛点:就是特效与动作联调时不方便,不直观!那么这个工具就是来解决此需求的,废话不多说,先列下大致功能点:

[*]方便动作与特效联调。
[*]支持新增无限个动作。
[*]一个动作支持多个子特效。
[*]可自由定义虚拟体。
[*]特效可绑定到自定义的虚拟体上。
[*]特效详细参数调整,包括多种运动形式。
[*]技能范围参可视化参考。


光看功能点可能不是很明白,那么接下来我们直接通过一个示例来演示下效果。
   0.先放出插件(只收一个券!):   **** 本内容需购买 ****

   1.导入AnimationSkillDebugger.package插件包(此包中包含脚本功能和示例文件)。

   2.将Assets\taecgLibrary\Tools\AnimationSkillDebugger\DEMO\Arts\Role.FBX模型文件直接拖入到场景中。

   3.为这个角色添加"AnimationSkillDebugger.cs"组件,至于上面有没有Animation组件,无所谓,不用管它。这时脚本上会有个红色的警告,我们需要为它添加一个数据文件。
      

   4.接下来,我们在工程内任意位置点右键>Creats>New AnimationSkillData,以便创建一个新的动作技能数据文件,并将这个文件拖放到刚才角色身上脚本中的MyData中,这时警告消失。
      

   5.我们先忽略虚拟体,直接点击组件上的"ADD ANIMATION",添加我们的第一个动作。
      

   6.Default AnimationClip:代表默认动作,当播放完其它动作时会自动转换到此动作进行播放,一般指定为待机。
      Name:动作名称,可自由定义,显示在界面上。
      AnimationClip:动画文件,示例中文件在Assets\taecgLibrary\Tools\AnimationSkillDebugger\DEMO\Arts\Role\animations\Role@hit01和Role@ready中。
      

   7.此时我们先运行一下,Game视图中的效果如下。
      在界面的左上角,会出现我们刚才定义的动作,以按钮的形式展现,此时点击这个按钮即可播放相应的动作。
      

   8.然后我们回到刚才的脚本组件上,点击“ADD EFFECT”,添加我们的第一个子特效!            示例特效存放位置:Assets\taecgLibrary\Tools\AnimationSkillDebugger\DEMO\Arts\Effect\Prefabs
      
      参数说明:

[*]Effect:播放此动作时将播放哪个特效文件,支持从Project和Hierarchy中指定,但是如果想保存到数据库,则需要从Project中拖入指定。
[*]Virtual Point:虚拟体,此特效生成挂的虚拟体点。
[*]Offset:针对虚拟体进行位置偏移,如果没有指定虚拟体(即虚拟体为None),则是以角色的中心点为参考进行偏移。
[*]Rotate:针对虚拟体进行的旋转偏移。
[*]Is Follow:此特效是否跟随虚拟体进行移动。
[*]Delay Time:此特效延迟生成的时间,主要用于对动作时间点。
[*]Life Time:此特效的生命时长,单位为秒,时间到了后此特效会被删除(只是删除生成的特效,不用担心原始资源)。
[*]Move Type:运动类型。
[*]Amount:生成特效的数量。
[*]Direction Min和Direction Max:方向最小值和最大值,生成的特效会在这区间进行随机分布。
[*]Interval Time:生成多个特效时,它们间的间隔时间。单位为秒。
[*]Delete:删除此子特效节点。

   9.此时我们再运行游戏 ,当点击“被击”按钮时会播放动作,同时也会播放我们指定的特效。
   小技巧:是不是感觉角色视角不对,想调整,这里可以直接通过在Game视图中利用右键进行操作,右键拖动=旋转视角,中键拖动=移动视角,滚轮=缩放视角,是不是很方便呀。。。当然,最好的是先将Game视图调整的近一些,然后再运行进行右键操作会更方便!

   10.此时我们发现特效的位置不正确,接下来我们调整这个问题。
       正常情况下,被击特效都是挂在特定的虚拟体上的,如果角色没有相应的虚拟体,你可以通过特效参数中的位置偏移来实现,不过好在我们这个角色是正规的,有相应的虚拟体,那我们来讲解下如何创建虚拟体。

   11.首先确认你的角色下面有没有相应的虚拟体,否则会添加无效!

   12.在我们的脚本组件中,展开最上面的Virtual Point,在Add Point中输入虚拟体的名称(注意不要输错,最好用复制的形式),然后点击Add按钮即可!
      

   13.然后在我们子特效参数中的Virtual Point选择刚才新建的v_hit.
      这时再运行,特效位置就正确了!
      小技巧时间又来了:运行后,当点击过一个按扭后,可直接通过按键盘上的G键来重复播放刚才的动作,省云重复点击的麻烦。。。
      

   14.现在我们的被击动作已经有了一个被击特效了,但是我们还想再给这个动作加一个飘血数字特效,OK,让我们在脚本组件上的被击区域内再次点击一次ADD EFFECT按钮。
      我们将effect_number这个特效指定到新增的子特效上,并将Offset的Y设置为1。
      

   15.完成,通过这个示例把整个工具的流程走了一遍,还有好多功能由于篇幅问题没有讲解到,大家可以去摸索下。


最最后,打个小广告:
此工具是我独自开发完成的,这里放出的是目前的最新版本v1.0.1.
AssetStore地址:
https://www.assetstore.unity3d.com/#!/content/71357
欢迎大家赏脸支持正版,另外对此工具还有什么建议都可以直接回复告诉我,后续会不断的进行完善!








别委屈自己 发表于 2019-8-15 06:43

厉害,给你点赞

白绫栤柩 发表于 2019-7-25 16:12

感谢楼主分享

Ye末季 发表于 2019-6-28 10:01

感谢分享

透明龙 发表于 2019-5-28 10:26

先感谢,慢慢研究。

Frank_robbet 发表于 2019-4-8 23:02

总之感觉楼主很牛逼,这种东西也能做出来

灰菲 发表于 2019-1-2 14:17

挺好啊!

petter008 发表于 2018-11-14 17:05

请教下创建Virtual Point后,如何调整Virtual Point的位置?

断水流师兄 发表于 2018-9-26 00:23

{:6_206:}{:6_206:}{:6_206:}

grady 发表于 2018-9-18 23:24

特效师的福音啊!感谢
页: [1] 2 3 4
查看完整版本: 特效福音:再也不怕特效与动作的联调了