U3D游戏开发之骨骼动画相关

目录

 1 作为U3D程序如何制作骨骼动画

 2 骨骼动画程序代码相关


这个内容我在很久之前就想写了,很多项目也与骨骼动画挂钩,今天我们揭秘的是2D骨骼动画。来聊一聊大家可能非常关注的两个问题:作为程序如何制作骨骼动画?接到美术的骨骼动画之后应该如何制作骨骼动画的代码相关。

于是我们带着这个问题,开始今天的讲解:

首先在使用骨骼动画之前,要导入骨骼动画的Spine库,登录官方选择unity的位置下载,然后将其放置到unity内部即可。官方地址:http://zh.esotericsoftware.com/

 1 作为U3D程序如何制作骨骼动画

我们在游戏开发过程中,可能会突然想参加很多各种各样的游戏比赛,这些比赛大家一起组队,各司其职。但是往往在组队过程中,你会发现美术的数量非常稀缺,甚至你可能组队不到美术。然而项目可能需要大量的美术内容。这个时候,骨骼动画就派上用场了,这可以大大降低美术的工作量。(至少在动画方面)

我在制作聚光灯项目的时候就是遇到了美术不够的情况,于是我开始使用unity制作骨骼动画。(虽然不专业,但是看起来能用,至少可以应对这些突发情况)

以下我讲解的内容都在unity内部进行。

当我们拿到美术素材的时候,第一时间将其放入unity,并且设置为2D and UI的模式,然后点击编辑模式开始制作骨骼动画:

点开之后你会看到这个页面:(将左上角设置为:Skinning Editor)

设置完骨骼之后:

此时,就自动给你蒙皮并且自动给出了权重,这个时候你可以移动骨骼查看动画情况,如果发现动画被拉伸严重就说明权重不对,需要重刷权重:

然后反复确认动画情况即可,最后点击Apply保存。

制作好之后将图片拖出,并且挂载这个脚本,并且点击自动生成骨骼:

这个时候你可以在编辑器之中随意操控骨骼,然后利用unity自带的动画Animation:

如此,一个简易版骨骼动画制作完成。

 2 骨骼动画程序代码相关

如果你团队有专业动画师,制作了spine动画,你将如何使用代码控制呢?

骨骼动画直接播放的代码:(以眼睛跟随为例)

关联骨骼,对骨骼进行代码上的位移控制:

骨骼动画事件相关:

一小段示例代码:

/// <summary>/// 玩家攻击/// </summary>private void PlayerAttack(){if (_ePlayerTypes != EPlayerType.Attack){_ePlayerTypes = EPlayerType.Attack;_attackNum+=1;switch (_attackNum){case 1:ReSetTimeAttack();_sa.AnimationState.SetAnimation(0, "6_Attack_1", false);break;case 2:ReSetTimeAttack();_sa.AnimationState.SetAnimation(0, "7_Attack_2", false);break;case 3:ReSetTimeAttack();_sa.AnimationState.SetAnimation(0, "8_Attack_3", false);break;case 4:ReSetTimeAttack();_sa.AnimationState.SetAnimation(0, "9_Attack_4", false);_attackNum = 0;break;}_sa.AnimationState.Complete+= (t) =>{Spine_Complete();};}}/// <summary>/// 动画结束时调用的方法/// </summary>private void Spine_Complete(){if (_ePlayerTypes == EPlayerType.Attack||_ePlayerTypes==EPlayerType.Dodge){Idle();//_ePlayerTypes = EPlayerType.Null;}}

作者将持续更新,创作不易,请点一个小红心支持一下吧!关注我,了解更多精彩!

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

java:题目:用Java实现简单的自取取款操作

