5 个版本
0.2.0 | 2023 年 9 月 19 日 |
---|---|
0.1.3 | 2023 年 7 月 22 日 |
0.1.2 | 2023 年 7 月 22 日 |
0.1.1 | 2023 年 7 月 21 日 |
0.1.0 | 2023 年 7 月 20 日 |
在 游戏 分类中排名 199
每月下载次数 78
89KB
2K SLoC
Runway
Runway 是 Roblox 项目的资源上传工具。
它将项目中的路径映射到资源字符串,并支持使用 Open Cloud 快速本地开发或上传。
Runway 从 Tarmac 中借鉴,但并不执行其所有资源编译(特别是精灵表打包和 DPI 缩放)。相反,Runway 的输入/输出应该是简单且可靠的,以便在它们之上构建其他工具。
Runway 将所有具有透明度的 png
资源应用 alpha 渲染。
安装
使用 Aftman(推荐)
安装 Aftman,然后向 [tools]
部分的 aftman.toml
添加条目
runway = "hazelmeow/[email protected]"
从版本发布
预构建的二进制文件可在 此处 获取。
从源代码
克隆仓库并运行
cargo install --path .
用法
配置
Runway 通过位于项目根目录的 runway.toml
文件进行配置。runway.toml
中的路径应相对于项目根目录。
配置文件需要一个名称,并可以有任意数量的目标、输入和代码生成输出。最小(有用)的配置是一个名称和每个之一
name = "my-project"
[[target]]
type = "local"
[[input]]
glob = "assets/**/*.png"
[[codegen]]
format = "lua"
path = "src/assets.lua"
使用此配置,我们可以运行 runway sync --target local
使我们的图像可通过 Studio 使用 assets.lua
中列出的资源字符串访问。
输入 glob 使用 .gitignore
的语法。您可以通过添加另一个 [[input]]
部分来添加另一个 glob。
要使用 Open Cloud API 将资产上传到 Roblox,请使用 roblox
目标类型。同步到 Roblox 需要 --api-key
以及 --user-id
或 --group-id
之一。我们还可以为每个目标提供一个键,该键由 --target
参数使用,并用于上传状态。
[[target]]
key = "production"
type = "roblox"
Runway 可以以 json
、lua
、ts
或 d.ts
文件格式输出资产路径。您可以通过添加更多 [codegen]
部分 来指定多个输出。每个输出都有一些附加选项
[[codegen]]
format = "ts"
path = "src/assets.ts"
flatten = false # Defaults to false, makes the output map flat instead of nesting by path
strip_prefix = "assets" # Defaults to none, removes leading path from output map
strip_extension = true # Defaults to true, removes extension from output map
状态
同步将生成包含上传资产 ID 和其内容哈希的 runway-state.toml
和 runway-state.local.toml
文件,以检测更改。
本地状态文件不应提交到版本控制。Roblox 状态文件对于跳过上传未更改的 Roblox 资产很有用。
本地同步还会创建一个包含本地同步资产副本的 .runway
目录。此文件夹不应提交,并且可以随时安全删除。
全局选项
-h
,--help
,-V
,--version
- 你认为呢
-v
,--verbose
,- 显示更多详细信息。使用两次以获得更多详细程度
-q
,--quiet
- 显示较少的输出
-t
,--target <key>
- 如果未指定键,则为目标的键或类型
-c
,--config [<path>]
- 包含配置的文件或目录的路径
- 默认为当前目录
同步到 Roblox
这些选项也可以从列出的环境变量中读取。
-a
,--api-key <key>
,RUNWAY_API_KEY=
-u
,--user-id <id>
,RUNWAY_USER_ID=
- 上传时使用的用户 ID
-g
,--group-id <id>
,RUNWAY_GROUP_ID=
- 上传时使用的组 ID
runway sync
查找与配置的输入匹配的文件,并将更改的资产同步到指定的目标,然后生成配置的输出。
示例
runway sync --target local
runway sync --target roblox --api-key <key> --user-id <id>
附加选项
-f
,--force
- 跳过检查文件是否已更改,并同步所有内容
runway watch
监视项目的新/更改的输入,并自动运行同步过程。
runway codegen
读取先前状态并生成输出而不同步。
支持的资产类型
有关详细信息,请参阅 Open Cloud 资产文档。
bmp
和 tga
图像似乎无法正常工作。模型尚未经过测试。
扩展 | 本地 | Roblox |
---|---|---|
.png |
是 | 是 |
.jpg .jpeg |
是 | 是 |
.bmp |
否 | 否 |
.tga |
否 | 否 |
.mp3 |
是 | 是[^1] |
.ogg |
是 | 是[^1] |
.fbx |
? | ? |
[^1]: 由于 音频资产隐私,可能需要进行一些额外的手动工作。
许可
Runway 在 MIT 许可证下可用。请参阅 LICENSE.txt。
Alpha bleeding 使用来自 Tarmac 源代码(alpha_bleed.rs
、image.rs
)的代码,该代码在 MIT 许可证下。
依赖项
~16–30MB
~485K SLoC