这是用户在 2024-9-7 19:08 为 https://app.immersivetranslate.com/word/ 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?

介绍和准备

本指南最好在 PC 上查看。某些部分可能难以在移动设备上阅读
本指南最好在 PC 上查看。某些部分可能难以在移动设备上阅读

Discord 链接可能需要您成为 Hollow Knight Modding Discord 的一员

制作您自己的自定义 Hollow Knight 皮肤不需要知道如何创建模组。Mod 已经存在,您需要做的就是创建艺术。为骑士制作自己的皮肤是一项艰巨的任务,仅骑士精灵表就有 500 多个精灵,但有一些工具可以使其变得更容易。 本文档将介绍皮肤制作的基础知识,从准备工作开始。
制作您自己的自定义 Hollow Knight 皮肤不需要知道如何创建模组。Mod 已经存在,您需要做的就是创建艺术。为骑士制作自己的皮肤是一项艰巨的任务,仅骑士精灵表就有 500 多个精灵,但有一些工具可以使其变得更容易。 本文档将介绍皮肤制作的基础知识,从准备工作开始。

虽然使用默认皮肤作为基础很好,但未经他们许可,请勿使用其他艺术家的皮肤!您可以使用其他皮肤作为参考,但切勿在未事先询问其创建者的情况下绘制或编辑其他皮肤。
虽然使用默认皮肤作为基础很好,但未经他们许可,请勿使用其他艺术家的皮肤!您可以使用其他皮肤作为参考,但切勿在未事先询问其创建者的情况下绘制或编辑其他皮肤。

首先确保您已安装 'Custom Knight' 及其依赖项 'Satchel'。您可以在 Lumafly Mod 安装程序上找到这些模组。第一次启动游戏并输入安装了 CK 的保存文件时,游戏会在 mod 文件夹中生成默认皮肤时滞后。完成并且延迟停止后,您可以退出游戏。默认皮肤将是自定义皮肤的文件命名指南。如果您曾经不小心删除了默认皮肤的一部分,或保存了原始文件,您可以通过转到自定义骑士 mod 菜单下的高级设置并单击“设为默认”来强制它再次生成。它将在您下次启动游戏时生成默认皮肤

接下来,您需要获取 sprite。sprite 表(也称为图集)很难直接使用,因此请在此处下载 sprites 文件夹:https://drive.google.com/drive/folders/1RUJSJau1mZ2Y5lvnmNbcaRQnBXttNZdj
接下来,您需要获取 sprite。sprite 表(也称为图集)很难直接使用,因此请在此处下载 sprites 文件夹:https://drive.google.com/drive/folders/1RUJSJau1mZ2Y5lvnmNbcaRQnBXttNZdj

不要重命名 sprites 文件夹中的任何文件或文件夹。文件夹的名称保持原样非常重要,否则打包程序将无法将它们打包到 sprite 表中。
不要重命名 sprites 文件夹中的任何文件或文件夹。文件夹的名称保持原样非常重要,否则打包程序将无法将它们打包到 sprite 表中。

要编辑 sprite,任何可以使用透明背景保存的艺术程序都可以。如果你没有可以处理透明度的艺术程序,一些流行的免费选项包括:Krita、FireAlpaca、Gimp Paint.net
要编辑 sprite,任何可以使用透明背景保存的艺术程序都可以。如果您没有可以处理透明度的艺术程序,一些流行的免费选项包括:Krita、FireAlpaca、Gimp Paint.net

我个人使用 Krita,所以本指南中的任何艺术程序图像都是 Krita 的。
我个人使用的是 Krita,因此本指南中任何艺术程序的图片都是 Krita 的。


注意:
注意:
已知 Clip Studio Paint 会导致游戏中的骑士周围出现白色轮廓,这是由于它的导出方式。在其他程序(例如 Paint 3D)中打开您编辑的 png 文件,然后重新保存以删除白色绒毛。如果这不起作用,请尝试将其导出为 psd,在不同的艺术程序中打开它,然后将其重新导出为 png。但避免此问题的最佳方法是不使用 CSP。


在开始之前,您最不想获取的是 sprite 打包程序。
在开始之前,您最不想获取的是 sprite 打包程序。

Sprite 打包程序
Sprite 打包程序

制作皮肤不需要打包程序,但它们使过程变得更加容易,因此我强烈建议使用一个。
制作皮肤不需要打包程序,但它们使过程变得更加容易,因此我强烈建议使用一个。

如果您选择不使用打包程序,则需要直接编辑 sprite 表。
如果您选择不使用打包程序,则需要直接编辑 sprite 表。

有 3 个选项可供选择:Sprite Packer (
有 3 个选项可供选择:Sprite Packer (
SP)、New Sprite Packer (NSP) 和 Custom Knight Creator (CKC)。
SP)、New Sprite Packer (NSP) 和 Custom Knight Creator (CKC) 的 API 创建器。


所有加壳程序都执行以下操作:+
所有加壳程序都执行以下操作:

允许您按动画顺序
+允许您按动画顺序单独处理 Sprite
单独处理 sprite +检查多个动画(复制)中使用的 sprite 并替换它们以匹配
+预览动画

Sprite Packer(推荐)

下载: https://github.com/magegihk/HollowKnight.SpritePacker
下载: https://github.com/magegihk/HollowKnight.SpritePacker

+将确保您在让您打包
+在它让你打包之前,确保你已经处理过所有的复制品
之前已经处理了所有复制品+非常稳定,在崩溃后最容易重新开始

+可以打包任何可以转储的东西,只要 atlas 文件夹中有兼容的 spriteinfo 文件

- 动画播放始终为 12fps,即使动画在游戏中
播放得更快 - 仅限 Windows。与 Mac 或 Linux 不兼容

- 精灵必须保存在非常特定的文件位置

- Preview 窗口不适应大型 Sprite

- 默认语言不是英文,所以每次打开程序都需要切换一下(没什么大不了的,但有点烦人)

如果您使用的是 SP,则必须将 sprites 文件夹放在以下位置:C:\Users\<your username>\AppData\LocalLow\Team Cherry\Hollow Knight
C:\Users\<您的用户名>\AppData\LocalLow\Team Cherry\Hollow Knight

因此,骑士空闲的第一个 sprite 的文件路径将如下所示:
C:\Users\<your username>\AppData\LocalLow\Team Cherry\Hollow Knight\sprites\Knight\001.Idle\001-00-007.png
C:\Users\<您的用户名>\AppData\LocalLow\Team Cherry\Hollow Knight\sprites\Knight\001.Idle\001-00-007.png

注意:如果 sprites 文件夹中有空文件夹,则 Spritepacker 将无法启动。

新的 Sprite Packer

Download: https://github.com/jngo102/sprite-packer (Do not download v0.0.1. Download v0.2.0)

+Dark Mode toggle, so you can check how your sprites look on a light or dark background
+Dark Mode 切换,以便您可以检查 Sprite 在浅色深色背景上的外观

+Compatible with Windows, Mac, and Linux
+兼容 Windows、Mac 和 Linux

+Preview Window adjusts to large sprites
+预览窗口调整为大型 sprite

+Can pack anything that can be dumped, as long as there is a compatible spriteinfo file in the atlas folder
+可以打包任何可以转储的东西,只要 atlas 文件夹中有兼容的 spriteinfo 文件

+Animation playback is accurate to in game fps
+动画播放精确到游戏内 fps

- More taxing on your computer than other Packers
- 比其他 Packer您的计算机负担更大

- Must be installed
- 必须安装

- Animation playback can lag, especially when working on the Knight

- Crashes if folders are named wrong or lack a spriteinfo file and might not open again without a reset
- 如果文件夹命名错误或缺少 spriteinfo file,则崩溃,并且如果不重置,可能无法再次打开

- Does not always properly identify dupes if the individual images share a file name with an image in a different sprite folder.

If you are using NSP, you must direct it to your sprites folder so it can find your sprites. Click ‘Options’ -> ‘Set Sprite Path’ and select your sprites folder. This folder can be named anything you want, but remember you cannot change the names of the folders inside (ex: Knight, Quirrel, Hollow Shade). If the sprites do not show up after you have selected your path, exit the program and open it again and they should appear.
如果您使用的是 NSP,则必须将其定向到 sprites 文件夹,以便它可以找到您的 sprite。点击 'Options' -> 'Set Sprite Path' 并选择你的 Sprites 文件夹。此文件夹可以命名为您想要的任何名称,但请记住,您不能更改其中文件夹的名称(例如:Knight、Quirrel、Hollow Shade)。如果在选择路径后 sprite 没有显示,请退出程序并再次打开它,它们应该会出现。


NSP will crash if the selected sprites folder contains a folder
如果所选 sprites 文件夹包含文件夹
that does not contain a compatible spriteinfo.json file and sometimes will no longer open even if the problem folder is removed. If this happens, remove the problem folders and reset its memory by doing the following:
该文件不包含兼容的 spriteinfo.json 文件,有时即使删除了问题文件夹,该文件也不再打开。如果发生这种情况,请删除问题文件夹并重置其内存,方法是执行以下操作:

