查看: 1388|回复: 5
打印 上一主题 下一主题

[其他] 简单的动画混合 Animation Mixing

[复制链接]

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-6-25 01:23:23 |只看该作者 |倒序浏览
Animation Mixing (动画混合),什么是动画混合呢?举个简单的例子吧,一个模型现在有3种动作,分别是idle、walk、shoot,在unity3d中一个Layer只能播放二种动画,shoot动作只影响左肩膀的骨骼,而不会影响腿部的动作,所有这里就可以把shoot和walk进行Mixing。
  1. function Start ()
  2. {

  3. //增加一个动画剪辑片段

  4. //
  5. animation.AddClip(animation["shoot"].clip, "shootUpperBody");
  6. animation["shootUpperBody"].AddMixingTransform(transform.Find("mover/gun")); //@parm 路径
  7. animation["shootUpperBody"].AddMixingTransform(transform.Find("mover/roothandle/spine1"));
  8. //设置动画模式
  9. animation.wrapMode = WrapMode.Loop;

  10. animation["jump"].wrapMode = WrapMode.Clamp;
  11. animation["shoot"].wrapMode = WrapMode.Clamp;
  12. animation["shootUpperBody"].wrapMode = WrapMode.Clamp;

  13. // Put idle and run in a lower layer. They will only animate if our action animations are not playing
  14. animation["idle"].layer = -1;
  15. animation["run"].layer = -1;

  16. animation.Stop();
  17. }
  18. //Unity3D:www.unitymanual.com

  19. function Update () {
  20. if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.1)
  21. {
  22.   animation.CrossFade("run");
  23.   animation["run"].speed = Mathf.Sign(Input.GetAxis("Vertical"));
  24. }
  25. else
  26.   animation.CrossFade("idle");

  27. if (Input.GetButtonDown ("Jump"))
  28. {
  29.   animation.CrossFade("jump", 0.3);
  30. }
  31.   if (Input.GetButtonDown ("Fire1"))
  32. {
  33.   if (animation["run"].weight > 0.5)
  34.    animation.CrossFadeQueued("shootUpperBody", 0.3, QueueMode.PlayNow);
  35.   else
  36.    animation.CrossFadeQueued("shoot", 0.3, QueueMode.PlayNow);
  37. }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-6-25 02:34:59 |只看该作者
Thanks for sharing your experience!
回复

使用道具 举报

3

主题

1

听众

6189

积分

高级设计师

Rank: 6Rank: 6

纳金币
370
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-6-25 08:55:44 |只看该作者
这代码很实用
回复

使用道具 举报

wucnj    

1

主题

1

听众

3160

积分

中级设计师

Rank: 5Rank: 5

纳金币
1065
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2014-6-25 09:03:53 |只看该作者
感谢分享!!!
回复

使用道具 举报

115

主题

3

听众

5676

积分

高级设计师

Rank: 6Rank: 6

纳金币
7268
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2014-6-25 16:52:01 |只看该作者
感谢分享!
回复

使用道具 举报

0

主题

2

听众

3482

积分

中级设计师

Rank: 5Rank: 5

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2014-8-12 21:02:28 |只看该作者
Thanks for sharing !
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-17 04:31 , Processed in 0.402927 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部