Create 命令

create 命令用于创建触控适配捆绑包的源内容(简而言之,是解压缩捆绑包),或将新布局添加到现有的解压缩捆绑包。 这是开始向游戏添加触控适配的快速入口点。

下表显示了 create 命令可使用的不同子命令。 请注意,create 命令不能单独使用,必须提供子命令。

子命令 说明
bundle 创建新的解压缩触控适配捆绑包以进行开发
layout 基于现有解压缩缩触控适捆绑包中的模板创建新布局

创建捆绑包

create bundle 子命令可快速创建新的触控适配捆绑包所需的所有源内容。 如果游戏不存在现有的解压缩捆绑包,则可开始创建触控适配。

它将创建开始使用新捆绑包所需的所有目录和文件。 这包括包含不同语言的 JSON 布局文件的根布局目录、包含每种语言各种 DPI 的资产的根资产目录、描述捆绑包的根捆绑包配置文件 (takxconfig.json) 以及用于动态布局状态和可重用布局定义的空上下文文件。

选项

使用下表中的选项配置解压缩触控适配捆绑包的创建。

选项 说明
--destination
--name
必需。 用于放置解压缩捆绑包的目标路径。 可以是简单名称或完整路径。
[!注意] 如果目标中存在任何文件或目录,则必须先使用 --overwrite-destination 选项来删除它们。
[!注意] 如果使用了简单名称而不是路径,则当前工作目录将包含创建的捆绑包。
--layouts-directory-name
--layouts-dir
--layouts
用于存储触控控件布局的子目录的名称。 这是根布局目录。
默认:layouts
--assets-directory-name
--assets-dir
--assets
用于存储触摸控件资产的子目录的名称。 这是根资产目录。
默认:assets
--layout-languages 用于在根布局目录下创建语言目录的 IETF 语言标记的列表。 将始终创建 neutral
默认值:空列表。
--asset-languages 用于在根资产目录下创建语言目录的 IETF 语言标记列表。 将始终创建 neutral
默认值:空列表。
--version 捆绑包的内容版本。
默认:1.0.0.0
--version-name 捆绑包的内容版本名称。
默认值:空字符串。
--context-file-name
--context-file
--context
捆绑包的上下文文件的名称。
默认:context.json
--templates 创建时要添加到捆绑包中的一个或多个模板布局的列表。 模板始终添加到 neutral 布局语言目录,以及与 --layout-languages 中指定的语言对应的任何语言目录。
查看可用模板的列表。
默认:Blank
--no-templates 不要将任何模板添加到捆绑包。 如果指定了 --templates ,则无法使用。
默认:false
--overwrite-destination
--overwrite
删除目标中以前的任何内容。 如果目标不为空,则此为必需项。
默认:false

示例

以下示例演示如何创建新的解压缩触控适配捆绑包。


使用默认的空白模板创建简单的新解压缩捆绑包

D:\CreateBundleExamples> tak create bundle --name SampleBundle
Creating loose touch adaptation bundle 'SampleBundle'.
Creating bundle config file.
Creating layouts and assets directories.
Creating language directories.
Creating context file.
Added 1 templates to bundle.
Created loose touch adaptation bundle at 'D:\CreateBundleExamples\SampleBundle'.

输出:

D:.
└───CreateBundleExamples
    └───SampleBundle
        │   context.json
        │   takxconfig.json
        │
        ├───assets
        │   └───neutral
        │       ├───@1.0x
        │       ├───@1.5x
        │       ├───@2.0x
        │       ├───@3.0x
        │       └───@4.0x
        └───layouts
            └───neutral
                    blank.json

使用一些布局语言、模板和自定义目录名称在不同的驱动器中创建新捆绑包

C:\> tak create bundle --destination D:\CreateBundleExamples\SomeFolder\AnotherFolder\SampleBundle --layout-languages fr fr-FR en-US --templates Menu Cinematic RacingBasic RacingAdvanced --layouts-dir touch-control-layouts --assets-dir touch-control-assets --context-file touch-control-context
Creating loose touch adaptation bundle 'SampleBundle'.
Creating bundle config file.
Creating layouts and assets directories.
Creating language directories.
Creating context file.
Added 4 templates to bundle.
Created loose touch adaptation bundle at 'D:\CreateBundleExamples\SomeFolder\AnotherFolder\SampleBundle'.

输出:

D:.
└───CreateBundleExamples
    └───SomeFolder
        └───AnotherFolder
            └───SampleBundle
                │   takxconfig.json
                │   touch-control-context.json
                │
                ├───touch-control-assets
                │   └───neutral
                │       ├───@1.0x
                │       ├───@1.5x
                │       ├───@2.0x
                │       ├───@3.0x
                │       └───@4.0x
                └───touch-control-layouts
                    ├───en
                    │   └───en-US
                    │           cinematic.json
                    │           menu.json
                    │           racing-advanced.json
                    │           racing-basic.json
                    │
                    ├───fr
                    │   │   cinematic.json
                    │   │   menu.json
                    │   │   racing-advanced.json
                    │   │   racing-basic.json
                    │   │
                    │   └───fr-FR
                    │           cinematic.json
                    │           menu.json
                    │           racing-advanced.json
                    │           racing-basic.json
                    │
                    └───neutral
                            cinematic.json
                            menu.json
                            racing-advanced.json
                            racing-basic.json

注意

在 命令中,使用 --layout-languages 选项同时指定“fr”和“fr-FR”会导致模板添加到每个相应的目录。 但是,由于仅指定了“en-US”,因此模板以独占方式添加到“en-US”目录,而不是添加到父“en”目录。 无论这些规范如何,模板都会一致地添加到非特定目录。