Press the WindowsKey + R at the same time to bring up the "Run" window, then enter %APPDATA%/sprite-packer/config and press Enter. (For Macs, you will need to go to ~/Library/Application Support/rs.sprite-packer/)

Delete the sprite-packer.toml file.
删除 sprite-packer.toml 文件。

Run New Sprite Packer again
再次运行 New Sprite Packer

Custom Knight Creator
自定义 Knight Creator

Download:https://github.com/cmot17/CustomKnight-Creator

+Compatible with Windows, Mac, and Linux
+兼容 Windows、Mac 和 Linux

+Animation playback is accurate to in game fps
+动画播放精确到游戏内 fps

+Search box allows you to filter animations by name
+搜索框允许您按名称筛选动画

+Identifies unmarked dupes
+识别未标记的复制对象

- Crashes if folders are named wrong or incompatible folders are selected, and will not open again without a reset
- 如果文件夹命名错误或选择了不兼容的文件夹,则崩溃,并且不会在不重置的情况下再次打开

- Can only pack certain sheets (specifically the ones related to the knight. Notably cannot pack the shade nor enemies)
- 只能打包某些床单(特别是与骑士相关的床单。值得注意的是,不能打包阴影或敌人)

- Generated sprite sheets will not contain any sprites that are not present in the program during packing. All sprites must be present, even
- 生成的 sprite 表将不包含在打包期间程序中不存在的任何 sprite。所有 sprite 都必须存在,即使

those purposely left vanilla.
那些故意离开了原版。

If you are using CKC, you must direct it to each of your sprite folders. Under Root Folders, click ‘Add’ and find your sprites folder. Add all of the folders you plan to work on individually (ex: Knight, Quirrel, Spider Cutscene Anim). Click on the root folder of the sprites you want to actively work on and click ‘load categories’. Click on the Atlas you are currently working on and click ‘Load Animations’.
如果你正在使用 CKC,你必须将它定向到你的每个 sprite 文件夹。在 Root Folders 下,单击 'Add' 并找到您的 sprites 文件夹。添加您计划单独处理的所有文件夹(例如:Knight、Quirrel、Spider Cutscene Anim)。点击你想要处理的 sprite 的根文件夹,然后点击 'load categories'。单击您当前正在处理的 Atlas,然后单击 'Load Animations'。

CKC will crash if you don’t direct it to the correct folder, or if the folders contain any extra files, and will no longer open. If it does, reset its memory by doing the following:
如果你没有将 CKC 定向到正确的文件夹,或者如果文件夹包含任何额外的文件,它将崩溃,并且不会再打开。如果是这样,请通过执行以下操作重置其内存:

Press the WindowsKey + R at the same time to bring up the "Run" window, then enter %appdata%\..\..\CustomKnight Creator and press Enter.
同时按 WindowsKey + R 调出“运行”窗口,然后输入 %appdata%\.。\..\CustomKnight Creator 并按 Enter 键。

Delete the savestate.json file.
删除 savestate.json 文件。

Run Custom Knight Creator again
再次运行 Custom Knight Creator

Creating a Knight Skin
创建 Knight 皮肤

Before you start drawing your skin, take a look at a sprite’s file name. Every sprite should have a name that looks like xxx-yy-zzz.png, with X being what animation it belongs to, Y being its position in that animation, and Z being its sprite ID. The sprite ID is important, as any sprite that has the same ID, regardless of what animation it belongs to, is a duplicate and uses the same sprite on the sprite sheet. That means they must match each other. Make sure you don’t waste time and effort drawing a full set of frames, only to realize afterwards that a bunch of them are duplicates that are going to overwrite each other.
在开始绘制皮肤之前,请查看 sprite 的文件名。每个 sprite 都应该有一个看起来像 xxx-yy-zzz.png 的名称,其中 X 是它所属的动画,Y 是它在该动画中的位置,Z 是它的 sprite ID。精灵 ID 很重要,因为任何具有相同 ID 的精灵,无论它属于哪个动画,都是重复的,并且在精灵表上使用相同的精灵。这意味着它们必须彼此匹配。确保您不要浪费时间和精力绘制一整套帧,但事后才意识到其中一堆帧是将要相互覆盖的重复项。

If two sprites share an ID, you only need to edit 1 of them. The packer will automatically replace the unchanged duplicates later.
如果两个 sprite 共享一个 ID,则只需编辑其中 1 个 sprite。加壳程序稍后将自动替换未更改的重复项。

NOTE: There are some dupes that do not share an ID despite being duplicates. They will be listed below in the ‘unmarked dupes’ section.
注意:有些复制品尽管是重复的,但并不共享 ID。它们将列在下面的“未标记的复制品”部分。

Once you open up a sprite in your art program of choice, it’s important that you do not alter the size of the canvas and do not draw on nor outside of the red borders. Changing the canvas size will make your sprite not pack correctly and if a sprite has red borders anywhere in the canvas, anything drawn outside of those borders will get cut off. Part of the challenge of making a skin is working in a limited space. Keep that in mind when designing your skin. If you want to break these size limits, you will need to use an add-on (see Add-ons section).
在您选择的艺术程序中打开 sprite 后,重要的是不要更改画布的大小,也不要在红色边框上或红色边框之外绘图。更改画布大小将使 sprite 无法正确打包,如果 sprite 在画布中的任何位置都有红色边框,则在这些边界之外绘制的任何内容都将被截断。制作皮肤的部分挑战是在有限的空间内工作。在设计皮肤时请记住这一点。如果您想打破这些大小限制,则需要使用附加组件(请参阅附加组件部分)。

NOTE: If you are editing sprites while SP is open, make sure you do not have the sprite you are actively working on selected in SP, or you will not be able to save it as it will be ‘open in another program’. If you get this message while trying to save a sprite, just select a different sprite and save again. If you recently packed an atlas, you may need to hit ‘refresh’ in SP and then select a sprite you’re not working on at the moment.
注意:如果您在 SP 打开时编辑 sprite ,请确保您没有在 SP 中选中您正在处理的 sprite,否则您将无法保存它,因为它将“在另一个程序中打开”。如果您在尝试保存 Sprite 时收到此消息,只需选择其他 Sprite 并再次保存即可。如果您最近打包了一个图集,您可能需要在 SP 中点击“刷新”,然后选择您目前没有处理的精灵。

After you’ve edited all the non duplicate sprites of an animation, you can check to see how it looks using your preferred packing program. In your packer, click on the animation clip you want to preview. SP and NSP will automatically play the animation on loop. To pause the autoplay, click on one of the frames. To resume the autoplay, select the animation clip again. CKC needs to be manually told to play the animation, and will not loop unless the autoplay checkbox is checked. To stop playback, the checkbox must be unchecked.
在编辑完动画的所有非重复 sprite 后,您可以使用首选的打包程序检查它的外观。在加壳程序中,单击要预览的动画剪辑。SP NSP 将自动循环播放动画。要暂停自动播放,请单击其中一个帧。要恢复自动播放,请再次选择动画剪辑。需要手动告诉 CKC 播放动画,除非选中 autoplay 复选框,否则它不会循环。要停止播放,必须取消选中该复选框。

To replace duplicates in SP and NSP, click on the atlas you are working with and click ‘check’. In SP, duplicates that need your attention will appear in the top left. Select the sprite you want to keep. Hit replace and all sprites sharing that ID will become the sprite you selected. Continue to check and replace until the message in the top left says ‘good to go’.
要替换 SP NSP 中的重复项,请单击您正在使用的图集,然后单击“检查”。在 SP,需要注意的重复项将显示在左上角。选择要保留的 sprite。点击 replace 键,共享该 ID 的所有 Sprite 都将成为您选择的 Sprite。继续检查并更换,直到左上角的消息显示“good to go”。

要用 SP 一次替换一堆复制人请选择要保留的 sprite 的帧,然后单击“已更改的文件”部分下的“添加”。对你想要保留的所有精灵执行此操作,然后选择你正在处理的原始图集,点击“检查”,然后点击“已更改的文件”部分下的“全部替换”。SP 会自动将找到的所有复制项替换为您之前选择的 Sprite。要从 'Changed Files' 部分删除 sprite,请双击它。

NSP ,当您选择图集时,它将拉伸页面。滚动到底部找到“检查”并单击它。所有重复项都将显示在右侧。选择要保留的 sprite,然后点击 'Replace Duplicates'。要清除 'Changed Sprites' 列表,请单击 'Options' 并点击 'Refresh'。

对于 SP NSP,如果没有其他内容需要替换,则 'check' 将变为 'pack'。单击“pack”将创建自定义 sprite 表。在 SP,它将自动保存在 0.Atlases 文件夹中。在 NSP,系统会询问您要将其保存在哪里。
有关使用 SP 的视频教程,请单击此处:
如何使用 SpritePacker 制作空洞骑士的皮肤(带有 Akkitty08 制作的音频)
没有使用 NSP 的视频教程。

