找回密码
 注册帐号

扫一扫,访问微社区

自学总结 unity3d动画操作以及动画实现(六)

14
回复
6812
查看
[ 复制链接 ]
排名
1
昨日变化

1592

主题

3671

帖子

1万

积分

Rank: 16

UID
2
好友
123
蛮牛币
3372
威望
121
注册时间
2013-5-19
在线时间
2328 小时
最后登录
2019-9-12

原创先锋

2014-6-4 18:30:11 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 admin 于 2013-6-5 10:09 编辑

今天主要总结的是 unity3d 中内置动画操作,以及代码事件编写动画实现

1.如何导入、执行外部动画

在项目窗口中,首先,单击选择我们所准备的动画模型,在属性面板中选择s栏,
在属性中点击“+","-"可以增加和删除动画片段,
而在Start以及End中,可以分别设置每一个动画片段的开始帧数及结束帧数。
下面是我自己动画做的一个分解:
Idle:表示我动画中的准备动作。
Aim:表示我动画中的瞄准动作。
Fire:表示我动作中的投篮动作。

1.jpg

当上面动画片段设置好以后,我们用代码来实现,如何通过键盘上的数字按键”1“来控制这些片段完成一个动画流程

首先,如何设置一个按键:
在菜单栏中选择 Edit->;Project Setting->Input
在Input属性面板中选择一项
Name设置成Play
Negative Button(按下键)设置成数字键”1“ ;
Positive Button (松开键)设置成数字键”1“ ;
如下图所示:

2.jpg

好了,按键我们在上面已经设置好了。
接下来到底如何用代码来实现通过键盘上的数字按键”1“来控制这些片段完成一个动画流程呢?
下面请看详细代码 :

  1. //是否可控
  2. bool CanControl=true;

  3. // Update is called once per frame
  4. void Update ()
  5. {
  6.    //当按下play  也就是我们上面设置的数字键”1“。
  7.   if (Input.GetButtonDown ("Play"))
  8.   {
  9.         //执行动画 叫"Aim"的动画片段 也就是我们上面设置的瞄准动画片段
  10. gameObject.animation.PlayQueued ("Aim");  
  11.   }
  12.    //当按下1键 且可控
  13.    else if (Input.GetButtonUp ("Play")&&CanControl  )
  14.    {
  15.     //执行动画 fire 也就是我们上面设置的投篮动画片段
  16.     gameObject.animation.PlayQueued ("Fire");  
  17.     //接着继续执行 Idle  也就是我们上面设置的准备动画片段
  18.     gameObject.animation.PlayQueued ("Idle");  
  19.      CanControl =false ;
  20.    }
  21.   CanControl =true;
  22. }
复制代码
通过上述简单的代码我们即可实现动画分解片段的串联
下面请看效果图:

1.按下键盘数字键"1"所执行瞄准的动作,"Aim"的动画片段

3.jpg

2.松开数字键”1“所执行的投篮动作,动画 fire

4.jpg

3. .松开数字键”1“所执行的准备动作,接着继续执行 Idle

5.jpg

2.使用内置的动画系统

首先,拖放素材到场景窗口中,设置好摄像机坐标,加入平行光

6.jpg

在游戏窗口右上角,单击 7.jpg ,在弹出的菜单中依次选择 Add Tab->Animation

8.jpg

那么我们将发现游戏窗口上多了一个叫Animation(动画)的选项卡


接下来创建一个动画,在Animation(动画)选项卡中点击 9.jpg 后,在
弹出的窗体中保存我们的动画。

10.jpg

在Animation(动画)选项卡中,我们发现会有一小段菜单栏,我们从左到右先一一解释下
1:表示调到动画上一帧;
2:表示跳刀动画下一帧;
3:文本框输入 表示任意时间点
4:添加一个key
5:表示添加一个事件(需要代码编写)动作
11.jpg

可在对应选择项后面单击”-“号,则在弹出的菜单中 选择添加一条对应曲线或 key

12.jpg

下面我们添加 Rotation.y (以Y轴旋转),值为360度。
表示我们的对象将以360度的旋转物体。

13.jpg

在曲线区域 左键按住不放 拖拽选择一块区域