生成的捆绑包配置文件 (takxconfig.json) 将反映表示传递给命令的参数的 create bundle 配置。

{
  "$schema": "https://raw.githubusercontent.com/microsoft/xbox-game-streaming-tools/main/touch-adaptation-kit/schemas/takxconfig/v1/takxconfig.json",
  "layouts": {
    "path": "touch-control-layouts"
  },
  "assets": {
    "path": "touch-control-assets"
  },
  "context": {
    "path": "touch-control-context.json"
  },
  "version": "1.0.0.0",
  "versionName": "Initial"
}

创建布局

create layout 子命令允许将新布局添加到现有的解压缩捆绑包。 create bundle 生成的输出可用作 create layout 的输出,方法是提供在解压缩捆绑包的根目录中创建的 takxconfig.json 文件作为 --takx-config-file 选项的值。

create bundle 类似,模板可用于在此命令中创建布局,或默认为 Blank。 还支持将布局添加到多个布局语言目录,并且与文件不存在或需要提供 --overwrite 相同的规则也适用。

选项

使用下表中的选项配置解压缩触控适配捆绑包的布局创建。

选项 说明
--takx-config-file
--takxconfig
必需。 捆绑包配置文件的路径。 必须命名为 takxconfig.json
--name 布局的名称。 这也将是其文件名。
建议将布局命名为最适合游戏。
默认值:使用的模板的名称(例如, shooter-basic.json)。
--languages 应为其添加布局的 IETF 语言标记列表。 无论此处传递的值如何,neutral 布局都将始终添加到布局语言目录。 如果在此处指定了语言标记,而在根布局目录下找不到与之匹配的目录,则将创建该目录。
默认值:空列表。
--all-languages
--all
在捆绑包配置文件 (takxconfig.json) 中指定的根布局目录下的所有语言子目录中创建布局。
指定了--languages 之后, 无法设置为 true
默认值:false
--template 用于布局的模板。
查看可用模板的列表。
默认值:Blank
--overwrite 覆盖任何具有相同名称的现有布局文件。
如果根布局目录下的任何语言子目录包含具有相同名称的 JSON 文件,则这是必需的。 例如,如果 --name 设置 test为 { --languages 0 en-US},并且 en-US 目录不包含命名 test.json 文件,但 neutral 未指定,则不会执行 --overwrite 该命令。
默认值:false
--set-default
--default
将创建的布局设置为捆绑包配置文件 (takxconfig.json) 中的默认布局。
默认值:false

示例

以下示例演示如何在现有的解压缩触控适配捆绑包中创建新布局。


使用默认的 Blank 模板创建简单的新布局。

D:\CreateLayoutExamples\SampleBundle> tak create layout --name sample-layout --takxconfig .\takxconfig.json
Verifying bundle configuration file (takxconfig.json).
Verification complete. 0 error(s), 0 warning(s) and 0 note(s) found.
Created layout 'sample-layout' using template 'Blank' in 1 directories.

输出:

D:.
└───CreateLayoutExample
    └───SampleBundle
        │   context.json
        │   takxconfig.json
        │
        └───layouts
            └───neutral
                    sample-layout.json

使用捆绑包中多种语言的特定模板创建新布局。

D:\CreateLayoutExamples> tak create layout --takxconfig .\SampleBundle\takxconfig.json --template ShooterBasic --languages ja-JP en en-US
Verifying bundle configuration file (takxconfig.json).
Verification complete. 0 error(s), 0 warning(s) and 0 note(s) found.
WARNING: A language directory for 'ja-JP' does not exist under the root layouts directory. It will be created, as well as any relevant parenting directories if applicable to the language.
WARNING: A language directory for 'en' does not exist under the root layouts directory. It will be created, as well as any relevant parenting directories if applicable to the language.
WARNING: A language directory for 'en-US' does not exist under the root layouts directory. It will be created, as well as any relevant parenting directories if applicable to the language.
Created layout 'shooter-basic' using template 'ShooterBasic' in 4 directories.

输出:

D:.
└───CreateLayoutExample
    └───SampleBundle
        │   context.json
        │   takxconfig.json
        │
        └───layouts
            ├───en
            │   │   shooter-basic.json
            │   │
            │   └───en-US
            │           shooter-basic.json
            │
            ├───ja
            │   └───ja-JP
            │           shooter-basic.json
            │
            └───neutral
                    shooter-basic.json

注意

布局是在“en”目录中建立的,但不是在“ja”目录中建立的,因为前者是为“--languages”参数指定的唯一布局。


为所有语言创建新布局

D:\CreateLayoutExamples> tak create layout --takxconfig .\SampleBundle\takxconfig.json --all-languages
Verifying bundle configuration file (takxconfig.json).
Verification complete. 0 error(s), 0 warning(s) and 0 note(s) found.
Created layout 'blank' using template 'Blank' in 5 directories.

输出:

D:.
└───SampleBundle
    │   context.json
    │   takxconfig.json
    │
    └───layouts
        ├───en
        │   │   blank.json
        │   │   shooter-basic.json
        │   │
        │   └───en-US
        │           blank.json
        │           shooter-basic.json
        │
        ├───ja
        │   │   blank.json
        │   │
        │   └───ja-JP
        │           blank.json
        │           shooter-basic.json
        │
        └───neutral
                blank.json
                shooter-basic.json

另请参阅

触控适配套件命令行工具 (tak.exe)