GDPU unity游戏开发 动画状态机

每一个动画状态都演绎着你的奔赴。

动画混合

1)  前往 Mixamo选择适合的角色模型和idle/walking/backward动画并下载。确保下载时选择FBX for Unity格式。

2)  新建Unity项目,导入下载的模型。

3)  在导入模型的Inspector窗口中,选择Materials选项卡,解压纹理和材质。

4)  在带有模型的动画中,设置Rig为Humanoid,选择Avatar Definition设置为Create From This Model,并检查是否正确并保存。

5)  其他动画也设置Rig为Humanoid,并设置Avatar为上个步骤中保存的Avatar。

6)  勾选所有动画的Loop Time,使得动画可以循环播放。

7)  创建并打开Animator Controller,然后新建BlendTree,将参数设置为Floatl类型的Speed,在Motion的列表中前述添加3个动画,将动画切换参数设置为Speed,并将Threshold的值分别设置为-1(后退)/0(空闲)/1(前进)。

8)  将模型添加到场景中并改名为Player,给模型增加Animator组件,并将控制器设置为上个步骤中创建的的Animator Controller。

先登录网站下好模型动画,然后导入。接着按步骤弄好材质跟绑定。再到动画状态机,这个比较重要。

双击controller进入动画状态机,你会看到三个框,菜单有layers跟parameters。新建一个混合树状态及设置一个speed参数,注意这里的参数可用来调状态的。

 

接着双击新建好的混合树,点进去设置motion。

 

可以点击运行去改变speed值,动画状态发生的改变。当然实际不会一直让你在那调,所以写脚本根据输入控制speed参数,来调整动画的状态。在动画中混合树可以根据参数,混合多个动画,每个动画有不同的权重,这样就有了很多中间状态。当然不想混合几个行为便可以是动画过渡。