14.jpg

按”F“键后,就会发现 此区域会局部放大,这样很方便我在曲线节点较多的情况下查看

15.jpg


上面简单介绍了下Unity3d的内置动画,下面 我们将介绍代码事件动画

16.jpg

如上图 我们首先定义了一个 摄像机的对象
然后 写了2个公共事件方法
CameraFarAway():这个方法我们实现了 摄像机视角拉远
CameraClose():这个方法我们实现了 摄像机视角拉近

然后通过上面的方法,在对应事件节点添加一个事件动画 即可实现 拉远拉近的动画
如下图:

视角拉近 叉车旋转,叉车前面的夹子下降的动画
17.jpg

视角拉远 叉车旋转,叉车前面的夹子上升的动画

18.jpg



unity3d代码实现动画功能
  1. //定义一个时间变量
  2. public float time=5.0f;
  3. // Use this for initialization
  4. void Start () {
  5.                 //定义一个动画曲线 起始位置 坐标为-3.023f,经过5.0秒后 坐标移动到2.96f
  6. AnimationCurve curve=AnimationCurve.Linear (0.0f,-3.023f,time,2.96f);
  7. //添加
  8. curve.AddKey (2*time,-3.023f );
  9. //创建一个动画片段
  10. AnimationClip clip=new AnimationClip ();
  11. //设置该片段中的曲线对象 以X轴移动
  12. clip.SetCurve ("",typeof (Transform ),"localPosition.x",curve );
  13. //添加该片段到动画
  14. animation.AddClip (clip,"Test" );
  15. //播放名叫“Test”的动画片段
  16. animation.Play ("Test");
  17. //循环播放该动画
  18. animation.wrapMode =WrapMode.Loop ;
  19. }
  20. // Update is called once per frame
  21. void Update () {
  22. }
复制代码
由上可以看出 代码创建 跟昨天所总结内部设置动画差不多
首先 创建一个曲线 然后由曲线生成片段 最后由片段生成动画。



来自QQ群:290248177     By. ζޓއއއ 随风去旅行  QQ:512241701
unity3d 动作播放;unity3d time.time;unity3d y轴;unity3d添加风没反应;unity3d 按键移动物体;unity3d轴向问题;unity3d播放模型动画;unity3d拖拽物体移动;unity3d 控制摄像机;unity3d 删除项目;unity3d 播放动作;unity3d time;unity3d y轴移动;unity3d怎么添加风;unity3d添加风;unity3d按键物体移动;unity3d轴变了;unity3d 模型动画播放;unity3d拖拽物体;unity3d 摄像机控制;unity3d项目如何删除
回复

使用道具 举报

排名
23066
昨日变化
1

2

主题

28

帖子

88

积分

Rank: 2Rank: 2

