Unity3D学习笔记_模型与动画
动画类型选择
Animator 组件
在Assect可以创建Animator Controller, 双击进行编辑 之后点击运行就可以看到crow在飞了
更复杂的animation controller
下面这张图应该是在parameters增加一些参数 增添一个c#脚本,同时给crow添加rigbody属性。 按照课程提示编写, 但是运行之后好像效果出不来, 经过测试之后发现fixupdate的内容执行不了,所以对程序修改了一下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CrowController : MonoBehaviour
{
public float speed = 4.0f;
private Animator ani;
private Rigidbody rig;
void Start(){
ani = GetComponent<Animator>();
rig = GetComponent<Rigidbody>();
Debug.Log("READY!");
}
void Update(){
if(Input.GetButtonDown("Fire1")){
Debug.Log("get click.");
ani.SetTrigger("attack_1");
}
}
void OnCollisionEnter(){
ani.SetBool("live",false);
}
}
这样子运行之后, 每次点击鼠标左键, crow就会攻击
配置 Avatar
预备:
- 下载资源Adventure - Sample Game
- 下载资源Standard Assets
- 打开Adventure - Sample Game的 Models 目录,将 Player 和 FruitVender 加入场景
- 在 Standard Assets / Characters / ThirdPersonCharacter / Animation / 中找到 HumanoidIdleJumpUp 的动画 JumpUpidIdleJumpUp
创建动画控制器(仅动作 JumpUpidIdleJumpUp ) - 将动画添加到 Player 和 FruitVender
- 运行
可以看到player会上跳, 但是FruitVender不会动
为了让FruitVender动起来, 先从modles拷贝一份出来(我直接从保存文件夹copy一份了) 然后点击configure… 因为会自动匹配骨架, 可以直接下拉然后点击done 出去之后点回去对象, 检查:Configuaration 有一个勾表示匹配成功 然后就把这个对象拖拉出来,并且附上animator controller, 就可以动了
1D 混合
- duck对象在crow同一个asset里面
- 把duck改为generic动画
- 创建一个新的animator controller
- 点击这个controller进行编辑, 在编辑界面右键create state, from new blend tree
然后双击这个黄色方块进入编辑blend tree
|