Aseprite工具入门教程4之动画导入Unity

1、时间轴功能

(1)眼睛图标

  • 显示/隐藏图层
  • 图层隐藏时无法绘制

(2)锁定图标

  • 锁定后无法移动或编辑图层
  • 防止意外在错误图层上绘制

(3)单元格图标

两个点代表帧分开,一个椭圆代表帧统一。分开就是每一帧是单独的单元格,统一就是所有帧形成一个单元格。

【做法演示】

添加第一层kuangjia,此时什么也没有。

点击第一层的统一单元格。

点击第一层的第一帧,然后画一个矩形外框

选中第一层的第1~3帧,右击后选择Link Cels。

选择完毕后如下图所示,此时执行动画,所有帧都会显示该框架。

(4)时间线设置图标

(5)洋葱皮图标

打开该功能,可以看到前后一帧的信息,便于制作连续动画。

2、添加标签

(1)作用

用于组织和管理动画帧或图层,有助于将动画序列分组。

当从aseprite导出动画到Unity时,如果正确设置了标签,Unity可以识别并根据这些标签自动切分动画片段,而无需手动进行切分。

在Unity的Animator中,可以基于Aseprite中的标签来创建动画状态机的状态。例如,如果在Aseprite中有一个角色攻击动作的标签,那么在Unity中可以直接将其作为一个独立的状态来设置过渡逻辑。

(2)添加方法

选择帧:首先,在时间轴上选择你想要标记的帧范围。

添加标签:然后,点击菜单栏中的“层”(Layer)> “添加标签”(Add Tag)。

命名标签:在弹出的对话框中输入你的标签名称,然后点击“确定”。

添加完成后如下图所示:

3、动画制作操作方法

(1)复制帧到结尾

在结尾添加空白帧,

选择帧Ctrl + C,然后点击结尾的空白帧Ctrl+V

那么在结尾帧之前就会粘贴刚才被复制的那一帧。

(2)角色的pivot

标记出pivot,可以保持角色相对pivot的位置不变。

创建新的Layer,在第一帧标记出pivot,单元格图标选择椭圆后再右击Link Cels。

后续所有的帧中角色pivot的位置都保持不变。

4、Aseprite导入Unity方法1

(1)导入方法

Ase的内容如下:

在Unity的Assets下创建Resources目录,直接将ase文件拖到该目录下,在右下角可以看到4个动画。

将Assets -> Resources下的huochairen拖到Hierarchy -> Scene下重命名为Player。

将默认的Scene修改为PersistentScene。

点击Window -> Animation -> Animator调出状态机界面如下,默认情况下已经有状态机信息。

右击Entry通过"Set StateMachine Default State" 设置默认的状态为idle。

重新保存后没有生效,我们看到重新保存后报错了。

报错信息:Failed to load 'D:/workspace/unity/tengxuncloud/huochairen/HuoChaiRen/Assets/Resources/huochairen2.ase'. File may be corrupted or was serialized with a newer version of Unity.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

其实是因为Aseprite自动生成的这个animator是只读的,你不能够对它进行任何的操作。

(2)修改Unity的Animator的方法

点击Assets中的ase文件,点击Export Animation Assets。

此时就会生成controller文件。

后续修改就会生效,仍然保持和已有动画tag的同步,但不能读取新增的动画tag。

Export animation assets,勾选animation clips可以导出动画,但是不能和aseprite文件保持同步。

5、Aseprite导入Unity方法2

(1)导入方法

制作完成后,点击File -> Export Sprite Sheet,相关配置如下:

此时在aseprite下工作目录下就出现了png图片。

将该png放到Assets/Resources目录下,点击png文件修改参数如下,完成后点击“Apply”。

再次点击Inspector中的Sprite Editor。

Type选择“Grid By Cell Size”,配置Pixel Size,该值是Aseprite中画布的大小。

点击Slice -> Apply。

在Hierarchy -> PersistentScene下新建空物体命名为Player,并且设置默认图片如下:

(2)创建Animation Clip

在Animation下点击Create

创建anim文件如下:

创建完毕后就会自动生成Player.Controller文件。

将帧图片拖到Animation界面中如下:

点击Create New Clip创建新的动画clip。

如果有3帧则分别拖入如下:

所有动画创建完毕后如下:

(3)创建Animator Controller

