#asset-manager #roblox #assets #input #projects #builds #game

app tarmac

Roblox项目的资源编译器和资产管理器

7个版本 (破坏性更新)

0.5.0 2020年6月1日
0.4.0 2020年3月4日
0.3.1 2020年2月4日
0.3.0 2020年1月31日
0.0.0 2019年10月15日

#1925 in 游戏开发

MIT许可证

155KB
2.5K SLoC

Tarmac


Tarmac是Roblox项目的资源编译器和资产管理器。它可以帮助使用像Rojo这样的工具时实现自包含的地方构建。

Tarmac受到像Webpack这样的项目的启发,这些项目使得从代码中引用资产变得很容易。

安装

使用Foreman安装

推荐使用Foreman来安装Tarmac。

将条目添加到你的foreman.toml文件的[tools]部分

foreman = { source = "rojo-rbx/tarmac", version = "0.5.0" }

从GitHub发行版安装

GitHub发行版页面可以获得64位Windows、macOS和Linux的预构建二进制文件。

从源代码安装

Tarmac需要Rust 1.39.0或更高版本来构建。

您可以从crates.io构建Tarmac的最新版本

cargo install tarmac

或从master分支构建最新的工作版本

cargo install --git https://github.com/rojo-rbx/tarmac

基本示例

示例文件夹包含使用Tarmac的不同功能的小型、可工作的项目。

Tarmac通过项目根目录中名为tarmac.toml的TOML文件进行配置。Tarmac使用此文件来确定查找资产的位置以及如何处理它们。

要告诉Tarmac管理名为assets的文件夹中的PNG文件,可以使用

name = "basic-tarmac-example"

# Most projects will define some 'inputs'.
# This tells Tarmac where to find assets that we'll use in our game.
[[inputs]]
glob = "assets/**/*.png"
codegen = true
codegen-path = "src/assets.lua"
codegen-base-path = "assets"

运行tarmac sync --target roblox让Tarmac上传项目依赖的任何新或更新的资产。您可能需要通过--auth参数显式地通过.ROBLOSECURITYcookie传递。

Tarmac将在src/assets.lua中生成Lua代码,如下所示

-- This file was @generated by Tarmac. It is not intended for manual editing.
return {
	foo = {
		bar = "rbxassetid://238549023",
		baz = "rbxassetid://238549024",
	}
}

这些文件将由工具(如Rojo)转换成 ModuleScript 实例。从那里,就可以轻松加载此模块并引用其中的资源。

local assets = require(script.Parent.assets)

local decal = Instance.new("Decal")
decal.Texture = assets.foo.bar

命令行界面

获取更多信息,请运行 tarmac --help

全局选项

这些选项可以与任何子命令一起指定,并且都是可选的。

  • --help-h
    • 打印有关 Tarmac 的帮助信息并退出。
  • --version-V
    • 打印有关 Tarmac 的版本信息并退出。
  • --auth<cookie>
    • 明确指定 Tarmac 用于与 Roblox 通信的认证 cookie。
    • 如果没有指定,Tarmac 将尝试从本地系统找到它。
  • --verbose-v
    • 启用更详细的日志记录。可以指定多达三次,这将进一步增加详细程度。

tarmac sync

检测本地项目中资源的更改,并尝试与外部服务(如 Roblox 云)同步。

用法

tarmac sync [<config-path>] \
	--target <roblox|debug|none>

要将当前工作目录中的项目与 Roblox 云同步,请使用

tarmac sync --target roblox

要验证所有输入是否已同步,请使用 none 目标

tarmac sync --target none

tarmac upload-image

上传单个图像作为贴图并打印生成的图像资源的 ID 到 stdout。

用法

tarmac upload-image <image-path> \
	--name <asset-name> \
	--description <asset-description>

示例

tarmac upload-image foo.png --name "Foo" --description "Foo is a placeholder name."

tarmac help

打印有关 Tarmac 本身或给定子命令的帮助信息。

用法

tarmac help [<subcommand>]

项目格式

  • name,字符串
    • Tarmac 项目的名称,用于日志记录和错误报告。
  • max-spritesheet-size,(int, int),可选
    • Tarmac 应使用的最大精灵表大小。默认为 (1024, 1024),Roblox 支持的最大图像大小。
  • asset-cache-path,路径,可选
    • 如果定义,Tarmac 将重新下载上传的图像到给定路径的本地文件夹。与项目中的资源不相关的文件夹中的文件将被删除。
  • asset-list-path,路径,可选
    • 如果定义,Tarmac 将将项目中使用的资产 URL 列表写入给定文件。每行打印一个 URL。
  • upload-to-group-id,整数,可选
    • 如果定义,Tarmac 将尝试将所有资产上传到指定的 Roblox Group。如果无法完成,同步将失败。
  • inputs,list<InputConfig>,可选
    • 输入列表,Tarmac 将处理这些输入。
  • includes,list<path>,可选
    • 要递归搜索以找到额外项目的额外路径列表。发现的项目的输入将被合并到该项目中,其他设置将被忽略。
    • 当找到 tarmac.toml 文件时,Tarmac 将包括它及其 includes 并停止遍历该目录。

InputConfig

  • glob
    • 应包含此输入组任何文件的路径 glob。
    • Tarmac 使用 globset 库 并支持它支持的任何语法。
  • codegen,布尔值,可选
    • 是否应生成包含在此输入组中的资产的 Lua 代码。默认为 false
  • codegen-path,路径,可选
    • 如果定义且 codegen 为 true,Tarmac 将将此输入组的所有生成的 Lua 代码合并到单个文件中。
  • codegen-base-path,路径,可选
    • 当同时定义了 codegen-path 时,定义生成 Lua 代码的基本路径。默认为 包含 tarmac.toml 的目录

许可证

Tarmac 在 MIT 许可证下可用。有关详细信息,请参阅 LICENSE.txt

依赖项

~26–38MB
~680K SLoC