要替换 CKC 中的重复项,请单击 View Duplicate Groups。查看“动画重复组”将仅显示 ID 与当前所选动画匹配的复制。查看“所有重复组”将显示当前所选图集的所有复制项。如果重复的组具有绿色复选标记,则所有复制项都匹配。如果它是红色的 X,则要么需要替换复制对象,要么该组中的任何 sprite 都尚未自定义。要替换 Sprite,请单击一个组并选择要使用的 Sprite。点击 '选择主副本'。对每个带有红色 X 的组执行此操作(跳过您尚未自定义的组)。点击 'Autoreplace All' 将自动为每个组选择您最近编辑的 sprite 作为 Main Copy。完成后,点击“完成”。

要使用 CKC 打包,请在 sprites 文件夹之外创建一个新文件夹。点击 'select output folder path' 并选择此文件夹。每当您点击 pack 时,它都会保存到您选择的文件夹中。注意: CKC 将始终打包所有加载的 atlas。如果你只想让它打包特定的图集,请确保在 'atlases/collections' 下禁用你不想要的图集。

有关使用 CKC 的视频教程,请单击此处:(新)CustomKnight Creator 教程

生成图集后,进入 Custom Knight mod 文件夹下的 skins 文件夹(如果找不到,请启动 Hollow Knight 并单击自定义 knight mod 菜单下的“打开文件夹”),创建一个新文件夹并命名您的皮肤。将新地图集放入其中。使用默认外观作为指南,并重命名所有图集以匹配默认外观中的图集的名称。对于 Default 皮肤中任何单个、独立的 Sprite(例如魅力、物品栏和粒子),您可以将这些 png 直接复制并粘贴到您自己的皮肤文件夹中,然后直接编辑它们。无需封隔器!

启动您的游戏,您应该会在皮肤列表中看到您的皮肤。

提示和技巧

下面是一个按类型将各种动画分组在一起的清单。您可以使用它来跟踪您的进度。自定义骑士清单 - 模板
点击文件 -> “制作副本” 创建您自己的私人副本,您可以保存和编辑。

在设计皮肤时,您可能需要简化角色,以更好地适应大小限制并使其更易于制作动画。避免使用过多的精细细节或较重的阴影。使用更简单的设计,sprite 之间的一致性更容易保持。如果你正在使用着色,请尝试以易于在每个 sprite 中模拟的方式进行着色,如果你的设计有图案,请尝试以易于复制的方式放置它。如果您不小心,在动画过程中,图案可能会开始在 sprite 中漂移或更改大小,因此请以某种方式进行设计,以尽量减少发生这种情况的可能性。

更聪明地工作,而不是更努力地工作!保留一个文件,其中有一份面向不同方向的皮肤头部副本,并尽可能复制粘贴它(以及其他任何不会改变的东西),而不是为每个 sprite 重新绘制。

尝试使头部与原来的骑士相同大小,并将眼睛放在同一位置。通过这种方式,你可以使用原始的骑士作为你的指南,帮助你保持自己的皮肤在帧之间保持一致。您可以用作指南的原始骑士越多,制作您的皮肤就越容易。即使您绘制更小或更大的角色,碰撞箱在游戏中也不会改变,因此匹配骑士的大小也会让您的皮肤使用起来感觉良好,因为碰撞箱会匹配得更好。

Krita 提示:你可以一次性将动画的所有帧导入到程序中。点击 'File' -> 'Import Animation Frames...'并添加 animation 文件夹中的所有帧。同时处理整个动画有助于确保动画看起来流畅。

在空中结束的动画(例如 096.SD Air Brake 和 098.Double Jump)直接进入 '003.Airborne' 动画,从 sprite 003-03-021.png 开始。如果您正在绘制的 sprite 不遵循骑士的解剖结构,请确保以顺利进入空中动画的方式结束这些动画。

养成每次使用加壳程序的检查和替换功能完成动画时检查复制的习惯。这既快速又容易做到,并且省去了你意识到你画了一个不需要画的框架的痛苦,因为你直到后来才意识到这是一个骗子。

定期打包您的地图集,并时不时地检查它在游戏中的外观。最好在处理动画时检查并调整动画,而不是等到最后,看到你的皮肤在行动可以是一个很好的动力,让你继续前进。

如果您在游戏中打开 Custom Knight Mod 菜单,您可以在 'keybinds' 下设置一个 keybound 来重新加载您的皮肤。如果您在保持游戏打开状态的同时进行编辑,这将非常有用,因为您可以快速刷新 sprite 并查看其外观,而无需一遍又一遍地打开菜单。

未标记的复制

Knight 文件夹中的以下 sprite 是相同的 sprite,尽管没有匹配的 ID。如果您使用的是 CKC,则无需担心这些 sprite。CKC 将自动检测并替换它们。如果您使用的是 SP NSP,则必须手动编辑映像以使其匹配。一旦它们匹配,SP 和 NSP 将处理任何剩余的复制程序。

005-09-009 = 006-09-156 031-00-195 = 046-20-339 053-33-349 =046-05-341 069-00-178 = 139-05-382

022-01-230 = 022-05-219 031-01-191 = 033-03-189 053-33-349 =046-06-349 071-00-476 = 116-00-734

022-02-233 = 022-06-217 039-00-291 = 040-00-296 053-33-349 =046-07-342

069-02-176 = 068-00-357 053-00-343 = 053-25-352 053-33-349 =046-08-340

069-01-173 = 068-01-298 053-00-343 = 053-26-346 053-33-349 =046-12-333

未使用的 Sprite

以下动画不会在游戏中使用,可以忽略。

026. Hit Crack 出现

036. 闲风

以下动画包含未使用的 sprite。可以跳过列出的 sprite 位置。