编写脚本如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR;public class Player : MonoBehaviour
{private Rigidbody2D rigidbody;private Animator animator;private float xInput;private float yInput;private bool isDirectionLeft = false;private bool isDirectionRight = false;private float moveSpeed;// Start is called before the first frame updatevoid Start(){rigidbody = GetComponent<Rigidbody2D>();animator = GetComponent<Animator>();}// Update is called once per framevoid Update(){HandlePlayerInput();}private void FixedUpdate(){PlayerMove();}private void PlayerMove(){moveSpeed = Settings.moveSpeed;Vector2 move = new Vector2((float)(xInput * moveSpeed * Time.deltaTime), 0);rigidbody.MovePosition(rigidbody.position + move);}public void HandlePlayerInput(){xInput = Input.GetAxisRaw("Horizontal");if (xInput != 0){if(xInput < 0){animator.SetFloat("xInput", xInput);animator.SetTrigger("is_walk_left");isDirectionLeft = true;isDirectionRight = false;}else{animator.SetFloat("xInput", xInput);animator.SetTrigger("is_walk_right");isDirectionLeft = false;isDirectionRight = true;}}if (Input.GetKeyDown(KeyCode.Space)){if (isDirectionLeft) {animator.SetTrigger("is_idle_left");animator.SetTrigger("is_battle_left");}else{animator.SetTrigger("is_idle_right");animator.SetTrigger("is_battle_right");}}}
}

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

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

相关文章

移动硬盘频繁提示格式化?解决异常故障的正确方法

移动硬盘作为数据存储的重要工具&#xff0c;不少人都习惯将照片、文档、项目资料甚至整台电脑的备份都放在里面。但有时&#xff0c;一件令人头疼的事悄然发生&#xff1a; 插上硬盘&#xff0c;系统却突然提示&#xff1a;“使用驱动器中的光盘之前需要将其格式化。是否要将…

Java泛型笔记

1 为什么需要泛型 Java5之前&#xff0c;是没有泛型的。通过两段代码我们就可以知道为何我们需要泛型 public int addInt(int a, int b) {return a b; }public double addDouble(double a, double b) {return a b; } 实际开发中&#xff0c;经常有数值类型求和的需求&…

mysql 图形化界面工具 DataGrip 安装与配置

安装地址&#xff1a; Download DataGrip: Cross-Platform IDE for Databases & SQLhttps://www.jetbrains.com/datagrip/download/?sectionwindows 添加数据源&#xff1a; 下载驱动文件&#xff1a;直接点击下载即可 点击测试连接&#xff1a;成功后点击确定 显示所有数…

linux下进程之间socket通信c程序例程

以下是一个基于 Linux 的 C 程序示例&#xff0c;展示了如何使用 Unix 域套接字&#xff08;Unix domain socket&#xff09;在不同进程之间互传 JSON 消息。我们将实现一个简单的客户端 - 服务器模型&#xff0c;服务器监听连接&#xff0c;客户端连接到服务器并发送 JSON 消息…

高云GW5AT-LV60 FPGA图像处理板|MIPI摄像头帧率测试

高云GW5AT-LV60 FPGA图像处理板套件中附带了三个摄像头模组&#xff0c;这三个模组真是各有千秋&#xff0c;接下来我通过简单的一些测试来看看这几个摄像头的差异。 VS-SC130GS 、 VS-SC2210 这两个模组是手动对焦&#xff0c;在使用时需要手动转动镜头调整焦距&#xff0c;这…

机器学习在智能能源管理中的应用:需求响应与可再生能源整合

随着全球能源需求的不断增长和环境问题的日益突出&#xff0c;智能能源管理成为实现可持续发展的关键。智能能源管理系统通过整合先进的信息技术&#xff0c;如物联网&#xff08;IoT&#xff09;、大数据和机器学习&#xff0c;能够优化能源的分配和使用&#xff0c;提高能源效…

【网络】Linux 内核优化实战 - net.ipv4.tcp_timestamps

目录 net.ipv4.tcp_timestamps 详解1. 功能与作用2. 参数取值与含义3. 启用/禁用的影响4. 配置方法5. 适用场景建议6. 注意事项总结 net.ipv4.tcp_timestamps 详解 net.ipv4.tcp_timestamps 是 Linux 内核中一个与 TCP 协议相关的网络参数&#xff0c;用于控制是否启用 TCP 时…

第一个Flink 程序:词频统计 WordCount(流处理)

本文重点 本文将通过一个统计词频的小程序来看一下flink是如何对数据进行批处理的,需要声明的是,一般我们使用Flink常常用于流式处理,即使是有界的数据,我们也将其看成是无界数据进行流式处理,所以批量处理并不是很常用,这里只是为了了解一下Flink是如何进行批处理的。 …

在 Kodi 中添加 AList 搭建 WebDav 的方法