using UnityEngine;public class PlayerController : MonoBehaviour{public float speed = 2.0f;private Animator animator;void Start(){animator = GetComponent<Animator>();//获取当前游戏对象上的 Animator 组件}void Update(){float move = Input.GetAxis("Vertical");//获取垂直方向上的输入值animator.SetFloat("Speed", move);//将移动值 move 设置给 Animator 控制器中名为 "Speed" 的参数,用于控制动画播放速度Vector3 movement = new Vector3(0, 0, move);transform.Translate(movement * speed * Time.deltaTime);//根据移动向量 movement、移动速度 speed 和时间间隔 Time.deltaTime 来更新游戏对象的位置}}

 

 

  

移动过程你会发现是有混合效果的。

实验心得

他总是把最好的糟蹋完后,才开始感概人生若只初见。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/21135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt4和文心一言的简单对比

功能1. 写一个ebpf程序监控udp延迟 文心一言 答案 编写一个完整的eBPF程序来监控UDP延迟涉及多个步骤&#xff0c;包括编写eBPF C代码、编译、加载到内核&#xff0c;以及用户空间程序来读取eBPF map中的数据。以下是一个简化的示例框架&#xff0c;展示如何使用eBPF来监控U…

分治策略的实现

目录 前言 分治策略的应用 最大子数组问题 矩阵乘法问题 求解递归式的三种方法 代入法求递归式 用递归树求递归式 主方法求递归式 前言 分治三个步骤&#xff1a; 分解&#xff1a;分解原问题为子问题&#xff0c;这些子问题为原问题的较小规模的问题。 解决&#xf…

浅谈SpringBoot日志文件

文章目录 一、日志的作用二、如何在SpringBoot中使用日志2.1、在程序中得到日志对象。2.2、通过日志对象中提供的内置方法操打印日志信息2.2.1 日志级别2.2.1.1、日志级别有什么作用&#xff1f;&#xff1f;2.2.1.2、日志级别的分类2.2.1.2、在配置文件中设置日志级别[!] 三、…

对话机器人 Rasa 基本调试过程

以下记录rasa基本的配置&#xff0c;以及调试过程。首先用rasa init 生成一个初始的文件目录。 1、最简单的中文配置 打开项目根目录下的 config.yml 配置文件&#xff0c;修改如下&#xff1a; recipe: default.v1language: zhpipeline:- name: JiebaTokenizer- name: Lang…

Linux线程:线程分离

目录 一、什么是线程分离 1.1pthread_detach 1.2pthread线程库存在的意义 1.3__thread线程的局部存储 1.4系统调用clone 一、什么是线程分离 1.1pthread_detach 默认情况下&#xff0c;新创建的线程是joinable的&#xff0c;线程退出后&#xff0c;需要对其进行pthread_joi…

Windows Server 2019 DataCenter 配置 IIS Web Server (for Vue)

IIS 并非是最终会采用的web server&#xff0c;这里只是做个测试&#xff0c;最终会用C或者是rust自己写web server. 制作pfx证书 用openssl为IIS制作pfx格式的SSL证书&#xff1a; # openssl pkcs12 -inkey privkey.pem -in fullchain.pem -export -out idealand.xyz.pfx 用w…

java中创建对象的四种方式

1.new出一个对象 String s new String(“abc”); 2.利用反射创建对象 利用反射的两种方式&#xff1a; 使用Class对象的newInstance&#xff08;&#xff09;方法来创建Class对象对应类的实例。但是这种方法要求Class对象的对应类有默认构造器&#xff0c;而执行newInstan…

非对称密钥:应用场景

public class EncryptionAndSignatureExample { public static void main(String[] args) throws Exception {// 生成公私钥对KeyPairGenerator keyPairGenerator KeyPairGenerator.getInstance("RSA");keyPairGenerator.initialize(1024);KeyPair keyPair keyPai…

路由策略实验2

对R7&#xff0c;重发布直连路由 对R2&#xff0c;做双向 对R3同样 先不改优先级 查看&#xff0c;知道所有给R3的路由为151&#xff0c;全部为OSPF。 知道了是错误的&#xff0c;先把3&#xff0c;4之间的线路断掉 接着对R3&#xff0c;让优先级全部回到100&#xff08;displa…

node-sass和sass-loader安装Error经验

一、问题 当前笔记本环境版本&#xff1a;node-v16.15.1&#xff1b;npm-8.11.0&#xff0c;在面对五年前vue项目的依赖sass-loader8.0.2&#xff0c;node-sass4.14.1的情况下&#xff0c;怎么参考大神们的安装教程&#xff0c;始终存在Error&#xff0c;经过坚持不懈的努力&a…

微软云计算之云计算平台、云操作系统Windows Azure

微软云计算平台 微软云计算平台微软的云计算技术Windows Azure组成 微软云操作系统Windows AzureWindows Azure概述Windows Azure计算服务Windows Azure存储服务全局命名空间体系架构存储域的层次结构双复制引擎文件流层分区层 Windows Azure ConnectWindows Azure CDNFabric控…

十_信号11 - 函数sigsetjmp() 和 siglongjmp()

也就是说&#xff0c;正常情况下&#xff0c;当捕捉到一个信号&#xff0c;并调用该信号的信号处理程序时&#xff0c;被捕捉的信号会被加入到当前进程的信号屏蔽字中&#xff0c;以防止在本次信号处理程序还没有完成的时候&#xff0c;再次触发该信号&#xff0c; 发生重入。 …

LLaMA-Factory实战推理

LLaMA-Factory官网&#xff1a;https://github.com/hiyouga/LLaMA-Factory 安装环境 git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory/ conda create -n py310 python3.10 conda activate py310按照llama-factory要求的标准格式组织数据集&#xff…

网络原理——http/https ---http(2)

http(接上一篇文章) 认识请求报头"header" header里面的键值对,都是标准规定的内容,很多,我们主要是认识一些关键的 host 表示对应的服务器主机的IP / 域名 实际上,这两个通常来说是一样的 但是有些时候不一样 当我们通过代码构造http请求,url里面写的以Ip地址的…

6月2(信息差)

&#x1f30d;特斯拉&#xff1a;Model3高性能版预计6月中旬开启首批交付 &#x1f384;微软对开源字体 Cascadia Code 进行重大更新 ✨天猫618加码引爆消费热潮 截至晚9点185个品牌成交破亿 1.瑞士清洁科技公司Librec开发废旧锂离子电池回收技术&#xff0c;可回收电池90%的…

Maven全局排除依赖用法

问题 项目中有很多依赖&#xff0c;某些Jar之间是有冲突的&#xff0c;有些冲突只有在运行时才会报出错误&#xff0c;这样就很危险。比如我使用如下方式去排除依赖。 <dependency><groupId>xxx</groupId><artifactId>xxx-web-common</artifactId…

Python函数式编程进阶:装饰器和闭包介绍

文章目录 Python函数式编程进阶&#xff1a;函数装饰器和闭包介绍一个简单的装饰器实现和行为表现装饰器通常会把函数替换成另一个函数Python导入模块时首先就会运行装饰器闭包__closure__属性可以查看闭包的自由变量总结 nonlocal声明 Python函数式编程进阶&#xff1a;函数装…

贴片和直插型IRM红外遥控接收头引脚定义和规格参数及使用注意事项

红外遥控接收头使用注意事项 引脚定义存在不同 红外遥控接收头大量使用在家用电器的遥控中&#xff0c;属于价廉物美的一种光电接收器件&#xff0c;批量价格约0.3元左右。 多数遥控接收头的引脚定义是OUT,GND,VCC&#xff0c;另有引脚定义不同为OUT,VCC,GND&#xff0c;记住…

Django 创建项目及应用

1&#xff0c;安装 Django pip install Django3.1.5 2&#xff0c;创建 Django项目 django-admin startproject myshop 3&#xff0c;创建 Django应用 python manage.py startapp app1 4&#xff0c;启动 Django项目 python .\manage.py runserver 到这里项目及应用创建…

Delphi主窗体实现透明

设置以下属性即可实现透明窗体显示文字&#xff1a; 设置窗体属性&#xff1a; BorderStyle 属性设置为 bsNone Color 属性设置为 clWhite&#xff08;白色&#xff1a;窗体背景色&#xff09; TransparentColor 属…