040. 坐瘦(位置 01 和 02 未使用。

098. 二段跳(位置 04、05、06 和 07 未使用。

高级皮肤制作

除了给骑士剥皮,您还可以更改敌人和环境,包括 Nosk 或 Bretta 卧室中的小骑士海报和毛绒玩具。甚至对话和过场动画也可以通过 Custom Knight 进行更改。您还可以包含地图集的替代版本,这些地图集可以通过自定义骑士 Mod 菜单中的替代选项在游戏中访问,以及自定义一些与骑士相关的颜色设置。

皮肤配置

在安装了自定义皮肤的情况下至少启动游戏一次后,当您退出游戏时,您会在自定义皮肤文件夹中找到两个新文件:skin-config.json 和 skin-settings.json。skin-config.json 是您想要查看的那个。
在安装了自定义皮肤的情况下至少启动游戏一次后,当您退出游戏时,您会在自定义皮肤文件夹中找到两个新文件:skin-config.json 和 skin-settings.json。skin-config.json 是您想要查看的那个。

dungFilter - 设置为 false 可删除应用于 Defender's Crest 创建的粪云的棕色过滤器。

wraithsFilter - 设置为 true 可删除应用于 Wraiths 图集的 Alpha 过滤器。警告: 这将使图纸上的所有黑色可见。仅当您要自定义整个图集时,才执行此操作。

brummColor - 控制当 Carefree Melody 激活时骑士闪烁的颜色。默认值为 FFFFFFflashColor - 控制骑士在使用 Focus 技能时闪烁的颜色。默认值为 FFFFFF

dungFlash - 控制敌人在受到 Defender's Crest 伤害时闪烁的颜色。默认值为 734500

detectAlts - 设置为 true 可自动尝试检测皮肤中的任何 alt

alternates 部分是手动设置要包含在皮肤中的任何替代 sprite 表的方法。您将在此处找到所有可以具有 alt 的 png 的名称。要设置 alt,您需要做的就是将 png 的名称放在要与之关联的图集下方。确保它位于自己的线路上。如果同一图集有多个文件,请确保除最后一行之外的所有文件都在其末尾带有逗号。

例如,假设您要添加 3 个版本的 knight 工作表,因此您在皮肤中包含 3 个 knight png 副本(Knight green.png、Knight blue.png 和 Knight red.png)。这是更改 alternates 部分以使所有 3 个都可用的方法:

您可能已经注意到,第二个版本的图集下方不再有 'knight.png。除了添加 alts,您还可以使用它来将皮肤中的 png 重命名为您想要的任何内容。只需确保它们与此文件中的正确图集相关联即可。

如果您确实以这种方式重命名所有文件,请确保同时编辑skin-settings.json,以便它也使用您的新名称。示例:
{

“selectedAlternates”: {

“Knight.png”: “骑士blue.png”,

“Sprint.png”: “Sprint.png”,

如果你不这样做,任何重命名的图集都会在游戏中显示为原版,但别担心。只需进入游戏中的 alternates 菜单并应用重命名的图集即可修复它。

敌人和环境皮肤

Custom Knight 包括一个 'swapper' 功能,它允许你自定义的不仅仅是骑士。创建自定义敌人并更改皮肤的背景确实有助于沉浸感,但确实需要一些额外的工作。在大多数情况下,您需要自己转储 sprite,但您也可以在 Hollow Knight Modding discord 中找到很多已经转储的敌方 sprite。Mod Discord 中的 sprite 转储与 SP NSP 兼容。CKC 无法打包敌人的图鉴,因此如果您打算使用打包程序为敌人和 NPC 创建皮肤,则必须使用不同的打包器。 

You can find the enemy and npc sprite dumps here (Requires being part of the HK Modding Discord): https://discord.com/channels/879125729936298015/1100280517808640110
你可以在这里找到敌人和 NPC 的外观转储(需要成为 HK Modding Discord 的一部分):https://discord.com/channels/879125729936298015/1100280517808640110

If the thing you want to skin is not already dumped, you will have to dump the sprites yourself.
如果要蒙皮的内容尚未转储,则必须自己转储 sprite。

Dumping Sprites
转储 Sprite

There are two ways you’ll be dumping sprites. Dumping with the Custom Knight mod itself will not only give you the sprites for the various backgrounds, it will also give you the names you will need for your skin. Just like how the default skin was your naming guide for the knight files, you can use the dumped files as your naming guide for your enemy and background skins.
有两种方法可以转储 sprite。使用 Custom Knight mod 本身进行转储不仅会为您提供各种背景的精灵,还会为您提供皮肤所需的名称。就像默认皮肤是 knight 文件的命名指南一样,您可以使用转储的文件作为敌人和背景皮肤的命名指南。

The second dumping method is through the use of the mod ‘Game Object Dump’ also called ‘GoDump’. GoDump is what you will use to break the atlases up into individual sprites that you can use with your packing program.
第二种转储方法是通过使用 mod 'Game Object Dump',也称为'GoDump'。GoDump 是您将用于将图集分解为可与打包程序一起使用的单个精灵的工具。

With CK
含 CK

To dump sprites with Custom Knight, go to the room or enemy you want to skin. Open the custom knight mod menu, click tools, and you will be presented with two dumping styles: Directory and Names.Json.
要使用 Custom Knight 转储精灵,请转到要蒙皮的房间或敌人。打开自定义 knight mod 菜单,点击 tools,你会看到两种转储样式:Directory 和 Names.Json。

‘Directory’ dumps the sprites by a readable name and often involves multiple sub folders being generated for the room, so you may need to do some digging to find the sprites you’re looking for. Images might be dumped multiple times and appear in different sub folders if they are used for different things in the room you are dumping. This dump method is faster than the other method, and the naming style can help you figure out what you’re looking at, but you will have less creative control for your skin. You will need to match the folder pathing exactly when you copy the sprites you want to edit for your skin, otherwise your skin elements will not show up.
'Directory' 按可读名称转储 sprite,并且通常涉及为房间生成多个子文件夹,因此您可能需要进行一些挖掘才能找到要查找的 sprite。如果图像用于要转储的 Room 中的不同内容,则它们可能会多次转储并显示在不同的子文件夹中。这种 dump 方法比其他方法更快,并且命名样式可以帮助您弄清楚您正在查看的内容,但您对皮肤的创意控制将较少。在复制要为皮肤编辑的 sprite 时,您需要完全匹配文件夹路径,否则您的皮肤元素将不会显示。

Names.Json(Recommended) dumps the sprites by their hash name, which is a jumble of numbers and letters, and dumps everything in the room into a single folder. There will be no duplicates with this method, but the hash names make it harder to figure out what you’re looking at. This style of dumping will take longer, but the names.json file it creates will give you more control over your skin than the directory method. By editing the names.json file, you will be able to name the images within the folder anything you want, organize the images into sub folders, and assign different images to background elements that would normally use the same sprite.
Names.Json' (推荐)按哈希名称(一堆数字和字母)转储精灵,并将房间中的所有内容转储到一个文件夹中。此方法不会有重复项,但哈希名称会让您更难弄清楚您正在查看的内容。这种风格的转储将花费更长的时间,但它创建的 names.json 文件将比 directory 方法为您提供更多的皮肤控制权。通过编辑 names.json 文件,您将能够为文件夹中的图像命名所需的任何名称,将图像组织到子文件夹中,并将不同的图像分配给通常使用相同 sprite 的背景元素。

Once you’ve decided what dump method you want to use, click ‘Dump sprites’. Depending on the size of the room and how many sprites there are, this can take a while and you will experience considerable lag while the sprites are being dumped. If you want to dump the dialogue, make sure to trigger it while you have dumping turned on. Dumped dialogue will appear as a txt file in the dump folder. It’s easiest to dump the dialogue after waiting for the room to finish dumping, so you can move without the lag.
确定要使用的 dump 方法后,单击 'Dump sprites'。根据房间的大小和 sprite 的数量,这可能需要一段时间,并且在转储 sprite 时,您会遇到相当大的延迟。如果要转储对话,请确保在打开转储时触发它。转储的对话框将在 dump 文件夹中显示为 txt 文件。在等待 room 完成转储后转储对话是最容易的,这样您就可以在没有延迟的情况下移动。

You will see a percentage on the left side of the screen that will tell you how far along the dump is. Once it hits 100%, it will disappear and you can turn dumping off. If it hits 100%, then drops back down to something in the 90s repeatedly, it likely means that something in the scene has a particle effect that is constantly generating new sprites. In this case, it will never hit 100%, but you can still safely turn it off. It will have dumped what you needed.
您将在屏幕左侧看到一个百分比,告诉您转储的进度。一旦达到 100%,它就会消失,您可以关闭转储。如果它达到 100%,然后反复回落到 90 年代的水平,这可能意味着场景中的某些内容具有不断生成新精灵的粒子效果。在这种情况下,它永远不会达到 100%,但您仍然可以安全地将其关闭。它会转储你需要的东西。

NOTE: If what you want to customize does not dump, then it likely cannot be customized with CK at this time.
注意:如果要自定义的内容没有转储,则此时可能无法使用 CK 进行自定义。

With GoDump
使用 GoDump

The GoDump that is on the Lumafly installer is not compatible with SP or NSP. You will need to download this version of GoDump from the Modding Discord and manually install it (Requires being part of the HK Modding Discord): https://discord.com/channels/879125729936298015/879133769070706698/889708344170913802
Lumafly 安装程序上的 GoDump 与 SP 或 NSP 不兼容。您需要从 Modding Discord 下载此版本的 GoDump 并手动安装(需要成为 HK Modding Discord 的一部分):https://discord.com/channels/879125729936298015/879133769070706698/889708344170913802

Both NSP and SP require the sprite info from this version of GoDump. If you are unsure how to install it, you can ask for help in the discord server.
NSP SP 都需要此版本 GoDump 中的 sprite 信息。如果您不确定如何安装它,您可以在 discord 服务器中寻求帮助。

Once installed, start the game and a GODump.GlobalSettings.json file will be created in your ‘AppData\LocalLow\Team Cherry\Hollow Knight’ folder (The same location you needed to put the sprites for SP). If you had this file already from a previous version of GoDump, close the game, delete this file, and start the game again. A new copy of the file will be generated.
安装后,启动游戏,并在您的 'AppData\LocalLow\Team Cherry\Hollow Knight' 文件夹中创建一个 GODump.GlobalSettings.json 文件(与放置 SP 精灵所需的位置相同)。如果您已从以前版本的 GoDump 中拥有此文件,请关闭游戏,删除此文件,然后再次启动游戏。将生成该文件的新副本。

Enter the scene you want to dump and hit F2. Atlases will be generated in ‘AppData\LocalLow\Team Cherry\Hollow Knight\atlases’. If you had generated atlases previously, duplicates of the previous atlases may appear. This is fine, and you can delete these images after you are finished using GoDump to free up space on your computer.
输入要转储的场景,然后按 F2。图集将在 'AppData\LocalLow\Team Cherry\Hollow Knight\atlases' 中生成。如果您之前已生成图集,则可能会出现先前图集的重复项。这很好,您可以在使用 GoDump 释放计算机空间后删除这些图像。

Hit F3 and the GODump.GlobalSettings.json file will update with the names of the animations in your current scene. Edit the file and delete any animations you do not want to dump, then save. If you’re dumping multiple animations, put a | between them. If you are unsure what each animation is, you can compare the names to the dumped atlases that were generated earlier.
按 F3 键,GODump.GlobalSettings.json文件将更新为当前场景中的动画名称。编辑文件并删除您不想转储的任何动画,然后保存。如果要转储多个动画,请将 |在他们之间。如果您不确定每个动画是什么,可以将名称与之前生成的转储图集进行比较。

Hit F4 and the sprites will begin dumping in ‘AppData\LocalLow\Team Cherry\Hollow Knight\sprites’. This step may take a while depending on how many animations there are and how many sprites need to be dumped. Some NPCs that appear in multiple places, such as Cornifer and the Stag, do not dump spriteinfo. If a spriteinfo file is not created in the 0.Atlases folder, unfortunately that means you cannot use the packers to pack that sprite sheet.
按 F4 键,精灵将开始转储到“AppData\LocalLow\Team Cherry\Hollow Knight\sprites”中。此步骤可能需要一段时间,具体取决于有多少动画以及需要转储多少 sprite。一些出现在多个地方的 NPC,比如 Cornifer 和 Stag,不会转储 spriteinfo。如果 spriteinfo 文件不是在 0.Atlases 文件夹中创建的,很遗憾,这意味着你不能使用加法器来打包该 sprite 表。

Once the dump is finished, you can exit the game. The sprites can now be edited and packed with NSP or SP
转储完成后,您可以退出游戏。现在可以使用 NSP 或 SP 编辑和打包 sprite
.

NOTE: The sprite info that dumps with the Radiance atlases does not pack correctly.
注意:与 Radiance 图集一起转储的 sprite 信息无法正确打包。

Replace the 0.Atlases folder found within Radiance Anim and its contents with the one found here to fix it. Radiance Anim.zip
将 Radiance Anim 及其内容中找到的 0.Atlases 文件夹替换为此处找到的文件夹以修复它。 Radiance Anim.zip

If you downloaded the pre-dumped Radiance sprites from the modding discord, you do not need to do this, as they have already been fixed.
如果您从 modding discord 下载了预转储的 Radiance 精灵,则无需执行此操作,因为它们已经修复。

Swapper
交换器

The swapper function of Custom Knight is what changes the backgrounds and enemies. All swapper files go into the ‘Swap’ folder under your skin and there are two different ways to set up swaps. The global folder can be used to apply a skin to enemies globally, so the skin will affect every version of that enemy no matter where they are encountered. Path swapping is room by room and is used to swap the environment sprites.
Custom Knight 的交换器功能是改变背景和敌人的功能。所有交换器文件都进入您皮肤下的“Swap”文件夹,有两种不同的方法可以设置交换。全局文件夹可用于将皮肤应用于全局敌人,因此无论在何处遇到该敌人,该皮肤都会影响该敌人的每个版本。路径交换是逐个房间的,用于交换环境 Sprite。

Global Swap
全球掉期

To do global swaps, all you need to do is put the enemy atlas you created into the ‘Global’ folder within the swap folder. If there is not a ‘Global’ folder, make one. The files here must use their hash names or the names found in the ‘aliases.json’ located in the ‘Custom Knight’ folder. If you dumped the atlas earlier using the names.json method, it will have dumped with the hash name so you can copy that name when you rename your file. If you used the directory dump method, then you will need to find the atlas in the dumped ‘Global’ folder and can copy the hash from there.
要进行全局交换,您需要做的就是将您创建的敌人图集放入交换文件夹内的“全局”文件夹中。如果没有 'Global' 文件夹,请创建一个。此处的文件必须使用其哈希名称或位于“Custom Knight”文件夹中的“aliases.json”中找到的名称。如果您之前使用 names.json 方法转储了图集,则它将使用哈希名称进行转储,以便您可以在重命名文件时复制该名称。如果您使用了目录转储方法,则需要在转储的 'Global' 文件夹中找到图集,并可以从中复制哈希值。

Example:
例:

Path Swap
路径交换

Path swapping requires the name of the room you are customizing, which you can get by dumping that room with CK. There are two ways to swap things in the environment, depending on how you dumped the room before. If you dumped with the Directory method, you will need to match the names and file path of the sprite you are replacing directly. Sometimes this means you will need to make multiple sub folders in a single folder just for one image. As long as you match the file structure and the naming structure, your images will swap.
路径交换需要你正在自定义的房间的名称,你可以通过使用 CK 转储该房间来获得该名称。有两种方法可以在环境中交换内容,具体取决于您之前如何转储 room。如果使用 Directory 方法进行转储,则需要匹配要直接替换的 sprite 的名称和文件路径。有时这意味着您需要在一个文件夹中为一张图像创建多个子文件夹。只要您匹配文件结构和命名结构,您的图像就会交换。

If you dumped with the Names.json method, then you just need to put all the images you want to swap into the room folder with the names.json file. When you open the names.json file, you can delete anything that you aren’t swapping. This is also where you can set the names of your images, so that you do not need to use the hash names.
如果您使用 Names.json 方法进行转储 ,则只需将要交换的所有图像与 names.json 文件一起放入 room 文件夹中。当您打开 names.json 文件时,您可以删除任何未交换的内容。您也可以在此处设置图像的名称,这样就不需要使用哈希名称。

When you look at the names file, you’ll notice that there might be multiple elements tied to a single image, like the above victory pin in the colosseum. By editing the names file, you can make those elements use different images instead, allowing you to use different images for something that normally uses the same one.
当您查看名称文件时,您会注意到可能有多个元素与单个图像相关联,例如上面罗马斗兽场中的胜利徽章。通过编辑 names 文件,您可以使这些元素使用不同的图像,从而允许您为通常使用相同图像的内容使用不同的图像。

If you want to put images into sub-folders, you can by adding the folder name before the image name and putting a forward slash between them. This is very useful if you’re swapping a lot of elements in a single room and want to keep them organized.
如果要将图像放入子文件夹,则可以在图像名称之前添加文件夹名称,并在它们之间放置正斜杠。如果您在单个房间中交换大量元素并希望保持它们井井有条,这将非常有用。

When you swap a background element, make sure to actively check it in game. Sometimes sprites that dump as single images do not align perfectly and may need to be manually adjusted. Open the sprite in your art program of choice and move the image around the canvas, save, and reload your skin in game. Keep adjusting it until it lines up correctly.
当您交换背景元素时,请务必在游戏中主动检查它。有时,转储为单个图像的 sprite 无法完美对齐,可能需要手动调整。在您选择的艺术程序中打开 sprite,然后在画布上移动图像,保存并在游戏中重新加载您的皮肤。继续调整它,直到它正确对齐。

Custom Text
自定义文本

Changing the text, whether that be dialogue, menus, or names, can be done in two different ways. The easiest way which requires no preparation is through the ‘replace.txt’ file that is inside the Swap folder. The second way is to dump the individual txt files using the CK dumping method described earlier.
更改文本,无论是对话框、菜单还是名称,都可以通过两种不同的方式完成。无需准备的最简单方法是通过 Swap 文件夹中的“replace.txt”文件。第二种方法是使用前面描述的 CK 转储方法转储单个 txt 文件。

To text swap using the replace.txt file, all you need to do is type the text you want to replace, type ‘=>’, then type what you want the new text to be. Every time the text on the left side of the arrow appears, it will automatically be replaced with what is on the right.
要使用 replace.txt 文件进行文本交换,您需要做的就是键入要替换的文本,键入 '=>',然后键入您想要的新文本。每次箭头左侧的文本出现时,它都会自动替换为右侧的文本。

Order matters! Text at the top will be replaced before text at the bottom.
顺序很重要! 顶部的文本将在底部的文本之前被替换。

So if you type:
因此,如果您键入:

ghost=>little guy
鬼=>小家伙

Come no closer, ghost=>Hi sibling
不要靠近,鬼=>Hi 兄弟姐妹

The second line would not change, because it would have already changed to ‘Come no closer, little guy’ and would no longer match the text you want to replace. You would need to put ‘ghost=>little guy’ second to make both swap.
第二行不会改变,因为它已经变成了 'Come no closer, little guy',并且不再匹配你想要替换的文本。你需要把 'ghost=>little guy' 放在第二个位置才能进行两个交换。

Keep order in mind when replacing text.
替换文本时请牢记顺序。

If you replace text by dumping the text file, you can edit the file directly. Only that instance of the text will change. For text that can be dumped in multiple rooms, such as menu text, journal entries, and inventory descriptions, you can put those text files in any folder within the swap folder and CK will see it. You can even create a folder called ‘Text’ inside of the swap folder if you want. But CK will not see any text files that are in a sub-folder inside of another folder.
如果通过转储文本文件来替换文本,则可以直接编辑该文件。只有文本的该实例会更改。对于可以转储到多个房间的文本,例如菜单文本、日志条目和库存描述,您可以将这些文本文件放在交换文件夹内的任何文件夹中,CK 将看到它。如果需要,您甚至可以在交换文件夹内创建一个名为“Text”的文件夹。但 CK 不会看到另一个文件夹内的子文件夹中的任何文本文件。

Using the text files directly is useful for lengthier text that you want to swap, while using the replace file is useful to swap multiple instances of a word all at once. But if you don’t want to fill your skin up with a cluster of text files, you can use the replace file to swap the majority of text in the game.
直接使用文本文件对于要交换的较长文本非常有用,而使用 replace 文件对于一次交换单词的多个实例很有用。但是,如果您不想用一堆文本文件填充您的皮肤,则可以使用 replace 文件来交换游戏中的大部分文本。

Unity Explorer
Unity 资源管理器

The mod ‘Unity Explorer’ and its add-on ‘Unity Explorer Plus’ are not required but are useful tools to help you identify and test sprites in game. Hitting F7 opens and closes the UE menu. The Inspector and Object Explorer can help you figure out the name and path of the element you want to swap.
mod 'Unity Explorer' 及其附加组件'Unity Explorer Plus'不是必需的,但它们是帮助您识别和测试游戏中的精灵的有用工具。按 F7 可打开和关闭 UE 菜单。Inspector 和 Object Explorer 可以帮助您确定要交换的元素的名称和路径。

If what you want to look at is overlapping a lot of elements or camera/respawn zones, set the inspector to ‘Renderer’. It should say how many renderers are under your mouse. If it’s none, right click until you reach the main camera and a number appears. Left click, and you will get a list of names. Click on any that you want to view more information about. You can check to see if it’s the sprite you want by toggling the ‘ActiveSelf’ checkbox on and off.
如果要查看的是重叠的大量元素或摄像机/重生区域,请将检查器设置为“Renderer”。它应该显示鼠标下有多少个渲染器。如果没有,请右键单击,直到到达主摄像头并出现一个数字。左键单击,您将获得一个名称列表。单击要查看其详细信息的任何项。您可以通过打开和关闭 'ActiveSelf' 复选框来检查它是否是您想要的 sprite。

The path associated with the image is the same as what is used in the names.json file that CK dumps, so you can use it to help you with customizing your skin in unique ways. For example, if you only want a single cloud in all of godhome to have a unique sprite amongst all the clouds, you could identify its path with UE and assign it a new image with the names.json in your skin.
与图像关联的路径与 CK 转储的 names.json 文件中使用的路径相同,因此您可以使用它来帮助您以独特的方式自定义皮肤。例如,如果你只想让整个 godhome 中的一朵云在所有云中有一个独特的精灵,你可以用 UE 识别它的路径,并在你的皮肤中为其分配一个带有names.json的新图像。

As long as the sprite does not have a Tk2d component, even if it normally shares a sprite image with another object, it can be uniquely swapped. Sprites that have a Tk2d component cannot be uniquely swapped.
只要 sprite 没有 Tk2d 组件,即使它通常与其他对象共享一个 sprite 图像,也可以进行唯一交换。具有 Tk2d 组件的 Sprite 不能唯一交换。

You can also click Object Explore and search for the sprite manually. This is also a great way to test sprites that might not be active in your current file without needing to leave the current game.
您也可以单击 Object Explore 并手动搜索 Sprite。这也是测试在当前文件中可能未处于活动状态的 sprite 的好方法,而无需离开当前游戏。

Creating Custom Cinematics
创建自定义过场动画

There are no sprite sheets for the cinematics. These are instead swapped by creating video files. Currently CK can swap the cinematics for the prologue, intro, stag, salubra’s kiss, the nail arts, the nail smith, all five endings, mister mushroom ending, Lurien’s telescope, the fountain, and the dreamer mask shattering. All of these can be downloaded here:
没有用于过场动画的 sprite 表。而是通过创建视频文件来交换这些文件。目前 CK 可以将过场动画换成序幕、介绍、雄鹿、salubra 之吻、美甲术、美甲师、所有五个结局、蘑菇先生结局、Lurien 的望远镜、喷泉和梦想家面具破碎。所有这些都可以在这里下载:

https://github.com/PrashantMohta/HollowKnight.CustomKnight/releases/download/v2.2.0/DefaultCinematics.zip

Do not change the names of these files. You can use them as a guide for what you need to name them for your skin.
请勿更改这些文件的名称。您可以将它们用作指南,了解需要为您的皮肤命名它们的内容。

There is no easy way to make a custom cinematic, but there are some templates you can use to help you out. Most of these templates are for krita, and can be found in the art resources section of the HK Modding Discord. The templates I personally have made can be found here: HK Custom Cinematic Templates
制作自定义电影没有简单的方法,但您可以使用一些模板来帮助您。这些模板大多是给 krita 的,可以在 HK Modding Discord 的艺术资源部分找到。我个人制作的模板可以在这里找到:HK Custom Cinematic Templates

These templates remove the knight from the cinematics for you, but you still have to draw your custom knight into every frame.
这些模板会为您从电影中删除骑士,但您仍然必须在每一帧中绘制自定义骑士。

Once you’ve created your animation, you will need to save it as a WebM with the following settings:
创建动画后,您需要使用以下设置将其保存为 WebM:

Video: 1080p, 30fps, VP8 encoding
视频:1080p、30fps、VP8 编码

Audio: 48000hz sample rate, 2 channels, Vorbis encoding
音频:48000hz 采样率,2 个通道,Vorbis 编码

Container: WebM
容器:WebM

To format your video, you can download FFMPEG here:https://www.gyan.dev/ffmpeg/builds/#release-builds
要格式化您的视频,您可以在此处下载 FFMPEG:https://www.gyan.dev/ffmpeg/builds/#release-builds

Use the following command to format your video correctly:
使用以下命令正确格式化视频:

ffmpeg -i <INFILE> -c:v libvpx -crf 10 -b:v 8M -c:a libvorbis -q 6 <OUTFILE>.webm
ffmpeg -i <INFILE> -c:v libvpx -crf 10 -b:v 8M -c:a libvorbis -q 6 <OUTFILE>.webm

If you’re like me and have no idea how to use FFMPEG and need something with a ui, download Handbrake here: https://handbrake.fr/
如果您像我一样不知道如何使用 FFMPEG 并且需要带有 ui 的东西,请在此处下载 Handbrake:https://handbrake.fr/

To format your video with handbrake, drag your video directly onto the program. It should default to the preset ‘Fast 1080p30’. Click the dropdown menu under ‘format’ and select ‘WebM’. Under the Dimension tab, set Cropping to None and Anamorphic Scaling to None. Under the Video tab, change the Video Encoder to VP8. Under Audio set Samplerate to 48. Then click ‘Save New Preset’ and name it ‘HK Cinematics’ so you never have to think about this again.
要使用 handbrake 格式化视频,请将您的视频直接拖到程序上。它应默认为预设的 'Fast 1080p30'。单击“format”下的下拉菜单,然后选择“WebM”。在 Dimension 选项卡下,将 Cropping 设置为 None,将 Anamorphic Scaling 设置为 None。在下面 视频 选项卡,将 视频编码器 更改为 VP8。在 Audio (音频) 下,将 Samplerate (采样率) 设置为 48。然后点击“保存新预设”并将其命名为“HK Cinematics”,这样您就不必再考虑这个问题了。

Once your preset is saved, choose a save location, then hit ‘Start Encode’. Whenever you want to format your cinematics in the future, you can just drag them onto handbrake, select your ‘HK Cinematic’ preset, click start encode, and you’re done.
保存预设后,选择一个保存位置,然后点击“开始编码”。无论何时您想将来格式化您的电影,您只需将它们拖到 handbrake 上,选择您的“HK Cinematic”预设,然后单击开始编码,即可完成。

To add the cinematics to your skin, place them directly into the ‘Cinematics’ folder inside of your skin. If it does not have one, make one. Make sure the files are named correctly. Use the default cinematics you downloaded earlier for reference if you need to.
要将过场动画添加到皮肤中,请将它们直接放入皮肤内的“Cinematics”文件夹中。如果没有,请创建一个。确保文件命名正确。如果需要,请使用您之前下载的默认过场动画作为参考。

CK Add-ons
CK 附加组件

These mods are add-ons to CK and require CK to work.
这些 Mod 是 CK 的附加组件,需要 CK 才能工作。

CustomKnightSuperAnimationAddon

Adds support for skinning tk2d animations with new user created sprite sheets. Currently only supports the animations from Knight.png. With this add-on, you can alter the number of frames an animation has, making it longer or shorter, as well as change the canvas size limits so you can draw outside of that red box. Every individual animation that you want to alter (such as the idle animation or the airborne animation) requires its own individual sprite sheet, so it is advised to avoid doing this for every single knight animation, or you might end up with a very large skin that slows down your computer.
添加了对使用新用户创建的 sprite 表对 tk2d 动画进行蒙皮的支持。目前仅支持 Knight.png 的动画。使用此插件,您可以更改动画的帧数,使其更长或更短,以及更改画布大小限制,以便您可以在该红框之外绘制。要更改的每个动画(例如空闲动画或空中动画)都需要其自己的 Sprite 表,因此建议避免对每个骑士动画执行此操作,否则最终可能会得到一个非常大的皮肤,从而降低计算机的速度。

To see an example of a CKSAA skin, click here: https://github.com/RedFrog6002/CustomKnightSuperAnimationAddon/tree/main/SampleSkins/Red%20Lines%20v2
要查看 CKSAA 皮肤的示例,请单击此处:https://github.com/RedFrog6002/CustomKnightSuperAnimationAddon/tree/main/SampleSkins/Red%20Lines%20v2

You can use one of the skins here as a guide to set up your own skin.
您可以使用此处的其中一个皮肤作为指南来设置您自己的皮肤。

Inside of the skin folder, create a new folder with the name of the atlas the original animation comes from (example:Knight).
在 skin 文件夹中,使用原始动画来自的图集名称创建一个新文件夹 (example:Knight)。

Copy the ‘Animation.Json’ from one of the example skins and put it here. Alternatively, you can create a text document yourself and name it Animation.Json, then add the following text to the file, but instead of 'Idle', put the name of whatever animation you are changing. (For a list of animation names, just look at the names of the animations in the knight sprites folder found at the beginning of this guide):
从其中一个示例皮肤中复制 'Animation.Json' 并将其放在这里。或者,您可以自己创建一个文本文档并将其命名为 Animation.Json,然后将以下文本添加到文件中,但不要输入“Idle”,而是输入您正在更改的任何动画的名称。(有关动画名称的列表,只需查看本指南开头的 knight sprites 文件夹中的动画名称):

{

"Animations": [
“动画”:[

"Idle"
“闲置”

]

}

If you are customizing more than one animation with a new sprite sheet, add a comma after the first animation, and add the next animation on the next line. Each one should be on its own line, with a comma after all but the last. Ex:
如果要使用新的 Sprite 表自定义多个动画,请在第一个动画后添加逗号,然后在下一行添加下一个动画。每个 ID 都应该在自己的行上,除了最后一个之外,后面都加一个逗号。前任:

Next create a folder for each animation you are replacing (example: Inside of the Knight folder, you would make an Idle folder).
接下来,为要替换的每个动画创建一个文件夹(例如:在 Knight 文件夹中,您将创建一个 Idle 文件夹)。

Within each animation folder, you will include three files:
在每个 animation 文件夹中,您将包含三个文件:

sheet.png, Info.json, and Simple.json (or Advanced.json, but this guide will only be covering how to set up the simple.json file. For examples of an advanced.json file, please look at the example skins mentioned previously.)
sheet.png、Info.json 和 Simple.json(或 Advanced.json,但本指南仅介绍如何设置 simple.json 文件。有关 advanced.json 文件的示例,请查看前面提到的示例皮肤。

You can either create these files from scratch, or use sseadv to make them for you.
您可以从头开始创建这些文件,也可以使用 sseadv 为您创建这些文件。

You can find sseadv here: https://github.com/RedFrog6002/sseadv
您可以在此处找到 sseadv:https://github.com/RedFrog6002/sseadv

To use sseadv, make sure you are on the computer you have hollow knight installed on.
要使用 sseadv,请确保您在安装了 hollow knight 的计算机上。

Run the program, click open->one file->automatically. A window will pop up. Scroll down to the bottom and select ‘Resources’. This might take a while, so don’t worry if nothing shows up right away. Once it loads, you can select the atlas containing the animation you want to edit (in this case ‘Knight’). On the far right, all the animations will be listed in alphabetical order. Find the animation you’re editing and select it.
运行程序,单击打开 - >one 文件 - >自动。将弹出一个窗口。向下滚动到底部并选择“资源”。这可能需要一段时间,因此如果立即没有任何显示,请不要担心。加载后,您可以选择包含要编辑的动画的图集(在本例中为“Knight”)。在最右侧,所有动画将按字母顺序列出。找到您正在编辑的动画并选择它。

Once you’ve selected your animation, on the top left of the program, select save->this->animation. It will ask you to select a folder to export to. You can make a new one, or use a folder you’ve made previously. Once selected, a pop up will appear with exporting options. Make sure ‘export to custom SpriteSheet’ and ‘export json (CKSAA)’ are both selected. If you select ‘auto detect dimensions’ sseadv will try to export a sheet in a way that makes a square (example: If there are 9 sprites, it will do 3 rows of 3 sprites). If you prefer, you can specify how many rows and columns you want your spritesheet to be instead. You can also choose to export the individual frames. This can be useful if you want to work on the frames one at a time, rather than on the spritesheet itself, however you will need to assemble the spritesheet yourself if you do this. There are no packing programs for these sheets.
选择动画后,在程序的左上角,选择 save->this->animation。它将要求您选择要导出到的文件夹。您可以创建一个新文件夹,也可以使用您之前创建的文件夹。选择后,将出现一个弹出窗口,其中包含导出选项。确保“export to custom SpriteSheet”和“export json (CKSAA)”都已选中。如果您选择“自动检测尺寸”,sseadv 将尝试以正方形的方式导出工作表(例如:如果有 9 个 sprite,它将执行 3 行,每行 3 个 sprite)。如果您愿意,可以指定您希望 spritesheet 为多少行和多少列。您还可以选择导出各个帧。如果您想一次处理一个帧,而不是 spritesheet 本身,这可能很有用,但是如果您这样做,则需要自己组装 spritesheet。这些工作表没有打包程序。

Make sure you rename the files to ‘sheet.png’, ‘info.json’, and ‘simple.json’ after you have moved these files into the proper folder within your skin. Now that you have a sprite sheet, you can edit it directly with your new sprites. If you find there still is not enough space in the exported spritesheet for your skin, then just copy the json files from the export and assemble the spritesheet yourself.
将这些文件移动到皮肤中的适当文件夹后,请确保将这些文件重命名为“sheet.png”、“info.json”和“simple.json”。现在,您有了一个 Sprite 表,可以直接使用新的 Sprite 对其进行编辑。如果您发现导出的 spritesheet 中仍然没有足够的空间用于您的皮肤,那么只需从导出中复制 json 文件并自己组装 spritesheet 即可。

To make your own sprite sheet, make sure the canvas is the same size for all the individual sprites in your edited animation. If some frames don’t use up all the space, that’s fine. Put a single pixel thick border around the edge of the canvas. This will help you line your sprites up later. In a new file, copy and paste all of your sprites so that they are in order, starting from the top left. Make sure the borders you drew earlier are touching, but not overlapping. Trim the canvas of your sprite sheet so that there is no space outside of the borders of your sprites. Once all of your sprites are in the grid and the sprite sheet is trimmed, you can delete the borders.
要制作您自己的 Sprite 表,请确保编辑动画中所有单个 Sprite 的画布大小相同。如果某些帧没有占用所有空间,那很好。在画布边缘周围放置一个像素粗的边框。这将帮助您稍后排列 sprite。在新文件中,复制并粘贴所有 sprite,使它们从左上角开始按顺序排列。确保您之前绘制的边框是接触的,但不是重叠的。修剪 Sprite 表的画布,使 Sprite 的边界之外没有空间。一旦所有 sprite 都位于网格中并且 sprite 表被修剪,您就可以删除边框。

Once you have your custom sprite sheet, you need to make sure the simple.json matches it. The first 3 lines of the simple.json are pretty straight forward.
获得自定义 sprite 表后,您需要确保 simple.json 匹配它。simple.json的前 3 行非常简单。

Columns: How many columns ↕ are on your sprite sheet?
Columns:您的 Sprite Sheet 上有多少列↕?

Rows: How many rows ↔ are on your sprite sheet?
Rows:您的 Sprite 表上有多少行↔?

Frames: How many sprites are on your sprite sheet?
帧:您的 Sprite 表上有多少个 Sprite?

The anchor will determine where the sprite shows up on the screen. The default knight’s anchor is in the middle of the top of their head. You can use that to help you figure out where to put the anchor on your own sprites. Use the info from sseadv to help you figure out where the anchor is on the default knight by checking the simple.json file that dumps with the animation and marking it yourself on the default sprite sheet that generates with it.
锚点将决定 sprite 在屏幕上的显示位置。默认的骑士锚点位于他们的头顶中间。您可以使用它来帮助您确定将锚点放置在您自己的 sprite 上的哪个位置。使用 sseadv 中的信息来帮助您确定锚点在默认骑士上的位置,方法是检查与动画一起转储的 simple.json 文件,并在使用它生成的默认 sprite 表上自行标记它。

For your X coordinate, count how many pixels from the left of your sprite you want your anchor to be, and for your Y coordinate, count how many pixels from the top of your sprite.
对于 X 坐标,计算您希望锚点从 sprite 左侧开始的像素数,对于 Y 坐标,计算从 sprite 顶部开始的像素数。

Incorrect anchor coordinates will make your sprites clip into the ground, float, or just not line up with the knight’s hitbox. If you find your sprite isn’t lined up correctly in game, try adjusting the anchor coordinates.
不正确的锚坐标会让你的精灵卡在地上、漂浮,或者只是不与骑士的碰撞框对齐。如果您发现 sprite 在游戏中没有正确排列,请尝试调整锚点坐标。

You only need to edit the Info.json if you are changing the speed or looping style of the animation. If you’re not changing those things, using the info.json generated by sseadv is all you need. But if you do want to mess with those things, this is where you would edit that info.
如果要更改动画的速度或循环样式,则只需编辑Info.json。如果您不更改这些内容,则只需使用 sseadv 生成的info.json即可。但是如果你确实想弄乱这些东西,这就是你编辑这些信息的地方。

An example of an info.json is as follows:
info.json示例如下:

{

"useOriginalData": true,
“useOriginalData”: true,

"LoopType": "Loop",
“LoopType”: “循环”,

"loopStart": 0,
“loopStart”: 0,

"fps": 12.0,
“fps”:12.0、

"InfoType": "Simple"
“InfoType”: “简单”

}

'useOriginalData'if set to true, the animation will use the same fps and loop information as the default knight. If set to false, it will use your specified loop and fps information
'useOriginalData'如果设置为 true,则动画将使用与默认骑士相同的 fps 和循环信息。如果设置为 false,它将使用您指定的 loop 和 fps 信息

'LoopType' changes how the animation will play. The following are loop types you can use.
'LoopType' 更改动画的播放方式。以下是您可以使用的循环类型。

Loop - Loop indefinitely
Loop - 无限循环

LoopSection - Starts from the beginning, then loops a section defined by "loopStart" indefinitely
LoopSection - 从头开始,然后无限循环由 “loopStart” 定义的部分

Once - Plays the clip once and stops at the last frame
一次 - 播放剪辑一次,并在最后一帧处停止

PingPong - Plays the clip once forward, and then once in reverse, repeating indefinitely
乒乓 - 向前播放一次剪辑,然后反向播放一次,无限重复

RandomFrame - Chooses a random frame and stops
RandomFrame - 选择随机帧并停止

RandomLoop - Starts at a random frame and loops indefinitely from there.
RandomLoop - 从随机帧开始,然后从那里无限循环。

Single - Switches to the first sprite and stops.
Single - 切换到第一个 Sprite 并停止。

'loopStart' is what frame the animation will start at when it begins looping if loop type is set to 'LoopSection'. NOTE: the first frame of an animation is 0 here, so if you have a 3 sprite animation, then those sprites are 0, 1, and 2, not 1, 2, and 3.
如果 loop type 设置为 'LoopSection',则 'loopStart' 是动画开始循环时将开始的帧。注意:动画的第一帧在这里是 0,所以如果你有一个 3 精灵动画,那么这些精灵是 0、1 和 2,而不是 1、2 和 3。

'fps' is 'frames per second' and controls how quickly the animation will play
'fps' 是 '每秒帧数' ,控制动画播放的速度

'InfoType' is what .json file type is being used (Simple or Advanced) for this animation.
'InfoType' 是此动画使用的.json文件类型 (Simple) 或 Advanced(高级)。

NOTE: Currently this add on is bugged, and super animations will not apply correctly unless you switch skins at least once whenever you enter your save file.
注意:目前这个附加组件有问题,除非你在输入保存文件时至少切换一次皮肤,否则超级动画将无法正确应用。

NOTE 2: Changing the canvas size will not change the knight’s hitbox.
注意 2:更改画布大小不会改变骑士的碰撞箱。

Asymmetric Knight
不对称骑士

Adds support for asymmetry for the Knight, Unn, and Sprint atlases, so your knight will look different depending on if they are facing left or right. Add a Knight_left.png, Unn_left.png, and Sprint_left.png for the left facing sprites. Knight.png, Unn.png, and Sprint.png will be the right facing sprites.
为 Knight、Unn 和 Sprint 图集添加了对不对称的支持,因此您的骑士看起来会有所不同,具体取决于他们是面向左侧还是右侧。为面向左侧的 sprite 添加 Knight_left.png、Unn_left.png 和 Sprint_left.png。Knight.png、Unn.png 和 Sprint.png 将是面向右侧的 sprite。

CustomKnightPlus

Adds support for asymmetry as well as map zone specific sprite sheets. Asymmetry is set up the same as Asymmetric knight, with the regular names of the sheets being right facing and <name>_left.png being left facing. CustomKnightPlus however can support more atlases than Asymmetric Knight.
添加对不对称以及地图区域特定 Sprite 表的支持。不对称的设置与不对称骑士相同,床单的常规名称是正面的,<name>_left.png是正面的。但是,CustomKnightPlus 可以支持比 Asymmetric Knight 更多的图集。

For Zone specific sprite sheets, add _<map zone> to the sprite sheet. For example, ‘knight_deepnest.png’ would use that knight sheet exclusively in deepnest. The list of locations compatible with this mod can be found in the Read Me that comes with the mod.
对于特定于区域的 sprite 表,将 _<map zone> 添加到 sprite 表。例如,'knight_deepnest.png' 将在 deepnest 中专门使用该 knight 工作表。与此 mod 兼容的地点列表可以在 mod 附带的 Read Me 中找到。

You can combine zone and asymmetry as well. Put direction, then zone. Example: knight_left_deepnest.png’ will only use that sheet while in deepnest and facing left.
您也可以组合区域和不对称。Put direction,然后 zone。示例:knight_left_deepnest.png' 将仅在 deepnest 中且面朝左侧时使用该工作表。

NOTE: not compatible with Asymmetric Knight. If you have CustomKnightPlus, you should not need Asymmetric Knight anyway.
注意:与 Asymmetric Knight 不兼容。如果您有 CustomKnightPlus,则无论如何都不需要 Asymmetric Knight。

CustomJournal
CustomJournal (自定义日志)

Allows customizing the Hunter’s Journal. Includes a way to dump the journal under Custom Journal in the mod menu. Add a ‘Journal’ folder to your skin’s ‘Swap’ folder and treat it like a Path Swap.
允许自定义 Hunter's Journal。包括 mod 菜单中的 Custom Journal 下的 dump 日志的方法。将 'Journal' 文件夹添加到皮肤的 'Swap' 文件夹中,并将其视为 Path Swap。

Mods with CK Integration
与 CK 集成的 Mod

These are standalone mods that have CK integration built in.
这些是内置了 CK 集成的独立 Mod。

press g to dab

This mod adds a unique animation that plays when you hit g. This animation can be customized by adding the atlas ‘dab.png’ to your skin. A fun way to add a special animation to your skin! (It doesn’t need to be a dab).
这个 mod 添加了一个独特的动画,当你按下 g 时会播放。可以通过将图集 'dab.png' 添加到您的皮肤来自定义此动画。为您的皮肤添加特殊动画的有趣方式!(它不需要是 dab)。


The dab sprites and atlas can be found here and are compatible with all 3 packers: (Requires being part of the HK Modding Discord):
dab 精灵和地图集可以在这里找到,并且与所有 3 个打包器兼容:(需要成为 HK Modding Discord 的一部分):
https://discord.com/channels/879125729936298015/880166423635308655/1230175945386889277

Enemy HP Bar
敌方 HP 条

This mod adds a visible hp bar to enemies and bosses. Include an ‘HPbar’ folder inside of your skin, and this mod will use your hp bar skin instead. You can use the default HP bar that comes with the mod as your base to create your own. You are not limited to the canvas size and can increase or decrease the canvas. Check how it looks in game after every alteration of the canvas, to make sure the bars still line up correctly with each other. Make sure the names match the default hp bar.
这个 mod 为敌人和 Boss 添加了一个可见的 hp 条。在您的皮肤内包含一个“HPbar”文件夹,此 mod 将改用您的 hp bar 皮肤。您可以使用 Mod 附带的默认 HP 条作为您的基础来创建自己的。您不受画布大小的限制,可以增加或减少画布。检查画布每次更改后它在游戏中的外观,以确保条形仍然彼此正确对齐。确保名称与默认 hp 条匹配。

Note: When you swap skins, the HP Bar skin for bosses will not update until you leave the current room.
注意:当您交换皮肤时,Boss 的 HP 条皮肤不会更新,直到您离开当前房间。

After booting up the game, you must swap skins at least once before CK integration will start working.
启动游戏后,您必须至少交换一次皮肤,然后 CK 集成才能开始工作。

CustomAudio
自定义音频

This mod allows you to customize the sound effects that play within the game. Include an ‘Audio’ folder within your skin’s swap folder, and this mod will use the audio files from your skin instead. You can download the audio files here:Hollow Knight audio files 1.4.3.2
此 mod 允许您自定义游戏中播放的音效。在您的皮肤的交换文件夹中包含一个“音频”文件夹,此 mod 将改用您皮肤中的音频文件。您可以在此处下载音频文件:Hollow Knight 音频文件 1.4.3.2

Make sure the replacement audio files match the name of the original file it is replacing.
确保替换音频文件与它要替换的原始文件的名称匹配。

NOTE: CK Integration is currently bugged and does not work at this time
注意:CK 集成目前存在错误,目前无法正常工作