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