文章目录 一、问题背景二、使用方法&#xff08;一&#xff09;开启 AList 的 WebDav&#xff08;二&#xff09;在 Kodi 添加 WebDav1. 打开设置跳转到媒体设置添加指定类型的媒体库2. 选择添加媒体库3. 添加新的网络位置 一、问题背景 AList 是一种使用 Gin 和 Solidjs 编写…

DAY 49

CBAM 是一种能够集成到任何卷积神经网络架构中的注意力模块。它的核心目标是通过学习的方式&#xff0c;自动获取特征图在通道和空间维度上的重要性&#xff0c;进而对特征图进行自适应调整&#xff0c;增强重要特征&#xff0c;抑制不重要特征&#xff0c;提升模型的特征表达能…

LLM:位置编码详解与实现

文章目录 前言一、绝对位置编码二、相对位置编码三、旋转位置编码 前言 由于attetnion运算的特性&#xff0c;Transformer本身不感知顺序&#xff0c;位置编码是弥补这一缺陷的关键。 一、绝对位置编码 绝对位置编码的方式是通过将每个位置映射到一个高维空间中&#xff0c;该…

pytorch学习-10.卷积神经网络(基础篇)

2.线性模型 3.梯度下降算法 4.反向传播(用pytorch算梯度) 5.用pytorch实现线性回归 6.logistic回归 7.处理多维特征的输入 8.加载数据集 9.多分类问题 10.卷积神经网络&#xff08;基础篇&#xff09;_哔哩哔哩_bilibili 10.1卷积神经网络 10.1.1 卷积神经网络工作流程&…

ARMv8 创建1、2、3级页表代码与注释

对下面的地址空间创建3级页表 // level 1 table, 4 entries: // 0000 0000 - 3FFF FFFF, 1GB block, DDR // 4000 0000 - 7FFF FFFF, 1GB block, DDR // 8000 0000 - BFFF FFFF, 1GB block, DDR // C000 0000 - FFFF FFFF, point to level2 tabel // // level 2 table, 512 en…

DeepSeek-R1满血版:硅基流动API或本地部署

大家好! 想在手机上部署 DeepSeek-R1 满血版&#xff08;671B&#xff09;&#xff1f;我来手把手教你最靠谱的两种方式&#xff01;满血版模型参数高达 671 亿&#xff0c;手机本地运行几乎不可能&#xff0c;但通过「云服务 手机 App」的组合&#xff0c;你一样能在手机上丝…

React 各颜色转换方法、颜色值换算工具HEX、RGB/RGBA、HSL/HSLA、HSV、CMYK

&#x1f4d6; 简介 基于 React Tailwind CSS 构建的专业颜色转换工具&#xff0c;支持多种颜色格式的实时转换。无论是设计师、开发者&#xff0c;都能在这个工具中找到所需的颜色转换功能。 ✨ 核心功能 &#x1f3af; 多格式颜色转换 HEX 格式: 支持 3 位缩写 (#000, #…

开关电源抄板学习

一、实物 输入220V&#xff0c;输出12V5A 二、拍照并使用PS矫正 用卡尺测量下PCB的尺寸&#xff0c;在PS中作为画布。 用相机拍下照片&#xff0c;导入到PS中&#xff0c;用拉伸工具对图片进行矫正处理&#xff0c;并拉伸到和画布一样大小。 三、打开嘉立创EDA&#xff0c;导…

大数据在UI前端的应用探索:基于用户行为分析的产品优化策略

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 一、引言&#xff1a;用户行为分析重构产品优化的技术逻辑 在数字化产品体验竞争日益激烈的今…

优化 WebSocket 实现单例连接用于打印【待测试 】

class PrinterWebSocket { constructor(url) { if (PrinterWebSocket.instance) { return PrinterWebSocket.instance; } this.url url; this.socket null; this.queue []; // 打印任务队列 this.isConnecting false; this.retry…

Spring Cloud Alibaba/Spring Boot整合华为云存储实例(REST API方式)

一个小作业&#xff0c;初次尝试华为云存储&#xff0c;一点分享 原项目采用Spring Cloud Alibaba微服务技术、Spring Boot框架技术、VueJS前端框架开发技术&#xff0c;nacos注册中心&#xff0c;数据库为mysql 下面看一下没有运用云存储的原项目&#xff08;可跳过&#xf…

Petalinux工程如何离线编译

目录 一.下载离线包 1.1 共享状态缓存包&#xff1a;sstate-cache 1.1.1 进入官网打开Petalinux工具网页 1.1.2 找到相应的Petalinux版本 1.1.3 根据平台下载 1.2 下载downloads源码包 1.3 open_components源码包 二.解压 2.1 sstate-cache 2.2 downloads源码包 2.3…