import java.util.Scanner; public class ATM {public static void main(String[] args){//自主取款主类Scanner scnew Scanner(System.in);System.out.println("请输入账户号码&#xff1a;");String BankAccoutsrsc.nextLine();/BankAccout3 newBankAccoutnew Bank…

VLAN 高级技术 ——QinQ的配置

QinQ的概述&#xff1a; QinQ技术是一种扩展虚拟局域网&#xff08;VLAN&#xff09;数量空间的技术&#xff0c;通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来实现。以下是对QinQ技术的详细概述&#xff1a; QinQ技术的定义与背景 定义&#xff1a;QinQ&#xff08…

不得不承认供电公司信息宣传向媒体投稿的好方法找到了

初入国网供电公司,我被分配到了信息宣传部门,负责每月的信息宣传投稿任务。这项任务看似简单,实则充满挑战。一开始,我满怀热情,以为只要写出高质量的文章,就能顺利发表。然而,现实给了我当头一棒。传统的邮箱投稿方式,不仅竞争压力大,审核严格,而且周期漫长。每次投稿后,我总是…

『YOLOV5』| 一文搞定训练过程中的意外终止、以及想继续增加训练轮数!

文章目录 情况一&#xff1a;意外训练中断&#xff08;程序未训练完成&#xff0c;想完成目标训练轮数&#xff09;情况二&#xff1a;自动训练完成&#xff08;程序已完成训练&#xff0c;想增加训练轮数&#xff09; 情况一&#xff1a;意外训练中断&#xff08;程序未训练完…

GCC编译器的`-Wall`、`-Wextra`和`-pedantic`选项解读

gcc是广泛使用的开源编译器&#xff0c;-Wall、-Wextra和-pedantic是gcc中用于控制警告信息的选项&#xff0c;以下是详细介绍&#xff1a; -Wall&#xff08;启用大部分警告&#xff09; 功能&#xff1a;-Wall 选项用于启用一系列常用的警告信息&#xff0c;这些警告能帮助…

MMBench-Video:上海 AI Lab 联合多所高校推出长视频理解基准测试工具,全面评估 LVLMs 视频理解的能力

❤️ 如果你也关注大模型与 AI 的发展现状&#xff0c;且对大模型应用开发非常感兴趣&#xff0c;我会快速跟你分享最新的感兴趣的 AI 应用和热点信息&#xff0c;也会不定期分享自己的想法和开源实例&#xff0c;欢迎关注我哦&#xff01; &#x1f966; 微信公众号&#xff…

高频电子线路---调角频谱与频宽

目录 调角频谱(FM单频调制) 带宽 调频方法 直接调频方法与电路 变容二极管 如何提升频偏? 1. 增大调制信号的幅度&#xff08;增大调制深度&#xff09; 2. 提高调制信号的频率 3. 提高调制深度&#xff08;调制指数&#xff09; 4. 增加发射功率 5. 使用特殊的调制…

摘要、数字签名、对称加密、非对称加密综合应用示例以及技术原理说明

图&#xff1a;介绍了数字信封的安全传输过程 关键术语 散列&#xff1a;Hash&#xff08;哈希&#xff09;&#xff0c;一般翻译做散列、杂凑&#xff0c;是把任意长度的输入&#xff08;数据信息&#xff09;通过散列算法变换成固定长度的输出&#xff0c;该输出就是散列值…

java学习3---面向对象

一、设计对象并使用 1.类和对象 类是共同特征的描述&#xff1b;对象是真实存在的具体实例。 2.类的几个补充注意事项 二、封装 对象代表什么&#xff0c;就得封装对应的数据&#xff0c;并提供数据对应的行为。 封装告诉我们如何正确的设计对象 三、this关键字 this可以区…

Maven

Maven 命令方式构建项目 mvn compile&#xff1a;编译项目&#xff0c;生成target文件&#xff08;不编译测试代码&#xff09; mvn package&#xff1a;打包项目&#xff0c;生成jar或war文件&#xff08;不指定默认jar包&#xff09; mvn clean&#xff1a;清理编译或打包后…

leetcode 173.二叉搜索树迭代器

1.题目要求: 2.题目代码: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nu…

vue插件清除 所有console.log()

一、作用 1、提升性能console.log() 语句会消耗一定的性能&#xff0c;尤其是在频繁调用的情况下。在生产环境中移除这些语句可以提高应用的运行效率。 2、减少信息泄露console.log() 可以输出敏感信息&#xff08;如用户数据、API 响应等&#xff09;。在生产环境中&#xf…

Day102漏洞发现-漏扫项目篇Poc开发Yaml语法插件一键生成匹配结果交互提取

知识点&#xff1a; 1、Nuclei-Poc开发-环境配置&编写流程 2、Nuclei-Poc开发-Yaml语法&匹配提取 3、Nuclei-Poc开发-BurpSuite一键生成插件 Nuclei-Poc开发-环境配置&编写流程 1、开发环境&#xff1a;VscodeYaml插件 Visual Studio Code - Code Editing. R…

【IEEE出版】第六届国际科技创新学术交流大会暨信息技术与计算机应用学术会议(ITCA 2024,12月06-08)

第六届国际科技创新学术交流大会暨信息技术与计算机应用学术会议&#xff08;ITCA 2024) 2024 6th International Conference on Information Technology and Computer Application 会议官网&#xff1a;itca2024.iaecst.org 会议时间&#xff1a;2024年12月06-08日 截稿时…

聊一聊Spring中的@Scheduled注解

一、样例 1.1 demo代码 package com.lazy.snail;import org.springframework.stereotype.Component; import org.springframework.scheduling.annotation.Scheduled;/*** ClassName MyTask* Description TODO* Author lazysnail* Date 2024/10/29 17:56* Version 1.0*/ Compo…

如何高效集成每刻与金蝶云星空的报销单数据

每刻报销单集成到金蝶云星空的技术实现 在企业日常运营中&#xff0c;费用报销和付款申请是两个至关重要的环节。为了提升数据处理效率和准确性&#xff0c;我们采用了轻易云数据集成平台&#xff0c;将每刻系统中的报销单数据无缝对接到金蝶云星空的付款申请单中。本案例将详…

使用量化分析微信小程序工具“梦想兔企业智能风险分析助手”日常操作日记-3-预制菜-惠发食品(603536)

使用量化分析微信小程序工具“梦想兔企业智能风险分析助手”日常操作日记-预制菜。 直接看截图&#xff1a; 1.第一步&#xff1a; 查看产业链&#xff0c;选择查看“中国预制菜行业”&#xff0c;政策支持&#xff0c;热点 查看预制菜产业链 这里我选择了中游-生产商 到行业…

Elasticsearch:如何把 OpenAI 的代码修改为 Azure OpenAI

我们知道除了 OpenAI 提供数据嵌入及 Chat Completion 功能之外&#xff0c;Azure 也提供 OpenAI 类似的服务。这两个都是经常需要的平台。在我们的 Elasticsearh labs 里有很多代码是使用 OpenAI 来完成的&#xff0c;那么我们该如何把它们修改为使用 Azure 所提供的 OpenAI 呢…

软件体系结构

第一章 构件 具有某种功能的 可复用的软件结构单元,为组装服务,可部署,具有规范的接口规约和显式的语境依赖 构件模型 构件模型是对构件本质特征的抽象描述&#xff0c;可以把它想象成一个类的组合&#xff0c;它封装了多个类&#xff0c;并具有一个或多个服务而提供了简单…

基于AI深度学习的中医针灸实训室腹针穴位智能辅助定位系统开发

在中医针灸的传统治疗中&#xff0c;穴位取穴的精确度对于治疗效果至关重要。然而&#xff0c;传统的定位方法&#xff0c;如体表标志法、骨度折量法和指寸法&#xff0c;由于观察角度、个体差异&#xff08;如人体姿态和皮肤纹理&#xff09;以及环境因素的干扰&#xff0c;往…