资源包导出与提交至资源商店
Author: Charley
另一篇文档《包管理器与资源包导入》面向资源包的使用者。
本篇文档,面向LayaAir引擎资源包的开发者。
1、LayaAir资源包分类与差异
1.1 资源商店的分类
在LayaAir的资源商店里,我们的分类有:项目源码、美术素材、音乐音效、IDE插件、工具、其它。如图1-1所示。
上传资源的时候,请尽量按照功能区分进行上传,否则有可能会被审核时拒绝
分类 | 说明 |
---|---|
项目源码 | 需要当作项目模板,用于创建项目的工程,作为二次开发或学习的项目源码包。包内需要有场景文件、美术资源、项目逻辑代码等。 |
美术素材 | 是指图片、压缩纹理、模型、动画(时间轴动画、刚体动画、骨骼动画等)、 材质、字体、图集、预制体(粒子、UI界面等)、蓝图等可以在场景中编辑使用的可视化资源。 |
音乐音效 | 是指背景音乐、音效、视频等流媒体文件。支持mp3、wav、ogg、mp4、webm文件格式。 |
IDE插件 | 是指基于IDE插件系统,扩展的IDE功能插件。例如:3D骨骼动作烘焙插件、 细节层次(LOD)减面插件。插件通常是要以包管理器 进行安装。 |
工具 | 是指可以独立运行的第三方工具,或者是独立运行的第三方执行程序,仅通过插件系统进行调用执行的工具插件。 |
其它 | 不在以上分类的其它资源,例如,2.x的源码或工具。 由于2.x没有插件系统和资源商店,可以把源码或工具打包为压缩包,放到LayaAir3-IDE的资源目录,导出为. layapkg 的普通资源包,购买的用户需要先用LayaAir3-IDE导入资源,然后再复制资源到当前工程目录外的其它目录解压使用。 |
1.2 技术角度的分类与差异
资源商店的分类,是为了用户在获取资源的时候,查找更加方便。
从技术的角度上看,LayaAir引擎的资源有三种类别,分别是项目模板包(源码)、插件安装包、资源包。
类型 | 说明 | 是否配置package.json | 包后缀 |
---|---|---|---|
项目模板包 | 用于创建IDE项目的模板,通常是项目的框架或源码, 包括了场景、资源、代码,具有完整的项目结构。 |
否 | .zip |
插件安装包 | 用于IDE功能扩展的插件,安装在 packages 目录下。 | 是 | .layapkg |
项目资源包 | 用于项目制作的资源,导入到 assets 目录。 | 否 | .layapkg |
2、导出项目资源包
项目资源包是用于项目开发的各种非代码资源(IDE插件代码除外),不仅包括图片、模型、动画、材质、预制体、蓝图等美术资源,还包括场景、音乐、音效、视频等资源。
2.1 导出流程
通过点击IDE菜单的 “工具” -> "导出资源包",在弹出的资源导出面板中,勾选对应的导出资源,选择导出本地或上传到商店即可。操作流程如图2-1所示:
(图2-1)
2.2 导出规则
2.2.1 如何避免资源冲突与覆盖
我们建议,需要导出的资源,统一放到assets
下的某个目录下。
并且对这个目录要使用独特的命名规则,否则,当其它项目导入这个资源包,遇到相同目录的相同文件,会直接覆盖,并且无法还原。
所以,尽可能要使用特殊的目录名,例如,使用品牌名或资源商店的商铺名称作为目录的前缀,然后再结合资源的功能名称(也可以加上版本号)进行区分。
2.2.2 直接上传到商店的注意事项
如果开发者想直接把资源包上传到资源商店中,则需要具有资源商店的商铺资格(实名认证)审核通过,并且在商店后台里,有创建过尚未提交的资源包。
具体流程,在后面上架资源商店的小节中,会详细介绍。
3、导出IDE插件安装包
由于插件安装包上传到资源商店的流程,在IDE客户端是和普通资源包是一样的,区别只是商店后台的配置不同。
所以本小节,仅介绍本地安装包的导出方式与规则。
3.1 导出本地安装包的方式
由于本地插件安装包的导入,并不是导入.layapkg
文件。而是指向插件的根目录。所以,我们将开发好的插件目录及目录下的全部资源,直接复制到本地磁盘的某个位置(放到项目中也可以,但建议根据版本放到不同的目录,或者GIT环境中。)即可。
3.2 本地安装包导出规则
插件的本地安装包导出,与普通资源包有一个非常核心的区别,就是安装包的识别是依赖于package.json配置信息,如果没有package.json或者该配置中的数据不对,可能会导致无法识别和安装,或者安装出现错误。
所以本小节会介绍package.json中的核心配置信息的作用。
首先,我们先直接创建一个package.json的空文件,或者通过命令行npm init
来创建一个package.json。
package.json的核心内容示例如下:
{
"name": "com.layabox.package-name",
"displayName": "插件名称",
"version": "1.0.0",
"description": "一段描述文本,用于说明该插件的作用和使用说明",
"icon": "editorResources/icon.png",
"author": "layabox"
}
安装后的效果如图3-1所示
(图3-1)
[!Tip]
需要注意的是,插件中的所有图片(包括icon图)必须要放到editorResources
目录下,否则无法查找到。
4、导出项目源码(模板)
4.1 源码导出规则
项目源码无法通过 IDE 内置功能直接导出。开发者需根据本节规则手动打包为 .zip
格式的压缩包。
最简单的导出方式是:打开项目的顶级目录(如 LayaAirProject
),将整个目录打包为 LayaAirProject.zip
。
完整目录结构示例如下:
LayaAirProject/
├── .vscode/
│ └── settings.json
│ └── launch.json
├── assets/
│ └── (项目资源)
├── bin/
│ ├── index.html
│ └── (PC网页版调试运行目录)
├── engine/
│ └── (引擎声名文件与自定义引擎的目录)
├── library/
│ └── (IDE使用的项目临时存储目录)
├── local/
│ └── (IDE本地配置目录,例如IDE面板布局风格配置)
├── settings/
│ └── (项目的本地配置目录,例如构建发布的配置参数、层级配置、运行库引用配置)
├── src/
│ └── (项目源码)
├── tsconfig.json
└── LayaAirProject.laya
这种“整包打包”的方式操作简便,但可能包含一些无用的冗余文件,甚至本地个性化配置等不必要信息。
因此,推荐的做法是仅打包资源目录和源码目录,其它目录可由 IDE 自动使用内置的空模板生成。
推荐的核心模板结构如下:
LayaAirProject/
├── assets/
└── src/
如果需要保留项目的一些构建和运行配置(如引擎库引用、构建参数等),可额外包含 settings
目录。
带配置的模板结构示例:
LayaAirProject/
├── assets/
├── settings/
└── src/
如果项目中使用了自定义引擎,或者希望新建项目时界面布局与原项目保持一致,也可以包含 engine/
和 local/
目录。但建议仅在必要时添加,保留更多自定义空间给使用该模板的开发者。非必要文件和目录,建议不要打包进模板中。
4.2 源码导入测试
为避免模板中遗漏核心资源或配置,建议开发者在打包后进行一次完整的模板导入测试,确保创建出的项目可以正常运行。
操作流程如下:
- 打开 IDE 的“创建项目”界面;
- 进入“本地模板”栏目;
- 点击右上角“导入本地模板”按钮;
- 选择打包好的
.zip
模板文件,点击“确认”,如图 4-1 所示;
(图4-1)
模板导入成功后,会出现在本地模板列表中,如图 4-2 所示。此时可像常规项目一样,通过模板创建一个新项目进行测试。
(图4-2)
如果创建成功并正常运行,说明模板导出无误,可直接上传至资源商店或分享给其他开发者使用。如出现问题,根据报错信息检查并补充缺失的资源或配置后重新打包。
5、如何提交并上架资源商店
5.1 源码(模板)提交
源码提交流程较为简单,请先根据上一小节的指引,准备好 .zip
格式的源码资源包。
接下来,打开资源商店后台:https://store.layaair.com/center/
需要注意的是,上传资源前需完成实名认证,审核通过后才能进入后台并创建资源包。
开通帐号与认证相关的说明视频:https://www.bilibili.com/video/BV1oQ4y1E7j3/?p=3
登录后台后,点击 “创建资源包”,在弹出的页面中依次填写以下信息:
- 资源包名称
- 资源包标识(包名,仅插件类型资源需要填写)
- 资源类别、题材
- 引擎版本(首次提交时所支持的最低引擎版本,如果后续支持更高版本,应该在更新日志中填写新支持的版本。)
- 资源适用类型、是否联网
填写完成后,点击 “创建我的资源”,如图5-1所示。
(图5-1)
在资源上传界面,通过页面中的“上传文件”按钮,将前面准备好的 .zip
文件上传。上传完成后,点击右上角的“保存”按钮,完成资源文件的提交。
接下来,需要继续完善资源的各项信息,包括版本说明、资源描述、资源的基本信息以及展示用的图片和视频内容。页面上所有标有“必填”的字段都需要填写完整。填写过程中,系统会根据填写情况进行校验,全部信息填写无误后,页面上会显示绿色对勾,如图5-2所示。此时,就可以点击“提交”按钮,将资源提交给官方进行审核。
(图5-2)
此外,官方也提供了每一步操作流程的详细视频教程,如果你是首次上传,建议观看相关视频以获取更加直观的指引:https://www.bilibili.com/video/BV1oQ4y1E7j3/?p=4
5.2 资源与插件提交
通过网页上传资源或插件的整体流程,与上传源码资源包基本一致。不过,这两者之间也存在两个关键区别。首先,源码资源包的文件格式是 .zip
,而普通资源和插件的文件格式必须为 .layapkg
。其次,如果上传的是插件安装包,除了常规信息外,还必须填写插件的专属包名。
关于资源包的导出方法,可参考前文第 2.1 小节中的说明。
5.2.1 插件包名规则
当上传的资源属于插件安装包时,资源包标识(即包名)必须按规范填写。包名的格式统一为 com.店铺名.包名
,例如 com.layabox.spine-baking
。其中,包名部分通常是一个英文单词,如需多个单词组成,可以使用中划线连接。所有字母应全部采用小写形式,以确保规范性和统一性。
5.2.2 在IDE里直接上传资源
除了通过网页上传 .layapkg
文件,LayaAir 也支持开发者在 IDE 中直接将资源上传至资源商店。
无论是采用哪种方式上传,开发者都需要先参照 5.1 小节所述流程,在资源商店后台创建一个资源包草稿,并填写好除资源文件外的所有基础信息。填写完成后,点击保存,即可在资源列表中看到这份未提交的资源草稿,如图5-3所示。
(图5-3)
完成网页端的信息填写后,可切换回 LayaAir3-IDE
。在工具菜单栏中选择“导出资源包”,在弹出的面板中指定资源包的目录和资源内容。然后点击面板中的“上传到商店”按钮,在弹出的界面中选择刚刚在网页端保存好的资源包草稿,点击“确定”即可完成上传操作,如图5-4所示。
(图5-4)
点击确定后,IDE会弹出一个显示上传进度的窗口,当进度条结束,会提示上传成功,说明资源已被成功提交到商店,如图5-5所示。
(图5-5)
完成上传后,可重新返回资源商店的网页后台,在资源包列表中找到之前保存的草稿,点击“编辑”按钮进入资源详情页面。
在上传资源的页面中可以看到,资源的更新时间已更新为刚才上传的时间,资源文件的大小也同步显示为上传后的实际值,如图5-6所示。
(图5-6)
确认无误后,即可点击右上角的“提交”按钮,将资源提交给 LayaAir 官方审核团队。
6、资源商店分成与提现
当前,资源商店还处于生态发展的早期阶段。在这个阶段里,开发者上传的资源商品所有的收益均全部归开发者所有。
未来,当商店进入繁荣发展期,将会采取70%收益归开发者所有,30%收益归平台所有。
如果还有不理解的地方,可以添加LayaAir
客服微信帐号(LayaAir_Engine
)联系沟通。