Unity2D骨骼动画独立开发者解决方案之Ps2D

Wesley13
• 阅读 668

本文涉及到的插件均为Unity AssetStore中的免费插件

Anima2D:Asset Store

Ps2D:Asset Store Photoshop导出脚本(链接: pan.baidu.com/s/1skU3aJ 密码: xxpu)

大家好我是小羽,从上个月初开始,我就在探索一个在Unity中对独立开发者友好的2D骨骼动画解决方案,起初我选择了国产软件龙骨动画,后来我偶然间发现了Unity官方推出的Anima2D(Asset Store)可以在unity编辑器里直接编辑骨骼,而且可以用原生的animation来编辑动画,对于我这种独立开发者来说,减少了许多学习成本。

在这里我不想评价孰优孰劣,只是给出我自己目前应用的解决方案以供看到这篇文章的读者参考:

今天要介绍的是导入美术资源的一个小插件。我的美术小伙伴在photoshop中分层绘制好了人物的各个组件传给我,在Anima2D的官方Demo中,他们是采用导入精灵图集,然后在场景中手动摆放的方式来组装人物的,而这种操作的劣势在于以后进行换装时,手动摆放容易产生误差,尤其是Anima2D的骨骼调整并不是很方便,可以预见这种手动摆放的方式会给换装功能带去很多诸如穿帮之类的坑。

所以在这里我应用了同样是在Asset Store里淘宝(瞎逛免费区)时找到的一款很久没有更新的插件,Ps2D(Asset Store),这个插件完美解决了从Photoshop中分层导出到Unity场景里组装这个过程的麻烦。

这个插件用起来还是有点小麻烦的,首先从Photoshop导出功能要去作者提供的网址下载一个导出脚本:stevekellock.com/ps2d/p 而这个网址似乎因为作者没有续费等原因停止解析了,小羽在万能的谷歌上搜索了半天才发现某个论坛里有这个脚本的备份,在这里上传到百度网盘供感兴趣的小伙伴下载: pan.baidu.com/s/1skU3aJ 密码: xxpu

作者给出了使用这个脚本的条件:

Photoshop CC 14.2.1+

- Generator plugin enabled (comes with Photoshop but disabled)

Unity 4.3+ or 5.0+

- Works on both Personal/Free and Pro versions

- All platforms are supported

- This is an editor-only tool, nothing from Ps2D actually ships with your build.

经过实测,最新版本的photoshop cc 2018可以完美使用这个脚本,而我电脑中旧版本的2017生成图像资源这个功能有BUG,生成的资源都是0KB的无效文件。

将脚本放在photoshop\Plug-ins\Generator目录下,然后打开想要导出的PSD文件,在“文件 - 生成”中勾选图片资源,然后将想要导出的图层(或分组)名字后加上.png后缀(这个功能具体可以去网上搜索,这里的导出可以自行配置缩放等数据),再保存PSD文件以后会在文件目录下生成一个【PSD文件名-assets】文件夹,里面就是已经导出的全部图片资源,再在“文件 - 生成”中点选Ps2D Map,则在PSD文件目录下生成一个【PSD文件名.ps2dmap.json】文件,这个就是这个插件的主角了。

Unity2D骨骼动画独立开发者解决方案之Ps2D

Unity2D骨骼动画独立开发者解决方案之Ps2D

建议将PSD文件和生成的图片资源一起丢进资源文件夹里。

然后我们来到Unity编辑器下,导入Ps2D插件,打开Windows - Ps2D窗口

Unity2D骨骼动画独立开发者解决方案之Ps2D

在下拉框中选择你的资源

Unity2D骨骼动画独立开发者解决方案之Ps2D

在这里可以调整参数之类的,然后点中间那个按钮就可以把素材导入到场景中摆放好了。及得绑定Prefabs,这样以后如果对PSD文件有什么修改就重新导出一次【PSD文件名.ps2dmap.json】文件,然后在这个窗口再生成一次就好了(然而如果用了Anima2D插件的话这个功能就很鸡肋了,因为Anima2D用的是自己生成的Sprite Mesh而不是源图片,但是只要不是调整摆放,其实像胳膊腿都可以用换装的思路去调整,无非就是更换Skinned Mesh Renderer罢了)。只是现在还没有一个好的思路将图片资源打包成精灵图集,现在这样每个部件都是一个单独文件似乎会引起过多的DrawCall。

中文互联网似乎对Unity2D骨骼动画鲜有文章介绍,那么以后有什么关于这两个插件的新发现我也会丢进这个专栏里的。

More:【微信公众号】 u3dnotes

本文分享自微信公众号 - Unity3D游戏开发精华教程干货(u3dnotes)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这