Unity(第二十一部)动画的基础了解(感觉不了解其实也行)

2024-03-02 5790阅读

1、动画组件老的是Animations

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第1张

  1. 动画视频
  2. Play Automatically 是否自动播放
  3. Animate Physics 驱动方式,勾选后是物理驱动
  4. Culling Type 剔除方式 默认总是动画化就会一直执行下去,第二个是基于渲染播放(离开镜头后不执行),

没有动画的话,可以自己做,点击窗口动画进入动画面板

  1. 选中物体,创建动画 动画就是属性的改变
  2. 添加属性,属性是物体的组件
  3. 先择帧数,修改属性,就会形成动画

可以通过代码播放

 // Update is called once per frame@Unity 消息10 个引用void Update()
if (input.GetMouseButtonDown(0)){
GetComponent().Play("right");
}

2、新版的Animator

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第2张

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第3张

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第4张

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第5张

  1. 创建一个物体
  2. 挂在组件
  3. 创建动画控制器,并拖入组件
  4. 做动画,如老版本,窗口创建动画,新版动画参数与老版本不同
  5. 新建动画不在动画控制器中,如果设置默认的话需要点开控制器选择;

代码示例和老版本一样

 // Update is called once per frame@Unity 消息10 个引用void Update()
if (input.GetMouseButtonDown(0)){
GetComponent().Play("right");
}

3、角色动画

下载的模型,一般都有FBX模型文件,一般在Animations或者Animator文件夹中,模型文件中有动画效果

  1. 创建一个物体
  2. 挂在组件
  3. 创建动画控制器,并拖入组件
  4. 打开控制器页面后,把模型文件拖入控制器页面

多个动作切换

控制器页面选择动画a创建过渡链接动画b,会自动切换动作,过度可以是双向的

控制过度

控制器页面选择参数,

trigger 触发设置

bool 布尔设置

int 数值设置

Foloatt 浮点设置

创建脚本

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第6张

 
if (input.GetKeyDown(KeyCode.F)){
		//触发pickup参数
		GetComponent0.SetTrigger("pickup");
}

有延迟的话,取消退出时间就好了,还有过度时间settings

4、按键让角色动起来

动画+位移+旋转朝向

这里描述一下位移等

void Start(){
	animator = GetComponent();
}
void Update(){
	//水平轴
	float horizontal = Input.GetAxis("Horizontal”);
	//垂直轴
	float vertical = Input.GetAxis("Vertical");
	//朝向的向量
	Vector3 dir = new Vector3(horizontal, 0, vertical)
	//当用户按下了方向键
	if (dir != Vector3.zero){
			//面向向量
			transform.rotation = Quaternion.LookRotation(dir);
			//播放跑步动画
			animator.SetBool("lsRun", true);
			//朝向前方移动
			transform.Translate(Vector3.forward * 2* Time.deltaTime);
	} else{
		//播放站立动画
			animator.SetBool("lsRun", false);
	}
	
}

5、如果动画不理想的话

**Rig:**动画类型:当然人性的动画可以通用,可以导入其他人形动画;

Animation:

剪辑可以创建新的动画

时间轴是动画长度

修改后需要点击应用

循环不用解释吧

变换旋转:选择烘焙就会把动画中旋转的动画取消掉

变换位置y轴:选择烘焙就会把动画中上下的动画取消掉

变换位置其他的同理

曲线:根据动画时间变换曲线的数值,火焰大小特效等使用,代码获取需要添加动画参数;下面是示例

			animator.GetFloat("lsRun");

事件:可以设置动画的某个时刻发生,如:射击等

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第7张

void letFoot(){
Debug.Log("时间1时执行");
} 
void rightFoot(){
Debug.Log("时间二时执行");
}

6、混合动画

  1. 创建状态,混合Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第8张
  2. 双击可以进入混合页面
  3. 创建一个float 参数,根据这个参数执行混合Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第9张
  4. 混合类型选择1d,就会根据一个参数执行 Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第10张
  5. 添加动画: 第 一 个 选 项 就 是 添 加 动 画 , 第 二 个 是 嵌 套 其 他 混 合 器 Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第11张Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第12张

7、动画太多,可以分层

下图用他创建过度后,然和状态都能执行他过度的动画

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第13张

下图创建子的混合器,点击进去后,可以编辑子的混合器,新的混合器会多一个图层

iUnity(第二十一部)动画的基础了解(感觉不了解其实也行) 第14张

子图层为了分类动画,可以点加号创建新的图层、图层有权重;

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第15张

但是添加图层会遮住权重小的图层,解决方案就是遮罩,那么创建遮罩

创建后可以设置人形遮罩,绿色表示需要遮罩部分,红色是不遮罩

Unity(第二十一部)动画的基础了解(感觉不了解其实也行) 第16张


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]