UID
1785
好友
0
蛮牛币
107
威望
0
注册时间
2013-8-9
在线时间
34 小时
最后登录
2018-7-20
2014-8-22 15:04:14 显示全部楼层
没有源码 啊:(
回复 支持 反对

使用道具 举报

4四处流浪
384/500
排名
6686
昨日变化

2

主题

127

帖子

384

积分

Rank: 4

UID
3199
好友
2
蛮牛币
700
威望
0
注册时间
2013-9-4
在线时间
55 小时
最后登录
2015-4-22
2014-9-12 15:00:24 显示全部楼层
好好学习
回复 支持 反对

使用道具 举报

4四处流浪
384/500
排名
6686
昨日变化

2

主题

127

帖子

384

积分

Rank: 4

UID
3199
好友
2
蛮牛币
700
威望
0
注册时间
2013-9-4
在线时间
55 小时
最后登录
2015-4-22
2014-9-12 16:33:20 显示全部楼层
{:104:}
回复

使用道具 举报

7日久生情
2079/5000
排名
598
昨日变化

0

主题

458

帖子

2079

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
3744
好友
0
蛮牛币
4982
威望
0
注册时间
2013-9-12
在线时间
240 小时
最后登录
2016-5-20
2014-9-16 09:39:16 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

4四处流浪
410/500
排名
6050
昨日变化

0

主题

104

帖子

410

积分

Rank: 4

UID
4255
好友
1
蛮牛币
416
威望
0
注册时间
2013-9-21
在线时间
78 小时
最后登录
2014-5-13
2014-9-23 14:58:11 显示全部楼层
学习了~~~
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1459/1500
排名
1177
昨日变化

3

主题

243

帖子

1459

积分

Rank: 6Rank: 6Rank: 6

UID
3935
好友
1
蛮牛币
3190
威望
0
注册时间
2013-9-16
在线时间
225 小时
最后登录
2019-6-30
2014-9-27 21:43:52 显示全部楼层
以后再看!
回复 支持 反对

使用道具 举报

5熟悉之中
572/1000
排名
3700
昨日变化

2

主题

59

帖子

572

积分

Rank: 5Rank: 5

UID
8008
好友
0
蛮牛币
1240
威望
0
注册时间
2013-11-14
在线时间
105 小时
最后登录
2019-9-11

游戏蛮牛QQ群会员活力之星

2014-12-29 22:55:00 显示全部楼层
模型啥的 有共享不 ...
回复 支持 反对

使用道具 举报

5熟悉之中
572/1000
排名
3700
昨日变化

2

主题

59

帖子

572

积分

Rank: 5Rank: 5

UID
8008
好友
0
蛮牛币
1240
威望
0
注册时间
2013-11-14
在线时间
105 小时
最后登录
2019-9-11

游戏蛮牛QQ群会员活力之星

2014-12-30 10:56:11 显示全部楼层
那个 升降机部分是哪拉的曲线阿...没有模型尝试不了...
回复 支持 反对

使用道具 举报

排名
17816
昨日变化

0

主题

31

帖子

83

积分

Rank: 2Rank: 2

UID
27709
好友
0
蛮牛币
97
威望
0
注册时间
2014-6-2
在线时间
18 小时
最后登录
2015-3-28
2015-6-2 13:38:30 显示全部楼层
学习中................
回复

使用道具 举报

6蛮牛粉丝
1147/1500
排名
3330
昨日变化

30

主题

431

帖子

1147

积分

Rank: 6Rank: 6Rank: 6

UID
26734
好友
5
蛮牛币
3166
威望
0
注册时间
2014-5-26
在线时间
204 小时
最后登录
2016-1-5

VIP活力之星

2015-6-12 16:10:01 显示全部楼层
路过!!!!!!!!
回复

使用道具 举报

排名
64937
昨日变化

0

主题

2

帖子

7

积分

Rank: 1

UID
81882
好友
0
蛮牛币
10
威望
0
注册时间
2015-3-20
在线时间
3 小时
最后登录
2015-3-23
2015-3-22 23:50:51 显示全部楼层
感谢学习到了!!!!
虽然动画目前还没用到,但是先了解一下
回复 支持 反对

使用道具 举报

9以坛为家
20421/50000
排名
463
昨日变化

236

主题

1万

帖子

2万

积分

Rank: 9Rank: 9Rank: 9

UID
78862
好友
19
蛮牛币
39838
威望
0
注册时间
2015-3-11
在线时间
3311 小时
最后登录
2019-9-12
QQ
2017-6-28 11:11:13 来自Mobile--- 显示全部楼层
分享源码
9.png
回复

使用道具 举报

9以坛为家
20421/50000
排名
463
昨日变化

236

主题

1万

帖子

2万

积分

Rank: 9Rank: 9Rank: 9

UID
78862
好友
19
蛮牛币
39838
威望
0
注册时间
2015-3-11
在线时间
3311 小时
最后登录
2019-9-12
QQ
2017-6-28 14:44:42 来自Mobile--- 显示全部楼层
风险源码啊
.png
回复

使用道具 举报

9以坛为家
20421/50000
排名
463
昨日变化

236

主题

1万

帖子

2万

积分

Rank: 9Rank: 9Rank: 9

UID
78862
好友
19
蛮牛币
39838
威望
0
注册时间
2015-3-11
在线时间
3311 小时
最后登录
2019-9-12
QQ
2017-6-28 15:10:47 来自Mobile--- 显示全部楼层
不错,要是有源码更好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则