Unity3D学习笔记_模型与动画

文章目录

  • Unity3D学习笔记_模型与动画
  • 动画类型选择
  • Animator 组件
  • 更复杂的animation controller
  • 配置 Avatar
  • 1D 混合


动画类型选择

unity3d spine 动画控制 unity控制模型动画_c#


Animator 组件

在Assect可以创建Animator Controller, 双击进行编辑

unity3d spine 动画控制 unity控制模型动画_unity3d spine 动画控制_02


unity3d spine 动画控制 unity控制模型动画_unity_03


unity3d spine 动画控制 unity控制模型动画_c#_04


unity3d spine 动画控制 unity控制模型动画_c#_05


之后点击运行就可以看到crow在飞了


更复杂的animation controller

下面这张图应该是在parameters增加一些参数

unity3d spine 动画控制 unity控制模型动画_Game_06


unity3d spine 动画控制 unity控制模型动画_unity3d spine 动画控制_07


增添一个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(){
        //float high = Input.GetAxis("Vertical") * speed;
        //rig.AddForce(Vector3.up * (high + 7), ForceMode.Force);
        //float right = Input.GetAxis("Horizontal") * speed;
        //rig.AddForce(Vector3.right * right, ForceMode.Force);

        if(Input.GetButtonDown("Fire1")){
            Debug.Log("get click.");
            ani.SetTrigger("attack_1");
        }
    }

    void OnCollisionEnter(){
        ani.SetBool("live",false);
    }
}

这样子运行之后, 每次点击鼠标左键, crow就会攻击


配置 Avatar

预备:

  1. 下载资源Adventure - Sample Game
  2. 下载资源Standard Assets
  3. 打开Adventure - Sample Game的 Models 目录,将 Player 和 FruitVender 加入场景
  4. 在 Standard Assets / Characters / ThirdPersonCharacter / Animation / 中找到 HumanoidIdleJumpUp 的动画 JumpUpidIdleJumpUp
    创建动画控制器(仅动作 JumpUpidIdleJumpUp )
  5. 将动画添加到 Player 和 FruitVender
  6. 运行

    可以看到player会上跳, 但是FruitVender不会动

为了让FruitVender动起来, 先从modles拷贝一份出来(我直接从保存文件夹copy一份了)

unity3d spine 动画控制 unity控制模型动画_unity3d spine 动画控制_08


然后点击configure…

unity3d spine 动画控制 unity控制模型动画_Game_09


因为会自动匹配骨架, 可以直接下拉然后点击done

unity3d spine 动画控制 unity控制模型动画_Game_10


出去之后点回去对象, 检查:Configuaration 有一个勾表示匹配成功

unity3d spine 动画控制 unity控制模型动画_3d_11


然后就把这个对象拖拉出来,并且附上animator controller, 就可以动了

unity3d spine 动画控制 unity控制模型动画_unity_12

1D 混合

  1. duck对象在crow同一个asset里面
  2. 把duck改为generic动画
  3. 创建一个新的animator controller
  4. 点击这个controller进行编辑, 在编辑界面右键create state, from new blend tree

    然后双击这个黄色方块进入编辑blend tree