高级皮肤制作
除了给骑士剥皮,您还可以更改敌人和环境,包括 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 集成目前存在错误,目前无法正常工作